Commit graph

502 commits

Author SHA1 Message Date
Jonatan Kłosko e78b3a930c
Move more styles to components (#1723) 2023-02-23 19:07:00 +01:00
Jonatan Kłosko 5b5593a54b
Update to Phoenix 1.7 (#1720) 2023-02-22 19:34:54 +01:00
Jonatan Kłosko 7cac0557b9
Keep setup cell open on error (#1718) 2023-02-21 13:17:54 +01:00
Jonatan Kłosko 9aa72eb1d1 Update mermaid 2023-02-20 12:44:28 +01:00
Jonatan Kłosko 4334e8a58e
Add access control to apps (#1715)
Co-authored-by: José Valim <jose.valim@dashbit.co>
2023-02-18 01:16:42 +01:00
Jonatan Kłosko 40c5044a60
Add initial support for apps (#1709) 2023-02-16 13:47:46 +01:00
Jonatan Kłosko 12f2322d08 Pass allowed URI schemes to Markdown outputs and update naming 2023-02-15 22:18:13 +01:00
GitStart 0990ab4cb2
Support allowlist for hyperlink schemes in Markdown content (#1702) 2023-02-15 22:16:38 +01:00
Jonatan Kłosko 5fe1c9a81d
Make emoji picker easier to close (#1711) 2023-02-14 16:35:06 +01:00
Jonatan Kłosko 45af59d084
Bump Monaco Editor (#1700) 2023-02-09 14:08:24 +01:00
Jonatan Kłosko 597d9fff3f
Cancel scheduled evaluation on error (#1688) 2023-02-03 21:04:13 +01:00
Slamet Kristanto b52710ca63
Expose global monaco instance for firenvim plugin support (#1642) 2023-01-15 22:09:51 +01:00
Alexandre de Souza ae3a5661a8
Implement emojis instead of colors (#1636) 2023-01-12 17:37:12 -03:00
Jonatan Kłosko d8efd348e9
Render inline math in on-hover docs (#1635) 2023-01-10 20:30:04 +01:00
Jonatan Kłosko 17ab1ae472
Add support for file input (#1622) 2023-01-04 21:44:04 +01:00
Jonatan Kłosko 9f14beaf7b Exit insert mode when opening package search 2023-01-03 18:52:22 +01:00
Jonatan Kłosko 2e230c9deb
Add an option to run setup with no cache (#1616) 2023-01-03 12:24:22 +01:00
Jonatan Kłosko 8b3d8847c1
Add support for audio input (#1610) 2022-12-29 15:09:09 +01:00
Jonatan Kłosko 2048ec9f63
Update dependencies (#1613) 2022-12-29 13:10:28 +01:00
Jonatan Kłosko 3eb21f8757
Load JS view iframe only once in viewport (#1607) 2022-12-25 14:31:40 +01:00
Cocoa 262381fcc0
Adding support for capturing images from a camera (#1595)
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-12-22 15:06:17 +01:00
Jonatan Kłosko e79b6eb1a8 Disable font ligatures in Markdown inline code 2022-12-16 23:15:44 +01:00
Jonatan Kłosko a4cc14ce26 Ignore universal shortcuts inside inputs in cell output 2022-12-07 19:51:14 +01:00
Jonatan Kłosko 9d805d8c60
Render math in on-hover documentation (#1566) 2022-12-06 15:23:54 +01:00
Jonatan Kłosko 460eb14420
Support custom image format with implicit pixel data (#1558) 2022-12-02 12:42:31 +01:00
Jonatan Kłosko 4530dd5cc6 Update mermaid 2022-12-01 15:51:07 +01:00
Jonatan Kłosko 24f4d78cc1
Fix prettier pattern (#1554) 2022-11-30 00:26:28 +01:00
Jacques Lorentz f4e836a5da
Base url path configuration variable (#1549) 2022-11-29 23:34:38 +01:00
Jonatan Kłosko 97506535c5
Make textarea input autosized (#1552) 2022-11-28 20:47:48 +01:00
Jonatan Kłosko 15754c9c99
Add support for image input (#1538) 2022-11-19 15:08:00 +01:00
Nick Sergeant 84361fb207
Add help text for how to access secrets in the secrets sidebar (#1535)
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-11-17 01:11:06 +01:00
Jonatan Kłosko dc5be4a241 Simplify webpack configuration 2022-11-12 02:16:02 +01:00
Jonatan Kłosko ba193be13b
Expand relative URLs in HTML elements in Markdown (#1491) 2022-10-17 13:00:25 +02:00
Cristine Guadelupe 06e9cc6828
Delete and view secrets from the sidebar (#1473)
* Delete secrets from sidebar

* Collapsible secret detail

* Secret details layout

* Secret details layout adjustments

* Hover and text color for secret details

* Changes switch_button colors to have more contrast

* small adjustment

* Uses remove and add class everywhere

* Uses JS.toggle
2022-10-11 14:55:36 -03:00
Jonatan Kłosko 702c3feb0a
Downgrade Monaco editor to fix Mermaid graph editing (#1471) 2022-10-09 21:39:29 +02:00
José Valim 950982304d
Final touchups to secrets (#1464)
* Use font-mono on secret names
* Unify error handling with changesets
* Unify put_env/delete_env as set_env/unset_env
* Review text and descriptions
2022-10-06 21:44:04 +02:00
Jonatan Kłosko 9ff3131546
Update dependencies (#1452) 2022-09-30 21:35:56 +02:00
Cristine Guadelupe d494e58c6a
Secrets modal title from options (#1443)
* Secrets modal title from options

* Applying suggestions
2022-09-27 23:25:07 -03:00
Brooklin Myers a103bc3d1e
Add support for JavaScript highlighting in Markdown cells (#1432) 2022-09-23 13:21:14 +02:00
Jonatan Kłosko 1ffdf8bf6a
Add importJS to the JS view client context (#1431) 2022-09-22 21:27:29 +02:00
Jonatan Kłosko 61ee3c79dc
Rewrite Markdown live links to either push or patch (#1429) 2022-09-22 15:51:18 +02:00
Jonatan Kłosko 803cf37f68 Don't add scroll to Mermaid graphs 2022-09-19 23:01:40 +02:00
José Valim a4ba8e926c
File system upload (#1422)
Co-authored-by: gitstart <bot@gitstart.com>
2022-09-19 22:20:39 +02:00
Cristine Guadelupe 52f7d7419b
Changes secrets wording form label to name (#1419) 2022-09-18 18:40:09 -03:00
Cristine Guadelupe bf09441555
Secrets from modal (#1406)
* Secrets from modal

* Format assets

* Applying suggestions

* Format assets

* Applying suggestions

* Unavailable secret

* Applying suggestions - select_secret_ref

* Applying suggestions

* Applying suggestions - iframe v4
2022-09-16 17:56:40 -03:00
Jonatan Kłosko 9e43af7b4a
Fix unnecessary vertical whitespace in Mermaid graphs (#1415) 2022-09-16 15:52:04 +02:00
José Valim be862173a3
Unify several forms in the application (#1392)
* Define .input_wrapper and .hex_color_input components

* Define Tailwind variants from Phoenix v1.6 to help styling

* Make sure single-action modals redirect on save

* Add pill to session secrets in the "Secrets" session sidebar

* Fix alignments of "Users" in the session sidebar
2022-09-05 23:59:13 +02:00
Jonatan Kłosko 8bb6b05625
Add support for boxed grid (#1375) 2022-08-30 13:15:55 +02:00
Jonatan Kłosko 1e324b4f75
Add support for getting evaluation file during evaluation (#1362) 2022-08-28 09:28:19 +02:00
Cristine Guadelupe afcb2ff834
Livebook secrets (#1348)
* Add secrets to the sidebar

* Get and put secrets (naive)

* Secrets list - shortcut

* Validates secret name

* Livebook secrets as environment variables

* Restores secrets when necessary

* Minor adjustments

* Implements add_system_envs for NoopRuntime

* Moves secrets to session data

* Granular operations for secrets

* Minor adjustments

* Applying suggestions

* Test for add secrets

* Type for secret

* Applying suggestions

* Prevents duplicates

* Refactor to live_render

* Update lib/livebook/session/data.ex

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

* Sort secrets

* Applying suggestions

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-08-25 17:24:24 -03:00
Alexandre de Souza 5c050e640f
Add Livebook Hub with Fly.IO integration (#1319) 2022-08-18 10:34:27 -03:00
Jonatan Kłosko d0338be513 Improve assertion of the session creation timestamp 2022-08-11 13:42:33 +02:00
Jonatan Kłosko fd6aaa8546
Enforce LF for line endings in the editor (#1337) 2022-08-08 14:59:28 +02:00
Jonatan Kłosko 218bce5a63
Use binary ids for session clients (#1333) 2022-08-05 14:43:41 +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 2b2ecccaec
Update dependencies (#1321) 2022-08-02 15:26:45 +02:00
Nick Kaltner ab206e7516
Bump mermaid to 9.1.3 (#1296) 2022-08-02 11:31:41 +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 e82279d9af
Reinitialize JS views on reconnection (#1270) 2022-07-11 21:19:32 +02:00
Jonatan Kłosko 510f657542
Fix absolute URL detection when traversing markdown links (#1255) 2022-06-30 14:57:52 +02:00
Brooklin Myers 604c79e4ca
Highlight CSS in Markdown snippets (#1246) 2022-06-25 00:06:46 +02:00
Jonatan Kłosko 2e29167229
Highlight HTML in Markdown snippets (#1244) 2022-06-24 12:00:11 +02:00
Jonatan Kłosko 8ab4d195d9
Properly copy content with math (#1225) 2022-06-13 14:20:07 +02:00
Jonatan Kłosko 72bdf9b2bd
Fix context menu in the file system component (#1205) 2022-05-28 10:57:39 +02:00
Jonatan Kłosko fb13c9cf22
Allow target _blank links inside iframe (#1203) 2022-05-27 17:32:45 +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
Tw 641ac96ae7
Fix relative link URL in Markdown output (#1189) 2022-05-17 03:03:18 +02:00
Jonatan Kłosko 0b35c2559b
Don't ignore pointer events when LV disconnect (#1168) 2022-05-04 12:50:36 +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
Jonatan Kłosko 96cb11e787
Improve zen mode transition when no cell is focused (#1157) 2022-05-02 13:34:17 +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
Jonatan Kłosko 25e5d874be
Reinitialize cell editor on reconnection (#1146) 2022-04-28 13:02:20 +02:00
José Valim 3e0b3fffac
Increase the timeout for topbar (#1125)
The topbar still shows way too frequently even
when the navigation feels snap.
2022-04-16 11:05:14 +02:00
Jonatan Kłosko 99b5dba6dd Fix Enter to enter insert mode 2022-04-14 21:37:58 +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
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 5fa9bbe01c
Fix JS view connection timeout under heavy load (#1106) 2022-04-13 21:59:43 +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 8b17365bf9
Don't show output init timeout message on serialization error (#1096) 2022-04-09 15:48:44 +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 a3018dc522 Fix element type check on shortcut actions 2022-04-04 17:07:16 +02:00
Jonatan Kłosko 17a0893809
Clear URL hash when the user clicks outside the element (#1089) 2022-04-04 16:34:01 +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
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
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 471167f288
Disable font ligatures in Markdown code blocks (#1072) 2022-03-24 18:05:53 +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 e45f22c328
Update dependencies (#1058)
* Update Elixir deps

* Update JS dependencies
2022-03-17 20:30:36 +01:00
Jonatan Kłosko 7d30aab07b
Enable SQL highlighting in the editor (#1056) 2022-03-17 13:27:28 +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 e7835c73f2
Use the first cell in viewport as the default for j/k navigation (#1054) 2022-03-15 11:52:29 +01:00
Jonatan Kłosko 580116ea97
Keep cell hover when moving cursor to iframe (#1051) 2022-03-15 11:52:21 +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
Jonatan Kłosko 24e59598fb
Update dependencies (#1036)
* Bump Elixir deps

* Bump JavaScript dependencies
2022-03-02 13:09:41 +01:00
Jonatan Kłosko e27ff5a960
Rename Elixir cell to Code cell (#1035) 2022-03-02 12:48:02 +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
Jonatan Kłosko f699575b45
Cache mermaid graph rendering (#1023)
* Cache mermaid graph rendering

* Bump mermaid

* Update naming
2022-02-22 12:02:53 +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
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
Jonatan Kłosko 5cb0c68c41
Delay appearing input focus (#1001) 2022-02-14 21:22:58 +01:00
Jonatan Kłosko 53aea7af6e Leave JS output channel only if it exists 2022-02-10 11:25:37 +01:00
Jonatan Kłosko 565f65d0fc
JS output fixes (#991)
* Explicitly leave the JS channel before disconnecting the socket

* Reposition iframe when the sidebar is toggled and on window resize
2022-02-08 20:12:03 +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
Jonatan Kłosko 9fab78d2a6
Load iframe using the same protocol as the app (#985) 2022-02-05 22:41:58 +01:00
Jonatan Kłosko 2e17ad48d6 Correctly handle boolean attributes with data-keep-attribute 2022-02-04 00:37:46 +01:00
José Valim 995082b9ab
Add data-keep-attribute to reapply attribute on morphdom patch (#978) 2022-02-03 23:25:12 +01:00
Jonatan Kłosko a42e11a2ad
Show an error message when loading the JS module fails (#975) 2022-02-03 18:51:33 +01:00
José Valim aafa5cc642
Add delayed top bar (#973) 2022-02-03 15:05:16 +01:00
Milo Lee 6826939840
Controls how lines should wrap of the editor (#961)
* Configuring word wrapping temporarily on editor-level

* Split into enable and disable word wrapping actions

* Move toggle word wrapping code to __mountEditor
2022-02-02 13:58:46 +01:00
Jonatan Kłosko 178df3dac9
Load output iframe from a different origin (#968)
* Load output iframe from a different origin

* Update iframe source
2022-02-02 00:10:17 +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 2acefde9f7
Fix line break support in Mermaid graph definition (#932) 2022-01-25 16:19:33 +01:00
Jonatan Kłosko 2f55b87171
Allow downloads inside JS output iframe (#931) 2022-01-25 14:29:57 +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
Joe Martinez cd958f1492
warn if clipboard support is missing (#922)
* warn if clipboard support is missing

* make the message a bit more helpful

* Update assets/js/app.js

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2022-01-24 11:21:13 +01:00
Roberto Estrada cdb17e8573
Adds font-awesome when is required (mermaid). (#913)
* Adds font-awesome when is required (mermaid).

* applied suggestions

* format with prettier vscode plugin
2022-01-22 19:36:00 +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 0b58ba9331
Adjust JS iframe default styles (#893) 2022-01-19 18:32:58 +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 0b1f308b13
Fix cell insertion while editing Markdown cell (#883) 2022-01-19 11:34:38 +01:00
Jonatan Kłosko a1b8b54004
Update dependencies (#877)
* Update Elixir deps

* Update JS deps
2022-01-17 13:58:34 +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
Pete Jodo 384a59e5f0
fix bad import for mermaidjs (#874) 2022-01-16 22:16:08 +01:00
Jonatan Kłosko a4a61ae9b7 Bump Mermaid version 2022-01-16 22:07:48 +01:00
Pete Jodo 45175b2a6f
add mermaidjs support (#816) 2022-01-16 22:04:24 +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
Jonatan Kłosko 357985eef4
Apply editor theme to markdown snippets (#873)
* Apply editor theme to markdown snippets

* More tailwind
2022-01-16 13:50:44 +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 6b63ed9c33
Changes the color scheme of the outputs from One Dark to One Light (#864) 2022-01-13 17:10:51 -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 89835f5e60
Adds a bit of contrast to the comments in the code editor (#859)
* Adds a bit of contrast to the comments in the code editor

* Changes the ansi-color-light-black to the new color of the comments

* Color hex in lowercase

* Reverts to the old light-black
2022-01-13 15:06:30 -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
Jonatan Kłosko 2f9197c4ed
Use monspaced font for all characters in Markdown code blocks (#855) 2022-01-12 13:40:35 +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
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 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 742e3ad70e Update Tailwind palette 2021-12-29 15:14:37 +01:00
Jonatan Kłosko 66390dc677
Support Escape out of multi-cursor mode (#833) 2021-12-28 22:40:24 +01:00
Jonatan Kłosko 145f8a6992
Focus fixes (#831) 2021-12-28 19:42:04 +01:00
Jonatan Kłosko 23330786fa
Bump Monaco editor (#828) 2021-12-27 16:17:05 +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
Jonatan Kłosko b0563d14a6
Fix completion shortcuts (#792)
* Fix completion shortcuts

* Remove shortcut override
2021-12-12 00:10:15 +01:00
Jean Carlos b92bf3ae7c
fix handleDocumentFocus error (#778)
* 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>

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-12-09 12:51:32 +01:00
Jonatan Kłosko ee2602c932
Keep indentation when pasting code into the editor (#779) 2021-12-09 12:18:41 +01:00
Jonatan Kłosko a133a7070d
Use different icon when output is amplified (#775) 2021-12-08 16:30:52 +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
Jonatan Kłosko 84222d0a0c
Allow editor command palette to overflow (#764) 2021-12-06 14:15:44 +01:00
Jonatan Kłosko 859dfd9eb2
Disable word suggestions on Elixir cells (#763) 2021-12-06 13:10:16 +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
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
Adam Lancaster a764073848
Allow for XML syntax highlighting in markdown cells (#743)
* Update webpack.config.js

Allows for xml syntax highlighting in markdown cells

* Extend theme to cover XML and JSON specific tokens

* Refactor theme colors into a single palette

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-12-04 15:02:53 +01:00
Jonatan Kłosko cc772f4ffe
Never show automatic completion popup in Markdown cells (#742) 2021-12-04 13:44:07 +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
Jonatan Kłosko 4debf2c1fb
Fix evaluation timer on page refresh (#732) 2021-12-03 14:23:50 +01:00
Jonatan Kłosko 264d6c3ff2
Add support for controls output type (#710)
* Add support for controls output type

* Split controls into individual widgets

* Adjust ids

* Improve widget and controls garbage collection

* Allow arbitrary functions as object release hook

* Add type to button and input events

* Add keyboard status event

* Change release hooks into monitor messages

* Rename pointer to reference and return an error on bad monitor
2021-12-02 16:45:00 +01:00
Alex Reichert 236ea4dd96
Fix typo in drag_and_drop directory name (#723)
* Fix typo in drag_and_drop directory name

* Fix import
2021-12-01 19:44:42 +01:00
Jonatan Kłosko c2636b8220
Migrate inputs to Kino (#714)
* Migrate inputs to Kino

* Update lib/livebook/session/data.ex

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

* Try parsing numbers as integers

* Garbage collect input values

* Adjust tests

* Remove unused variable

* Fix frame rendering

* Wrap inputs in border depending on its type

* Add textarea

* Reorder

* Update tests

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-11-25 18:43:42 +01:00
Jonatan Kłosko bfe2036d34 Fix headline blur on click and improve editor focus 2021-11-18 17:34:04 +01:00
Jonatan Kłosko f64dd0ea90
Restructure j/k navigation to support headlines (#707)
* Accessibility fixes

* Restructure j/k navigation to support headlines

* Focus modal content when open

* Further focus adjustments

* Fix tests

* Remove unused functions
2021-11-16 21:57:10 +01:00
Jonatan Kłosko 7eac7a83ac
Implement clipboard copy with JS commands (#699) 2021-11-10 20:17:32 +01:00
Jonatan Kłosko 3ed5da0106
Implement menu with JS commands and extract into component (#698) 2021-11-10 19:28:09 +01:00
Jonatan Kłosko d8d52c9e89
Add runtime info panel (#692)
* Add runtime info panel

* Remove intro from the runtime modal

* Show default runtime in the panel if no runtime is set
2021-11-09 18:37:22 +01:00
Jonatan Kłosko c473a8c469
Add an option to amplify cell outputs (#689)
* Add an option to amplify cell outputs

* Reorder actions
2021-11-09 10:45:05 +01:00
Jonatan Kłosko 19f92c9e72
Don't sanitize KaTeX rendered SVGs (#684) 2021-11-06 21:25:07 +01:00
Jonatan Kłosko 8889f11244 Don't scroll when focusing cell output 2021-11-05 18:23:26 +01:00
Jonatan Kłosko 8c923f7bda
Show new directory section immediately on the client (#674) 2021-11-03 17:16:09 +01:00
Jonatan Kłosko e38d075fc2
Dynamically import Vega-Lite JS when needed (#673) 2021-11-03 15:58:46 +01:00
Jonatan Kłosko ad4867ddfb
Refactor modals with JS commands (#669)
* Use JS commands for closing the modal with animations

* Refactor modal to render content as slot

* Bump LV
2021-11-02 22:34:44 +01:00
Jonatan Kłosko fbd03d6725
Update Phoenix LV (#656)
* Wrap live routes in live_session

* Update Phoenix LV

* Migrate to live_component component call

* render_block -> render_slot

* phx-disconnected -> phx-loading

* phx-capture-click -> phx-click-away

* Add hook dealing with current user

* Bump LV

* Bump LV
2021-11-01 19:33:43 +01:00
Jonatan Kłosko 021d6ac42e
Improve icon buttons accessibility and navigation (#667)
* Rename tooltip source attribute

* Add aria-label to icon buttons/links

* Actually focus cell content when navigating around

* Add some descriptions

* Fix dynamically computed tooltips
2021-11-01 18:20:56 +01:00
Jakub Perżyło ace64eab37
Add show/hide button for password inputs #566 (#664)
* Added visibility toggle for password cell

* Formatted code

* Moved password toggle to separate component

* Adjusted to review

* Added password toggle for add filesystem component

* Update lib/livebook_web/helpers.ex

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-11-01 16:04:11 +01:00
Jakub Perżyło fbef386aa8
Allow importing a livebook via file upload #645 (#665) 2021-11-01 13:59:39 +01:00
Jean Carlos 421b1c69a1
Show indicators of state on session sidebar (#657)
* 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>
2021-11-01 13:15:21 +01:00
Jonatan Kłosko 40158aa6cc
Improve scroll on cell focus/blur (#659)
* Stay in insert mode only if evaluate is clicked

* Never scroll when focusing cell with click
2021-10-29 15:05:59 +02:00
Jonatan Kłosko 386fe5b531 Redesign flash message snackbars 2021-10-27 17:04:33 +02:00
Owen Bickford 46d49743b9
add --no-error-on-unmatched-pattern (#639) 2021-10-24 19:57:14 +02:00
Owen Bickford b6793d6630
Type1fool-smooth-scrolling (#638)
* 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 ;)
2021-10-24 19:38:57 +02:00
Pete Jodo 08727bddac
Remove vertical margin from nested markdown lists (#631) 2021-10-22 12:01:19 +02:00
Matheus Cumpian f6d31a7d86
adding a disabled delete button for sections that have branches (#624)
* 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>
2021-10-20 18:10:11 +02:00
Pete Jodo 5b96abea82
Hide list bullets in markdown checkboxes (#623)
* Hide list bullets in markdown checkboxes

* Align markdown checkboxes with list bullets
2021-10-20 14:09:50 +02:00
Matheus Cumpian fe77823685
Removing "Evaluate All Below" shortcut functionality (#621) 2021-10-19 23:36:44 +02:00
Jonatan Kłosko c354c46d89
Update dependencies (#606)
* Update dependencies

* Update dependencies major

* Update mix deps
2021-10-19 00:37:48 +02:00
Jonatan Kłosko 866abe8dee
Update favicon when navigating across sessions (#603) 2021-10-18 22:36:00 +02:00
Jonatan Kłosko a41dda9c7c
Keep static files outside priv (#602)
* Keep static files outside priv

* Override generated assets on the CI
2021-10-18 22:32:09 +02:00
Jean Carlos 238635a6be
Changed favicon with base on notebook status (#594)
* Change favicon based on notebook status

* Format correction

* "operation" is unused

* Improvements for better functioning of icons

* Renamed icons files

* Update favicons

* Update changelog

Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
2021-10-16 12:24:19 +02:00
Jonatan Kłosko fedbf4f53b
Update matching brackets style (#595) 2021-10-13 14:56:33 +02:00