Commit graph

442 commits

Author SHA1 Message Date
José Valim
74b0166453
Fix sidebar pane on small screens (#1338) 2022-08-09 19:32:53 +02:00
Jonatan Kłosko
7f4e9273de Add missing client id for smart cell JS view 2022-08-05 20:55:42 +02:00
Jonatan Kłosko
e10f8374fd Add missing client id assign for layout outputs 2022-08-05 15:54:08 +02:00
Jonatan Kłosko
218bce5a63
Use binary ids for session clients (#1333) 2022-08-05 14:43:41 +02:00
Alexander Koutmos
e8920257cd
Add support for anchor links during navigation (#1327) 2022-08-04 21:24:19 +02:00
Jonatan Kłosko
194e31e2d9
Add support for layout outputs (#1326) 2022-08-04 00:24:15 +02:00
Jonatan Kłosko
4dc1deab24 Bump Elixir version on CI 2022-08-03 17:30:22 +02:00
José Valim
5cf9e2ba14 Align sidebar icons 2022-08-03 16:37:53 +02:00
Paulo Valim
43f5c383e0
Redesign sidebar (#1325)
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-08-03 15:50:27 +02:00
Jonatan Kłosko
4206e84682 Don't format elements with whitespace-pre 2022-08-02 18:22:49 +02:00
Jonatan Kłosko
3fcb6b97bb
Enable HEEx formatter (#1322) 2022-08-02 15:51:02 +02:00
Kuria
3cf175c81a
Add shortcut for evaluating a cell and advancing to the next one (#1294) 2022-07-23 12:22:17 +02:00
Jonatan Kłosko
75e47aa593
Reflect input change when clicking the reevaluate button (#1269) 2022-07-11 14:35:05 +02:00
Jonatan Kłosko
1757e21bca
Fix user profile edits to not crash on the homepage (#1268) 2022-07-10 20:16:55 +02:00
Jonatan Kłosko
a7d7e6332d
Change text inputs to apply change on blur (#1243) 2022-06-24 12:00:23 +02:00
Andy Tran
f945b3272d
Add support for configuring a custom iframe URL (#1200)
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-05-26 02:39:55 +02:00
ByeongUk Choi
0a87fee7b6
Add sidebar toggle on mobile (#1183)
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
Co-authored-by: José Valim <jose.valim@gmail.com>
2022-05-19 16:27:57 +02:00
Tw
641ac96ae7
Fix relative link URL in Markdown output (#1189) 2022-05-17 03:03:18 +02:00
José Valim
fce28ed713
Reduce left padding for notebook session (#1186)
* Reduce left padding for notebook session

* Update lib/livebook_web/live/session_live.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-05-13 17:54:36 +02:00
Jonatan Kłosko
355a450d4c
Fix smart cell evaluation button in forked notebooks (#1185) 2022-05-13 15:22:52 +02:00
Jonatan Kłosko
567c69a884
Always expand the setup cell when focused (#1166) 2022-05-03 16:20:13 +02:00
Jonatan Kłosko
9a016e439d
Synchronize smart cell source before evaluation (#1164)
* Synchronize smart cell source before evaluation

* Sync JS view only if present

* Synchronize with smart cell only when started

* Update references to kino packages

* Update the Smart cells notebook

* Rename add dependnecy to add package

* Update changelog
2022-05-03 15:09:37 +02:00
Jonatan Kłosko
df87b2c7fc
Rename toggle output in zen mode to show/hide (#1161) 2022-05-02 15:29:42 +02:00
José Valim
2e104b2677 Review some policies 2022-05-02 12:13:22 +02:00
Jonatan Kłosko
2a1d937189
Update wording around dependencies and packages (#1151) 2022-04-30 17:14:10 +02:00
Jonatan Kłosko
8e063792ff
Improvements to the smart cells flow (#1150)
* Reword reinstall to restart

* Clarify Smart cell message when dependencies are installing

* Handle universal shortcuts in inside iframe inputs

* Adjust smart cell icons

* Improve wording in the dependency install prompt

* Reevaluate cells after installing smart cell dependencies

* Update lib/livebook_web/live/session_live/cell_component.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-04-30 12:26:03 +02:00
ByeongUk Choi
d11084d32f
Add shared mode to Livebook sessions (#1128)
* add shared mode (working)

* add markdown write permission

* Add authorize handle_event

* Revert "add shared mode (working)"

This reverts commit c1e9ebac4d.

* Add assert_policy!

* Apply suggestions code review

* Apply suggestions from code review

* Apply suggestions from code reviews (redirect)

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Add PolicyHook

* remove assert_live_action_access!/1

* Apply suggestions from code review

* Apply suggestions from code review

* Update lib/livebook_web/live/session_live.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-04-28 13:01:53 +02:00
Jonatan Kłosko
f39699b65e
Update instructions in the Elixir export (#1144) 2022-04-25 13:37:15 +02:00
Jonatan Kłosko
4e49b6e643
Add insert button for diagrams (#1134) 2022-04-19 16:51:46 +02:00
Jonatan Kłosko
609409e842
Encapsulate pubsub subscriptions (#1132) 2022-04-19 11:29:38 +02:00
José Valim
d0a98f88f2
Organize settings page (#1133)
* Fix indentation in HTML format

* Adds more spacing between items

* Use horizontal lines to better mark the sections,
  unless the header itself is followed by a table.

Those changes are inspired by GitHub's current
settings page.
2022-04-19 11:29:26 +02:00
Jonatan Kłosko
6e66c80120
Keep memory usage state at the root on homepage (#1129)
* Keep memory usage state at the root on homepage

* Update lib/livebook/system_resources.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-04-18 18:06:04 +02:00
José Valim
4248de6003
Refresh memory when closing/disconnecting sessions (#1124)
* Refresh memory when closing/disconnecting sessions

* Fixes
2022-04-18 16:16:39 +02:00
Jonatan Kłosko
134fbe0589
Show information when a new Livebook version is available (#1121)
* Show information when a new Livebook version is available

* Wording

* Use more precise version comparison

* Update lib/livebook/application.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Up

* Update notificaion styles

* Update lib/livebook_web/live/home_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Update lib/livebook_web/live/home_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Apply review comments

* Use async_nolink

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-04-18 00:55:08 +02:00
Jonatan Kłosko
87c27b5be7
Link to cloud instance when system memory is low (#1122)
* Link to cloud instance when system memory is low

* Update wording and add link
2022-04-15 23:52:33 +02:00
José Valim
f451646d73
Labeled text block (#1117)
* Make labeled text a block

* Add link
2022-04-15 14:23:41 +02:00
ByeongUk Choi
bfd47fd166
Add app service settings (#1116) 2022-04-15 13:46:26 +02:00
Jonatan Kłosko
2b8d732a23
Introduce code zen (#1115)
* Introduce code focus mode

* Update aria labels

* Update wording

* Show shortcut in code zen toggle

* Update shortcut
2022-04-14 21:17:19 +02:00
José Valim
5acbd2efad
Add LIVEBOOK_SHUTDOWN_ENABLED (#1111)
* Add LIVEBOOK_SHUTDOWN_ENABLED

Previously we relied on code:get_mode(), but since
releases are starting in interactive mode to use
less memory, we need a clearer mechanism.

* Move shutdown feature check to Livebook.Config

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-04-14 15:52:28 +02:00
Jonatan Kłosko
aa3b58d708
Add support for mix run flags to the Mix runtime (#1108)
* Add support for mix run flags to the Mix runtime

* Support mix run flags in runtime config string

* Add flag validation

* Update lib/livebook_web/live/session_live/mix_standalone_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-04-14 11:44:55 +02:00
Jonatan Kłosko
39a294abbe
Add an option for wrapping words in Markdown editor by default (#1107) 2022-04-13 23:54:05 +02:00
Jonatan Kłosko
4f5d6b39a1
Make smart cell editor rounded (#1105) 2022-04-13 20:03:21 +02:00
Jonatan Kłosko
aafdc12015
Mount Markdown cell editor lazily (#1102) 2022-04-13 12:45:29 +02:00
Jonatan Kłosko
25f09331cc
Update dependencies (#1099)
* Update Elixir deps

* Update JS deps
2022-04-11 21:01:45 +02:00
Jonatan Kłosko
8b153b9bb0 Fix insert buttons overlapping cell actions 2022-04-05 21:53:30 +02:00
Jonatan Kłosko
0f8ce54187 Fix border on error output 2022-04-05 15:15:13 +02:00
Jonatan Kłosko
05687716d4
Improve smart cell menu visibility while in insert mode (#1091) 2022-04-04 22:28:02 +02:00
Jonatan Kłosko
5117fd6e64
List database types when adding database connection for the first time (#1090)
* List database types when adding database connection for the first time

* Rename classes
2022-04-04 19:48:57 +02:00
Jonatan Kłosko
1cdc9f7f70
Remove restart button on Mix.install/2 error (#1088)
* Remove restart button on Mix.install failure

* Remove unused standalone? check
2022-04-04 12:49:17 +02:00
ByeongUk Choi
e3d9c5fa35
allow embedded runtime by env (#1084)
* allow embedded runtime by env

* fix session live test

* This reverts commit f36931d6ef9b..81ca7d

* allow runtime modules

* Apply suggestions from code review
2022-04-04 12:20:36 +02:00
Jonatan Kłosko
902c993098
Adjustments (#1087)
* Fix horizontal scrollbar on smaller screens

* Apply navigation shortcuts without an additional roundtrip

* Shorten the data element selector

* Fix URL in changelog

* Return reference from handle_intellisense
2022-04-04 12:19:11 +02:00
Brooklin Myers
00c913adcc
Enable image upload field when no name provided. Use image name as default value. (#1083) 2022-04-02 01:19:17 +02:00
Jonatan Kłosko
75eb031719
Automate searching and adding new dependencies (#1081)
* Automate searching and adding new dependencies

* Restructure runtime management

* Leave search restrictions up to the runtime

* Support predefined dependencies in Embedded runtime dependency search

* Use the embedded runtime for dependency search test

* Fix typo

* Use module for loading embedded runtime dependencies

* Improve naming
2022-04-01 20:13:37 +02:00
Jonatan Kłosko
df765f2dd3
List predefined smart cells and automatically add their dependencies (#1078)
* List predefined smart cells and automatically add their dependencies

* Generalize dependency insertion to multiple entries

* Add runtime setup modal

* Don't evaluate setup when restarting the runtime fails

* Automatically add vega_lite for chart builder

* Improve confirmation modal actions when the action is not destructive
2022-03-30 21:55:50 +02:00
Wojtek Mach
c5152eb941
Fix warnings (#1077) 2022-03-30 13:33:49 +02:00
Jonatan Kłosko
5476fd001d
Introduce a setup cell (#1075)
* Introduce a setup cell

* Don't collapse setup cell when dirty

* Collapse fresh setup cell when empty

* Reword collapsed setup cell text
2022-03-28 21:36:57 +02:00
Jonatan Kłosko
4369a45bd5
Regroup cell insert buttons (#1073)
* Regroup cell insert buttons

* Add spacing to divider

* Split into two menus

* Remove smart cell icon
2022-03-24 19:02:31 +01:00
Jonatan Kłosko
ac5a71bf85
Show a message when JS view data is not available (#1067)
* Multiplex initialization of JS views

* Show timeout message when JS view data fails to load

* Refactor JS view channel

* Update tests
2022-03-22 18:25:42 +01:00
Jonatan Kłosko
0145d68593
Limit standard output to last 1000 lines (#1063) 2022-03-19 12:22:36 +01:00
Jonatan Kłosko
829493822e
Group LV helpers (#1061) 2022-03-17 23:33:18 +01:00
Jonatan Kłosko
afce2e6047
Prevent smart cell menu from overlapping with insert buttons (#1060) 2022-03-17 21:44:40 +01:00
Jonatan Kłosko
b3b79afed4
Refactor JS hooks (#1055)
* Restructure hook files

* Simplify app.js

* Refactor hooks

* Implement password toggle with JS commands
2022-03-16 11:33:53 +01:00
Jonatan Kłosko
6db36ea7e6
Add support for smart cell editor (#1050)
* Add support for smart cell editor

* Log an error when smart cell fails to start
2022-03-14 22:19:56 +01:00
Jakub Perżyło
4061aa150d
Add autosave path configuration (#1019)
* Added autosave path configuration

* Update settings.ex

* Adjusted to review

* Apply suggestions from code review

Co-authored-by: José Valim <jose.valim@gmail.com>

* Adjusted to review

* Adjusted to review

Co-authored-by: José Valim <jose.valim@gmail.com>
2022-03-13 16:22:52 +01:00
Jonatan Kłosko
6b78258713
Add support for scanning evaluation context from smart cells (#1041)
* Add support for scanning evaluation context from smart cells

* Rename prev_locator to base_locator to clarify the meaning

* Adjustments

* Add data tests

* Adjustments

* Test smart cell intearaction with RuntimeServer

* Serialize binding scanning and leave sending to the user

* Monitor the scanning process
2022-03-05 13:19:42 +01:00
Jonatan Kłosko
e27ff5a960
Rename Elixir cell to Code cell (#1035) 2022-03-02 12:48:02 +01:00
Jonatan Kłosko
aaeac6bb95
Add an action converting smart cell to elixir cell (#1030)
* Add an action converting smart cell to elixir cell

* Simplify tests setup

* Add confirmation

* Update lib/livebook_web/live/session_live/cell_component.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-03-02 12:13:44 +01:00
Wojtek Mach
59e4713008 Expand path before opening it (another attempt)
See: 864624ad2c
2022-03-02 11:53:02 +01:00
Wojtek Mach
864624ad2c Expand path before opening it
Say we have this path on Windows: `C:/Users/wojtek/foo.livemd`. Opening
it: (ignore it's not escaped)

    http://localhost:4000/open?path=C:/Users/wojtek/foo.livemd

would have failed with:

    ** (ArgumentError) expected an expanded absolute path, got: "C:/Users/wojtek/foo.livemd"

and that's because absolute paths (in other words, Path expanded) start
with `c:/`, not `C:/`.
2022-03-02 11:37:07 +01:00
Jonatan Kłosko
1dc7c43b70
Simplify user modals (#1034)
* Simplify user modals

* Naming
2022-03-02 00:43:06 +01:00
Jonatan Kłosko
d191b7eb9d
Set up confirmation modals (#1033)
* Set up confirmation modals

* Add temporary fix for the global hook remount
2022-03-02 00:26:40 +01:00
Jonatan Kłosko
9d7fe44253
Introduce smart cells (#1029)
* Introduce smart cells

* Apply review comments
2022-02-28 13:53:33 +01:00
Jakub Perżyło
4fcdeb6bcf
Changed filesystems config manipulation to use ids (#1017)
* Changed filesystems mainpulation to use ids

* Adjusted to review

* Added filesystem ordering

* Apply suggestions from code review

* Format

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-22 22:42:54 +01:00
Jonatan Kłosko
0386a032a1
Reinitialize hooks on reconnection (#1018)
* Reinitialize cells on reconnection

* Send initial session data without additional roundtrip
2022-02-21 20:39:29 +01:00
Jonatan Kłosko
797befe28f Fix undesired scrollbar on the homepage 2022-02-19 01:30:08 +01:00
Cristine Guadelupe
d775908a48
Adds role button to cell link button (#1010) 2022-02-17 23:39:38 -03:00
Cristine Guadelupe
b32b363ed1
Improves cell accessibility (#1009)
* Reads the output after a cell has been evaluated

* Creates SR landmarks when errors happen

* fixes formatting

* Reads a clearer message when a runtime restart is required

* Update lib/livebook_web/live/session_live/cell_component.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-17 19:37:14 -03:00
Cristine Guadelupe
72da7da3b5
Live region for home page (#1007)
* Live region on home

* Live region: bulk actions

* Live region: ordered by info

* Makes the live region helper global
2022-02-16 15:50:32 -03:00
Cristine Guadelupe
2f9dd73a7b
New bin modal (#997)
* New empty bin modal

* New bin modal

* Smaller buttons

* Conditional rendering improvements
2022-02-11 09:49:00 -03:00
Jonatan Kłosko
fb0c96fa99
Speed up tests (#996)
* Close sessions created during tests

* Change live_patch to live_redirect where applicable
2022-02-10 15:36:59 +01:00
Jonatan Kłosko
ca27bb157f
Refactoring (#994)
* Group all runtime messages under a common prefix

* Move output specification ot the Runtime protocol

* Update doc comments

* Livebook.Evaluator -> Livebook.Runtime.Evaluator

* Livebook.ContentLoader -> Livebook.Notebook.ContentLoader

* Livebook.UniqueTask -> Livebook.Utils.UniqueTask

* Add import/export delegates to Livebook.LiveMarkdown
2022-02-10 12:15:41 +01:00
Jonatan Kłosko
e5e13d86c2
Serve iframes from another local port when running on http (#989)
* Serve iframes from another local port when running on http

* Use relative hostname in local iframe URL

* Simplify server start check

* Use random iframe port when Livebook runs on a random port

* Rename space/ to iframe/

* LivebookWeb.IframePlug -> LivebookWeb.IframeEndpoint
2022-02-08 14:45:58 +01:00
Jonatan Kłosko
ccc64876a8
Add support for widget binary payloads (#982)
* Add support for widget binary payloads

* Migrate LV auth to a separate hook

* Properly set user buffer when encoding
2022-02-07 21:03:25 +01:00
Cristine Guadelupe
904a21a761
Accessibility improvements - home page (#979)
* Accessibility improvements on home page

* Unique ids for file info path buttons

* Improves navigation for screen readers in the session list

* Landmarks navigation for screen readers

* Headings navigation for screen readers

* Group navigation - running sessions list

* Fix typo

* Minor adjustments based on review suggestions
2022-02-04 13:05:38 -03:00
Benjamin Philip
1a0b9e0f7d
Allow downloading source from sessions list (#980)
* Support downloading source on a per session basis

* Update session_list_component.ex

* Add test

* Update lib/livebook_web/live/home_live/session_list_component.ex

* Update test/livebook_web/live/home_live_test.exs

Co-authored-by: José Valim <jose.valim@gmail.com>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-04 11:36:09 +01:00
José Valim
37cb549d02 Use guards for checking live action 2022-02-04 00:01:45 +01:00
José Valim
995082b9ab
Add data-keep-attribute to reapply attribute on morphdom patch (#978) 2022-02-03 23:25:12 +01:00
Julian Gomez
358bdb3267
Export with title or file name (#870)
* Export file with title or file name

* Export with title or file name

* Add Session.file_name_for_download/1

* Compute the name without calling the server

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-03 21:17:30 +01:00
gpopides
be1fce326c
Pass file or directory as open command (#969)
* caputre directory from params

* set file if file parameter is a file

* set file param

* docs

* partial review changes

* apply review changes

* add tests and rename file to path

* formatting

* applied feedback + fixed test

* Apply suggestions from code review

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-02-03 20:26:18 +01:00
Milo Lee
20bcac1184
Make textarea resizable (#970) 2022-02-02 14:12:50 +01:00
José Valim
aaa4f406bf Do not assume autosave path exists 2022-01-31 12:00:14 +01:00
José Valim
efdbf67f59
Introduce LIVEBOOK_HOME and LIVEBOOK_DATA_PATH (#963)
And move the relevant configurations to settings.
2022-01-31 11:51:57 +01:00
Jakub Perżyło
86e4034f33
Persistent storage (#937)
Start moving filesystems as an initial implementation.
2022-01-30 19:51:03 +01:00
José Valim
d2344a5c3b
Improve memory tracking and address race conditions (#957)
1. Allow multiple sessions to close or disconnect at once,
     and then request the system resources to be updated

  2. Make sure that closing a session happens synchronously,
     otherwise a race condition could still list the closed
     session in a dashboard

  3. Ensure close and disconnect can happen more than once
     (for example if two users click the same button at the
     same time)
2022-01-30 12:47:50 +01:00
Jonatan Kłosko
4d70e5cceb
Test and typing improvements (#949)
* Minimize race condition in the frame update test

* Use defmacrop for building intellisense context

* Remove unnecessary cell view computation

* Fix nested assets resolution

* Fix typing errors

* Add missing async attribute to test suites

* Improve rendering synchronization

* Up
2022-01-29 16:39:41 +01:00
Cristine Guadelupe
4dd28388a5
Bulk actions for sessions (#939)
* Initial implementation to close multiple sessions

* Sessions: bulk actions with components

* Rename Disconnect sessions to Disconnect runtime

* Select all and disabled when nothing is selected

* Styled checkbox

* Renames toggle events

* Warning about not persisted notebooks

* Adds disconnect runtime option for a single session

* Edit sessions on right

* Fix: typos and plural

* Minor adjustments

* Removes the loop for rendering the menu

* Menus with fixed width

* Minor adjustments

* Pluralize as global helper

* Bulk actions form on client side

* Track bulk actions buttons state

* Fix: home live tests

* Doctests for pluralize

* Fix: bulk actions buttons losing state on session update

* Fix: format

* Minor adjustment on toggle_edit

* Review-based adjustments

* Reset the Edit state after single-session actions

* Minor adjustments

* Fixes bulk action events

* Submit the bulk action form directly

* Tests for bulk actions

* Indentation

* Update lib/livebook_web/live/home_live/close_session_component.ex

Co-authored-by: José Valim <jose.valim@gmail.com>

Co-authored-by: José Valim <jose.valim@gmail.com>
2022-01-28 17:45:04 -03:00
Jonatan Kłosko
f8a216f8ee
Highlight code errors on formatting and evaluation (#948) 2022-01-28 21:00:31 +01:00
Jonatan Kłosko
7fc8f24d2c
Fix image uploads in Markdown cells (#945)
* Fix call to consume_uploaded_entries to match changes in LV

* Escape reserved characters when inserting image in a Markdown cell
2022-01-27 15:47:04 +01:00
Jonatan Kłosko
00c2cfb31a
Improve errors formatting (#936)
* Use monospaced font and wrapping for errors

* Improve function clause error format
2022-01-25 21:55:24 +01:00
Joe Martinez
961581bfc7
bump phoenix_live_view to 0.17.6 (#919)
* bump phoenix_live_view to 0.17.6

* revert change to static dir

* fix deprecation warning
2022-01-24 11:30:07 +01:00
Cristine Guadelupe
c2feceba37
Redesign the memory info chart on home (#918) 2022-01-22 17:46:53 -03:00
José Valim
c58ab447e5 Compute memory information on every session list render 2022-01-22 18:30:37 +01:00
José Valim
70a9a95d4e
Improvements to memory tracking (#917)
* Address race condition on cancel timer
* Include memory measurement as part of evaluation metadata
* Move periodic resource computation to a single process
* Have a explicit call out for total memory
2022-01-22 17:17:20 +01:00
Cristine Guadelupe
6180bb1ff2
Track memory usage - visualization (#898)
* Utils to fetch and format system and node memory usage

* Order by memory

* Track memory on session

* Show memory usage on runtime sidebar

* Shows memory usage percentage on home

* Layout adjustments

* Sidebar design adjustments to match Figma

* Home design adjustments to show the memory information

* Move memory calculations to utils

* Shows disconnected notebooks as consuming 0mb on home

* Simplifies the data structure of memory usage

* Node memory tracker on runtime

* Clean up

* Renames node memory to runtime memory

* Standardizes the data structure of memory usage

* Sends evaluation_finished to the runtime to update the memory usage after an evaluation

* Fix: The evalutor does not notify when there is no notify_to option

* Adds a test with the notify_to option to the evaluator

* Documents the notify_to option

* Minor fixes on runtime and runtime_server

* Minor fixes on sessions

* Minor adjustments

* Updates docs and specs on Utils

* Minor adjustments on session_live

* Fix total memory used by sessions on home

* Put duplicated functions on helpers

* Better filter by memory

* Fix the tooltip text for memory information on sidebar

* Minor alignment adjustment on home
2022-01-21 19:24:47 -03:00
Jonatan Kłosko
5411035937
Remove unnecessary scrollbar in Mix runtime modal (#903) 2022-01-20 11:35:54 +01:00
Jonatan Kłosko
a9f9c68cfa
Compute iframe base URL based on page origin (#902)
* Compute iframe base URL based on page origin

* Format
2022-01-20 11:29:45 +01:00
Jonatan Kłosko
ae0f083c5c
Fixes (#889)
* Fix title test

* Fix editable element check

* Fix duplicate output ids
2022-01-19 14:43:35 +01:00
Jonatan Kłosko
3a0d77d879
Disable keyboard control when an editable element is focused (#885) 2022-01-19 13:05:21 +01:00
Jonatan Kłosko
89ca95be10
Reuse DOM elements when replacing frame outputs (#881)
* Reuse DOM elements when replacing frame outputs

* Keep less persistent indices
2022-01-18 15:13:50 +01:00
Jonatan Kłosko
6e570ed05b
Improve branch selection menu (#882) 2022-01-18 15:12:09 +01:00
Jonatan Kłosko
fe0bf660a2
Remove outputs from the page on erase outputs (#878) 2022-01-17 17:13:29 +01:00
José Valim
0c61f4dec0 Normalize explorer fonts 2022-01-17 17:11:06 +01:00
Jonatan Kłosko
d450444f04 Fix global indicator colors 2022-01-17 14:19:20 +01:00
Jonatan Kłosko
c57e5448b7
Remove old output formats (#876)
* Remove old outputs

* Remove other occurrences
2022-01-17 13:24:59 +01:00
Jonatan Kłosko
6d1d4de767
Push cells source to the client on initial render (#875) 2022-01-17 13:20:59 +01:00
Jonatan Kłosko
6615422613
Restructure frame output (#857)
* Restructure frame output

* Reboot JSComponent when ref changes

* Prune outputs from LV, handle frame and stdout updates via component messaging

* Keep ANSI modifiers as keyword list

* Don't re-render pruned outputs

* Improve empty frame styling

* Use more specific id

* Add clarification on trailing CR

* Handle output group borders with CSS

* Keep only relevant outputs in memory

* Adjust borders

* Update lib/livebook/live_markdown/import.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Apply review comments

Co-authored-by: José Valim <jose.valim@dashbit.co>
2022-01-16 20:37:00 +01:00
José Valim
68e81356f6
Improvements to theme (#871) 2022-01-16 12:40:14 +01:00
Jonatan Kłosko
35e42d1bad
Keep editor background on rerender (#869) 2022-01-15 23:08:45 +01:00
Cristine Guadelupe
67fa155f3d
High-contrast option for the code editor (#868)
* High-contrast option for the code editor

* Small refactor

* Creates a high-contrast theme from the custom theme

* Refactor to store the theme as a string

* Fix prettier
2022-01-15 18:46:25 -03:00
Cristine Guadelupe
36aab4357c
Adds an option to increase the font size of the editor (#860)
* Adds an option to increase the font size of the editor

* Update lib/livebook_web/live/settings_live.ex

Co-authored-by: José Valim <jose.valim@gmail.com>

* Editor font size options as constants

Co-authored-by: José Valim <jose.valim@gmail.com>
2022-01-13 15:06:50 -03:00
Cristine Guadelupe
9690e2ac51
Minor design improvements (#858)
* Adds the greens and yellows from the custom color palette

* Keeps the cell status indicators with the original bright colors

* Increases icon-button contrast

* Increases labeled_text font-size

* Removes type: button to fix the runtime sidebar buttons style on Safari

* Increases the toggleable menu contrast on hover

* Use the same color for the stale state in the sections sidebar
2022-01-13 15:06:11 -03:00
José Valim
dbe4fdeda4
Add shutdown button (#862)
The button only appears on interactive mode because
we assume embedded mode is running inside a release
or similar.
2022-01-13 12:22:34 +01:00
José Valim
a1c5521115
Fix about section in settings (#861) 2022-01-13 12:02:06 +01:00
Jonatan Kłosko
fc20b662ce Fix dashboard path 2022-01-12 20:16:27 +01:00
Julian Gomez
bf94998d83
Add current version section to settings page (#851)
* Add version section to settings

* Add System Settings Version subsection

* Apply suggestions from code review

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-01-12 13:28:10 +01:00
Jonatan Kłosko
118cf05d0a
Introduce broadcast communication from runtime (#845)
* Introduce broadcast communication from runtime

* Return broadcast target from group leader

* Increase timeout

* Make the channel test async

* Decouple base topic and ref
2022-01-10 18:38:08 +01:00
Daniel Kukula
618593158d
Set page name when notebook is renamed (#844)
* override tab name when notebook is renamed

* set page_title in after operation function

* add custom page title to all live pages

* Revert "override tab name when notebook is renamed"

This reverts commit 90303e08a8.

* add test for update
2022-01-06 18:37:55 +01:00
Jonatan Kłosko
19baf013d5
Introduce a dedicated channel for JS widget communication (#843)
* Introduce a dedicated channel for JS widget communication

* Handle payload serialization errors

* Tie channel lifetime to the session

* Catch serialization errors instead of encoding twice

* Merge JS static and dynamic outputs

* Authenticate socket connection from session

* Update JS output format

* Remove unused helper

* Apply review comments
2022-01-06 16:31:26 +01:00
Jonatan Kłosko
6d82e9e53d
Remove output border from dynamic JS widgets (#842)
* Remove output border from dynamic JS widgets

* Show borders on regular text outputs only

* Increase assertion timeout
2022-01-04 13:28:31 +01:00
Jonatan Kłosko
53869371c2
Update dependencies (#838)
* Update Elixir deps

* Update JS dependencies

* Bump Tailwind to v3

* Update Hex badge color

* Set SameSite for the session cookie
2021-12-29 22:06:19 +01:00
Jonatan Kłosko
d5d4e739d1
Improve errors on reconnecting Mix runtime (#837) 2021-12-29 14:04:51 +01:00
Jonatan Kłosko
145f8a6992
Focus fixes (#831) 2021-12-28 19:42:04 +01:00
Jonatan Kłosko
5670e5ccb6
Group Kino notebooks under their own section (#830) 2021-12-27 21:01:31 +01:00
Lee Jarvis
4bacba6b1d
Remove delete prompt for empty sections (#829)
* Remove delete prompt for empty sections

If a section has no cell views or only empty cell views, avoid
prompting the user to delete the section and just go ahead and delete
it.

Closes #800

* Move delete prompt logic to SessionLive

This avoids creating two separate paths in the view for displaying
delete buttons (triggering either a prompt, or deleting the empty
section).

Instead, the `delete_section` callback is always triggered, and the
"display prompt" logic is kept here.

Couple of things I'm unsure about so will discuss on the PR.

See https://github.com/livebook-dev/livebook/pull/829#discussion_r775560671

* Check only against empty cell list in `delete_section`

* Fix indentation

* Handle section not existing on deletion

* Match empty cell list in case expression

Also explicitly set the section and then re-use it. I think this is a
bit nicer than just matching against the empty list since it matches
the following match too
2021-12-27 18:42:27 +01:00
Benjamin Philip
fc3fad6543
Disable Choose button if draft file is a directory (#823)
* Disable Choose button if draft file is a directory

* Fix warnings

* Decide if choose is disabled on handle info

* Revert "Decide if choose is disabled on handle info"

This reverts commit 43a2cbc5ea.

* Use the disabled attribute
2021-12-24 23:53:48 +01:00
Jonatan Kłosko
844242ba80
Add support for JS output widgets (#818)
* Add support for JS output widgets

* Don't block session when fetching assets and batch calls

* Improve path component sanitisation

* Move fetching check to session caller

* Attach origin to connect and event messages
2021-12-24 14:18:34 +01:00
Benjamin Philip
1f6a75c4e3
Do not show choose file button if file select component is active (#821) 2021-12-23 12:29:49 +01:00
Jean Carlos
aa8f431608
Added margin on copy button (#796)
* fix handleDocumentFocus error

* format correction

* Update assets/js/session/index.js

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

* format correction

* Update assets/js/session/index.js

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

* Move basic view to the top

* Added margin on copy button

* Update lib/livebook_web/live/output/text_component.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

* Update lib/livebook_web/live/output/text_component.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-12-12 20:26:10 +01:00
Jonatan Kłosko
b0563d14a6
Fix completion shortcuts (#792)
* Fix completion shortcuts

* Remove shortcut override
2021-12-12 00:10:15 +01:00
Jonatan Kłosko
6f53e3db6a
Add support for form control (#790)
* Add support for form control

* Handle report_changes map

* Assert on input/control events
2021-12-12 00:09:35 +01:00
Jean Carlos
1d6348d7f1
Move basic view in the shortcut pane to the top (#791)
* fix handleDocumentFocus error

* format correction

* Update assets/js/session/index.js

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

* format correction

* Update assets/js/session/index.js

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>

* Move basic view to the top

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-12-11 01:57:54 +01:00
Jonatan Kłosko
a133a7070d
Use different icon when output is amplified (#775) 2021-12-08 16:30:52 +01:00
Kevin
c9b21f221d
Update file infos then running_files changed (#772) 2021-12-08 13:53:31 +01:00
Kevin
feb0ac214e
Fix error on back after closing session (#769)
* Fix error on back after closing session

Clicking the browsers back button after closing a session
resulted in an error since it was trying to close an already closed notebook

* Overwrite back history on section delete
2021-12-08 13:17:50 +01:00
Jonatan Kłosko
89ea67861f
Improve "changed" indicator and batch evaluation shortcuts (#766)
* Make cell status italic when content changed

* Add Ctrl+Shift+Enter for evaluating all cells

* Improve the behaviour of evaluating all cells

* Fix typo
2021-12-07 19:14:32 +01:00
Kyungyeol Kim (Bret)
a5cb366c73
Fix class name in import_file_uploader_component (#762) 2021-12-06 12:38:39 +01:00
Jonatan Kłosko
d909272746
Improve completion (#747)
* Add keywords to completion

* Fix signature request caching for call without parentheses

* Don't insert parentheses for def* macros

* Don't trigger missing runtime message when auto completion is enabled

* Don't insert parentheses for keyword macros

* Improve completion of env macros

* Apply review comments

* Update locals without parentheses

* Apply suggestions from code review

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Format

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-12-05 14:58:30 +01:00
ryg-git
2fe9ca73c7
Fix typo in keyboard shortcuts modal (#751) 2021-12-05 12:50:28 +01:00
Jonatan Kłosko
f0606b109d
Automatically back up notebooks without a file (#736)
* Improve file select layout on long paths

* Automatically back up notebooks without a file

* Run formatter

* Add margin when there are no sections

* Add an informative note about autosave directory

* Store autosave path instead of file in the config

* Rename autosave dir to autosave path

* Fix insert mode escape on section headlines

* Show ellipsis on selected file too

* Always create the default directory

* Apply review comments
2021-12-04 16:29:14 +01:00
Jonatan Kłosko
e2490c0f7f
Implement signature intellisense (#640)
* Remove Code.Fragment backport

* Fix tests compatibility with Elixir 1.13

* Implement signature intellisense

* Don't show signatures on module attributes

* Add tests for calls with do-end block

* Unify spec formatting

* Insert parentheses when completing a function call

* Send all text until cursor in signature request

* Add configuration for completion/signature popups (#693)

* Add editor settings form

* Add configuration for intellisense defaults

* Read fresh settings when editor mounts

* Scope attribute names

* Fix disabled button styling

* Simplify signature box and enable by default

* Split settings into system and user sections

* Update lib/livebook_web/live/settings_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Update lib/livebook_web/live/settings_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Fix spacing in documentation tests

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-12-03 21:57:21 +01:00