Commit Graph

394 Commits

Author SHA1 Message Date
marthasharkey
55af1b9ffd
Add icon to indicate value type in table (#10225)
closes #10018

Sends the value type within the json for table visualisation
Header uses a html template to show it's value type to the right of the title
Displays the value type also in a tooltip, this displays the types "display_text"

<img width="392" alt="image" src="https://github.com/enso-org/enso/assets/170310417/0828e6a2-b30f-4ac7-9a8f-46b4a9cfac91">


tooltip:
<img width="498" alt="image" src="https://github.com/enso-org/enso/assets/170310417/f9964f90-9337-42d3-a0ef-3c58f6d74621">
2024-06-12 09:06:55 +00:00
Adam Obuchowicz
a2c4d94735
Fix arrow keys in text inputs (#10244)
Fixes #10239

# Important Notes
This is a quick fix, but we may consider better focus handling - perhaps the graph editor should be focusable?
2024-06-11 16:12:35 +00:00
AdRiley
19c50ceff9
Add icons (#10242)
Fixed duplicate text name.

Added

![image](https://github.com/enso-org/enso/assets/1720119/cc80e991-549e-4629-b0bc-81e58c2e93d8)

![image](https://github.com/enso-org/enso/assets/1720119/39ffccb7-99f5-4464-9b01-69c978972865)
2024-06-11 12:05:42 +00:00
Ilya Bogdanov
e502023922
Copy paste multiple nodes (#10194)
Closes #9424


https://github.com/enso-org/enso/assets/6566674/c0c5a524-ea6a-41f6-9fea-c94431211f33
2024-06-11 09:26:55 +00:00
Kaz Wesley
d7689b3357
Show images in documentation (#10205)
Render markdown image syntax in documentation. Relative URLs are fetched from the project directory; absolute URLs are hotlinked from wherever they point.

Syntax and URL resolution:
```
# In New_Project27/src/Main.enso

## Main method docs
- Image at `New_Project27/src/image.jpg`: ![Image](image.jpg)
- Image at `New_Project27/image.png`: ![Image](../image.png)
- Image at `New_Project27/src/image.jpg`: ![Image](/src/image.jpg)
- Image at `New_Project27/image.png`: ![Image](/image.png)
main =
42
```

https://github.com/enso-org/enso/assets/1047859/3f873f3f-31b1-44bf-ae3e-2f467f2d546d

Closes #10058.

# Important Notes
Stacked on #10064.
2024-06-10 14:15:36 +00:00
Paweł Grabarz
b0589d267d
Implement new design for tooltips in GUI (#10172)
Fixes #10088, #10154

Implemented figma tooltip design through Vue components and store. Attached tooltips to all existing SVG buttons, based on assigned label property.


https://github.com/enso-org/enso/assets/919491/85f5fef7-c6df-471b-b544-b45f45f4f51e

# Important Notes
Removed all usages of `v-bind` in styles due to issues during hot reloading when updating stores. The internal CSS binding composable sometimes crashes when the component is being unmounted due to hot reload.
2024-06-07 01:48:11 +00:00
Adam Obuchowicz
291db8aa07
Moving nodes or camera with arrows (#10179)
Fixes #10029

[Screencast from 2024-06-05 11-40-50.webm](https://github.com/enso-org/enso/assets/3919101/8dcb9099-5489-488c-86dc-560325e84f52)
2024-06-06 16:47:02 +00:00
Kaz Wesley
1b60e2531f
Fix visualization z-indexes (#10158)
Prevent visualizations (such as table) and visualization container (including toolbar) from drawing above widgets (such as dropdown).

<img width="245" alt="image" src="https://github.com/enso-org/enso/assets/1047859/51b86256-1d6d-4cf1-9e88-3b36d13f39b8">

Dropdown now covers visualization toolbars.

<img width="245" alt="image" src="https://github.com/enso-org/enso/assets/1047859/b7fe9e47-4121-47a5-9b8a-335449d25734">

Dropdown now covers table column resize handle.

Fixes #9783.
2024-06-03 17:58:12 +00:00
Sergei Garin
28655e13d7
Frontend adjustments for Stripe refactoring (#10054)
#### Tl;dr
Closes: enso-org/cloud-v2#1185
This PR changes endpoints according to the comment left by @PabloBuchu: https://github.com/enso-org/cloud-v2/issues/1185#issuecomment-2114606101


#### This Change:
Changes endpoint names and fixes subscription flow

---
2024-05-31 09:59:25 +00:00
Adam Obuchowicz
2ca2533a89
Adjust plus button position and new node created. (#10124) (#10127) 2024-05-31 08:26:45 +00:00
Adam Obuchowicz
65737b34f5
Consider currently written path when opening file browser (#10076)
We pass the current path as default to show(Open|Save)FileDialog.

# Important Notes
There is `wrapper` method of Ast, I assumed it is suitable also for Groups.
2024-05-30 07:25:25 +00:00
Paweł Grabarz
322662ee9d
Implement node ports below visualizations (#10113)
fixes #9830, #10108

![image](https://github.com/enso-org/enso/assets/919491/8ae50912-1dfb-4389-b51a-44022b334b89)
2024-05-29 13:20:53 +00:00
Adam Obuchowicz
f9ffa47e32
Fix record once (#10109)
Fixes #10103
2024-05-29 10:34:32 +00:00
marthasharkey
a9f14b1da9
Add check for null values in table visualization (#10116) 2024-05-28 16:24:25 +00:00
Dmitry Bushev
858e646328
Start Ydoc with the language server (#9862)
- related #7954

Changelog:
- update: Ydoc starts with the language server on the `localhost:1234` by default. The hostname and ports can be configured by setting environment variables `LANGUAGE_SERVER_YDOC_HOSTNAME` and `LANGUAGE_SERVER_YDOC_PORT`
- update: by default `npm dev run` uses the node Ydoc server. You can control it with `POLYGLOT_YDOC_SERVER` env variable. For example,
```
env POLYGLOT_YDOC_SERVER='true' npm --workspace=enso-gui2 run dev
```
To connect to the Ydoc server running on the 1234 port (the one started with the language server)
⠀
```
env POLYGLOT_YDOC_SERVER='ws://127.0.0.1:1235' npm --workspace=enso-gui2 run dev
```
To connect to the provided URL. Can be useful for debugging when you start a separate Ydoc process.
- update: run `npm install` before the engine build. It is required to create the Ydoc JS bundle.
2024-05-28 13:51:42 +00:00
Paweł Grabarz
8edf49343f
Expose cloud event logging endpoint to GUI and render GUI editor as react component. (#9951)
fixes #9730

Added a `logEvent` method to remote backend implementation in dashboard. Added an always-present remote backend instance that can be used for logging even when running a local project (intentional behavior).

# Important Notes
Because the backend implementation requires access to always fresh session token, the logger needs to be periodically updated on GUI side, so it can continue to function. To accomplish that, I simplified the app loading logic to treat GUI as an ordinary react component, so its props can be updated with normal react rendering flow. That refactor also removed the dynamic GUI asset loading code that was only needed for Rust GUI.
2024-05-27 17:32:42 +00:00
Adam Obuchowicz
a00d8bfca6
Restore old way of methodAst (#10096)
Fixes #10082
2024-05-27 13:19:36 +00:00
Paweł Grabarz
ca916b823e
Generalize keyed local storage for more client side graph-editor data (#9990)
Fixes #9938

The documentation panel openness and size state are saved in localStorage. On initial graph entry, the documentation panel is automatically opened if the graph's function is documented.
2024-05-27 12:53:16 +00:00
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