All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.14.2 (2024-10-22)
- Support setting a custom number of rows in
Kino.DataTable
(#476) - Added
:caption
and:download
options toKino.Mermaid
(#477)
- Update
Kino.Mermaid
to use Mermaid v11 - Increased the max column width in
Kino.DataTable
v0.14.1 (2024-09-20)
- Added
Kino.Test.push_smart_cell_editor_source/2
to test editor changes (#468)
Kino.start_child/1
to unregister the process if evaluation terminates during process startup (#470)
v0.14.0 (2024-08-26)
- Added
Kino.Audio.play/1
andKino.Audio.pause/1
(#458) - Support for specifying column ratios in
Kino.Layout.grid/2
(#459) - Support for toggling Smart cell editor visibility (#467)
- Remote smart cell to generate code with triple quote when content contains a quote (#465)
v0.13.2 (2024-07-05)
- Worker and supervisor ids in app supervision graph (#449)
- Changed
Kino.Input.read/1
to raise an error when called in a background process (#451)
- Fixed the
dbg
pipeline UI crashing when result renders asKino.JS.Live
(#453)
v0.13.1 (2024-06-21)
- Support for module plugs in
Kino.Proxy.listen/1
(#448)
v0.13.0 (2024-06-17)
- Smart cell editor options
:intellisense_node
and:source
(#390) - Added
:entrypoint
option onuse Kino.JS
to specify custom entrypoint file (#392) - Added
Kino.recompile/0
for recompiling path dependencies fromMix.install/2
(#399) - Added
:message_label
option toKino.Process.seq_trace/2
(#411) - Added
Kino.Workspace.user_info/1
for getting information about the given client (#412) - Support for column relocation in
Kino.Table
(#419) - Added
:render_ets_tables
option toKino.Process.app_tree/2
(#411) - Introduced
Kino.Proxy
for handling requests forwarded from Livebook (#431, #433) - Added
Kino.beam_paths/0
(#439) - Added
:formatter
option toKino.DataTable.new/2
(#441) - Support for OTP 27 process labels in
Kino.Process.seq_trace/2
(#442)
- Make the smart cell editor source explicitly managed (#391)
- Deprecated the smart cell editor
:attribute
and infavour of explicitly managing the source withc:handle_editor_change/2
. See this commit for an example of how to migrate to the new API (#391) Kino.Tree
to automatically expand tuples of up to 6 elements (#398)- Changed
c:Kino.Table.export_data/2
to accept extra argument with order information (#418) - Renamed the
Kino.Hub
module toKino.Workspace
(#434)
- Fixed
Kino.DataTable
crashing with empty data (#427) - Tables font changing on first hover in Firefox (#435)
v0.12.3 (2024-01-22)
- CellKind
:struct
forKino.DataTable
(#383)
v0.12.2 (2024-01-05)
- Correctly renders CellKind
:list
forKino.DataTable
(#376)
v0.12.1 (2024-01-02)
- CellKind
:list
forKino.DataTable
(#373)
v0.12.0 (2023-12-12)
- Support for S3 token in
Kino.FS.file_spec/1
, available on Livebook v0.12 onwards
dbg
backend to fall back to the currently registered callback (#369)- Changed charlists in
Kino.DataTable
to be formatted as strings only if ASCI-printable
- Fixed
Kino.DataTable
to handle integer lists that are not valid charlists (#371)
v0.11.3 (2023-11-15)
- Code with interpolation in remote execution smart cell (#366)
v0.11.2 (2023-11-09)
- Remote execution cell to work with different Elixir and OTP versions on the remote node (#363)
v0.11.1 (2023-10-31)
- Support for specifying node name as secret in Remote execution cell (#358)
- Table pagination to go back to the first page on sorting (#357)
- Showing non-utf8 binaries in
Kino.DataTable
(#362)
v0.11.0 (2023-10-06)
Note that Kino v0.11.0 requires Livebook v0.11.0, so make sure to upgrade Livebook.
With this release of Livebook and Kino we changed the values for audio and image input. The :data
key with inline binary has been removed in favour of :file_ref
, which points to a file similarly to the file input. Note that this is not a Kino change per se, the value you get depends specifically on your Livebook version. Here's how you can access the whole binary with the new API:
image_input = Kino.Input.image("Image")
# ...
image = Kino.Input.read(image_input)
-image.data
+image.file_ref
+|> Kino.Input.file_path()
+|> File.read!()
- Added
Kino.Shorts
, a convenience module for building outputs and inputs (#310) - Added
Kino.Audio
andKino.Video
for displaying multimedia data (#311) - Option for
Kino.Control.keyboard/2
to not suppress default shortcuts (#312) - Added
:terminal
option toKino.Text
to support ANSI codes and to mirror stdio style (#314) - Support for remote processes in
Kino.Process
(#317) - Support for chunked text and markdown outputs (#318)
- Added
Kino.FS
for accessing notebook files (#319) - Support for
Kino.JS.Live
outputs to be exported (#321) - Added
Kino.start_child!/1
(#322) - Remote execution cell (#328, #348)
Kino.tmp_dir/0
to get a directory that is cleaned when the runtime terminates (#344)- Enabled Kino.DataTable data to be exported in .livemd (#346)
- Added
:debounce
option to inputs (#347) - Defined default rendering for
Nx.Heatmap
(#349)
Kino.listen/{2,3}
to return PID of the started process (#306)- (Breaking) Changed audio and image input values to include file rather than inline binary data
- Fixed date validation when allowed range is given (#326)
v0.10.0 (2023-07-10)
- Added
Kino.interrupt/2
(#288) - CDN information to
Kino.JS
assets (#289) - Support for
Kino.JS.Live
as event source (#294) - Added datetime, time and date inputs (#291)
- Added an option to disable frame placeholder (#297)
Kino.Hub.app_info/0
for accessing app information (#299)
v0.9.4 (2023-05-12)
v0.9.3 (2023-04-27)
- Fixed
Kino.animate/2
blocking when used with interval (#281)
v0.9.2 (2023-04-16)
- Premature cleanup of kinos pushed to frame from
Kino.async_listen/2
(#277)
v0.9.1 (2023-04-06)
- Support for transient frame updates (#272)
- Support for deferred reply in
Kino.JS.Live.handle_call/3
(#274) - More options for the number of table rows to show (#275)
- Added
Kino.terminate_child/1
(#276)
v0.9.0 (2023-03-17)
- Support for sending frame updates to a specific client (#250)
- Added
Kino.HTML
(#259) - Made controls and inputs enumerable (#262)
- Automatic detection of image binary (#264)
- Added
Kino.Text
(#265) - Introduced public
Kino.Table
behaviour (#266) - Added
Kino.async_listen/2
(#268)
- (Breaking) Changed API for accessing file input value (#253)
- Failures in listen and animate callback to be ignored (#263)
- Support for non-charlist list values in DataTable (#252)
v0.8.1 (2023-01-24)
- Added a
:monospace
option toKino.Input.textarea/2
(#220) - Added
Kino.Input.audio/2
(#239) - Added
Kino.Input.file/2
(#241) - Added
Kino.JS.Live.monitor/1
(#242)
- Improved table view (#223, #235, #247)
dbg
backend to fall back to the defaultdbg
when called outside Livebook context (#231)
Kino.DataTable
not showing the last page (#225)
v0.8.0 (2022-12-05)
- Support for multi-chunk smart cell source (#209)
- Added
Kino.Input.image/2
for images (#210) - Added
Kino.Tree
for structured term inspection (#208) - Support for directly rendering tensors as image via
Kino.Image.new/1
(#218)
v0.7.0 (2022-10-07)
- Added
Kino.Process.render_seq_trace/2
for visualizing inter-process communication (#165) - Added
Kino.Layout
for building composite outputs, such as tabs and grid (#179) - Added
send_event/4
toKino.JS.Live
components for messaging a specific client (#183) - Added
Kino.Download
for downloading generated content on demand (#174) - Tabbed output for pids and atoms (#185)
- Unified events consumption via
Kino.listen/{2,3}
andKino.animate/{2,3}
(#186) - Custom backend for
Kernel.dbg/2
(#191) - Added
Kino.Mermaid
(#199)
- Crashes when reevaluating a cell with finished tasks (#181)
- Ensured processes started with
Kino.start_child/2
get terminated before reevaluation (#195)
v0.6.2 (2022-06-29)
- Added
Kino.Process
with application/supervision tree visualization (#158)
- Improved
Kino.DataTable
to lazily traverse the data (#160)
- Fixed
Kino.DataTable
to respect the:keys
order (#151)
v0.6.1 (2022-05-03)
This release primarily introduces Kino.SmartCell
, which allows for
creating custom cells in Livebook. Check out the module docs for more
information and see this PR
for more context.
Along with this release we introduce two new packages, focusing on
specific integrations, namely kino_vega_lite
and kino_db
.
- Support for binary payloads in
Kino.JS
andKino.JS.Live
(#88) - Support for defining smart cells (#98)
- Support for custom
:name
inKino.DataTable
(#102) - Callback API for
Kino.Control
events (#126)
- Changed
Kino.ETS
to render a single column of tuples (#90) - Converted DataTable to accept any data compatible with
Table.Reader
(#122)
- Removed
Kino.Ecto
- Removed
VegaLite
integration in favour of thekino_vega_lite
package
v0.5.2 (2022-02-03)
- Removed Vega-Lite plot actions incompatible with Livebook (#83)
- Fixed
Kino.JS
to recompile modules when assets change (#83)
v0.5.1 (2022-01-25)
- Fixed
Kino.JS
assets archive path to resolve priv directory at runtime (#82)
v0.5.0 (2022-01-19)
This release primarily introduces Kino.JS
and Kino.JS.Live
, which
enable creating custom Livebook widgets with JavaScript. Other than a few
other additions, the APIs did not change significantly, but a lot of the
internals were reworked to align with Livebook changes, so make sure to
update Livebook to 0.5.0 or later.
- Added
Add Kino.Control.form/2
for aggregated input events (#62) - Added support for defining custom JavaScript widgets (#64)
- Added type validations for default input value (#77)
- Added stream API for control and input events (#76 and #78)
- Changed the internal implementation of most widgets to align with changes in Livebook 0.5.0 (#68, #71 and #75)
- Removed the deprecated
start/*
widget functions (#69) - Removed
Kino.Input.subscribe/1
andKino.Input.unsubscribe/1
in favour ofKino.Control
counterparts (#78)
v0.4.1 (2021-12-05)
- Added
Kino.inspect/2
(#60)
- Changed
Kino.render/1
to return the rendered value (#60)
v0.4.0 (2021-12-04)
- Introduced
Kino.Input
for user input (#53) - Introduced
Kino.Control
for user events (#50) - Added
Kino.start_child/1
for starting supervised processes (#50)
v0.3.1 (2021-11-10)
- Added
Kino.Frame
andKino.animate/3
for animating static outputs (#39)
v0.3.0 (2021-07-28)
- (Breaking) Changed
Kino.render/1
to return hidden value (#38)
v0.2.3 (2021-07-25)
- Fixed compilation without Ecto installed (#35)
v0.2.2 (2021-07-23)
v0.2.1 (2021-06-26)
v0.2.0 (2021-06-24)
- Added image output and
Kino.Image
(#24)
- (Breaking) Start dynamic widgets with new for consistency (#25)
v0.1.3 (2021-06-21)
- Added
Kino.DataTable
(#22)
- Disable sorting for ETS tables (#23)
- Handle ETS tables with mixed number of columns (#21)
v0.1.2 (2021-06-17)
- Add dynamic table output and ETS table widget (#12)
- Validate VegaLite data points and automatically convert to map (#13)
v0.1.1 (2021-06-11)
- Add support for periodical callbacks in the VegaLite widget (#3)
v0.1.0 (2021-06-01)
Initial release