Skip to content

Releases: writer/writer-framework

v0.3.0

25 Jan 21:59
c7f58bd
Compare
Choose a tag to compare

Features/improvements:

  • Configurable padding in container components, including Section, Tab, Horizontal Stack and Column.
  • Pagination component.
  • Streamlined horizontal and vertical alignment in container components.
  • Icon component.
  • Support for massive Plotly plots
  • Ability to load stylesheets and scripts from remote locations.

Bug fixes:

  • Info-level logs showing only on browser, not terminal; Windows only.
  • Corrupted mutation updates when new state keys are introduced, and those names contain dots.
  • Encoding issues when using special characters in UI; only certain OSs.
  • DataFrame not showing the last row; only certain browsers.
  • Race condition appearing with concurrent modifications of state.

v0.2.8

04 Oct 20:45
1010dc7
Compare
Choose a tag to compare

New Features

  • State Explorer. Get a snapshot of the current application state by clicking the "View State" button.
  • Improved traceability and enabled the use of Python debuggers. #137
  • Dynamic accessors. Use square brackets to dynamically access properties. For example, persons[active_person_id].height. Can be used for binding, enabling binding in Repeater components. #26
  • Keyboard shortcuts in built-in editor, for saving and toggling log visibility.
  • Import JavaScript scripts via import_script. For ES6 modules, continue using import_frontend_module.
  • Foldable categories in Builder's Toolkit.

Fixes

  • Fix mime type for serving JavaScript files in older versions of Windows, which prevented the server from working properly. Issue #108
  • Remember light/dark mode preference in built-in code editor.

v0.2.7

14 Sep 21:19
0205e4c
Compare
Choose a tag to compare

Features

  • Log transfer. App logs, previously only shown in Builder, are now transferred to the main process and streamed to the terminal.
  • Early termination. When in "run" mode, Streamsync will exit if the initial script cannot be loaded.
  • Improved code refresh mechanism, making it more responsive.
  • Min, Max and Step fields in Number Input.
  • Streamsync Builder can now run on non-secure browser contexts. Especially useful if deploying remotely and using the --enable-remote-edit flag. Be sure to understand the risks involved.

Fixes

  • Fixed focus issues on Select Input and Multiselect Input, added Placeholder field.
  • DataFrame, when wrap text has been enabled, shows line breaks.
  • Fixed vertical alignment options in Column.

v0.2.6

06 Sep 21:29
e2650eb
Compare
Choose a tag to compare

Features:

  • Select Input and Multiselect Input components, with searchable lists.
Screenshot 2023-09-06 at 23 27 44

Fixes:

  • Fixed ss-change-finish in Text Input
  • Fixed colour configuration issue in Tab buttons

v0.2.5

04 Sep 09:24
7a25337
Compare
Choose a tag to compare

Fixes bug from 0.2.4 that required re-rendering component (browser refresh or mode change) for newly created event handlers to receive payloads.

v0.2.4

03 Sep 21:29
54e6e68
Compare
Choose a tag to compare

New features

  • Support for custom components, which are developed and behave identically to built-in ones.

  • Support for custom event types. Any DOM event can be listened to.

  • Async execution of event handlers. Previously, all of the events for the same session would run in a queue; one event wouldn't run until the next one completed. They're now executed asynchronously. This allows longer-running tasks to be performed in the background while the app remains fully interactive.

  • Partial state updates for long-running event handlers. Works well with item below.

  • "Loading" type in Message component, to display progress of a long-running operation.

  • New built-in events, such as ss-keydown and ss-page-open at Page level.

  • Support for Plotly events, including plotly-click, plotly-selected and plotly-deselect.

  • Support for HTML snippets inside HTML Element.

  • Button disabling.

  • More semantic HTML in some components, e.g. Button is no longer wrapped in a div, Section creates a section tag.

Fixes

  • Improved reliability of code autorefresh, fixing problems which mainly affected Windows.

  • Fix Date Input binding issues

  • Minor fixes

Release v0.1.12

05 Aug 19:59
9c1e55e
Compare
Choose a tag to compare

This is a meaningful release with some new interesting features, mainly guided by the input of the community. Thank you for using Streamsync and sharing your thoughts.

  • Import stylesheets. It’s now possible to import stylesheets dynamically during runtime. Classes can be applied to components via a new field, “Custom CSS classes”. Docs.

  • Import frontend scripts. JavaScript/ES6 modules can now be imported dynamically. Exported functions can be triggered from the backend. Docs.

  • Pydantic 2 support. Streamsync now uses Pydantic 2.

  • Component Tree search feature.

Minor updates:

  • Dataframe now has a flag that allows for text to be wrapped inside cells.

  • The command line now supports the —enable-remote-edit flag, which allows you to circumvent the filter that blocks non-local requests, as a protection against drive-by attacks. This is helpful when deploying to GitHub Codespaces or similar.

  • CONTRIBUTING.md has been uploaded.

  • Checkbox Input and Radio Input can now display options horizontally, if desired.

  • Password mode in Text Input component

  • Minor bug fixes

Release v0.1.10

11 Jul 23:36
5decf99
Compare
Choose a tag to compare

Pinned pydantic version to avoid breaking changes introduced by FastAPI 0.100 and Pydantic 2.

Release v0.1.9

03 Jul 23:21
3dade76
Compare
Choose a tag to compare

PyArrow support

Streamsync now uses PyArrow to serialise and deserialise dataframes. This increases performance and allows the DataFrame component to accept not only Pandas dataframes, but also PyArrow tables. This allows interoperability with other libraries, such as Polars (using .to_arrow()). Note that hardcoding dataframes in the frontend, using JSON, is no longer supported.

Improved DataFrame component
The DataFrame component is now based on a high-performance grid and supports ordering, column resizing, search and download as CSV. It's based on Apache Arrow and Arquero. It remains performant with 1M+ rows.

Bug fixes

  • Image paths weren't updated correctly when linked to state. This has been fixed.

Minor updates

  • Custom visibility, which was previously restricted to state, can now be also set using context. This allows components inside a Repeater to be hidden based on a value in a dictionary.
  • Datetime.datetime is now serialisable

v0.1.7

26 May 00:17
8ce3c6f
Compare
Choose a tag to compare
  • Improved Dataframe. This component now uses a high-performance grid which can easily support thousands of rows. It's currently a basic implementation. Additional features such as search, sorting, exporting and editing will be gradually added in future releases. Thanks @mzy2240 for flagging this and exploring options.

  • State mutation bug fix. State sync behaved unexpectedly when keys with dots were used, such as file paths. This has been fixed and relevant test cases have been updated. Thanks @tanghyd for reporting this bug.