For some reason, two is now using the last item in the svg group for
centering, which was one of the eyes. The changes the order so that the
body is not the last item and centering works again.
Dialogs were off of the screen due to the overlays being bigger than
the view port. This is fixed by adding some style to limit the size.
Also multi-step dialogs are hard-coded to have min-width of 800px in
blueprints.js, so we need to override this on smaller screens.
Fixes: https://github.com/pybricks/support/issues/1271
* build(deps): bump pyodide from 0.23.4 to 0.24.1
Bumps [pyodide](https://github.com/pyodide/pyodide) from 0.23.4 to 0.24.1.
- [Release notes](https://github.com/pyodide/pyodide/releases)
- [Commits](https://github.com/pyodide/pyodide/compare/0.23.4...0.24.1)
---
updated-dependencies:
- dependency-name: pyodide
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* updates for pyodide 0.24.0
- fix breaking file rename
- replace use of deprecated type
* use @pyodide/webpack-plugin
Pyodide 0.24 made some breaking changes that broke the way we were
integrating it with webpack manually. We can use the official webpack
plugin instead.
* webpack: add hack for pyodide
This works around "Critical dependency: the request of a dependency is an expression"
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Lechner <david@pybricks.com>
* build(deps): bump @types/react from 18.2.21 to 18.2.37
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.21 to 18.2.37.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
---
updated-dependencies:
- dependency-name: "@types/react"
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* yarn: update react-splitter-layout
* fix type errors for react-splitter-layout
Upgrading to `@types/react` > 18.2.21 causes the following errors:
```
src/app/App.tsx:202:22 - error TS2786: 'SplitterLayout' cannot be used as a JSX component.
Its instance type 'SplitterLayout' is not a valid JSX element.
The types returned by 'render()' are incompatible between these types.
Type 'import("/home/david/work/pybricks/pybricks-code/node_modules/@types/react-dom/node_modules/@types/react/ts5.0/index").ReactNode' is not assignable to type 'React.ReactNode'.
Type 'ReactElement<any, string | JSXElementConstructor<any>>' is not assignable to type 'ReactNode'.
Property 'children' is missing in type 'ReactElement<any, string | JSXElementConstructor<any>>' but required in type 'ReactPortal'.
202 <SplitterLayout
~~~~~~~~~~~~~~
node_modules/@types/react/ts5.0/index.d.ts:175:9
175 children: ReactNode;
~~~~~~~~
'children' is declared here.
src/app/App.tsx:212:26 - error TS2786: 'SplitterLayout' cannot be used as a JSX component.
Its instance type 'SplitterLayout' is not a valid JSX element.
212 <SplitterLayout
~~~~~~~~~~~~~~
Found 2 errors in the same file, starting at: src/app/App.tsx:202
```
https://arethetypeswrong.github.io/?p=react-splitter-layout%404.0.0
provided the hint that we need `export =` instead of `export default`.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Lechner <david@pybricks.com>
On iOS `getAvailability()` returns false if the app does not have permission to use the bluetooth adapter (which is what the spec says it should do if permission has not been granted), so clarify the reason for it not being available.
Also add a sneaky reference to WebBLE as a supported browser on iOS.
This avoids trying to perform two DFU operations on the same device
at one time. Flashing is so fast, this seems the better option than
trying to support flashing more than one device at a time.
Fixes: https://github.com/pybricks/support/issues/1146
This was overlooked when we updated to React 18. This fixes console
error about using React 17 behavior.
StrictMode had to be disabled because it broke the editor.
Since updating to Blueprintjs 5.x we can get aliasing artifacts on the
cursor due to bad rendering of box-shadow. This overrides it with
border instead.
https://github.com/xtermjs/xterm.js/issues/4580
Since we share the same editor instance with multiple models, we need
to ensure undo stack consistency when changing the model, otherwise
we can lose some history, e.g. if a not active model is modified.
When we import/replace a file that is open in an editor, instead of
modifying the file in storage, we need to modify the file in the editor.
This allows the modification to be pushed on the undo stack so that
the user can undo the change in case it wrote over any of their recent
changes.
Issue: https://github.com/pybricks/support/issues/975
After updating to @types/node 18.x, we started getting an error when
mocking FileWithHandle. For some reason, the type hints don't allow
for partial implementation anymore.
Hack around the problem by just casting the partial implementation.
The adjusted color made it look like the toast was disabled. Having
buttons the same color as the toast is a bit weird but consistent
with the Blueprintjs style for toasts.
This adds a new flag from Pybricks Profile v1.3.0 for documentation
purposes. We currently don't support native modules in Pybricks Code
so we aren't using this for now.
To avoid the Linux feature of pasting on middle click, we need to
consume the mouse up event in the browser on middle click instead of
mouse down.
This also sets the `selectionClipboard` editor option to false which
should disable the feature altogether in the monaco editor but the
setting seems to be broken in the browser[1].
[1]: https://github.com/microsoft/vscode/issues/181050
Fixes: https://github.com/pybricks/support/issues/1046
Since we now have periodic status messages, we don't need to do anything
to get into a known state.
This caused unexpected behavior when connecting to a hub that is already
connected in a second window.
Code depends on always receiving a didWrite/didFailToWrite, however
when a hub disconnected, these tasks were being cancelled. Spawning
protects them from cancellation.
Don't flash progress for short actions like starting repl and stopping
user program. If the hub becomes disconnected, these actions can take
a long time before failing and in that case, we do want to show the
progress indicator.
The Loaded state is not used anywhere else, so we can replace it with
the Unknown state. Then we can make all other command-in-progress
states (start repl/stop user program) the same as download and run.
When the command completes, the hub is in an unknown state until a
status message is received. The Disconnected states overrides all other
states.
- Add check for repl start command success/fail.
- Show error message on fail.
- Rename start repl action.
- Add new did start/did fail to start repl actions.
- Change terminal saga to use did start repl action to focus terminal.
- Add more tests.
WebBluetooth generally uses DomException with name NetworkError to mean
that Bluetooth is disconnected, so we can use that to provide a helpful
error message.