Commit Graph

1649 Commits

Author SHA1 Message Date
Paweł Grabarz
7e47a65b72
Color edges according to source node. (#11810)
Fixes #11536

<img width="238" alt="image" src="https://github.com/user-attachments/assets/e253b188-a6ce-468f-864c-9e814a8a2584">

Also fixed incorrect edge offset when dragging an target-connected edge.

<img width="140" alt="image" src="https://github.com/user-attachments/assets/d75ac860-c614-4f40-9cbc-b955e94f5a58">
(cursor painted in, because it wasn't captured by the screenshot 😅)

# Important Notes
Split away edge layout code away from the component to separate file. That code is likely to be significantly changed soon, but no significant modifications were made right now.
2024-12-09 15:29:35 +00:00
Kaz Wesley
a666ef0abe
Highlight missing required arguments (#11803)
Highlight names of absent required arguments.

<img width="947" alt="Captura de ecrã 2024-12-06, às 09 10 11" src="https://github.com/user-attachments/assets/aaf8afcc-3998-4685-9e99-81a123f920b7">

(UI demo; implementation only applies the effect to same arguments that cause a "Provide a value" error)

Fixes #11631.
2024-12-09 14:19:50 +00:00
Kaz Wesley
7b4d46e72e
Recognize Markdown link title syntax (#11791)
Recognize Markdown link title syntax. We don't use the title content because we display the 'Ctrl-Click to follow link...' message, but this PR hides the title when displaying the link in rendered view.
2024-12-06 17:22:10 +00:00
Kaz Wesley
1347ee05ab
CodeEditor: Indent with tab (#11790)
In the code editor, Tab indents the current line and Shift+Tab unindents.

Suggested by @JaroslavTulach. Fixes #11070.
2024-12-06 17:14:24 +00:00
Kaz Wesley
640d66294e
Paste HTML as Markdown in documentation editor (#11773)
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).
2024-12-06 17:00:24 +00:00
Adam Obuchowicz
6aa4c9f35e
Visualization selector arrow is now more visible (#11800)
Fixes #11632

![image](https://github.com/user-attachments/assets/86b6fc6a-6ecc-41f1-9351-18c1b511776c)
2024-12-06 15:52:30 +00:00
Kaz Wesley
6d72a75f5e
Documentation link interactions (#11753)
* 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
2024-12-06 07:01:40 -08:00
Kaz Wesley
0d7427a404
Fix performance deterioration after many external or code-editor edits. (#11789)
Fix performance issue reported by @JaroslavTulach on Discord.

- Fix accumulation of unreferenced AST objects when reconciling module content with `syncToCode`.
- Add a unit test checking that `syncToCode` does not allocate unneeded objects in the module.

Fixes #10768.
2024-12-06 14:52:50 +00:00
Adam Obuchowicz
c410311b15
Add import field to metadata to satisfy older versions (#11797)
Fixes #11742

I was [wrong](https://github.com/enso-org/enso/issues/11742#issuecomment-2514109015) - not the _new_ fields make metadata broken for older versions, but removing an _old_ field.

This PR bring it back, which solves the issue - for a while.
2024-12-06 14:47:02 +00:00
Adam Obuchowicz
c284bcb854
Update persisted idmap when metadata changes (#11761)
Fixes #11729

The issue was quite rare indeed: it happened only when somehow nodes had idmap and metadata cleared from the file, and then only metadata change was applied.

In this case, because there was no idMap change, idMapToPerstist was also empty; metadata were stored with proper ids, but those ids weren't assigned to any span.
2024-12-06 11:49:30 +00:00
Kaz Wesley
63d70da15f
Component menu button opens single-component menu (#11786)
- Clicking a component's menu button makes the component the sole selection
- When a component becomes the sole selection due to a user interaction, it is raised to the top

Fixes #11767.
2024-12-05 20:30:53 +00:00
Paweł Grabarz
be1b706d0a
Function definition editor widget (#11655)
Fixes #11406

Also refactored the right panel state into its own store, so it is less coupled with the graph editor.

<img width="439" alt="image" src="https://github.com/user-attachments/assets/73e6bb92-235f-497d-9cff-126dc4110f8b">

The function definition widget tree displays the icon, name and all arguments. The name is editable, everything else right now is just read-only. The icons next to the arguments are just placeholders intended to be replaced with a "drag handle" icon.

Also fixed issues with missing rounded corners on the ag-grid widget.
<img width="263" alt="image" src="https://github.com/user-attachments/assets/cb61f62a-755c-4865-ba6c-ab9130167713">
2024-12-05 18:03:48 +00:00
Kaz Wesley
88fdfb452a
Context menu improvements (#11755)
Context menu improvements:

- Activate component context menu only for clicks on component widget area (fixes #11745).
- In a table-editor widget, if AG Grid opens a context menu, don't open the component menu.
- Enable the AG Grid context menu on OS X.
2024-12-05 15:23:45 +00:00
somebody1234
8eddcff262
Revert to network (graph) icon for GUI editor tabs (#11759)
Revert icon to the original icon for GUI editor tabs

# Important Notes
None
2024-12-05 11:02:20 +00:00
Sergei Garin
984aeb9671
Revert sorting order (#11756)
* Revert  sorting order

* Address issues/ remove the optimistic updates

* Add more tests

* Fix tests
2024-12-05 13:11:56 +03:00
somebody1234
497884aa62
Disable opening projects in the browser (#11760)
- Close https://github.com/enso-org/cloud-v2/issues/1612
- Disable opening projects on cloud.enso.org.
- This is because this functionality is currently not ready

# Important Notes
None
2024-12-05 08:28:41 +00:00
Paweł Grabarz
cc0b020e1e
Fix rounded corners and improve styling on grid visualization (#11771)
Fixes #11648

Also modified styling of ag-grid to be consistent in both widget and visualization, as well as to fit more into the overall Enso design.

<img width="1139" alt="image" src="https://github.com/user-attachments/assets/7e69f211-22c5-42fd-8f6e-5e2017aaa15a">
2024-12-04 23:22:32 +00:00
Kaz Wesley
06f7f038fb
Fix persistence of output component metadata (#11769)
Fixes #11727.
2024-12-04 22:06:30 +00:00
Kaz Wesley
cb499e2b69
Fix visualization toolbar dropdown layering (#11768)
Fixes #11647.
2024-12-04 18:18:26 +00:00
marthasharkey
48a87cefb8
check for long negavtive numbers not just positive (#11750) 2024-12-03 17:56:56 +00:00
Adam Obuchowicz
7a3f34d3de
Fix reconnecting after hibernation on Windows (#11739)
Fixes #11716

The previoud implementation of restoring execution context assumed, that any synchronization in progress on connection close will fail - but actually if the synchronization just waited for executionContext/create, it might be successfull and effective after reconnecting.

Also, show "Language Server connection lost" when the actual language server connection is lost, and dismiss the message on reconnect.

# Important Notes
The hibernation still does not work properly - connection to Project Manager is not restored.
2024-12-03 16:08:16 +00:00
Ilya Bogdanov
4d2e44c878
Table.input for pasting tabular data (#11695)
Closes #11350

- Copy/pasting tabular data now creates `Table.input` nodes.
- Column names are always copied when you work inside Enso (excluding cases when you paste some cells into an existing table)
- When working with external apps, column names are copied only if `Copy with headers` is selected.

https://github.com/user-attachments/assets/a1233483-ee4a-47e4-84a1-64dd0b1505ef

Roundtrip with Google Spreadsheets (shows non-trivial TSV data that includes quotes and newlines):

https://github.com/user-attachments/assets/4ac662a2-809f-423a-9e47-628f46f92835
2024-12-03 15:22:15 +00:00
marthasharkey
78c2068063
Filter drilldown for mixed column (#11694) 2024-12-03 15:06:23 +00:00
Adam Obuchowicz
48c3c7fffb
Quickfix Graph Editor styles (#11746)
A @jdunkerley 's propsal of fixing issue [#11728](https://github.com/enso-org/enso/issues/11728)

![image](https://github.com/user-attachments/assets/74da5807-7bac-4c18-a86a-c068cc19632f)
2024-12-03 14:36:31 +00:00
Sergei Garin
caeaf413b5
Do not send the generated name to the Backend (#11735)
This PR removes sending the pre-generated name to the remote backend. We don't have full control over this and can't guarantee the uniqness of the name purely client-side.

Closes: https://github.com/enso-org/cloud-v2/issues/1600

For the local backend we still generate the name though.
2024-12-03 14:27:10 +00:00
Adam Obuchowicz
d53b85b89a
Fix drop-down menu (#11744)
Fixes #11741

The styles of floating-ui were not applied, because any style is [not applied to a slot in general](https://stackoverflow.com/questions/47317479/styling-vue-slot).
2024-12-03 14:02:56 +00:00
Ilya Bogdanov
ce1df4ebcd
Extend output port and remove selection halo (#11715)
Closes #11507

- Output port area extended twice
- Selection halo is removed (but most of the code is still there – I understood we don’t want to remove everything before testing)

https://github.com/user-attachments/assets/4c6d7837-362e-4309-aa9b-5c0679d600e9
2024-12-03 13:54:02 +00:00
Sergei Garin
a6d040ecf5
Fix referesh Interval (#11732)
This PR fixes issue when refetch didn't happen because the session either already expired or very close to expire

This PR fixes the reset interval when it's less that 5 mins or already expired

Based on https://github.com/enso-org/enso/pull/11725

Closes: https://github.com/enso-org/cloud-v2/issues/1603
2024-12-03 13:06:15 +00:00
Sergei Garin
16765455c2
Reset expanded directories list on category change (#11725)
Partially closes: cloud-v2/1592

Closes: https://github.com/enso-org/cloud-v2/issues/1606

This PR also adds needed configuration for unit tests and adjust it to run using vscode vite extension
2024-12-02 15:44:39 +00:00
Sergei Garin
979e0e361c
Fix copy and paste on local backend (#11701)
* Fix copy and paste on local backend

* Remove sorting order by modified date
2024-12-02 12:52:49 +03:00
Kaz Wesley
0b6b1f0954
Context menu, copy button, multi-component actions (#11690)
Context menu, copy button, multi-component actions

https://github.com/user-attachments/assets/14243102-3848-43fc-82bb-a48648536985

- The 'More' menu can now be opened under the mouse, through the context menu action (right click/control-click on Mac/menu button on keyboard).
- Add copy-components button to menu.
- The menu can now be opened while multiple components are selected; if the clicked component was among the selected components, the selection will be preserved. Some menu actions--currently *copy* and *delete*, apply to all selected components. These actions will change their displayed labels when multiple components are selected. If a single-component action is executed, the component it was applied to will become the sole selection.

Fixes #11633, #11634
2024-11-29 19:52:22 +00:00
Adam Obuchowicz
99a91a1011
Add missing headerName (#11719)
Fixes #11718
2024-11-29 17:09:11 +00:00
Sergei Garin
1476c47fa9
Tiny fixes in animations (#11706)
This PR improves the behavior of `useMeasure`: it used to ignore measuring the initial bounds if it's disabled by default. Now the behavior is fixed.

Also this PR removes the scrollbar appearing while resizing.
2024-11-29 11:13:37 +00:00
Sergei Garin
0c7e79cccf
Fix resize animations in Dialog (#11643)
This PR fixes the Resize animations in Dialog component:

1. Removes resize for initial mount / fullscreen dialogs
2. Fixes measuring the content size
3. Fixes bugs in `useMeasure` hook
4. Adds memoization for Text and Loader components (because of react-compiler and because this components accept only primitive values)
2024-11-28 19:15:34 +00:00
Adam Obuchowicz
6d9699c841
Bump AGGrid version (#11684)
* 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>
2024-11-28 14:40:29 +00:00
Adam Obuchowicz
fe299b2b3b
Tiny look improvements (#11666)
Part of https://github.com/enso-org/enso/issues/11510

1. Default values are italic
![image](https://github.com/user-attachments/assets/509a9d32-4263-4563-aad9-e7a9ee7bc039)

2. The Text widget actually displays default values as placeholders (before it was a normal text).
![image](https://github.com/user-attachments/assets/73c32317-ac15-4f1d-8824-7cc445ae47ce)

3. No more "grab" cursor over node's icon.
![image](https://github.com/user-attachments/assets/49939283-891e-4fc4-93bc-7d0c4ed7b295)
2024-11-28 13:48:19 +00:00
somebody1234
27a4bdc6b8
Fix local settings button not switching settings tab (#11677)
- Make sure both settings tab and page are changed when the button next to the "Local" category is clicked
- Hide "save" and "cancel" button in settings sections if the user can't edit any of the inputs
- Disable all dragging out of "trash" category (specifically, "trash" to "cloud" category)

# Important Notes
None
2024-11-28 10:36:19 +00:00
Sergei Garin
88ba6fa8b8
Dashboard Issues (#11685)
Closes: https://github.com/enso-org/cloud-v2/issues/1592
2024-11-27 21:20:36 +00:00
Adam Obuchowicz
736134e491
Add traces to integration tests + suppress one flaky assertion. (#11595)
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".
2024-11-27 14:09:59 +00:00
Sergei Garin
b0863e9ca4
FIx interval for Cloud project when opening (#11676) 2024-11-27 17:04:48 +03:00
marthasharkey
008a7fb85e
Add date support for filter drilldown (#11626)
![filter-drilldown-date](https://github.com/user-attachments/assets/9574a172-95af-41c6-aef1-a586ee6cda98)
![filter-drilldown-time](https://github.com/user-attachments/assets/9fd5c3f0-0594-4d9c-8c00-c9616ae997be)

Date Time using Date_Time.parse
![date-drilldown-date-time-1](https://github.com/user-attachments/assets/9960cdba-8f13-4f72-9c11-b681ae63e988)
![date-drilldown-date-time-2](https://github.com/user-attachments/assets/caaeb53d-8d2e-4332-aaa4-3d3e210a0893)
2024-11-27 12:30:59 +00:00
Kaz Wesley
9ddd8417b2
Fix output edges; add unit and integration testing. (#11637)
Fix output edges; add unit and integration testing for output and input edges.

Fixes #11635.
2024-11-26 17:37:57 +00:00
Kaz Wesley
190029996c
Fix teleporter crash and integration tests (#11656)
Fix failing integration tests:
- Fix a Vue Teleporter crash that became reachable when the dropdown arrow is displayed more often (#11620).
- Fix a new drag-and-drop test that didn't work in CI.
- Update mock data for multi-type expression updates (https://github.com/enso-org/enso/pull/11583).

# Important Notes
- The new `ConditionalTeleport` component should be used for any `Teleport` that uses the `disabled` prop and has a `to` that isn't always a valid teleportation target.
2024-11-26 09:22:41 +00:00
marthasharkey
582a9aaa3d
Drive data quality metrics from enso code (#11638)
If a data quality metric is added to the array sent in the table viz json for a table/column the metric will be added to the columns tooltip without the need for any frontend/ts changes.

This doesn't change anything for the users but here is a screenshot to show the same functionality:
![dqm-enso-driven](https://github.com/user-attachments/assets/7bf83d35-0d63-49ac-8d70-1f86dbedc169)
2024-11-25 23:01:09 +00:00
Ilya Bogdanov
b5f93f065e
Implement partially transparent visualizations (#11582)
Closes #11534

- Visualizations are partially transparent by default
- The initial z-order is undetermined at the project load
- Node is moved on top of other if it is dragged (before it only happened if it was **selected**, which is not the same)
- Changed rendering for edges slightly, to avoid visible edge ends underneath visualization. The implementation of additional offsets is rather naive, but it works.

https://github.com/user-attachments/assets/fba44816-eed9-471d-83a7-8fe6e5892477
2024-11-25 13:28:37 +00:00
Dmitry Bushev
2b9ed57a95
Deliver full intersection type of a value to the IDE (#11583)
close #11481

Changelog:
- update: handle `MultiTypeValue` results in the execution instrument
- update: language server protocol supports multi-type values
- update: GUI uses only the first type of a multi-type value when

# Important Notes
GUI uses only the first type of the intersection. See the difference between `Integer&Text` and `Text&Integer`:

https://github.com/user-attachments/assets/29efc89b-c223-4043-8dff-9cdae1987f0c
2024-11-22 16:41:31 +00:00
Sergei Garin
789eab8893
Reduce pw tests timeouts (#11629)
This PR sets back the timeouts value to 25 secs from 60 secs we had
2024-11-22 16:07:34 +00:00
Kaz Wesley
a2e87d37a9
Look and feel: Lists and dropdowns (#11620)
https://github.com/user-attachments/assets/d8c039e6-670c-4ff5-9d71-c07ee6114570

Lists:
- Drag handles are icons.
- List controls are shown only when component is sole selection.
- Each item has delete button.
- Integration tests cover dragging, adding, removing.

https://github.com/user-attachments/assets/58054cb2-22bc-4279-850c-0bc4929fc246

Dropdowns:
- Arrows are shown when hovered or component is sole selection.
- Arrows change opacity when hovered.

Implements #11533.
2024-11-22 14:55:23 +00:00
Sergei Garin
8891051475
Fix Visuals of The Selector Component (#11628)
This PR fixes a bug when Selector component has wrong visuals when selected

Also, this PR fixes visual inconsistencies and bugs in this component.
2024-11-22 14:03:41 +00:00
Kaz Wesley
d611939132
New alias analysis API (#11621)
Higher level API will be compatible with a future implementation that doesn't depend on `RawAst` (see: #10753).
2024-11-21 23:42:20 +00:00