Commit Graph

73 Commits

Author SHA1 Message Date
ed68a34560 disable high dpi video streaming (#374) 2023-09-01 20:29:03 -04:00
043333d3bc Franknoirot/fix onboarding units feedback followup (#367) 2023-08-31 16:08:15 -04:00
afcf820bdd Franknoirot/fix onboarding units (#366)
* Fix up camera step copy and pane opacity for step

* Fix broken onboarding redirect with double slash

* Fix pane height for web bug from blur filter
I found a bug with browser behavior, at least on Chrome.
If you use `backdrop-filter: blur()` at all, you can't
have any children that overflow. The browser will ignore
any attempt and make those children max full-height.
This broke our side panels after I added blur, but
only in Chrome/browser target.

Signed-off-by: Frank Noirot <frank@kittycad.io>

* Fix bug with unit system
Changing the unit system didn't also change the
base unit in the onboarding anymore. It needed
updated to use XState the same way as `/settings`

Signed-off-by: Frank Noirot <frank@kittycad.io>

* Fix AppHeader item spacing when there's no toolbar

---------

Signed-off-by: Frank Noirot <frank@kittycad.io>
2023-08-31 10:41:24 -04:00
eb48d51309 rename lossy to unreliable (#357)
* rename lossy to unreliable

* fmt

* missed a rename
2023-08-31 07:39:03 +10:00
f3274e03ff refactor callbacks (#334)
refactor callbacks
2023-08-30 15:19:37 -04:00
152108f7a5 Refactor to just CommandBar and GlobalState (#337)
* Refactor to just CommandBar and GlobalState

* @Irev-Dev review: consolidate uses of useContext
2023-08-29 10:48:55 -04:00
32d928ae0c Franknoirot/cmd bar (#328)
* Add XState and naive ActionBar

* Add basic dialog and combobox

* Selectable commands in command bar

* Add a few (broken) file actions

* Home commands

* Add subcommand descriptions, cleanup on navigate

* Refactor: move command creation and types to lib

* Refactor to allow any machine to add commands

* Add auth to command bar, add ability to hide cmds

* Refactor: consolidate theme utilities

* Add settings as machine and command set

* Fix: type tweaks

* Fix: only allow auth to navigate from signin

* Remove zustand-powered settings

* Fix: remove zustand settings from App

* Fix: browser infinite redirect

* Feature: allow commands to be hidden per-platform

* Fix: tsc errors

* Fix: hide default project directory from cmd bar

* Polish: transitions, css tweaks

* Feature: label current value in options settings

* Fix broken debug panel UI

* Refactor: move settings toasts to actions

* Tweak: css rounding

* Fix: set default directory recursion and reload 🐞

* Refactor: move machines to their own directory

* Fix formatting

* @Irev-Dev clean-up catches, import cleanup
2023-08-29 10:31:49 +10:00
de255acc59 Port executor (#287)
* parent

initial types

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more port

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

use the function

Signed-off-by: Jess Frazelle <github@jessfraz.com>

ipdates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

pipe sjhit

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

cleanup and pipes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

attempt to call the function

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

better

Signed-off-by: Jess Frazelle <github@jessfraz.com>

add first function

Signed-off-by: Jess Frazelle <github@jessfraz.com>

start of stdlib

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

organize better

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

boilerplace

Signed-off-by: Jess Frazelle <github@jessfraz.com>

boilerplace

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more functions

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more stuff

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more path segment functions

Signed-off-by: Jess Frazelle <github@jessfraz.com>

reorganize files

Signed-off-by: Jess Frazelle <github@jessfraz.com>

extrude boilerplate

Signed-off-by: Jess Frazelle <github@jessfraz.com>

extrude

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

sketch boilerplate

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

comment out extrude for now

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more executor test passing

Signed-off-by: Jess Frazelle <github@jessfraz.com>

rename meta

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

cleanup unneeded deps

Signed-off-by: Jess Frazelle <github@jessfraz.com>

generate executor typoes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

remove path to node

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates for tests js

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

ignore wasm file

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

start of websocket connection

Signed-off-by: Jess Frazelle <github@jessfraz.com>

boilerplate for engine connection

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

send the modeling cmd

Signed-off-by: Jess Frazelle <github@jessfraz.com>

implement close

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

remove refid

Signed-off-by: Jess Frazelle <github@jessfraz.com>

remove refid

Signed-off-by: Jess Frazelle <github@jessfraz.com>

do sketch start

Signed-off-by: Jess Frazelle <github@jessfraz.com>

almost done w sketch port

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

add more tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix deserialize and tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix tests remove logging

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix the return type

Signed-off-by: Jess Frazelle <github@jessfraz.com>

make compile

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more tests pass

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

expect any string

Signed-off-by: Jess Frazelle <github@jessfraz.com>

add failing test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix the tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix more tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

replace wasm_execute

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix more tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

add more tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

make all tests pass

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix remaining tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

add a warpper

Signed-off-by: Jess Frazelle <github@jessfraz.com>

start of server side ws/webrtc

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more nonweb working

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

add test mock

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

mutable engine

Signed-off-by: Jess Frazelle <github@jessfraz.com>

blocking snd engine cmd

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

tmp

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* tmp

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix clippy

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* build wasm only

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix cargo builds

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more logging

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* push

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-08-24 15:34:51 -07:00
965d2b23cf Xstate Auth migration (#250)
* auth migrate progress, web only

* wrap home in state provider

* use consistent logged spelling

* use createActorContext

* typo

* fix wraping problem
2023-08-22 05:34:20 +10:00
25392824cb Fix zoom to not jump anymore (#272)
* Remove scroll handling, honor zoom on drag + ctrl

* Add back ability to zoom with mouse wheel, but properly

* Add TODO for 'any' removal

* Update kittycad lib to remove 'any'
2023-08-21 10:52:41 -04:00
a8d23f5c0d Fix lint warnings (#289) 2023-08-19 08:14:35 +10:00
108827075d fix export types (#271)
* fix export types

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* update kittycad lib

* fix wasm

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
2023-08-18 08:12:32 -07:00
aa24b9d6bd Polish: UI theme colors, onboarding dismiss, Export button in sidebar (#270)
* Light mode style fixes

* Fix dismissing onboarding for nested routes

* Refactor: move export button to  user side panel

* Refactor: add project data to modeling page loader

* Add new ProjectSidebarMenu

* Convert AppHeader to use ProjectSidebarMenu

* Move ExportButton to ProjectSidebarMenu

* Fix: hide default dir setting in Web

* Add DownloadAppBanner when in Prod

* Add unit tests to ProjectSidebarMenu

* Tiny CSS rounding tweak to sidebars

* Fix formatting in unit tests

* Update icons and logos to use full-color Kitt

* Fix: dim UI on camera drag, not click
2023-08-18 10:27:01 -04:00
ff08c30ddc Port abstractSyntaxtTree (the Parser) to Rust/WASM 🦀 (#207)
* initial port

leafs progress

leafs progress

leafs progress

all ast with binary expressions are passing

abstractSyntaxTree replaced in all js-test

clippy

lexer?

trying to make tests happy

clean up comments etc

remove unused

lexer is needed though

re-org rust files

remove old ast

* fmt

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* rearrange test fns

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* start of returning results

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* make tests compile again

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more errors

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more errors

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* replace more panics

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup more unwraps

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup more unwraps

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* less unwraps

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix clippy

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixups

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* deps

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix some tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix some tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix more tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* passing

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* up[date

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
2023-08-18 02:37:52 -07:00
19761baba6 Home page in desktop, separate file support (#252)
* Bugfix: don't toast on every change of defaultDir

* Refactor app to live under /file/:id

* Stub out Tauri-only home page

* home reads and writes blank files to defaultDir

* Fix initial directory creation

* Make file names editable

* Refactor onboarding to use normal fns for load issues

* Feature: load and write files to and from disk

* Feature: Add file deletion, break out FileCard component

* Fix settings close URLs to be relative, button types

* Add filename and link to AppHeader

* Style tweaks: scrollbar, header name, card size

* Style: add header, empty state to Home

* Refactor: load file in route loader

* Move makePathRelative to lib to fix tests

* Fix App test

* Use '$nnn' default name scheme

* Fix type error on ActionButton

* Fix type error on ActionButton

* @adamchalmers review

* Fix merge mistake

* Refactor: rename all things "file" to "project"

* Feature: migrate to <project-name>/main.kcl setup

* Fix tsc test

* @Irev-Dev review part 1: renames and imports

* @Irev-Dev review pt 2: simplify file list refresh

* @Irev-Dev review pt 3: filter out non-projects

* @Irev-review pt 4: folder conventions + home auth

* Add sort functionality to new welcome page (#255)

* Add todo for Sentry
2023-08-15 21:56:24 -04:00
968a67e654 Add support for system theme (#245)
* Add support for 'system' theme value

* Add ability to set theme to 'system' in settings

* Fix tsc errors for Theme
2023-08-09 13:57:07 -04:00
8ebb8b8b94 re implement selections (#243) 2023-08-09 20:49:10 +10:00
a6f92e358b Make settings auto-save (#242)
* Feature: settings auto-save as they are updated

* Refactor: get rid of temporary settings states

* Feature: add escape hotkey to settings

* Style: layout tweaks

* Feature: setting unit system updates base unit too
2023-08-08 12:39:11 -04:00
a986f76e70 Ensure exceptions in the executor are handled properly (#239)
Right now, if the executor throws a KCLError (e.g. for "variable name is not defined" errors), they aren't being caught by the .catch or the try/catch block in asyncWrap. This PR fixes it.

Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
2023-08-07 20:33:38 -05:00
7a537eea8e Jest to Vitest migration (#230)
* working without clean up

* clean up dependencies

* use test not dev

* add tests for kclErrToDiagnostic

* remove jest config

* remove unneeded @ts-ignore
2023-08-08 10:50:27 +10:00
1cba48f513 Make paneOpacity smoothly set lower when dragging (#235) 2023-08-08 07:07:28 +10:00
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
5419039fae add client lib @kittycad/lib (#214)
* add client lib

* tsc after build

* update after spec update

* remove uneeded check

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix camera drag

* fix throttle typing

* comment with link to issue

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
2023-08-02 15:41:59 +10: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
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
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
87aecf7f50 Integrate sketch mode debug (#186)
integrate sketch mode debug
2023-07-21 16:53:06 +10:00
b89faa4a28 Migrate from CRA to Vite (#170)
* 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>
2023-07-21 09:25:04 +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
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
7289965916 send mouse drag over wrtc (#139)
* send mouse drag over wrtc

* add more debugging code

* wrtc data channel working
2023-06-23 09:56:37 +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
dd3117cf03 Steal Jess's mouse move code (#137)
steal Jess's mouse move code
2023-06-21 09:15:02 +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
252ace6d69 Add common angles are permanent variables, 0, 90,180 etc (#89) 2023-04-01 21:25:00 +11:00
0868eaa0f7 Use shift instead of capslock for multiple line selection (#62)
Use shift instead of caplock for multiple line selection
2023-03-15 19:03:55 +11:00
2ac24bcd95 Horz/Vert distance constraint with modal workflow (#43)
* button style tweak

* Remove duplication constraint ast transforms

* giveSketchFnCallTag to return if line already had a tag

* remove duplication

* update tag name to referenceSegName

* Update transform shape to return key details about the transform

* add modal to hor vert distance workflow

* fix browser env stuff from breaking tests

* fmt
2023-03-07 15:45:59 +11:00
a0518c556f Stream setup (#46)
* set up stream

* clean up
2023-03-06 20:13:34 +11:00
433c29217e tidy up (#37) 2023-03-03 20:35:48 +11:00
6446601a67 Add equal-length constraints & implement UnaryExpressions (#35)
* add segLen help to lang std

* adding helpers functions to sketchConstraints

* update tokeniser tests because they were annoying me not being 100%

* compare async lexer with sync lexer instead

* add helper functions

* remove unneeded nesting

* update add ast modifier function for angledLine

* initial equal ast modification

It adds a tag to the primary line, and converts any secondary lines to angledLine, but doesn't reference the taged/primary line yet

* Update fn call with refernce to previous line using segLen

* add test for giveSketchFnCallTag

* fix excutor bug, executing call expression in array expression

* fix small issue in executor

* add CallExpressions to BinaryExpressions

* add unary Expressions

* tweaks to unaryExpression logic

* add recasting for unaryExpressions and CallExpressions in BinaryExpressions

* ensure pipe substitution info is passed down to unary expressions and others

* allow binary expressions in function argumentns

* inital setup, new way of organising sketch fn transforms

Starting with equal length

* overhaul equalLength button

* add equal length support for angledLine

* line with one variable supports signed legLength

* fix indentation when recasting long arrayExpressions in a pipeExpression

* improve modifyAst consision

* further modify ast tidy

* equalLength transfroms far angledLineOfXLength

* add transforms for line-yRelative

* add equal constraint for angledLineOfYLength

* quick test fix

* add equal length constrain transforms for lineTo

* add equal length constraints for angledLineToX

* add equalLength constraints for angledLineToY

* test tidy

* setup new vertical-horizontal constraints

* Add equal Length constraints for vertical/horizontal lines

* migrate old tests, and refactor callback tag

* tweaks and refactor horzVert component

* fix leg len with small negative leg length
2023-03-02 21:19:11 +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
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
487d61b862 add memory dump panel (#20) 2023-02-03 10:04:16 +11:00
96720023db clean up panels a little (#18) 2023-02-02 20:41:28 +11:00