Convert HTML clipboard data to Markdown when pasting into documentation editor:
https://github.com/user-attachments/assets/e87ba419-7465-48a7-bb08-101a76012a72
# Important Notes
- The best HTML-to-Markdown converter available seems to be Lexical. It's a large dependency, but this implementation lazily loads it only when rich pasting functionality is needed. In the future, we could cut it down a lot; we only need (parts of) the node definitions, the transformers, and (parts of) the core.
- Not all formatting in the example webpage is supported yet; some issues added to #11772.
- Also: Fix undo/redo in documentation editor (prevent graph editor from also handling).
* Ctrl+click to follow link; clicking link opens a popup. Fixes#11692.
- Ctrl+click to follow link (and add hover text)
- When editing, if the cursor is in a link a popup allows following the link.
- Text filters (e.g. recognizing links) now apply to text dragged into the
editor, or pasted with the context menu, besides pasting with the keyboard
(uses new feature from updated CM).
- Simplify CM editors by moving setup and reactivity patterns into shared
helpers.
- Add integration tests for link interactions in component comments and documentation panel.
- Fix code editor tooltips (fixes#11740).
- All lines containing selected text show markup
* Bump AGGrid version + some fixes
* Make styles in AgGridTableView global
* CHANGELOG
* Remove debug logs
* Fix integration test
* Fix unit test
---------
Co-authored-by: James Dunkerley <jdunkerley@users.noreply.github.com>
Fixes#11604
Most issues were caused by a problem with Project List flooding the network with its requests - this was fixed on develop.
But one assertion was flaky - it assumed we will see the "real" run result on `write` node, but sometimes it is immediately overwritten by dry run.
But the most important part of this PR is adding traces to Electron packages - it's should be much easier now to debug E2E test failures.
Also renamed the previously misnamed "E2E tests" to "[GUI] integration tests".
* 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>
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
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
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`.
* 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
- ⚠️ Follow up to #11219. MUST NOT be merged in before that PR.
- Changes:
- Add optional overlay to `Popover`s
- Add and use `useAssetPassiveListener` everywhere to get reactive updates to asset state even outside Asset Panel
- `setItem` has been removed in favor of simply waiting for invalidations
- Migrate more `Modal`s to `Popover`s
- Migrate more inputs to `Form`s
- Periodically refetch Datalink in Asset Panel
- Show optimistic state for asset description (adding this because it is trivial to add)
- Remove usages of `get*` as mutations throughout the entire codebase - replace with `fetchQuery`
- Fixes most of rest of https://github.com/enso-org/cloud-v2/issues/1529
- (1) ℹ️ fixed in #11219
- (2) ❌ backend issue
- (3) ❌ out of scope
- (4) ❌ backend issue
- (5) ❌ out of scope
- (6) ❌ [wontfix]? i think this is intentional, it's not so much slow scrolling and moreso snapped scrolling
- (7) ❌ backend issue
- (8) ℹ️ fixed in #11126
- (9) ❌ out of scope (potentially requires a way to trigger a tooltip on a disabled button)
- (10) ❌ (will check later) Make sure you are not able to open a project opened by another user: cmd + click is not always working.
- (11) Drag from team space to user space should copy asset
- (12) ❌ (will check later) Drag from user space to team should move (and swap ownership)
- (13) ℹ️ fixed in #11219
- (14) ℹ️ fixed somewhere (?)
- (15) ℹ️ fixed somewhere (?)
- (16) Show correct (and up-to-date) description for projects
- (17) ℹ️ fixed in #11219
- (18) ℹ️ fixed in #11219
- Fix https://github.com/enso-org/cloud-v2/issues/1535
- Completely remove optimistic UI for "copy asset"
- Fix https://github.com/enso-org/cloud-v2/issues/1541
- Make selection brush work again
- Unintentionally regressed in 51733ee876 (diff-f3e29bffcda342ab6a9dbafc58dde88ce26638eaecda1f17f40ca7e319c90cc8L89)
# Important Notes
None
Align `Assignment`/`Function` distinction in AST with compiler's implemented semantics:
- The ambiguous case `funcOrVar = expression` is now parsed as a `Function` when in a `Type` definition or in the top level of a module. I.e. it is an `Assignment` in contexts where the RHS is evaluated immediately when the binding is evaluated, and a `Function` in contexts where the RHS is evaluated each time the bound name is evaluated.
- `Assignment` statements now may only occur in function bodies.
Correcting this distinction lays the groundwork for #11302.
Other changes:
- Fixed incorrect source code locations for negative literals and negated expressions.
# Important Notes
New APIs:
- The parser now exposes a `parse_block` entry point, which allows parsing input lines as if in the body of a function. The previous entry point has been renamed to `parse_module`.
The fonts were added (by mistake) anyway, but they are rarely changed, and the scripts add unnecessary complexity.
This also fixes some post- #11287 problems.
Fixes#10668Fixes#8484
Summary of changes:
* `gui2` and `dashboard` are merged to `gui` directory. Various configs were merged (package.json, playwrigth, TS...). The src and e2e directories are split to `dashboard` and `project-view` for now.
* E2E tests run two servers on different ports. The tests are organized in projects. This is also to be changed soon, as we plan to [use better mocking in GUI/ProjectView](#9726)
* ESlint configs were merged to central `eslint.config.mjs`, and that file was moved to repository root. We kept the dashboard lints, but they can be relaxed. The dashboard code was changed to meet GUI lints.
* Also, the versions of linter plugins were bumped, and code fixed.
* The ide-desktop/client no longer has `dashboard` dependency - the only type used there was moved to common package.
* `common` package moved to `app`.