Commit Graph

526 Commits

Author SHA1 Message Date
James Dunkerley
200da1ad50
Remove old GUI1 ICONs and mapping function (#10086)
* Remove old GUI1 ICONs and mapping:

```
  dataframe_clean: 'table_clean',
  dataframe_map_row: 'map_row',
  dataframe_map_column: 'column_add',
  dataframes_join: 'join2-1',
  dataframes_union: 'union',
  sigma: 'transform4',
  io: 'in_out',
  date_and_time: 'time',
  spatial: 'location',
  predictive: 'predict',
  machine_learning: 'robot',
  split_text: 'split',
```

* Linter.

* Linter (2).

* Sort out some Returns:

* Sort out some ? Example
2024-05-27 11:17:21 +01:00
Kaz Wesley
ca53b69dfb
Heading levels (#10078)
Larger h1 to enable three levels of headings.

<img width="508" alt="Screenshot 2024-05-24 at 07 38 31" src="https://github.com/enso-org/enso/assets/1047859/53e77040-30c2-4ed0-bfb5-81d4a703a565">

Fixes #10051.

# Important Notes
Refactored Lexical styling.
2024-05-24 21:27:18 +00:00
Kaz Wesley
ac5fbbcd17
Format bar support APIs (#10063)
Introduce APIs that will be used by the Markdown formatting bar UI; use new APIs to simplify `ExtendedMenu`.

# Important Notes
New APIs:
- `DropdownMenu`: Encapsulates the dropdown pattern, i.e. a toggle button that opens a floating pane.
- `MenuButton`: A low-level control that adds button behavior to any element; all other buttons are now implemented using it.

Changes:
- `ToggleButton` and `SvgButton` now accept an optional `label` parameter.
2024-05-24 16:34:57 +00:00
marthasharkey
a383819439
Right align numbers and format numbers if one is greater than 10000 (#10038)
- right aligns numbers with 'cellClass' method
- adds check of all data in column to decide whether to comma separate numbers
2024-05-24 15:28:35 +00:00
Kaz Wesley
b45e9e9c54
Backspace and delete delete nodes (#10075) 2024-05-24 10:57:45 -04:00
AdRiley
204fb3e9cb
Add new icons (#10070)
![image](https://github.com/enso-org/enso/assets/1720119/b57e7a2c-3d59-404c-bc15-ab69829f648d)

Icons for showing types in the table Viz.

Text, Datetime, boolean (check), mixed
2024-05-24 14:12:02 +00:00
Kaz Wesley
001e8caf67
Selection formatting toolbar (#10027)
* Selection formatting toolbar

* Icons

* Review

* Fix bold+italic rendering

* Preparing for top bar

* Refactor
2024-05-24 10:01:53 -04:00
Adam Obuchowicz
0f6b29c88f
Make background clicks less flaky (#10069)
We had some false test failures: https://github.com/enso-org/enso/actions/runs/9178969067/job/25240028635

The problem was the connection, which, while not being completely broken, still wasn't updated to proper position, thus taking clicks meant for the background. Now, I use proper locator click, so the test should wait for click spot being clear.

Also added locator-based clicks where I felt it's proper.
2024-05-24 13:28:51 +00:00
Adam Obuchowicz
8ac0ee41c6
Allow picking non-existing files in write component (#10047)
Fixes #9984

Added a flag to `File_Browse` widget configuration specifying if we require an existing file. Also, the FileBrowserWidget will match against all "Writable_File", also displaying Save dialog.
2024-05-24 09:21:32 +00:00
Adam Obuchowicz
a0a6f8c302
Tooltips (#10039)
First solution for #9828, just using HTML `title` attribute.
2024-05-23 07:52:39 +00:00
Kaz Wesley
dd5fa61d90
Add copy button to component messages. (#10023)
Add button to component messages that copies the message to the system clipboard.

https://github.com/enso-org/enso/assets/1047859/ab645ecd-78d6-4602-b210-9f0041f4329b

Closes #9878.
2024-05-22 16:38:21 +00:00
Adam Obuchowicz
8ba12356fe
Rename function widget (#9959)
Fixes #9790

Adds a new widget type which allows renaming the called function - if we are able to do it.
2024-05-22 15:07:39 +00:00
AdRiley
f000cf6999
Add copy2 icon (#10036)
![image](https://github.com/enso-org/enso/assets/1720119/90b0883f-cc0d-411e-8d3c-f62458243982)
2024-05-22 15:07:36 +00:00
Kaz Wesley
fcfc081851
Use group icon for components created by grouping. (#10020)
Use `group` icon for components created by grouping.

https://github.com/enso-org/enso/assets/1047859/50a0dbb6-d36e-4fcb-9f39-b6493b8cca86

See: #9831.

# Important Notes
- This PR always sets the icon, but it is not always shown due to missing updates from the backend; this issue is currently being investigated.
2024-05-22 14:38:21 +00:00
Sergei Garin
91a2afb098
Fix broken login flow (#9965)
* kill the electron process instead of restarting

limit the port range with single one

Make ENSO_CLOUD_REDIRECT optional, use window.location.origin by default

* Revert server changes

* limit the amount of ports in server
2024-05-22 16:56:42 +03:00
AdRiley
202a05011b
Added bold-italic-strikethrough (#10030) 2024-05-22 10:56:37 +01:00
Kaz Wesley
1633965173
CB self icons (#10006)
In the component browser input field, render the source node as an icon instead of its identifier; an edge connects the icon to the source node's output port.

https://github.com/enso-org/enso/assets/1047859/a36a8a55-6717-4887-a72c-2b2eafde4260

Closes #9210.

# Important Notes
- Fix node selection being visible (but glitched) while editing node.
- Fix bug in CB positioning when editing a node at non-default zoom.
- Fix disconnected edge hover allowing self-connection.
- Consolidate some color logic in `nodeColors`.
2024-05-21 18:34:30 +00:00
Kaz Wesley
9601543de3
Fix adding nodes in collapsed functions (#10009)
Insert new nodes before the block's terminal expression-statement, if present.

Fixes #9963.

# Important Notes
- Fix a bug that caused any empty lines at the beginning of a module not to be printed.
- Remove a redundant data-property from `GraphNode`.
2024-05-21 17:38:51 +00:00
Kaz Wesley
e98ac01015
Prevent touchpad back gesture (#10007)
Disable back gesture, which sometimes triggers while panning with the touchpad
on OS X.
2024-05-21 11:45:50 -04:00
Kaz Wesley
aae93e6ee6
List support in documentation pane (#10008) 2024-05-21 11:41:56 -04:00
Adam Obuchowicz
65f28c322a
Icon highlight and SvgButton (#10002)
Fixes #9904

Refactored our button: the common logic of "button being an SVG icon" moved to new `SvgButton` component. Simplified and unified CSS. Added hover highlight.

![image](https://github.com/enso-org/enso/assets/3919101/40aa628c-4181-487c-a0f7-b49e06d274b8)
2024-05-20 12:59:03 +00:00
Adam Obuchowicz
c3976f727f
Fix test (#10001)
Merging as not changing GraalVM stuff.
2024-05-20 12:10:05 +01:00
Adam Obuchowicz
e13950ed0d
Display grab cursor 2 (#9982)
Fixes #9906, but the grab hand appears only when actually moving nodes.

Also changed cursor on some widgets.
2024-05-20 07:24:45 +00:00
Ilya Bogdanov
ff21cc4e8f
Implement new node naming (#9964)
- Closes #9829
- Name is selected from the type of the first suggestion applied in the component browser
- If no suggestion is selected, we try to infer the name from the AST
- If both fail, we revert to the `operator` name
- Adding unique number suffixes in sequential order, reusing them as soon as they become available.

https://github.com/enso-org/enso/assets/6566674/4e6bd1e5-7b11-4e04-b49f-315675d34a0f

# Important Notes
- Search through available identifiers is linear, which potentially can cause problems in huge projects.
- I made changes to the `ReactiveIndex` implementation to fix the behavior of `identifierUsed()` and `allIdentifiers()` which were not working correctly.
2024-05-17 18:06:43 +00:00
Ilya Bogdanov
1034596e5b
Fix text widget rendering (#9981)
Fixes https://github.com/enso-org/enso/issues/9688

<img width="685" alt="Screenshot 2024-05-17 at 1 24 19 PM" src="https://github.com/enso-org/enso/assets/6566674/9f30b607-7776-4acb-98b3-75c697a1b58e">
2024-05-17 16:54:45 +00:00
Ilya Bogdanov
6e9b4ec9fb
Call showAll on opening projects (#9974)
Fixes #9902


https://github.com/enso-org/enso/assets/6566674/2eb2b0dd-610a-48e7-aeb6-6c9c423746db
2024-05-17 13:32:09 +00:00
Kaz Wesley
d39451dd4d
Use Lexical for method docs and node comments (#9956)
Use a Lexical-based markdown editor in the right dock; use a Lexical-based plain text editor for node comments.
2024-05-16 14:38:03 +00:00
Kaz Wesley
8823a2aaa0
Track live selection (#9924)
* Track live selection
2024-05-16 09:24:17 -04:00
Kaz Wesley
0571000c74
Color ring updates component colors continuously (#9939)
Commit color ring selections to nodes live.

- To prevent opening the picker from immediately changing the color, gradient is rotated so that the initially-selected color is under the mouse when the picker is opened.
- Escape key reverts selection to initial color(s).

Closes #9936
2024-05-15 16:14:09 +00:00
James Dunkerley
c437721ba5
Show ALIAS matches as <name> (<alias>) (#9955)
In order to help with discovery of the functions we want to have more ALIASes (such as select_columns) on associated functions. To make it clearer what each does reversing the order helps.

![image](https://github.com/enso-org/enso/assets/4699705/55fac1fa-1307-4544-b150-dc184ddc27aa)
2024-05-14 20:17:08 +00:00
Ilya Bogdanov
557d585216
Cleanup placement unit tests (#9943)
While fixing prop test in #9916, I was surprised to see a lot of basically unused checks in unit tests. With the new API, the need for them is gone.
2024-05-14 15:58:25 +00:00
Ilya Bogdanov
cc8e5ae2d1
Place dropdown arrow under autoscoped identifier (#9945)
Place arrows below autoscoped identifier, also fixes issue with CSS.
2024-05-14 13:45:04 +00:00
Adam Obuchowicz
9faa1823ec
Fix visualization resizing (#9946)
* Fixes #9942
* Restores updating visualization size in metadata. Also, the height is also stored.
2024-05-14 11:49:37 +00:00
Ilya Bogdanov
52b8ed4d3a
Consider autoscoped name when looking up dynamic config (#9916)
Fixes #9635

@JaroslavTulach with this change you reproduction scenario works as it should.


https://github.com/enso-org/enso/assets/6566674/89ecaae4-c5e5-437a-8ff2-3e77ccb0a67c
2024-05-14 11:01:19 +00:00
Kaz Wesley
4af33f077b
Documentation editor (#9910)
#### New documentation panel:
- Shows documentation of currently-entered method.
- Open/close with Ctrl+D or the extended menu.
- Renders markdown; supports WYSIWYG editing.
- Formatting can be added by typing the same markdown special characters that will appear in the source code, e.g.:
- `# Heading`
- `## Subheading`
- `*emphasis*`
- Panel left edge can be dragged to resize similarly to visualization container.

https://github.com/enso-org/enso/assets/1047859/6feb5d23-1525-48f7-933e-c9371312decf

#### Node comments are now markdown:
![image](https://github.com/enso-org/enso/assets/1047859/c5df13fe-0290-4f1d-abb2-b2f42df274d3)

#### Top bar extended menu improvements:
- Now closes after any menu action except +/- buttons, and on defocus/Esc.
- Editor/doc-panel buttons now colored to indicate whether editor/panel is open.

https://github.com/enso-org/enso/assets/1047859/345af322-c1a8-4717-8ffc-a5c919494fed

Closes #9786.

# Important Notes
New APIs:
- `DocumentationEditor` component: Lazily-loads and instantiates the implementation component (`MilkdownEditor`).
- `AstDocumentation` component: Connects a `DocumentationEditor` to the documentation of an `Ast` node.
- `ResizeHandles` component: Supports reuse of the resize handles used by the visualization container.
- `graphStore.undoManager`: Facade for the Y.UndoManager in the project store.
2024-05-10 17:23:16 +00:00
Kaz Wesley
a14a95c057
Only Escape cancels edits (#9913) 2024-05-10 16:13:59 +00:00
Ilya Bogdanov
4376a5a851
Improve dropdown arrows placement (#9909)
Closes #9428

Hilariously tricky thing to implement. Besides placing arrows below constructor names, we also position them under values in argument placeholders.

We also added a new feature to the widget tree: the `allowAsLeaf` property. See provided documentation.

https://github.com/enso-org/enso/assets/6566674/e3ba96b3-fff8-4553-ac94-866436aea013
2024-05-10 14:38:38 +00:00
Sergei Garin
9f4b374485
Implement Subscribe flow (#9776) 2024-05-10 12:28:49 +00:00
Adam Obuchowicz
147c1cf99f
Refactor drag handlers (#9874)
Fixes #9780

Before all drag handlers set pointer capture on their `currentTarget`, preventing click events on the actual click target, and to prevent that we stopped `pointerdown` (and more) on every "panel-like" element. Now it's ok to stop only actually handled events.

Navigator and selection handlers just ignore `pointerdown` events not targeted to actual Graph Editor background.

Node dragging is more complex, as we want to allow dragging the node by grabbing just any of its part (including widgets). So the handler takes pointer capture from widget only after a significant move (long enough in time _or_ space). **This allows user to drag nodes by many interactive widgets (before they stopped `pointerdown` disabling node drag).

[Screencast from 2024-05-08 10-45-33.webm](https://github.com/enso-org/enso/assets/3919101/d521b7a4-96c5-4e2c-a8a6-84388a18d041)
2024-05-09 12:48:58 +00:00
Kaz Wesley
414a2ff568
Fix color-picker single-color-graph case (#9892)
- Increase minimum gradient points
- Update property tests to match browser interpretation of increasing-hue interpolation, and catch bugs of this type.
2024-05-08 09:13:54 -07:00
AdRiley
f77cb0c3ba
Add random icon (#9877)
Add new random icon

![image](https://github.com/enso-org/enso/assets/1720119/f7904801-2077-448e-9086-9f6e5156fbed)
2024-05-08 07:41:39 +00:00
Kaz Wesley
01a2ca458b
Enso color picker (#9825)
New color picker, designed for Enso:

https://github.com/enso-org/enso/assets/1047859/c3eff168-6807-4825-b17b-053e3cd8b04c

- Colors never clash: OKLCH lightness and chroma are fixed.
- Easily match colors: Colors of other nodes in the current method are expanded to slices of the color wheel.

Closes #9613.
2024-05-06 17:37:13 +00:00
Kaz Wesley
36dcbf1a07
Output port changes (#9842)
* Output port changes

- Enlarge output port hover area; fix hover area extending above node
- Show ports when selection is shown
- Adjust port stroke-width and offset to match Figma
- Change cursor when output port is hovered
2024-05-06 09:36:43 -07:00
Kaz Wesley
15730afa01
Fix z-indexes (#9848)
Prevent visualizations (such as table) and visualization container (including toolbar) from drawing above widgets (such as dropdown).

![image](https://github.com/enso-org/enso/assets/1047859/ec3d67d8-b25c-491b-ad4c-3d42f82cbdc7)
Dropdown now covers visualization toolbars

![image](https://github.com/enso-org/enso/assets/1047859/4b870bf0-71d3-43e5-98d2-382cbecd8ba0)
Dropdown now covers table column resize handle

Fixes #9783
2024-05-06 13:40:04 +00:00
Adam Obuchowicz
6f802cca15
Enhanced visualization resizing (#9837)
Fixes #9702

* Added a resizer on the left side
* The resizers were moved a bit, and their position is now configurable by CSS vars: --visualization-resize-handle-inside and --visualization-resize-handle-outside of `:root` (see screencast below)

[Screencast from 2024-05-02 11-51-17.webm](https://github.com/enso-org/enso/assets/3919101/d58a0970-6994-4ac6-a55e-d77bccc6dac5)

# Important Notes
* The way I decide how to update the node position when resizing left side is a bit hacky, but I cannot think about any other way of handling minimum node's width. That unfortunately makes the right side tremble a bit when resizing the left side.
* I went against the task description regarding the resizers sizes: put 3px inside instead of 16px, because the latter made using scrollbars impossible.
2024-05-06 10:43:08 +00:00
somebody1234
25d1007a9e
Allow downloading projects on GUI dev server (#9851)
- Fixes #9482
- Add URL rewriting logic to `npm run dev` in `app/gui2/` so that "download" actions work

# Important Notes
- ⚠️ `config.yaml` HAS BEEN REMOVED in favor of `config.json`.
- Most of the keys have been removed as they were only used by GUI1.
- This is a REQUIRED change, because the vite dev server does not seem to like importing yaml files when running `vite.config.ts`.
2024-05-03 13:37:26 +00:00
Adam Obuchowicz
0186ed1961
Fix table viz context menu (#9820)
Fixes #9700

[Screencast from 2024-04-30 15-09-17.webm](https://github.com/enso-org/enso/assets/3919101/a11ae875-7e2f-4c84-8d91-33aa1ca8bdbd)

# Important Notes
During implementation, I discovered a bug that the context menu wasn't hidden by click at background (or node) - all because of preventDefault, as it turned out.
2024-05-02 11:17:13 +00:00
Dmitry Bushev
5995a00958
Run ydoc-server with GraalVM (#9528)
part of #7954

# Important Notes
The workflow is:
- `$ npm install` -- just in case
- `$ npm --workspace=enso-gui2 run build-ydoc-server-polyglot` -- build the `ydocServer.js` bundle
- `$ sbt ydoc-server/assembly` -- build the ydoc server jar
- `env POLYGLOT_YDOC_SERVER=true npm --workspace=enso-gui2 run dev` -- run the dev server with the polyglot ydoc server. Providing `POLYGLOT_YDOC_SERVER_DEBUG=true` env variable enables the chrome debugger
2024-05-02 06:28:57 +00:00
Adam Obuchowicz
7db7fa039c
Add remove nodes icon to selection menu (#9827)
![image](https://github.com/enso-org/enso/assets/3919101/29c09e74-47db-4bd5-8770-4a79b23a7cf1)
2024-05-02 05:51:54 +00:00
Shixian Sheng
c340727735
Fixed LICENSE Link. Added missing LICENSE file (#9804)
Added License to the app/gui2 folder and 2 links for it in README
2024-05-01 19:15:52 +02:00
Kaz Wesley
6655d5fbb2
Move node type to visualization container (#9784) 2024-04-30 08:55:43 -04:00
Adam Obuchowicz
04a10b72e5
Dragging edges (#9788)
Fixes #9423
2024-04-29 14:16:02 +00:00
Adam Obuchowicz
210f0482a4
Set of improvements: selection "committed" state and "add new compnent" button hitbox fix. (#9775)
1. Did selection refactoring as follow-up of #9519. Now the circular menu visibility or node extension is altered only when selection is ended (before, node shrank once the selection started a bit less blinking).

[Screencast from 2024-04-24 10-56-05.webm](https://github.com/enso-org/enso/assets/3919101/744e7579-80dd-4d44-a545-7af812239be2)

3. Fixes #9699 I don't know why the add-node button shape was done in :before element, if it happily works by shaping the main div itself.

[Screencast from 2024-04-24 10-51-57.webm](https://github.com/enso-org/enso/assets/3919101/004aede5-ea00-4e30-9a3d-6e2574e3b755)
2024-04-29 11:31:26 +00:00
James Dunkerley
c5179309fd
Improve Table Viz handling of Numbers (#9793)
- Added support for NaN, Infinity and -Infinity in the Table viz.
- Simplified the logic so all the formatting in a single place in the Table viz.
- Sorted Number formatting for BigInt and < 10000.

![image](https://github.com/enso-org/enso/assets/4699705/1486eb7e-df87-4516-90d0-75fda1e9743d)

![image](https://github.com/enso-org/enso/assets/4699705/e55c0e6b-bd3c-4dcf-a65f-41f8516568a6)
2024-04-26 07:52:40 +00:00
Kaz Wesley
12cbd900b4
Node creation improvements (#9781) 2024-04-25 09:18:38 -04:00
Adam Obuchowicz
5807c5c112
Restore state after reconnecting (#9755)
Fixes: #8522

Execution context is refactored slightly: now we have a single `sync` function to synchronize both visualization and execution stack.

Tested hibernation on Linux: I was able to continue my work  🎉

# Important Notes
The Refinement Notes state, that the execution mode should be set before updating the stack, but actually it makes an error on startup (changing context automatically re-executes programs, what fails if there's no frame on the stack).
2024-04-25 09:02:47 +00:00
Ilya Bogdanov
717f6bb330
Display argument placeholders for autoscoped constructors (#9737)
Fixes #9635 

<img width="925" alt="Screenshot 2024-04-18 at 2 43 09 PM" src="https://github.com/enso-org/enso/assets/6566674/fbdce484-ac0b-4e30-8577-1c9dc419dffe">
2024-04-24 13:40:42 +02:00
Adam Obuchowicz
70985932b1
Selection panel (#9771)
Fixes #9519

[Screencast from 2024-04-23 12-57-01.webm](https://github.com/enso-org/enso/assets/3919101/873925db-1c9b-43e5-8144-6503c362baa0)

# Important Notes
I decided to go against our refinement notes, as in the action the blinking does not look bad, and seeing "live" how many nodes are selected may be useful.
2024-04-24 08:56:44 +00:00
Jaroslav Tulach
ff62c1e25f
Access non-self arguments when widget annotations are computed (#9410) 2024-04-24 03:58:32 +02:00
AdRiley
fa6b7f859f
Add new icons (#9756)
Restore, Clone, Group (Only Group is mine the others were already in Figma)

![image](https://github.com/enso-org/enso/assets/1720119/f74c3afa-f490-427a-b675-584077b202bb)
2024-04-20 09:48:58 +00:00
Kaz Wesley
6426478c97
Copy/paste improvements (#9734)
Copying nodes:
- Multiple nodes supported.
- Node comments and user-specified colors included.
- Google Sheets data can be pasted to produce a `Table` node, handled the same way as Excel data.

# Important Notes
- Fix E2E tests on OS X.
- Add E2E and unit tests for clipboard.
- Use the lexer to test text escaping; fix text escaping issues and inconsistencies.
2024-04-19 16:33:51 +00:00
Adam Obuchowicz
de406c69fa
Automatic reconnect with Language Server. (#9691)
Fixes #8520

If the websocket is closed not by us, we automatically try to reconnect with it, and initialize the protocol again. **Restoring state (execution contexts, attached visualizations) is not part of this PR**.

It's a part of making IDE work after hibernation (or LS crash).

# Important Notes
It required somewhat heavy refactoring:
1. I decided to use an existing implementation of reconnecting websocket. Replaced (later discovered by me) our implementation.
2. The LanguageServer class now handles both reconnecting and re-initializing - that make usage of it simpler (no more `Promise<LanguageServer>` - each method will just wait for (re)connection and initialization.
3. The stuff in `net` src's module was partially moved to shared's counterpart (with tests). Merged `exponentialBackoff` implementations, which also brought me to
4. Rewriting LS client, so it returns Result instead of throwing, what is closer our desired state, and allows us using exponentialBackoff method without any wrappers.
2024-04-19 13:39:45 +00:00
James Dunkerley
16126a0c71
Working through various issues from OKR / blog use. (#9739)
- Fixed `list_directory` so that it works with defaults and uses the `Folder_Browse`.
![image](https://github.com/enso-org/enso/assets/4699705/cf8eb187-a1fe-4eb7-a017-e7bb40e30e12)
- Adjusted types of `order_by` in `Aggregate_Column.First` and `Aggregate_Column.Last` so supports single `Sort_Column`.
- Adjusted types of `order_by` in `Aggregate_Column.First` and `Aggregate_Column.Last` so an empty Vector is valid (treated as Nothing).
- Adjusted `Count_Distinct` so if an empty set of columns then equivalent to `Count`.
- Use the multi-select widget for `columns` in `Count_Distinct`.
![image](https://github.com/enso-org/enso/assets/4699705/86e8f3c1-9cbe-4fb3-b6fd-43b937346082)
- Sort the widget for `order_by` in `First` / `Last`.
![image](https://github.com/enso-org/enso/assets/4699705/d624544c-6f4d-42ef-bb97-79b68aa60569)
- Bug fix for widgets with both tagValues and dynamic data. (Thanks @farmaazon).
- Use the multi-select for various things.
2024-04-18 21:50:20 +00:00
Ilya Bogdanov
7e345075b3
Implement special handling of subapplications when collecting MethodCallInfo (#9677)
Fixes on of the issues in #9354

Stale method call info for inner sub-application was causing additional argument placeholders on the node for certain expressions. Now it is fixed:
1. We only create function widget for the most top-level expression in the prefix application chain.
2. We reuse method call info from inner expressions, assuming it will be always correct for our purposes.

https://github.com/enso-org/enso/assets/6566674/91d2b4ba-a789-4c7b-b40c-f09ac45da7f0
2024-04-16 10:39:04 +00:00
Paweł Grabarz
0ee113a4d9
Disconnect nodes when deleted (#9659)
Fixes #9315

https://github.com/enso-org/enso/assets/919491/8551c901-4bef-4a7a-bfb6-10578f0c125a
2024-04-16 08:11:31 +00:00
Paweł Grabarz
9d2d9038c9
Fix spurious gui e2e dropdown test failures (#9697)
In GUI E2E `widgets.spec.ts`, be more specific about which tested dropdowns should be visible. Since the tested node actually receives two dropdowns, the test could fail by detecting both and expecting only one. Since we already have a very specific selector for the dropdown we are testing, use it instead of fresh global locator.
2024-04-15 16:05:14 +00:00
Ilya Bogdanov
59a9c8e59c
Fix node placement (#9696)
Fixes #9689

We should consider visualization size in all cases. `visibleArea` has multiple usages, but they all seem to benefit from the change (e.g. zoom to selected will also consider visualization sizes).

https://github.com/enso-org/enso/assets/6566674/3c9ae4a9-27f5-4736-83b5-4b3a500564e7
2024-04-15 13:18:52 +00:00
Paweł Grabarz
3b21f5579f
Fix node arguments hiding animation, clipping and dropdown styles. (#9685)
Fixes #9492

Implemented generic component for flawless size-based transitions, then used it for hiding arguments and dropdown animation. That replaced the `max-size`-based CSS animation that caused original issue. Refactored dropdown positioning to avoid further issues related to animation overflow clipping. The dropdown also got a bit of a lift to fit closer to styles in current Figma designs.

https://github.com/enso-org/enso/assets/919491/e85fd68c-b2e8-4d58-90e1-4fd7b33f1c9b
2024-04-12 13:44:13 +00:00
Kaz Wesley
b631745c1d
Interaction resumption (#9621)
Prevent interactions such as an open dropdown from being disrupted by the temporary state of absent type information occurring after an edit.

https://github.com/enso-org/enso/assets/1047859/bcc7fa02-847f-4cd0-b9fc-3186a97c5816

All widget-edit interactions that are active when a component is to be unmounted save state and are suspended. When a new component defining a `WidgetEditHandler` is instantiated, if the component is found to be equivalent to a component that was suspended, and no other interaction has been initiated in the interim, the interaction is restarted using the suspended state.

# Important Notes
- Fix a bug caused by a variable tracking an interaction's active state getting out of sync with the interaction. `WidgetEditHandler` now provides a reactive `active` property; using it is simpler and avoids this type of bug in the future.
- Fix a flickering bug that sometimes made it hard to open dropdowns by clicking the arrow.
2024-04-11 15:39:16 +00:00
Paweł Grabarz
922ac66baf
working hot reload for widget definitions (#9657)
Fixed a long-standing annoyance that widgets weren't fully hot-reloadable. Now when the widget definition (e.g. `score` function) is modified, it is hot-reloaded and new version immediately takes effect.

https://github.com/enso-org/enso/assets/919491/8e6d5a67-68ec-4353-8235-32657b32e2ec

# Important Notes
Because of how HMR API works, it needs to be passed from each widget module to the `widgetDefinition` function as an argument. When not provided, the definition will not be hot-reloadable (but the widget will still work as it used to).
2024-04-11 14:11:34 +00:00
Ilya Bogdanov
7e810feed9
Display parens in groups (#9678)
Fixes another point in #9354

Displays parens for Group AST (except top-level arguments).

<img width="630" alt="Screenshot 2024-04-11 at 3 08 01 PM" src="https://github.com/enso-org/enso/assets/6566674/8e3be87a-975b-404e-8a15-2752bd94cd4c">
2024-04-11 11:49:14 +00:00
Adam Obuchowicz
0bc7cb54eb
Change window title (#9676)
Fixes #9665

To Enso.

![image](https://github.com/enso-org/enso/assets/3919101/d5f29b9f-2509-4bd9-899a-ae5988b8089f)
2024-04-11 10:59:49 +00:00
Paweł Grabarz
4bf79776c5
Store graph viewport in client local storage (#9651)
Fixes #6250

With this change, I've also slightly refactored the graph editor component by grouping related functionality into neat block and moving already loosely coupled groups to separate files. Further work will be needed to simplify it, but it is a good first step.

https://github.com/enso-org/enso/assets/919491/fedce111-ea79-463f-a543-da3ecce28bf5
2024-04-09 12:02:11 +00:00
Sergei Garin
2c78f4eefd
Add prefixes for cloud url params (#9649)
This PR adds an ability to exclude some keys in URLSearchParams from being parsed by GUI.
2024-04-09 07:38:06 +00:00
Ilya Bogdanov
8aef2146db
Use predefined zoom levels (#9585)
Fixes one subtask of #9354

https://github.com/enso-org/enso/assets/6566674/3418d31e-2d80-48b2-ba8b-9e000b09cf14
2024-04-08 11:12:53 +00:00
Ilya Bogdanov
e174dee1bf
Fix documentation panel layout (#9615)
Fixes #9414

`.argument` class was not scoped and broke documentation panel.


<img width="439" alt="Screenshot 2024-04-03 at 3 06 43 PM" src="https://github.com/enso-org/enso/assets/6566674/fe94a668-8125-452c-b038-196e5a10657c">
2024-04-08 11:06:00 +00:00
Kaz Wesley
5f464389bc
Hide errors from input nodes (#9633)
When a node has an error/warning/panic that exactly matches one of its input nodes, hide the message until the node is interacted with, showing an icon.

https://github.com/enso-org/enso/assets/1047859/4b1b5e3d-c236-40d7-a3e7-e6ab8182ecd5

# Important Notes
- New icon is used for panics.
- Opening circular menu now shifts any message out of the way, not just warnings.
2024-04-05 18:07:32 +00:00
somebody1234
143665d944
Remove obsolete GUI arguments (#9466)
- Close #8610

# Important Notes
QA notes:
- The GUI2 warning screen should not show up - the arguments that GUI2 do not understand have been removed.
- However, it should be tested that the warnings screen should correctly work when invalid arguments really *are* passed in:
- Via URL query parameters (electron, might need to open the electron app then the browser, *or* do `location.href = ` in DevTools in Electron.)
- By editing `Editor.tsx` to inject invalid args to the big configuration object we pass to the GUI entrypoint.
2024-04-05 16:20:56 +00:00
Paweł Grabarz
9c2d25ea8d
Improve gui app disposal handling and close all network connections (#9579)
Fixes #8964

All GUI network connections are now closed after the application is unmounted.
2024-04-04 13:49:54 +00:00
Ilya Bogdanov
a474955e28
Fix dropdown item paddings (#9616)
Fixes a small issue with dropdown item alignment.

<img width="243" alt="Screenshot 2024-04-03 at 4 55 12 PM" src="https://github.com/enso-org/enso/assets/6566674/96803537-bc30-456c-b694-5fd7c70e21db">
2024-04-03 13:35:13 +00:00
Ilya Bogdanov
44097508c7
Make color override stable (#9612)
Fixes #9610

I was wondering why we need this check, now I know.
2024-04-03 13:01:36 +00:00
Ilya Bogdanov
c37fffe33d
Fix numeric input widget (#9602)
Fixes the issue with numeric input being unclickable if the WidgetSelection is present. The issue was caused by double handling of the click event both in numeric input (it opened the dropdown) and in dropdown (it closed itself).
2024-04-02 20:36:12 +00:00
Paweł Grabarz
84c8535587
Allow vector widget only on vector expressions. (#9596)
Fixes #9593

<img width="426" alt="image" src="https://github.com/enso-org/enso/assets/919491/a794a023-420d-4358-8068-252d8d136a57">
2024-04-02 13:41:58 +00:00
Ilya Bogdanov
9db264231e
Fix project edits (#9594)
Fixes the issue that prevents project edits from being committed.
2024-04-02 12:33:14 +00:00
Ilya Bogdanov
bef6f3a4f9
Color picker (#9570)
Closes #8680

The color picker is triggered by new Circular menu item or by keyboard shortcut (set to `Mod+Shift+C` for **C**olor).
The color picker affects *selected* nodes, so it works nicely both in cases when we use Circular menu on a single node a shortcut with multiple selected nodes.

Color is only changed when the user selects a new one inside the color picker, but there is no specific way to reset default color (you would have to recreate the node).

https://github.com/enso-org/enso/assets/6566674/a4497bea-f432-486d-85f8-f2772ba5694f
2024-04-02 11:27:13 +00:00
Ilya Bogdanov
084f4ee033
Fix numeric widget slider (#9578)
Fixes #9574


https://github.com/enso-org/enso/assets/6566674/ac9c381f-b62f-43cf-8ad9-a71c75c9fbc3
2024-04-01 20:16:57 +00:00
Adam Obuchowicz
2384fe851d
Fix undoing node removal (#9561)
Fixes #9314

The node deletion does not remove AST node from the module, only unpin it from its parent; so undoing does not add this node, just modify it, and thus we weren't informed about metadata change.
2024-03-29 16:31:00 +00:00
Adam Obuchowicz
207c7af136
Block FQN substitution in drop downs (#9569)
While blocked FQN substitution when creating/editing node, the drop-downs still used it, and it does not work.

This amends that + added a reference to a task where we want to fix the original issue.
2024-03-28 14:11:20 +00:00
James Dunkerley
e262801daa
Restructure Standard.Table. (#9559)
Move the types from `Standard.Table.Data` to `Standard.Table`.

Exceptions:
- `Standard.Table.Data.Report_Unmatched` => `Standard.Table.Constants`.
- `Standard.Table.Data.Join_Kind_Cross` => `Standard.Table.Internal.Join_Kind_Cross`.
Also removed constructor as an atom type.
- `Standard.Table.Extensions.Table_Ref` => `Standard.Table.Internal.Table_Ref`.
- `Standard.Table.Data.Type.Value_Type_Helpers` => `Standard.Table.Internal.Value_Type_Helpers`.
- `Standard.Table.Data.Type.Enso_Types` => `Standard.Table.Internal.Value_Type_Helpers`.
- `Standard.Table.Data.Type.Storage` => `Standard.Table.Internal.Storage`.

Changed all `Standard.Table` imports inside project to be project.
Favoured importing from `Standard.Table.Main` in `Standard.Database`.
Also fixed some linting in Enso_File.
2024-03-27 17:10:43 +00:00
somebody1234
6f7a51470d
Directory management on Local (Project Manager) backend (#9353)
- Implement https://github.com/enso-org/cloud-v2/issues/961
- Allow directory management on Local backend
- Setting a custom root directory is currently *out of scope* of this PR.
- Listing directories
- Deleting directories and files
- Adjust project-related APIs to accept parent directory path (as required by PM when not interacting with root directory)
- QoL improvements related to testing this PR
- New watch script (`npm run watch2`, `npm run watch:linux`) in `app/ide-desktop/lib/client/`) for testing IDE2 on Electron without having to build the entire app
- Adjustments to `gui2`'s `vite.config.ts` to allow React HMR when doing dev in Electron

# Important Notes
- Support for deleting files and folders uses the API introduced by #9359 - so it will not work until that PR is merged in.
- Support for uploading files uses the API specified by #9360 - so it will not work until that issue is closed.
2024-03-27 14:42:23 +00:00
Adam Obuchowicz
b422b59ed1
Fix collapsing node issues (#9545)
Fixes #9412
Fixes #9159
2024-03-27 14:00:33 +00:00
Michał Wawrzyniec Urbańczyk
05715bdedf
Inject AG Grid and Mapbox keys through the CI from the GitHub organization variables (#9544)
This PR exposes two new variables added to GitHub organization.

# Important Notes
<details>
<summary>Dev builds issue</summary>
I have doubts about this approach, as this breaks Map visualization on developer builds:

![obraz](https://github.com/enso-org/enso/assets/1548407/29aa8e40-7481-4460-bdd4-c30d3ee76b6c)

It seems that Mapbox API cannot be used without the token — [the documentation](https://docs.mapbox.com/help/getting-started/access-tokens/) suggest so, and the  https://api.mapbox.com/styles/v1/mapbox/light-v9?access_token=no-token yields quite obvious `{"message":"Not Authorized - Invalid Token"}`.

Still, the CI-produced packages have no issues.
</details>

EDIT: [We do want this behavior, as discussed internally.](https://discord.com/channels/401396655599124480/1221868987030311012/1222162657352876075)
2024-03-27 00:17:37 +00:00
Adam Obuchowicz
09a6ab7bd6
Select node on any edit (#9536)
Fixes #7478

[Screencast from 2024-03-25 15-44-50.webm](https://github.com/enso-org/enso/assets/3919101/bd5b2bbd-631f-4397-97ae-d925b9194210)
2024-03-26 13:01:51 +00:00
Paweł Grabarz
1fa1803f6c
Move imports to first script block to avoid prettier issues (#9512)
Fixes #9502
2024-03-26 10:34:25 +00:00
Paweł Grabarz
1872bb66ea
Ignore repeated key events for bound shortcuts, adjust visualization min width (#9537)
Fixes #8538 #9515

All repeated keyboard events handled through `defineShortcuts` are now ignored. For example, holding ctrl+v no longer pastes nodes repeatedly.

Also adjusted visualization min-width to 200px, since it was a trivial change.

![image](https://github.com/enso-org/enso/assets/919491/7997898f-bcee-45f2-aacb-e10a49b159d6)
2024-03-25 19:29:31 +00:00
Adam Obuchowicz
70f847f295
Fix file browser on Linux and Windows (#9538)
Fixes #9503

[The `showFileBrowser` documentation has a note](https://www.electronjs.org/docs/latest/api/dialog#dialogshowopendialogsyncbrowserwindow-options), that Linux and Windows don't support enabling picking dir and file.
2024-03-25 17:07:04 +00:00
Kaz Wesley
22a2c208c0
Multi-select (part 1) (#9516)
* Multi-select
2024-03-25 12:05:20 -04:00
Kaz Wesley
0d34126b86
New JSON visualization (#9409)
* JSON viz with projections, colors, inlining

* Ensure GraphEditor receives keyboard events for newly-selected nodes

* Consider positioned, unsized nodes when positioning
2024-03-25 12:03:18 -04:00
Adam Obuchowicz
a6fc8cb932
Reimplement AI PoC from GUI1 (#9476)
Fixes #9313

[Screencast from 2024-03-22 09-09-07.webm](https://github.com/enso-org/enso/assets/3919101/6ad86145-6882-4bde-993d-b1270f1ec06c)

# Important Notes
* This is PoC, so I didn't spend time on polishing the visuals; the design will likely change.
* I modified the shortcut handler a bit, allowing making multiple actions for same binding - the action's handler will be called in unspecified order, until one of them handle the event (i.e. not return false).
* To make it working regardless of imports, I needed to export AI module in Standard.Visualization. Moreover, needed to remove build_ai_prompt for Any, because it was causing issues - expect a bug report soon.
2024-03-25 09:14:41 +00:00
Michał Wawrzyniec Urbańczyk
90bbee352e
Bump Rust Toolchain (#9517)
This PR updates the Rust toolchain to recent nightly.

Most of the changes are related to fixing newly added warnings and adjusting the feature flags. Also the formatter changed its behavior slightly, causing some whitespace changes.

Other points:
* Changed debug level of the `buildscript` profile to `lint-tables-only` — this should improve the build times and space usage somewhat.
* Moved lint configuration to the worksppace `Cargo.toml` definition. Adjusted the formatter appropriately.
* Removed auto-generated IntelliJ run configurations, as they are not useful anymore.
* Added a few trivial stdlib nightly functions that were removed to our codebase.
* Bumped many dependencies but still not all:
* `clap` bump encountered https://github.com/clap-rs/clap/issues/5407 — for now the warnings were silenced by the lint config.
* `octocrab` — our forked diverged to far with the original, needs more refactoring.
* `derivative` — is unmaintained and has no updated version, despite introducing warnings in the generated code. There is no direct replacement.
2024-03-24 23:45:55 +00:00
Kaz Wesley
ef9f3cc11e
Fix uninterpolated-text newline-insertion case (#9513)
Fixes #9494.
2024-03-21 14:20:53 +00:00
Adam Obuchowicz
a02cfa4906
Workaround for failing test (#9498)
One of our tests had transient failures, which were very tricky to track - it seems that not every `mouse.move` action actually emits 'pointerleave' action, on which we rely when hiding node menu.

I played with different configurations, and this one looks quite reliable (100 runs of tests in a row passed, at least). But I still don't understand what is happening there, and the investigation will be in scope of #9478
2024-03-20 13:36:33 +00:00
Adam Obuchowicz
84301bd7b6
Fix Conditional ports tests. (#9495)
Fixes #9459

Sometimes, especially on prod builds, the click handler quickly created CB before playwright made its actionability checks.
2024-03-20 11:00:22 +00:00
Kaz Wesley
a5b66aaf94
Hide scrollbars until track hovered (#9461)
Hide scrollbars until track area is hovered
- Hovering track area now shows a track
- Clicking in track moves center of scrollbar to position

(Small change requested by @wdanilo)
2024-03-19 15:45:51 +00:00
Kaz Wesley
e1893b65af
Self-argument access chain ports are conditional (#9439)
Ports for `PropertyAccess` AST nodes that (transitively) contain a `WidgetSelfArgument` are not targets for a disconnected edge, unless the mod key is held.

https://github.com/enso-org/enso/assets/1047859/68ac1953-c8b1-4e51-8c4c-211595e0c034

(Video shows with and without mod key)
2024-03-18 03:24:22 +00:00
Kaz Wesley
47d9e73ead
Fix CB interaction with record-mode override and add tests (#9386)
Fixes #7976.
2024-03-17 17:44:39 +00:00
Kaz Wesley
85ddbc5f24
Remove-warnings button (#9391)
Add remove-warnings button to Warnings Visualization. Part of #9226.

https://github.com/enso-org/enso/assets/1047859/1b00a62e-8f3b-4697-af10-34a4b93ca8ff
2024-03-17 16:29:56 +00:00
Kaz Wesley
babf4eba03
Inhibit clipping when dropdown is opened (#9434)
Fixes #9379.

# Important Notes
- The existence-registry could be implemented with a counter, but a set is more debuggable and the performance cost is negligible.
2024-03-17 15:54:30 +00:00
Adam Obuchowicz
bd92567a93
Make use of new icons from figma (#9447)
Updates the icon set from figma and uses some of them in particular places (the zoom controls are just replaced).

![image](https://github.com/enso-org/enso/assets/3919101/ba8f0f81-d7fd-4b36-990a-fa0b9a1f75e7)

On this screen minus button is hovered:

![image](https://github.com/enso-org/enso/assets/3919101/0681ee62-9575-476c-8961-c0822b08486e)
2024-03-15 15:18:23 +00:00
Adam Obuchowicz
aecabfe0de
Drop-down filtering (#9399)
Fixes #9058 - the filtering so far is a bit aggressive, but I tune it up in next PR(s).

[Screencast from 2024-03-13 15-20-17.webm](https://github.com/enso-org/enso/assets/3919101/112ce65a-a8c6-4818-b8b8-9f493caf9c81)

Added new special `WidgetEditHandler,` allowing handling "multi-widget" interactions needed for drop down filtering.

# Important Notes
* Now when clicking on argument name, the edit is accepted (as normal "outside" click), and then the dropdown is opened again (due to handling click event). I didn't figure out how to handle this case properly, left something least confusing.
2024-03-15 15:15:43 +00:00
Ilya Bogdanov
c4cb7b9305
Store additional metainformation for defineKeybinds (#9427)
Closes #9411

Based on #9365 

<img width="261" alt="image" src="https://github.com/enso-org/enso/assets/6566674/2b419fde-9f66-455e-804b-1690edfb2883">
2024-03-15 15:48:50 +01:00
Ilya Bogdanov
b33079e68b
Code editor open-close improvements (#9365)
Closes #9209

https://github.com/enso-org/enso/assets/6566674/43984978-004b-4ed2-a55e-de9302dc1fdd

- Added new menu item `Code editor` which toggles visibility of, well, code editor
- Changed the menu implementation:
- Fixed platform-dependent “More” icon. It was displayed awfully on Mac.
- Added simple opacity animation.
- Reduced width slightly.
- Refactored the layout, removed unused classes and CSS…
- Added animated background when hovering “Show all” icon
- Added close button to the upper left corner of the code editor (upper right is occupied by resize controls)
2024-03-14 17:05:29 +00:00
Paweł Grabarz
1b59744660
cleanup GUI entrypoints and mocking (#9403)
This is a set of split off changes made as a side effect while working on engine reconnection handling.

Cleaned up GUI e2e setup, unified as much of the entrypoint code as possible. Currently the only real difference between the real and testing entrypoint is mocking of all network calls and not loading through dashboard.

I've managed to completely get rid of `MockApp`, and remove tricky mocking of pinia stores.
2024-03-14 17:05:26 +00:00
Ilya Bogdanov
2ad6cdd1f6
Fix e2e tests on Mac (#9401)
Some e2e tests (about leaving nodes) were always failing on my machine because of the race condition in the tests. The issue was caused by edges positions lagging behind for a few frames when switching Enso functions, which caused incorrect handling of clicks in the test code.

Now we wait for edges being initialized *and* node sizes being updated.

Thanks to @farmaazon for helping with debugging.
2024-03-14 13:43:44 +00:00
Ilya Bogdanov
720a72ccb2
Implement file browser widget (#9302)
Closes #8681

https://github.com/enso-org/enso/assets/6566674/46a6de40-cbd0-427e-942d-b58ad4a9fd33
2024-03-14 12:27:15 +00:00
Michał Wawrzyniec Urbańczyk
d9ca6cf023
Build Script Post-Gui1 Cleanup (#9376)
This PR:
* removes much of logic related to building and packaging the gui1;
* made `./run gui` and `./run ide` work with the new gui;
* rename numerous references to the "gui2" or "new gui" in favor of simply "gui", same for "ide".
2024-03-12 20:25:51 +01:00
Kaz Wesley
be4f04f7ff
Comment UI refinement (#9271)
* Comment UI refinement

- Eliminate edit mode:
  - Beginning edit does not change appearance
  - Edit text as rendered, not as formatted in code
- Enter finishes edit
  - Shift+Enter inserts a newline
- Click begins edit regardless of Ctrl
2024-03-12 14:13:36 -04:00
Kaz Wesley
64e29f8761
Fix dropdown clipping (#9384)
Fixes #9379.
2024-03-12 16:52:57 +00:00
Kaz Wesley
c61e397658
Scrollbars (#9310)
Scrollbars
2024-03-12 12:44:29 -04:00
Kaz Wesley
9d988e90da
Show circular menu on icon-hover (#9373)
* Show menu on hover
2024-03-12 11:00:21 -04:00
Kaz Wesley
39976be267
More type-checking for concrete children (#9375)
Introduce a concrete NodeChild subtype; use it to statically check for the kind of bug that #9357 fixed.
2024-03-12 13:44:00 +00:00
Adam Obuchowicz
a01aeab3a4
Fix AST spacing (#9366)
Fixes #9357

The main issue was the spread operator using at the wrong place in functions overriding spacing of nodes. The bug, to be visible, required copying AST node before, because during copying `whitespace` field was explicitly set to undefined (in opposite to being unset), what in turns make spread overriding the value set by those functions.

# Important Notes
* To enable VSCode debugging, added a workspace for vitest and fix any relative path to be working-dir independent.
2024-03-12 01:57:29 +00:00
James Dunkerley
29784de391
Fix issues with labels in qualified entry names. (#9368)
- Use label for entries by qualified name.
![image](https://github.com/enso-org/enso/assets/4699705/e299dae7-7165-4bde-a055-dc5c05326a15)
2024-03-11 22:27:59 +00:00
Kaz Wesley
1f6db1ef43
Move selections to a new layer (#9344)
Move selections to a new Vue component so that they don't interfere with clicking on edges.

https://github.com/enso-org/enso/assets/1047859/190006df-1402-4a5f-9117-f43788fa4187

# Important Notes
- The new `GraphNodeSelection` components are drawn in a `GraphNodeSelections` container. They are created by the `GraphNode`s and teleported so that the node can set properties directly.
2024-03-11 15:40:16 +00:00
Sergei Garin
b2215bed2c
Fix broken login flow (#9352) 2024-03-11 15:26:59 +00:00
Ilya Bogdanov
38ffcd09de
Use vue’s Transitions for animation of the placeholders (#9335)
Closes #9333

https://github.com/enso-org/enso/assets/6566674/705e23c2-0ee0-40b0-9919-9c320f8788c5
2024-03-11 13:29:53 +00:00
Ilya Bogdanov
793fb8f48e
Use labels from the engine if they are available (#9290)
Fix small regression on develop for dropdown labels.

<img width="645" alt="Screenshot 2024-03-05 at 7 09 22 PM" src="https://github.com/enso-org/enso/assets/6566674/caec9cbc-ef8d-4ac2-8ec1-cf2de909f2d4">
2024-03-11 10:56:56 +00:00
Kaz Wesley
8e437fa52a
Ast.Vector (#9328)
Add `Vector` AST type, corresponding to the `RawAst.Tree.Array` type (name `Array` not used for obvious reasons).

This is the first step of #5138.

### Important Notes

- Switched some string-based vector construction to `Vector.new`, improving type-safety.
- The `Ast` changes are covered by the round-trip tests; the use-site changes have been tested manually.
2024-03-08 15:14:06 -05:00
James Dunkerley
2df2d958ed
Correct bug with qualified name of Float. (#9341)
Numeric Input wasn't showing up for floats.
2024-03-08 19:11:23 +00:00
Kaz Wesley
dcad48e66f
Add-node buttons (#9247)
Introduce add-node button below circular menu or open visualization.

https://github.com/enso-org/enso/assets/1047859/aa6cedba-ca7e-44c5-ab27-2f5d5f9421e8
2024-03-08 19:00:39 +00:00
Kaz Wesley
614a5a610b
Zoom steps (#9327)
When zooming with Ctrl+wheel, used fixed-factor steps instead of scroll wheel rate information.

Fixes #9177.

Important Notes
  - Wheel events are distinguished from trackpad gestures, so that OS X pinch-zoom still works nicely.
  - When zooming with the mouse wheel, scale factor is rounded (geometrically) to the nearest power of √2, and then stepped up or down by the same factor; this ensures that round values like 100% are never skipped over.
  - Added directed-clamping logic, so that if the zoom is moved outside the clamping range of a zoom-method, it can be stepped back into range without jumping.
2024-03-08 13:33:54 -05:00
Paweł Grabarz
cee795b5e3
fix text caret not showing for empty input (#9336)
Fixes #9331

Fixed issues with wrong initial size and missing edit caret in text widgets.

<img width="311" alt="image" src="https://github.com/enso-org/enso/assets/919491/44f257cc-18a1-4a9f-9ae0-c1dd9b86674e">

# Important Notes
Automated tests for font loading/initial size will follow shortly. The text caret is not really testable, since it is a hosted object visual issue.
2024-03-08 18:03:23 +00:00
Ilya Bogdanov
df72b38f60
Visualizations fixes follow-up (#9252)
Addressing review suggestions from #9130

- Removing `N` binding
- Removing duplicated `Toggle fullscreen vis` binding

A few important differences from the suggested implementation:
1. There is no easy way to implement `nextType` on GraphEditor – we simply don’t have the required API
2. The keydown handler in `GraphVisualization` must be defined on window level still, otherwise it won’t get keydown events unless visualization is focused, and thus `nextType` won’t work because of (1)

No visual changes to the IDE.
2024-03-08 15:59:15 +00:00
Ilya Bogdanov
ed46fdcf18
Disable qualified name substitution (#9286)
As discussed in discord: https://discord.com/channels/401396655599124480/1201853512409939968/1214547995207663646
2024-03-08 12:57:20 +00:00
somebody1234
6c2b2383d3
Change "Override Execution Context" button to "Record" button on nodes (#9188)
- Close #9164
- Fix appearance of Record/Record Once icon in top menu
- Change icon for overriding execution context to record icon
- Unconditionally show per-node record icon if it is set
- Remove the ability to override the execution context to disabled
- Fix the icon for nodes with an overridden execution context always being the Enso icon

# Important Notes
None
2024-03-08 04:31:32 +00:00
somebody1234
d2f6b1026a
Refactor configuration keys out of repository (#8895)
- Close https://github.com/enso-org/cloud-v2/issues/866
- Remove *all* references to client keys and API base URLs from the codebase.
- The app can still be built by external contributors. *However*, the cloud backend (among some other things) will be completely disabled, as the required keys and base URLs will be missing.
- Add entry to `.gitignore` to allow `*.env` files in `app/ide-desktop/lib/dashboard/`

# Important Notes
- Tested (no `.env`; `.env` with prod backend; `.pbuchu.env`) on:
- `npm run dev` in `app/ide-desktop/lib/dashboard/`
- `./run ide build`
- `./run ide2 build`
- `./run gui watch`
2024-03-08 03:14:26 +00:00
James Dunkerley
c7d693dfc8
Move Standard.Database.Data to Standard.Database. (#9321)
Moves the types out of `Data`.
2024-03-07 14:43:38 +00:00
Michael Mauderer
7c68bf170d
Remove gui1 codebase (#9242)
Removes the old GUI1 code base and reduces the Rust code footprint by removing unused code.

# Important Notes
Updates build scripts and reformats part of the codebase with the autoformatter.
2024-03-07 02:20:21 +00:00
Kaz Wesley
79a6a6a1c0
Pan to CB (#9273)
When the CB is opened, pan to show it.

Large screen:
<video src="https://github.com/enso-org/enso/assets/1047859/1a07c8cc-5818-420a-9fb3-1d1cb308cb87">

Small screen:
<video src="https://github.com/enso-org/enso/assets/1047859/a9f18df5-c0ca-426c-959a-bda5cd077541">

# Important Notes
A prioritized-coordinates approach is used to adjust panning goals based on screen space:
- Fitting the input area is highest-priority.
- If possible, the whole component panel area will be fit.
- If possible, the visualization preview will be fit.
- If there's extra room, margins will be included; the top and left are prioritized because those margins prevent overlap with fixed UI elements.
2024-03-06 20:09:56 +00:00
Paweł Grabarz
b7a8909818
Vue dependency update, better selection performance, visible quotes in text inputs (#9204)
- Improved performance by batching simulatenous node edits, including metadata updates when dragging many selected nodes together.
- Updated Vue to new version, allowing us to use `defineModel`.
- Fixed #9161
- Unified all handling of auto-blur by making `useAutoBlur` cheap to register - all logic goes through a single window event handler.
- Combined all `ResizeObserver`s into one.
- Fixed the behaviour of repeated toast messages. Now only the latest compilation status is visible at any given time, and the errors disappear once compilation passes.
- Actually fixed broken interaction of node and visualization widths. There no longer is a style feedback loop and the visible node backdrop width no longer jumps or randomly fails to update.
2024-03-06 15:34:07 +00:00
James Dunkerley
d4b2390fc1
Small change limiting the number of decimal places to 12 digits. (#9298)
Format numbers in the ag-grid so we don't get loads on pointless digits.
![image](https://github.com/enso-org/enso/assets/4699705/0731af47-1e7e-46f5-8bf3-5503ab74a8e3)
2024-03-06 14:08:43 +00:00
somebody1234
d481ccac94
Extract tests to their own files (#9229)
Move tests to their own files, for consistency

# Important Notes
None
2024-03-06 09:53:12 +00:00
Kaz Wesley
b0842feea2
Hide placeholders (#9246)
* New menuVisible logic

* Hide placeholders unless sole selected node, required argument, or requested by dynamic config
2024-03-05 09:16:38 -05:00
Adam Obuchowicz
ba9b7f199a
E2E test fixing and bring back reports (#9238)
After investigating some errors, I found another two missing awaits in our tests. Because those are so easy to overlook, I added a lint rule which makes failure on unhandled promise (for e2e tests only).

Also, enabled HTML reports again, with traces this time, to enable closer investigation of any failure in the future. @mwu-tow added code for uploading them in GH.
2024-03-05 07:06:11 +00:00
Ilya Bogdanov
9ee4348ee5
Add delete node icon to circular menu (#9264)
Closes #9168, also adds `Show full menu` icon back and hides `edit comment`.

https://github.com/enso-org/enso/assets/6566674/43af88a7-2b08-4f7d-8f4a-f47b41e51b2e
2024-03-04 16:05:56 +00:00
Ilya Bogdanov
6f4963d7d1
Add imports on editing nodes (#9253)
Closes #9241

Demonstration with import conflict resolution:


https://github.com/enso-org/enso/assets/6566674/2397ecf1-7d77-4fa9-93bc-15b81d7fd042
2024-03-04 14:43:15 +00:00
Michael Mauderer
94666e6727
Dropdown widget improvements. (#9186)
Closes  #8995

[Peek 2024-03-01 16-06.webm](https://github.com/enso-org/enso/assets/1428930/3f62aad8-8426-4f8f-b49e-57769b22bfb4)
2024-03-04 12:54:38 +00:00
Ilya Bogdanov
3be5e585f2
Imports conflict resolution (#9093)
Closes #5353


When name conflict is detected, we use fully qualified name instead of the usual one.

https://github.com/enso-org/enso/assets/6566674/2dab40ce-b925-4443-ab37-acd0a8968e47
2024-03-04 11:17:53 +00:00
somebody1234
b4cea527db
Add Warning indicator. (#9160)
- Close #9125
- Display the new warning icon to the left of the node, when the node is not being hovered over.

# Important Notes
None
2024-03-04 10:16:08 +00:00
Kaz Wesley
44a1d9138b
Create and edit comments (#9230)
* CodeEditor: Fix dynamic imports

* Doc editing: AST support

* Doc editing

* Button and comment creation

* Fix concrete syntax edge case

* Remove testing code

* Fix
2024-03-01 12:56:18 -05:00
Kaz Wesley
ac4bbd89c7
Close dropdowns (#9206)
Fixes #7562. Close a dropdown when:
- A click outside the dropdown occurs
- `Esc` is pressed
- Any other `Interaction` is started (i.e. using a shortcut)

# Important Notes
- Simplifies `Interaction` API and uses it for closing/canceling CB as well as dropdowns.
- Adjusted some event handlers so that handled clicks don't also register as GraphEditor background clicks.
- Introduces a CSS approach to prevent unwanted text-selections; we were doing it with JS until my previous PR, and the JS solution was breaking things.
2024-03-01 17:49:23 +00:00
Adam Obuchowicz
55f3820cf9
Fix selection tests (#9240)
Sometimes our test realizes, that `currentTarget` of `MouseEvent` is a read-only property. I have no idea why it does not do it every time, but this fix should work.
2024-03-01 15:51:33 +00:00
Adam Obuchowicz
cabd3ac072
Turn off flaky test (#9232) 2024-03-01 13:37:46 +01:00
Ilya Bogdanov
c44b7f2c2d
Small visualization fixes (#9130)
Closes #9009

- [x] Fixed big white space above full screen viz.
- [x] Escape closes the full screen visualization.
- [x] Viz shortcuts (Shift-Space for toggling fullscreen vis, Ctrl-Space for switching vis type) are implemented.
- [x] The width of visualizations is preserved across project reopens (do we need height as well?)

New video:


https://github.com/enso-org/enso/assets/6566674/d9036ce9-57a4-429b-9bd9-6392782136ea

Older videos:

https://github.com/enso-org/enso/assets/6566674/d7129307-0626-4343-8a76-b9bf764c6a5b


https://github.com/enso-org/enso/assets/6566674/0518d3d8-9ed1-4e6c-bbe0-b7ed00bf7db3

# Important Notes
- Metadata format changed in backward-compatible way
2024-02-29 16:37:40 +00:00
Kaz Wesley
d7e8f271eb
Ensure objects obtained from Y.Js are not modified (#9217)
Y.Js caches values it returns from getters, so they must not be modified. Use `DeepReadonly` to protect values returned from `Y.Map`s in AST logic.
2024-02-29 16:22:33 +00:00
Kaz Wesley
b027a7ee92
Display comments (#9218)
Introduce basic display of node documentation-comments.

![image](https://github.com/enso-org/enso/assets/1047859/b1960097-d265-4d77-a924-fd3c309dc3fd)

Part of #9162.

# Important Notes
- Add synchronization of `documentation` updates to the GraphDB; add a type assertion that ensures `Node` synchronization is updated when new fields are added to `Node`.
- Introduce read-only comment rendering.
2024-02-29 15:42:11 +00:00
Adam Obuchowicz
874e9efe74
Add workaround for huge idmap diffs (#9207)
Fixes probably #9198 See [this comment](https://github.com/enso-org/enso/issues/9198#issuecomment-1968484269) for justification. TLDR: the diff algorithm is too slow for our huge idmap.

The proper fix would be to reduce idmap size. Expect tasks for that soon.
2024-02-29 14:42:59 +00:00
Kaz Wesley
97033a2ff4
Represent documentation in AST, load into Node (#9205)
Part of #9162.

- Add support for representing and interpreting the full text-literal/documentation syntax (escape codes, platform-independent newlines, string interpolations); build on generalized operations for structured-fields that will simplify future representation of other types like `Vector`.
- Load parsed and interpreted node documentation into `Node`s.
2024-02-28 20:43:23 +01:00
somebody1234
fecdd534b1
Fix Component Browser aliases (#9163)
- Fix #9107
- Allow matching initials of aliases
- Allow matching spaces instead of underscores (aliases use spaces, not underscores)
- Fix only the first alias being detected. This is due to incorrect docs parsing keeping the leading space - `foo, bar` turns into `["foo", " bar"]`

# Important Notes
None
2024-02-28 15:33:22 +00:00
Adam Obuchowicz
c69ba4ee70
Fix area select regression (#9197)
Fixes #9182

Now we are careful when to handle events - before or after updating intersected set.

Added general E2E and detailed unit tests for selecting.

Also discovered, that sometimes the test are running while nodes are not yet in right positions. Added an instruction ensuring the position is right.
2024-02-28 13:14:48 +00:00
somebody1234
d232b9252c
Re-enable vibrancy and add support for Linux (#9003)
- Fixes support for vibrancy
- Disable background when vibrancy is enabled
- Minor refactors to pass the relevant config option to dashboard, so that the dashboard knows whether vibrancy is enabled
- Enable vibrancy on Linux if a special environment variable is set

# Important Notes
- MUST be tested on macOS
- Windows *does not support resizing* when vibrancy is enabled. This is a limitation of Windows - see [this issue](https://github.com/electron/electron/issues/6107).
2024-02-28 13:01:03 +00:00
Kaz Wesley
edb349f8fc
Allow setting CB viz type; determine default from suggestion type info. (#9196)
Fixes #8570.

- Visualization type can be set per suggestion entry.
- Default visualization type for each suggestion is determined by suggestion type info.

# Important Notes
Previewing non-default visualizations seems to be broken (#9194), but this PR updates the GUI to select visualization types appropriately.
2024-02-27 15:49:56 +00:00
somebody1234
207f6a06e5
Fix E2E tests (#9185)
- Fix #9184
- It turns out the logic for handling macOS was already present elsewhere - and even *in the same file*! It seems like this was an oversight

# Important Notes
None
2024-02-26 15:34:43 +00:00
Kaz Wesley
92624126ba
Fix minor visual glitch in record-control background (#9170)
Before:
![image](https://github.com/enso-org/enso/assets/1047859/dcf083b2-c169-42a9-a120-4aa730f05962)

After:
![image](https://github.com/enso-org/enso/assets/1047859/7d9b774a-1ccd-4225-9a2d-a313e40e0c4f)
2024-02-26 08:38:43 +00:00
Kaz Wesley
245ec7afe8
Replace execution context controls with record mode controls (#9133)
Closes #8673. Stacked on #9132.

Before:
![image](https://github.com/enso-org/enso/assets/1047859/1b1ca9f4-eda9-45fd-bec1-cd7e255112fa)
![image](https://github.com/enso-org/enso/assets/1047859/b8cf6de1-d75c-48d0-ac0d-9e6e0c659dd4)

After:
![image](https://github.com/enso-org/enso/assets/1047859/91d13862-96e7-4175-a61e-40aecd6d62b0)
![image](https://github.com/enso-org/enso/assets/1047859/ef20511f-00f2-4042-b4d4-97728817500b)

# Important Notes
- The model has been refactored from execution-modes (live/design) to record-mode (on/off) up to the point of the project store, where it's translated (since the backend still uses the live/design concepts).
2024-02-23 20:10:43 +00:00
James Dunkerley
880562a503
Add comment, warning, error icons. (#9169)
Add some state icons.
![image](https://github.com/enso-org/enso/assets/4699705/ab4060f5-7814-4a0d-a0af-bb775235ff98)
2024-02-23 17:25:17 +00:00
Kaz Wesley
9c872c653e
Checkbox shows argument name if not already shown (#9146)
Fixes #9002. This is not a great solution; doing this properly would require some refactoring of widget selection. Proposal:  #9145.
2024-02-23 15:48:10 +00:00
Adam Obuchowicz
8c286da21b
Proper fix for editing node (#9153)
The replacement for https://github.com/enso-org/enso/pull/9144

We try to match bindings using "buttons" field, but it in fact does not contain the just-released buttons.

# Important Notes
I added tests for editing node. Also, I decided that the cursor position should be at the end of line when starting editing by clicking at "edit" icon.
2024-02-23 14:54:34 +00:00
Kaz Wesley
bc99941736
Move project name (#9132)
Closes #8672.

Before:
![image](https://github.com/enso-org/enso/assets/1047859/9d95178f-24c1-4e82-bf90-a37c3d1ca450)

After:
![image](https://github.com/enso-org/enso/assets/1047859/84e6dae9-e309-46c5-9be8-6b82dcb9ddc4)

# Important Notes
- The execution context controls are no longer aligned nicely, but we are about to make major changes to their display anyway: #8673
2024-02-23 13:48:33 +00:00
Kaz Wesley
990ba2fc64
Fix flickering when resizing visualization (#9147) 2024-02-23 08:47:57 -05:00
Kaz Wesley
d650798898
Display alias when searching by alias (#9148)
* Display alias when searching by alias

* Fix tests
2024-02-23 08:47:11 -05:00
somebody1234
bdebe904b3
Make alt key keep dropdown open (#9157)
- Fix #9083

# Important Notes
None
2024-02-23 13:41:58 +00:00
Adam Obuchowicz
e7a9221618
Fix escaping \ (#9155)
Fixes #9151

In one of my previous PRs I merged two `escape` implementations having exactly the same documentation. However, one of it missed escaping `\` character.

# Important Notes
One test even expected that `\` are _not_ escaped, but I doubt it should, given the above bug report?
2024-02-23 12:10:45 +00:00
Michael Mauderer
a900fb5c43
Add docs to highlight order of processing dirty nodes in readFunctionAst. (#9141) 2024-02-23 11:19:35 +00:00
Adam Obuchowicz
7f5b2edbf5
Fix interfering click handlers (#9127)
Fixes one failure in #8942 which caught a real issue: clicks at various panels were triggering many handlers at once, often unexpectedly - for example quick clicking at breadcrumbs (and automatic tests always click fast) we could also trigger getting out the current node.

Therefore, I added `stopPropagation` for all mouse events on "panel" level + where I think the event should be considered "handled" and no longer bother anyone. Also, to unify things, most actions are for `click` event.

Additionally I spotted and fixed some issues:
* When "clicking-off" Component Browser, it creates new node only if anything was actually typed in (no more dangling `operatorX.` nodes)
* Filtering now works for operators
* When, after opening CB with source node, user starts typing operator, we replace dot with space
* Fixed our shortcut handler, so it works properly with `click` event.
* Fixed problems with defocusing input in CB when clicking at links.

# Important Notes
I removed `PointerMain` binding for deselectAll, because it was triggered every time did the area selection.
2024-02-22 15:18:28 +00:00
Kaz Wesley
323d46ec4e
Add property test for textChangeToEdits and applyTextEdits. (#9131)
Add a test for some functionality introduced in #9055.
2024-02-21 21:48:37 +00:00
Kaz Wesley
fdec1d0671
Self-arrows: Distinguish self arguments (#9116)
Distinguish self arguments; render edges to them as arrows, and use icons for their widgets.
2024-02-21 08:40:08 -08:00
Kaz Wesley
01fc65eec5
Self-argument arrows: New edge rendering mode (#9099)
Self-argument arrow rendering
2024-02-21 09:43:22 -05:00
somebody1234
c60d1ba36d
Fix bug in map visualization (#9119)
- Fix a bug where longitude was used as both latitude and longitude, due to a typo....

# Important Notes
- As our Mapbox token is no longer valid, the map visualization no longer works, even with this fix. As a result, this cannot be tested properly.
- However, this can still be tested somewhat, by seeing that the error is no longer present in the repro:
- Open the `Colorado COVID` template
- Open the viz on this node (at the bottom right of graph. it may help to zoom out using Ctrl+Shift+A.):
![image](https://github.com/enso-org/enso/assets/4046547/54849e5f-8a53-4f5b-8bdf-f08fe8ca51f0)
- Compare the errors logged in the console between `develop`, and this branch. This branch should not have the error about `lat` (latitude) being out of range.
2024-02-21 12:21:20 +00:00
Michael Mauderer
6c4c791d87
Display warnings on components (#9108)
Closes #8678

[Peek 2024-02-20 12-45.webm](https://github.com/enso-org/enso/assets/1428930/6bb6c4ad-5507-4b11-b2c9-b295bf10c745)
2024-02-21 11:40:07 +00:00
Paweł Grabarz
d415d133bb
Fix node edits (#9111)
* Prevent duplication of external IDs in syncTree

* trim component browser accepted value

* use flush post for visualization data watcher

* do not create empty nodes when closing component browser

* Lint

---------

Co-authored-by: Kaz <kaz@lambdaverse.org>
2024-02-20 16:40:50 -05:00
Michael Mauderer
e264189f6a
New ... menu in the top bar with zoom controls (#9073)
Closes #8614

https://github.com/enso-org/enso/assets/1428930/8b5b47e4-5ce5-4bf0-a42f-0b6c3d7d9323
2024-02-20 15:44:49 +00:00
Kaz Wesley
c811a5ae8b
Enable the Code Editor, with new apply-text-edits algo. (#9055)
- Fix the UI problems with our CodeMirror integration (Fixed view stability; Fixed a focus bug; Fixed errors caused by diagnostics range exceptions; Fixed linter invalidation--see https://discuss.codemirror.net/t/problem-trying-to-force-linting/5823; Implemented edit-coalescing for performance).
- Introduce an algorithm for applying text edits to an AST. Compared to the GUI1 approach, the new algorithm supports deeper identity-stability for expressions (which is important for subexpression metadata and Y.Js sync), as well as reordered-subtree identification.
- Enable the code editor.
2024-02-19 23:57:42 +00:00
Kaz Wesley
d75523b46f
Render target attachment bit as part of port. (#9068)
Fixes one issue from #8139.

Before:
![image](https://github.com/enso-org/enso/assets/1047859/1db71cda-7f9e-4d15-ac0f-14cb3c0b7c09)

After:
![image](https://github.com/enso-org/enso/assets/1047859/c5aafc56-d81d-447e-b725-fcb2e30b3c4e)
2024-02-19 20:02:29 +00:00
AdRiley
27ec236c19
rename database Table to DB_Table (#9067)
Rename database.Table to database.DB_Table to avoid name collisions as part of https://github.com/enso-org/enso/issues/8981
2024-02-19 17:31:58 +00:00
Kaz Wesley
760afbc7f4
Render unconnected edges above nodes. (#9069)
Fixes one issue from #8139.

Before:
![image](https://github.com/enso-org/enso/assets/1047859/b6d05734-f186-4213-b943-81fd868cf565)

After:
![image](https://github.com/enso-org/enso/assets/1047859/4e42907f-8579-4869-99a3-74aac920e65b)
2024-02-19 15:12:15 +00:00
Adam Obuchowicz
fddfa1150a
Fix for adding node in collapsed functions (#9060)
Fixes #9049

There were still some stubs left in node creation code.

# Important Notes
I haven't added any tests, as unit testing the graph store is very difficult - it has much tangled logic there. I'm going to try to untangle it a bit, but in a separate PR.
2024-02-19 09:14:46 +00:00
Michael Mauderer
6746bdc148
Implement full wheel component menu (#9029)
Closes #8612.


[Peek 2024-02-12 14-11.webm](https://github.com/enso-org/enso/assets/1428930/504a0e17-9d75-46b2-b5e9-d23ec09d6613)

# Important Notes
The `...` menu was added at the top of the menu as there is less visual interference with an opened visualisation.
2024-02-15 14:01:38 +00:00
Adam Obuchowicz
8489316d83
WidgetFunction: merge dynamic config for a call with inherited one (#9042)
Fixes #9008

Now, even if we inherit FunctionCall config from parent widget (e.g. drop down), we still ask for config of the current call and try to merge them (preferring the inherited parameters).
2024-02-14 23:05:45 +00:00
Adam Obuchowicz
ee381369b0
Remove vite-plugin-top-level-await plugin (#9038)
We've used the vite-plugin-top-level-await to support top level await. But most of them were removed anyway, because the ide-desktop/lib/client is bundled as CJS and use some of gui2 code. And the plugin [is causing problems](https://github.com/Menci/vite-plugin-top-level-await/issues/25), [also in our CI](https://github.com/enso-org/enso/actions/runs/7842841953/job/21402194728?pr=9013#step:8:458)
2024-02-14 09:42:37 +00:00
AdRiley
5c7947ce60
Rename database column to DB_Column (#9046)
Rename database column to DB_Column to avoid name collisions as part of https://github.com/enso-org/enso/issues/8981
2024-02-14 09:11:52 +00:00
Adam Obuchowicz
36722eaf55
Retry E2E tests on CI (#9040)
To guard us from flaky tests, CI will run every test three times and fail if _any_ of the run fails.

This way we hope most flakiness will be catch before merging PR.

Configured dashboard in the same way.
2024-02-13 11:43:56 +00:00
Adam Obuchowicz
a0029f2451
Small boolean widget tweaks (#8994)
Fixes #8962
2024-02-12 11:33:03 +00:00
Ilya Bogdanov
e1943bdd49
Properly propagate dynamic configuration inside dropdown widget (#8983)
Closes #8932

Now we use a bit more robust mechanism for passing dynamic configuration down the widget tree inside dropdowns, no longer relying on the `label`s used for dropdown items.

Curiously, we still need to use a hotfix implemented earlier, as we won’t have info about the currently selected item otherwise. Highlight for the currently selected item is not crucial as proper dynamic config, so we can leave with the current solution in the meantime.

No visual changes to the IDE, apart from fixed highlight for currently selected item.

# Important Notes
Target branch: #8950, for easier testing.
2024-02-12 10:17:29 +00:00
James Dunkerley
aed59d316d
Text Editor shows up for Text only parameters. (#9014)
- Fix type name so that Text Editor shows for parameters.
- Following on from #9010, now show the default text values.
![image](https://github.com/enso-org/enso/assets/4699705/da68fec4-25b9-4e04-ba13-a2d112cf67c9)
2024-02-09 17:26:15 +00:00
Ilya Bogdanov
6881bc844e
Fix eslints in the project (#9005)
When using `npm run lint`, there are a lot of warnings for the last couple of weeks, and it is really annoying because I keep skipping important warnings for my files.
2024-02-09 11:22:33 +01:00
Adam Obuchowicz
1c46eecd90
Dispose ydocs provider when closing app (#8990) 2024-02-08 18:39:05 +04:00
Michael Mauderer
1619b2d64f
New scenarios for e2 e tests: Loading Table Visualization & Fullscreen Vis (#8989)
Adds e2e test for table visualisation and full-screen visualisaiton.
2024-02-08 12:17:56 +00:00
James Dunkerley
93f2a44633
Add some ICON tags and a few new Icons. (#8996)
- Apply @Cassandra-Clark's ICON tags to the library code.

- Fix bug with Table viz not showing row count in dropdown list. **Doesn't fix defect with dropdown not changing data.**
![image](https://github.com/enso-org/enso/assets/4699705/dfbdba91-5f4f-4c89-8ae8-f30156047162)

- Added missing icons.
![image](https://github.com/enso-org/enso/assets/4699705/145191cd-d31a-45f1-8bb2-fcc3cf0f1207)
![image](https://github.com/enso-org/enso/assets/4699705/2a8e0530-2470-4ec8-b836-57bed8520c28)
2024-02-08 09:56:57 +00:00
Ilya Bogdanov
851791183d
Add a small arrow for dropdowns (#8950)
A **temporary** solution for #8949. Not pretty, but it solves the issue for now.

https://github.com/enso-org/enso/assets/6566674/d8b28c60-b210-486f-8c93-c6041a2062e3
2024-02-07 14:59:02 +00:00