Commit Graph

561 Commits

Author SHA1 Message Date
Adam Obuchowicz
8ee54a586c Add traces to integration tests 2024-11-21 15:25:03 +01:00
somebody1234
8c2e2af5f7
Fix React Compiler lints + improve performance (#11450) 2024-11-21 13:49:30 +00:00
Ilya Bogdanov
80ae5823dd
Table.input instead of Table.new (#11612) 2024-11-21 12:19:04 +00:00
Ilya Bogdanov
6b758a0938
Fix auto-scrolling and increase permitted dropdown width (#11608)
I think the date format dropdown is absurdly wide, but we discussed it yesterday. Auto-scrolling is fixed, so it would work with wider inputs.

<img width="766" alt="image" src="https://github.com/user-attachments/assets/2d230e39-68bb-4ed3-81db-2458385c8b44">
2024-11-21 11:26:50 +00:00
Sergei Garin
8e9e7650a3
Add storybook support (#11522) 2024-11-21 10:52:20 +00:00
Ilya Bogdanov
b166336022
Component menu improvements (#11592)
Closes #11431

<img width="283" alt="Screenshot 2024-11-19 at 5 29 22 PM" src="https://github.com/user-attachments/assets/f46fb5a2-7668-4bc7-9cb4-fbde26417b79">

# Important Notes
- I changed readable names for mouse buttons. Now they are `Click`, `Right click`, `Middle click` instead of `Mouse Left`, `MouseRight`, `Mouse Middle`. I would like to go with `LMB`, `RMB`, etc. but I understand it can be confusing. @AdRiley if you have some specific names in mind let me know.
2024-11-21 09:40:12 +00:00
somebody1234
0e51ce63f8
"Save" and "Cancel" buttons for settings sections (#11290) 2024-11-21 08:26:42 +00:00
marthasharkey
76ad3475c8
fix filter node drilldown for number columns (#11572) 2024-11-21 00:02:36 +00:00
somebody1234
2fd29a5825
Make sure "new label" button is always visible even when labels panel has scrollbar (#11586)
- Move "new label" button outside of scroll container so that it is always visible

# Important Notes
None
2024-11-20 21:59:13 +00:00
somebody1234
96b21f2b97
Fix dialog entry animations and size (#11565)
- Stop resizing when `Dialog`s first render
- Fix `Dialog type="fullscreen"`s being smaller than before
- Check the "Discover" button in the top left to see a fullscreen modal.

# Important Notes
None
2024-11-20 21:47:11 +00:00
somebody1234
59493c94cb
Fix keyboard shortcuts settings display (#11467)
- Add border to keyboard shortcuts to make them more distinct from each other
- Move scrollbar to table so the header becomes sticky

# Important Notes
None
2024-11-20 20:43:49 +00:00
somebody1234
f0a04b4e52
Wrap asset creation in a Promise (#11396)
- Close https://github.com/enso-org/cloud-v2/issues/1560
- Switch from "event"s to async functions so that new asset creation can be awaited

# Important Notes
None
2024-11-20 16:44:11 +00:00
somebody1234
d8330c9bc5
Use proxied auth endpoint for Cognito (#11387)
- Close https://github.com/enso-org/cloud-v2/issues/1552
- Switch to proxied endpoint for Cognito to enforce account lockout rate limits

# Important Notes
None
2024-11-20 15:54:48 +00:00
somebody1234
c72cef305d
Fix Datalink inputs (#11376)
* Stop validating optional Data Link fields

* Fix incorrect default value in Datalink input

* Stop `Autocomplete` fields from opening automatically without
`autoFocus`

* Increase E2E test timeout

* Fix E2E test race condition?

* Fix error message for empty string input

* Highlight active Datalink input

* Show description when Datalink input is invalid

* Fix Datalink input unfocusing when errors appear

* Fix `enso://` path error text

* Fix hover display of autocomplete items

* Move `Autocomplete` tooltip above Dropdown container

* Update Enso path validation

* Update test file and Enso File datalink regex

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Bypassing failing tests.
2024-11-20 11:02:46 +00:00
Kaz Wesley
70253e73ed
Render tables in documentation. (#11564)
* Render tables in documentation.

Also:
- Separate parser for our flavor of Markdown from the CodeMirror integration;
  move the parser into ydoc-shared and use for Markdown line-wrapping.
- Introduce our own version of yCollab extension; initially just the upstream
  version translated to Typescript and our code style.
- Refactor CodeEditor.

* CHANGELOG, prettier

* Apply @farmaazon review.

* Fix

* Lint

* Cleanup

* Integration tests for GraphNodeComment

Also a little refactoring in preparation for new implementation.

* Workaround stuck CI

* Revert "Workaround stuck CI"

This reverts commit 74313842ba.

* Fix merge

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2024-11-20 10:40:24 +00:00
Ilya Bogdanov
d71781f9bd
New node colors (#11578)
* Show halo only on hover

* Fix numeric input widget. (#11561)

* Invert node colors, make edited widgets more prominent

---------

Co-authored-by: Paweł Grabarz <frizi09@gmail.com>

Skipping failing test in GUI packaging.
Nothing changes in Microsoft space.
2024-11-20 10:38:10 +00:00
Ilya Bogdanov
21cbf25067
Edges always end with arrows (#11590)
Bypassing the failing test.
2024-11-20 09:54:20 +00:00
Adam Obuchowicz
af39e0ec50
Pasting image in Documentation Editor (#11547)
Fixes #10059

https://github.com/user-attachments/assets/a528e26a-b388-4a2a-9bf4-3ccc734373f6

# Important Notes
* I put the logic for project's files management to a single composable "projectFiles"
2024-11-19 15:47:46 +00:00
Ilya Bogdanov
c52b8f9455
Disable EditContext API (#11554)
Fixes #11239

https://github.com/user-attachments/assets/eb57fb34-11f4-489b-9849-c93c7aa5e870
2024-11-19 11:36:59 +00:00
Sergei Garin
58512e701e
Show docs on Dashboard (#11391)
Closes: https://github.com/enso-org/cloud-v2/issues/1445

PR is more or less ready for feedback,CR, and QA.

# Read before looking into:

**Known issues:**
- [x] Need to adjust timings for the animations (they're a bit out of sync).
- [x] After the latest rebase, the side panel might expand while clicking on the sidebar toggle.
- [ ] Images no longer display. 🤦
- [x] Need to restore the functionality around spotlighting a component


Demo:

https://github.com/user-attachments/assets/8cec9ec0-4753-482e-8637-f3857b4396a5
2024-11-15 12:12:55 +00:00
Sergei Garin
9dc4e9b090
Redesign versions checker dialog (#11540)
* fix versions checker dialog

* Adress the issues

* Fixes

* Fix integration tests

* fix prettier

* Fix dialog

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2024-11-15 10:49:30 +03:00
marthasharkey
5b79f6729c
Table viz column header tooltip extended to add data quality stats (#11520) 2024-11-14 10:46:24 +00:00
somebody1234
af0b95b1d9
Animated resizing for dialogs (#11466)
- Cherry-picked out of #10827
- Add `framer-motion` to dialog to animate between dialog sizes.
- Currently visible when switching between types in the Datalink modal.
- Will also be visible when switching between types in the Schedule modal.

# Important Notes
None
2024-11-13 20:12:21 +00:00
Ilya Bogdanov
3d38b7174f
Add Write button to component menu (#11523)
Closes #10486

https://github.com/user-attachments/assets/df492946-0c54-481e-8499-992b3ae9e35d
2024-11-13 19:45:32 +00:00
Ilya Bogdanov
dd95eb2cf5
Reconnect visualizations when switching their types (#11494)
Fixes #11426

Now, visualizations should no longer receive stale data props cached from previous visualizations opened on the same node. We do so by changing the visualization ID (reattaching the visualization).

This does not protect from unhandled exceptions happening inside visualizations, though, so a bigger fix will be provided separately.

https://github.com/user-attachments/assets/821b3c11-818e-403b-812d-b3768399b3a4
2024-11-13 10:56:34 +00:00
Ilya Bogdanov
75733c55aa
Accept input when clicking off the component (#11541)
Closes #11360

https://github.com/user-attachments/assets/f030ddc0-e084-43de-8ed7-fcac21a740a5
2024-11-13 00:38:42 +00:00
Paweł Grabarz
a83297b7db
Drop git dependency on enso-bot repository (#11539) 2024-11-12 18:25:19 +00:00
marthasharkey
f2037ee9d0
Add data quality indicators to table Viz (#11307) 2024-11-08 16:59:09 +00:00
marthasharkey
8b5cd9bbfc
Extend Selection Menu to allow text selection (#11352) 2024-11-08 16:36:45 +00:00
Kaz Wesley
867c77d5cc
New markdown editor (#11469)
Implements #11240.

https://github.com/user-attachments/assets/4d2f8021-3e0f-4d39-95df-bcd72bf7545b

# Important Notes
- Fix a Yjs document corruption bug caused by `DeepReadonly` being replaced by a stub; introduce a `DeepReadonly` implementation without Vue dependency.
- Fix right panel sizing when code editor is open.
- Fix right panel slide-in animation.
- `Ast.Function` renamed to `Ast.FunctionDef`.
2024-11-06 16:54:32 +00:00
Paweł Grabarz
9703cb1dd0
Align esbuild versions across packages (#11459)
Part of #11458

Should get rid of the "magical" CI failure: https://github.com/enso-org/enso/actions/runs/11576387008/job/32225209090#step:7:254
2024-11-05 23:43:27 +00:00
Sergei Garin
7ffd5b5ee6
Fix TOS modal (#11473) 2024-11-05 22:36:38 +00:00
Sergei Garin
0f8f6da273
Add transitions support for zustand 'useStore' (#11474) 2024-11-05 17:08:08 +00:00
Sergei Garin
0e434cd318
Replace special characters while uploading a file (#11356)
Closes: https://github.com/enso-org/cloud-v2/issues/1489

This PR replaces all special characters with `:`
2024-11-05 15:36:28 +00:00
Kaz Wesley
42fc2af5cd
Fix tests after semantic merge conflict (#11488)
Force merging to repair CI.
2024-11-04 22:24:14 +00:00
Kaz Wesley
2b3bd2cc90
Move documentation into documentable types (#11441)
Move documentation into documentable types (implements #11302).

# Important Notes
GUI:
- Distinguish expression and statement
- `Ast.Ast` is still present, as the base class for AST objects. Most references to `Ast.Ast` are now references to `Ast.Expression`. Operations on blocks use `Ast.Statement`.
- `Ast.parse` has been replaced with: `Ast.parseExpression`, `Ast.parseStatement`, and `Ast.parseBlock`
- `syncToCode` is internally context-aware; it parses the provided code appropriately depending on whether its AST is an expression, a statement, or the top level of a module.
- Remove `wrappingExpression` / `innerExpression` APIs: Wrapper types have been eliminated; modifier lines are now fields inside parent types.
- Simplify AST printing:
- Fully implemented autospacing in `concreteChildren` implementations; the type returned by `concreteChildren` now ensures that spacing has been fully resolved.
- Eliminate `printBlock` / `printDocs`: `concreteChildren` is now aware of indentation context, and responsible for indentation of its child lines.
- The `Pattern` type is now parameterized to identify the AST type it constructs. The `Pattern.parseExpression` function helps create a `Pattern<Expression>`.
- Refactor `performCollape` for testability.
- e2e tests: Improve table viz test: It still doesn't pass on my Mac, but these changes are necessary if not sufficient.

Compiler (TreeToIr):
- An expression in statement context is now found in an `ExpressionStatement` wrapper.
- Documentation for a `Function` is now found inside the function node.
- Deduplicate some polyglot-function logic.
2024-11-04 15:33:53 +00:00
Ilya Bogdanov
d3beac3a90
Consider additional self types (#11451)
Fixes #11427

Before:

https://github.com/user-attachments/assets/fc16cefd-f264-4410-bd30-1747c580da1a

After:

https://github.com/user-attachments/assets/e85b8fb3-35c4-4d18-a9a0-2aeb69201b6f
2024-11-04 15:08:59 +00:00
Adam Obuchowicz
2bbd909705
Implement the limit of 256 cells in the Table Editor (#11448)
Fixes #10864

[Screencast From 2024-10-30 13-45-48.webm](https://github.com/user-attachments/assets/9ed2384a-de85-4059-a0fe-c0a45b2fe07c)
2024-11-04 09:10:59 +00:00
Sergei Garin
7487a3b4d2
Addtional tiny performance follow-up (#11460)
This PR mostly improve performance of the assets table:
1. It removes calc of the `clipPath` on scroll which triggers position recalculation in `Navigator2D`
2. Adds caching for parsing a category (we do this a lot across components but we have only a few categories) and runtime validatation has relatively large perf penalty
3. Adds dom-based virtualization for rows (we still need to add proper react based virtualization though)
2024-11-01 13:03:21 +00:00
Sergei Garin
fdab2233ac
Add React compiler (#11405)
This PR adds React Compiler to the dashboard
Read more about the compiler: https://github.com/reactwg/react-compiler/discussions/5

- This PR expects that these PRs are merged:
- #11380
- #11382

## Reasoning

On our codebase adding React compiler led to significant perf improvements across the whole app. But the most impact was on the AssetsTable (see video attachment). Adding React compiler reduced the rerender scope of the AssetsTable from the whole table to the certain elements that changed, and made the table much more usable.

Without compiler (page freezed):

https://github.com/user-attachments/assets/16505b40-123b-4153-9c22-880f5dfa211c


Compiler solves the issue:

https://github.com/user-attachments/assets/6a298876-f28d-4b3d-8247-50b0c7ecb7f8

This PR requires thorough testing of the dashboard for potential bugs introduced by the compiler
2024-10-31 12:10:22 +00:00
somebody1234
c6e87c2a17
Optimize asset table rendering (#11382)
- Depends on:
- #11380
- Some optimizations for re-rendering assets table:
- Omit `visibilities` from `state` in favor of passing each `AssetRow`'s `visibility` directly to the row. This minimizes spurious `state` updates.
- Pass `id` and `parentId` to `AssetRow` instead of the entire object. This ensures that re-fetches do not force a re-render of the `AssetRow` - we are no longer passing a reference to the object, so we are now comparing by string comparison (which is almost always stable).

# Important Notes
None
2024-10-31 10:36:10 +00:00
Paweł Grabarz
950a93ddeb
Display error message when viewed graph doesn't exist. (#11452)
Fixes #11211

<img width="258" alt="image" src="https://github.com/user-attachments/assets/7adea4f6-774a-49ac-8c86-5e785df2acff">

When the "go back" button is clicked, the user is sent back to the `main` function graph. The breadcrumbs are also present on that view and can be used for navigation.

Current design of the error state is improvised, likely to be changed once we have some design guidance about it.
2024-10-31 07:48:48 +00:00
Ilya Bogdanov
0d731adeff
Add undo/redo buttons to the top bar (#11433)
Closes #11222

https://github.com/user-attachments/assets/66f8dfd1-a7c4-497a-8ff6-a22f56dbb1dd
2024-10-30 17:01:35 +00:00
Paweł Grabarz
0cf1c021ce
Add enter node button to the dropdown menu (#11447)
Fixes #11179

<img width="223" alt="image" src="https://github.com/user-attachments/assets/9b5ba054-717f-4124-98df-3d076bc73b32">
2024-10-30 16:55:12 +00:00
Ilya Bogdanov
6566b2da2f
Fix help panel (#11421)
Fixes #11392

The issue was caused by somewhat cumbersome logic of updating/overriding displayed suggestion. I’m not sure if it even was working correctly at any time.


https://github.com/user-attachments/assets/51e6fcd4-2198-40a2-86e7-8fcfa8b8b8d5
2024-10-30 14:14:28 +00:00
Paweł Grabarz
29f1f0d4e1
Add IDE version to window title. (#11446)
Fixes #10966

![image](https://github.com/user-attachments/assets/a46e38e9-1ff3-4eb4-9a88-901d684dc205)
2024-10-30 13:48:59 +00:00
Adam Obuchowicz
39c44e7adb
Table Input Widget: Size persistence (#11435)
Fixes #10861

Every widget may set metadata on its AST. Because once widget picker will be implemented a single AST node may have many possible widgets, their settings are kept in a map keyed by their name/key.
2024-10-30 09:34:58 +00:00
Sergei Garin
5bf064f97f
Open enso devtools on call of toggleDevtools() (#11423)
This PR changes the behavior of `toggleDevtools()` function and shows `ensoDevtools` with `tanstack` devtools
2024-10-28 15:53:40 +00:00
Sergei Garin
12267c6d98
Batch refetches for different listDirectory queries (#11380)
This PR moves invalidation of the `listDirectory` queries into a separate `useQuery` to sync mutliple invalidations into a single one
2024-10-28 14:44:23 +00:00
Sergei Garin
fae18c0a04
Add eslint-react-compiler (#11404)
* Add React compiler eslint rules and fix issues across reusable components

* Fix compiler errors

* Remove fail-on-warnings for eslint

* Set max-warnings to 41 to match the amount of warnings introduced by react-compiler

* Add comment for lint task
2024-10-28 15:58:41 +03:00