Commit graph

111 commits

Author SHA1 Message Date
Jonatan Kłosko 86316e9460
Add code formatting integration to Elixir cells (#416) 2021-07-01 11:50:04 +02:00
Jonatan Kłosko cb151fdaa2 Improve Bin sizing 2021-06-30 22:07:57 +02:00
José Valim 42a3ac2675 Add scrollbar and spacing on Bin 2021-06-30 20:20:08 +02:00
José Valim 8dc142f6d5 Fix placement and remove double scroll bars 2021-06-30 20:06:33 +02:00
Jonatan Kłosko 2ff327e742
Implement cells bin (#414)
* 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
2021-06-30 17:48:27 +02:00
Jonatan Kłosko 44dc3d9041
Improve section management (#411)
* Allow inserting section anywhere in the notebook

* Improve section deletion

* Polishing

* Remove section insertion shortcuts
2021-06-28 23:46:50 +02:00
mcintyre94 4241866b5d
Add support for a color input type (#410)
This renders as input type=color, and stores a 6 digit hex color with leading hash
2021-06-28 20:05:56 +02:00
Jonatan Kłosko 73a79cbdae
Add support for markdown output (#404)
* Add support for markdown output

* Make cell indicator absolute

* Update output typespec

* Move rendering to the client

* Polishing
2021-06-26 16:47:52 +02:00
Jonatan Kłosko c674a0ec5d
Normalize textarea newlines (#402)
* Normalize textarea newlines

* Add test
2021-06-26 00:53:12 +02:00
Jean Carlos fb8c6e695d
Added Textarea Input (#382)
* 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>
2021-06-25 10:24:20 +02:00
Jonatan Kłosko 6c53c09a61
Add copy to clipboard button to virtualized output (#393)
* Add copy to clipboard button to virtualized output

* Move text output into its own component

* Update button background
2021-06-24 12:15:12 +02:00
Jonatan Kłosko 4ca6f9eb5e
Implement reactive input (#389)
* Implement reactive input

* Store reactive attribute only when truthy

* Polishing
2021-06-24 11:58:13 +02:00
Ben Reinhart 3332b39670
Bump the modal's z-index (#387)
* Bump the modal's z-index

* Simplify zIndex for one-off usecase
2021-06-23 16:28:40 +02:00
Ben Reinhart 4b84a8176d
Retain newlines in cell output markup for copy/paste (#385)
* Retain newlines in cell output markup for copy/paste

* Move line break

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

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-06-23 01:25:46 +02:00
Jonatan Kłosko 7024d22253
Add support for image output (#380) 2021-06-22 18:03:01 +02:00
Jonatan Kłosko 6d0da78370
Make it possible to mark evaluating cell as stale upfront (#378)
* Make it possible to mark evaluating cell as stale upfront

* Show evaluation time on stale cells as well
2021-06-22 15:06:16 +02:00
Jonatan Kłosko 258c91be8c Adjust dynamic table styles 2021-06-21 14:56:19 +02:00
Jonatan Kłosko 8415ba311e
Show ticking timer while cell is evaluating (#374) 2021-06-20 17:06:30 +02:00
Jean Carlos e538bd6c93
Changed radio button it to select (#373)
* 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>

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-06-20 15:33:10 +02:00
Shavit a104d9d73b
Show the evaluation time next to the cell indicator (#366)
* Display the time in seconds

Show the evaluation time next to the cell indicator

* Test session data

* Send evaluation time to session

Start the evaluation time inside the evaluator, display the time in seconds
or milliseconds.

The output is not a string but a map

* Add metadata to evaluation_response

* Wrap the evaluation indicator in a tooltip

  • Add metadata argument to the evaluation_response message
  • Use a tooltip to display the evaluation time

* Display the toolip below the indicator

* Remove the evaluation start time

* Make the tooltip optional

* Rename finish_cell_evaluation

* Evaluator tests

* Update test to accespt metadata

* Pass the evaluated time as a third argument

* Make status tooltip more generic

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-06-20 14:48:00 +02:00
Jonatan Kłosko cbdc91d68d
Show insert actions when hovering over free space between cells (#369) 2021-06-18 16:14:20 +02:00
Jonatan Kłosko 56c087e79a
Improve section links behaviour (#367)
* Limit the impact of section html id changing

* Make sure section links scroll to section after loading finishes
2021-06-18 13:21:48 +02:00
Jonatan Kłosko 137deeb12f
Enforce string values in dynamic tables (#363)
* Enforce string values in dynamic tables

* Explicitly convert values to string
2021-06-17 18:49:58 +02:00
Jonatan Kłosko 6f724f7146
Make table refetch an optional feature (#358) 2021-06-17 13:21:09 +02:00
Jean Carlos 511a47e238
Add password input (#357)
* Add password input

* Save empty string for password in .livemd file

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

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-06-17 01:30:39 +02:00
Jonatan Kłosko b18c1579bd
Add dynamic table output (#356)
* Add dynamic table output

* Support table name
2021-06-17 01:02:27 +02:00
Wojtek Mach 8cf8f2697c
Use <kbd> for keyboard keys (#351)
* Use <kbd> for keyboard keys

* Show keyboard icon

* Render each key explicitly

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

Co-authored-by: Wojtek Mach <wojtekmach@users.noreply.github.com>

* Add Livebook specific icons to the introductory notebooks

* More updates

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-06-16 13:31:53 +02:00
Jonatan Kłosko e75ef5f339
Add numeric input (#352) 2021-06-16 12:28:47 +02:00
Jonatan Kłosko 2b2d6c9d50
Show consistent user avatar on initial page load (#349) 2021-06-15 19:33:16 +02:00
Jonatan Kłosko adb9612fbe
Add link pointing to a new notebook (#347)
* Add link pointing to a new notebook

* Add test
2021-06-14 21:25:18 +02:00
Jonatan Kłosko 6274731c8d Make sure session is forked with complete data 2021-06-10 20:03:47 +02:00
Jonatan Kłosko e02bcce0bf
Drop cell source text from data in LV when no longer needed (#342) 2021-06-10 15:41:40 +02:00
Jonatan Kłosko b0bd7540c0
Compute cell source digest on the client (#341) 2021-06-10 14:54:55 +02:00
José Valim d0c47557a2
Warning on Mix.install for Mix standalone (#336) 2021-06-09 16:51:53 +02:00
Jonatan Kłosko 11246cdb8f
Add an option to preload session images from memory (#329)
* Add an option to preload session images from memory

* Remove images
2021-06-08 13:28:53 +02:00
Jonatan Kłosko 8dea99e600
Support inputs (#328)
* Render basic input

* Make each cell type a separate struct

* Add operation to set input value

* Prototype communication

* Make input name editable

* Refactoring

* Unify cell attribute setters

* IO tests

* Document input communication protocol in Runtime

* Add more tests

* Add persistence

* Fix status update on cell attributes change

* Rework persistence

* Integrate input cell with insert mode

* Add missing users keybinding

* Mimic autofocus for dynamically inserted elements

* Support input type selection

* Support URL input and set up validation

* Convert input error into a more meaningful io error

* Add missing client checks

* Consume every input only once per evaluation

* Fixes
2021-06-08 12:33:50 +02:00
Jonatan Kłosko da64f51589
Show an informative message on completion when there is no runtime (#316) 2021-06-03 19:43:22 +02:00
Jonatan Kłosko 91a9f62fb9 Make images in explore cards clickable 2021-06-03 14:55:25 +02:00
Jonatan Kłosko c07da9880c
Update LV version and remove deprecations (#312)
* Bump LiveView

* Remove deprecated socket argument to live_component

* Point to an exact LV version
2021-06-03 13:53:03 +02:00
Jonatan Kłosko f70581f255
Introduce an Explore section (#310)
* Add explore page

* Move sidebar to a configurable component

* Fix homepage test

* Add images

* Store example notebooks in files and make explore notebooks linkable

* Fix tests

* Raise on invalid notebook slug

* Keep just the file contents in notebook info

* Move notebook lookup to Explore

* Exclude notebooks in progress
2021-06-02 21:51:43 +02:00
Jonatan Kłosko 80bed1aa06
Delegate output formatting rules to Kino (#309)
* Delegate output formatting rules to Kino

* Update naming

* Group output components and views

* Fallback to inspect when Kino.Render.to_output/1 fails

* Update naming

* Add reference to Kino
2021-06-01 17:47:03 +02:00
Jonatan Kłosko ce7adef7e4
Add VegaLite widget integration (#306)
* Add support for LiveWidget.VegaLite

* LiveWidget -> Kino

* Show an error when rendering unsupported Kino widget

* Match on Kino.Widget

* Add catch-all for unknown outputs
2021-05-31 22:48:05 +02:00
Jonatan Kłosko 617a51e723
Fix completion shortcut listing for mac (#291) 2021-05-24 15:45:28 +02:00
Brian Underwood 8dfe12da68
Change anchor tags for sections to be based on the titles, not randomly generated (#288)
* Change anchor tags for sections to be based on the titles, not randomly generated

* Update lib/livebook_web/helpers.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-05-23 18:22:55 +02:00
Jonatan Kłosko 7804ff1d82
Set up Vega-Lite plots rendering (#287)
* Set up Vega-Lite plots rendering

* Automatically recognise VegaLite specification

* Improve matching VegaLite result

* Update naming

* StringFormatter -> DefaultFormatter
2021-05-21 17:51:31 +02:00
Jonatan Kłosko 1a1057153e
Optimise data view recomputation for delta operations (#286)
* Optimise data view recomputation for delta operations

* Use generic access_by_id/1 for nested updates

* Use access_by_id/1 for nested notebook updates

* Use Enum.split_while
2021-05-21 14:56:25 +02:00
José Valim 7416975376
Infer short vs longname from actual node and use longname in example (#284) 2021-05-21 13:03:47 +02:00
José Valim 00edceafc9
Update import URL text (#282) 2021-05-21 08:11:53 +02:00
Jonatan Kłosko ea93edcc86
Add embedded runtime for evaluating code in the Livebook VM (#266)
* Add embedded runtime for evaluating code in the Livebook VM

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

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

* Use standard error proxy globally in the Livebook node

* Add configuration env variable for setting the default runtime

* Increase evaluation response assertion timeouts

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-05-10 14:37:38 +02:00
Jonatan Kłosko cd80bd7804
Implement user cursor and selection tracking (#260)
* Implement user cursor and selection tracking

* Separate jump-to-user and follow
2021-05-07 16:41:37 +02:00