* 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
* 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
* 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>
* 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
* 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>
* 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>
* 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
* 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
* 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
* 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
* Make cell status italic when content changed
* Add Ctrl+Shift+Enter for evaluating all cells
* Improve the behaviour of evaluating all cells
* Fix typo
* 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
* 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>
* Added range input (Slider)
* Added range input (Slider)
* Custom css to range input
* Formatting correction
* Defined min and max values of input range
* Revert "Defined min and max values of input range"
This reverts commit 815167ab0f.
* Added input select
* working with a options like list
* Formatting correction
* swapped li for inputs in input settings
* Removed unused attribute
* Final adjustments
* Improve users connected display
* Update lib/livebook_web/live/session_live.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Update lib/livebook_web/live/session_live.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Adjust elements
* Change favicon based on notebook status
* Format correction
* "operation" is unused
* Improvements for better functioning of icons
* Renamed icons files
* Update favicons
* Update changelog
* Show indicators of state on session sidebar
* Changes to status colors
* Improve spacing
* Scroll to cell on status click
* global_evaluation_status -> global_status
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Show reconnect for all runtime types when applicable
* Make it clear which runtime is the default
* Show Mix.install restart suggestion only for standalone runtimes
* Fix tests not to rely on the default runtime tab
* Added automatic evaluation
* apply review changes
* persist reevaluate_automatically and update test
* test for automatic reevaluation
* formatting
* Add import test
* Always show if a cell automatically reevaluates and link to settings
* Evaluate automatically reevaluating cells after queuing
* Always show evaluate button when cell is fresh
* Update icon
* Add test ensuring that fresh cells don't evaluate automatically
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* add scroll behavior to html, body, & notebook elems
* don't append base url or set target on intra-page links
* add back-to-top link, class autosorting/formatting
* add convert global style to `.scroll-smooth` util
* add `isPageAnchor` function
* remove `go-to-top` link
* use `isAbsoluteUrl` and add a semicolon ;)
* adding a disabled delete button for sections that have branches
* Apply suggestions from code review
* Update assets/css/components.css
* Apply suggestions from code review
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Use Phoenix.Tracker to keep track of sessions within the cluster
* Apply review comments
* Cleanup topics and updates
* Update lib/livebook_web/live/session_live.ex
* Introduce file system abstraction and an S3 implementation
* Support arbitrary absolute paths and delegate resolution to file system
* Remove accidental notebook file
* Apply suggestions from code review
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Apply review comments
* Add missing path assertions
* Apply review comments
* Fix test saving notebook in project root
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Add option to export outputs in Live Markdown
* Add outputs option to Live Markdown export tab
* Adjust import to handle outputs
* Apply review comments
* Added range input (Slider)
* Added range input (Slider)
* Custom css to range input
* Formatting correction
* Defined min and max values of input range
* Revert "Defined min and max values of input range"
This reverts commit 815167ab0f.
* Added input select
* working with a options like list
* Formatting correction
* swapped li for inputs in input settings
* Removed unused attribute
* Final adjustments
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Introduce branching sections
* parent_index -> branch_parent_index
* Flip the branch icon
* Don't mark branching sections as aborted if the main flow crashes
* Outline more details about branching sections in the Elixir and Livebook notebook
* Add branch indicator to the sections sidebar
* Update phoenix deps
* Update reference to LiveDashboard encode_pid
* Fix form input id references
* Move to HEEx
* Update back to filesystem LV npm package
* Further HEEx rewrites
* Refactor icons into function components
* .html.leex -> .html.heex
* Further refactoring
* Move render helpers into function components
* Add doctype back
* Further refactoring
* Refactor cell component
* Further refactoring
* Compose sidebar using function components
* Rewrite notebook card component as function component
* Fruther refactoring
* Fix race condition in runtime tests
* Rewrite tooltips into function component
* Update Tailwind purge rules
* Revert "Rewrite tooltips into function component"
This reverts commit bd6ca8f0b5.
* Refactor conditional tooltip
* Implement cells bin
* Temporarily keep cells source
* Send complete bin entries from session to clients when a cell gets removed
* Polish styles
* Hydrate bin entries on section deletion as well
* Add password input
* Save empty string for password in .livemd file
* Update lib/livebook_web/live/session_live/cell_component.ex
* Changed radio button it to select
* Changed radio button it to select
* Moved select it to the top
* Keep the elements in the select ordered
* Update lib/livebook_web/helpers.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Update lib/livebook_web/live/session_live/input_cell_settings_component.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Update lib/livebook_web/live/session_live/input_cell_settings_component.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Add textarea input
* Add textarea input
* Added operation in the io_proxy to IO.getn
* Update lib/livebook/evaluator/io_proxy.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Update lib/livebook_web/live/session_live/cell_component.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Update lib/livebook_web/live/session_live/cell_component.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Support for utf8 characters in getn function
* Support for utf8 characters in getn function
* Perform test with special characters
* Accepting latin1 and unicode values
* Update lib/livebook/evaluator/io_proxy.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Added split_at function for better performance
* Update lib/livebook/evaluator/io_proxy.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
Co-authored-by: José Valim <jose.valim@gmail.com>