v0.4.0
Major Overhauls and Features:
Backend-driven UI: We've implemented massive changes across the board to support creating components with code.
Async Handlers: Introduction of asynchronous handlers.
User-defined State Schemas / Type Safety for Apps: We now support user-defined state schemas, enhancing type safety for your applications. This feature ensures that your app's state management is both robust and error-free.
Support for Dataframe Interchange Protocol / Polars: Streamsync includes support for the Dataframe Interchange Protocol with a specific focus on Polars.
Enhancements and Fixes:
Bug Fixing: We've dedicated a significant amount of work towards identifying and fixing bugs to ensure a smoother user experience.
Quick Start Tutorial: A new Quick Start tutorial has been introduced to help new users get up and running with Streamsync.
New Components:
We're thrilled to introduce a range of new components to expand the capabilities of your Streamsync applications:
Link, Tags, Switch: New UI elements to enhance your app's interactivity and usability.
Chatbot Component: Introducing a Chatbot component, designed for creating your own chatbot interfaces within your applications. This component is provided without a backend, allowing for flexible integration into your existing systems.
MapBox and Google Maps: Leverage powerful mapping capabilities with either MapBox or Google Maps integration.
PDF and iFrame: Enhanced support for PDF viewing and iFrame integration, broadening the scope of content you can include in your apps.
Avatar: A new Avatar component to personalize user profiles and interactions within your apps.
Steps Component: We're excited to introduce the Steps component, a new addition designed to enhance navigational experiences within your applications. This component is ideal for guiding users through a sequence of tasks or processes, improving the overall user interaction and workflow clarity.
Rating Input: A new Rating Input component has been added to gather feedback directly within your applications. This interactive component allows users to rate products, services, or experiences, facilitating a straightforward way to collect valuable user insights and preferences.
What's Changed
- Expanding mutation test by @mmikita95 in #206
- Enabling deletion mutations by @mmikita95 in #214
- Minor fix for test_mutations by @mmikita95 in #224
- use poetry instead of setup tools as package manager by @FabienArcellier in #231
- Fix for escape sequence by @mmikita95 in #232
- docs: added missing images by @raaymax in #238
- Asynchronous handlers support by @mmikita95 in #229
- github action enforce pr continuous integration rules by @FabienArcellier in #236
- Update event-handlers.md by @mmikita95 in #234
- docs: added quickstart tutorial by @raaymax in #235
- fix: fastapi lifespan management with multiple apps at once by @FabienArcellier in #241
- fix: introducing a fixture for proper teardown by @mmikita95 in #242
- feat: added iframe component by @raaymax in #237
- feat: added pdf viewer component by @raaymax in #243
- docs(#245): docker image build python version lock by @raaymax in #246
- feat: added google maps component by @raaymax in #249
- chore: Add Code of Conduct by @ramedina86 in #251
- fix: pdf drag and drop issues by @raaymax in #250
- ci: added eslint checks for ui by @raaymax in #244
- refactor: move components to subfolders by category by @raaymax in #252
- chore: disable continuous integration on branch except for master and dev by @FabienArcellier in #256
- chore: linking ComponentManager to session by @mmikita95 in #248
- fix: custom components build properly on windows by @FabienArcellier in #228
- fix: added map type options to google maps component by @raaymax in #260
- feat: updated pdf component with highlights by @raaymax in #259
- fix: dynamically load pdf component by @raaymax in #265
- feat: added Mapbox component by @raaymax in #255
- feat: Chat, Step, Steps, RatingInput components by @ramedina86 in #271
- chore: prepare UI component handling for enhanced session and CMC integration by @mmikita95 in #258
- Docs fixes by @ramedina86 in #276
- fix: builder shortcuts visibility problem by @raaymax in #270
- feat: added link component by @raaymax in #266
- Add square barckets to evaluator regex by @gunnar-enerin in #257
- fix: dynamic loading of google maps by @raaymax in #280
- tests: frontend test framework setup with playwright by @raaymax in #268
- fix: drag and drop on itself removes component by @raaymax in #284
- fix: dynamic imports for dataframe component by @raaymax in #282
- perf: tiny bit faster pdf's goto page by @raaymax in #287
- ci: added cache for GH workflows by @raaymax in #285
- feat: chat file upload by @ramedina86 in #290
- fix: drop target highlighting is moved when the Settings bar is open by @raaymax in #283
- feat: Switch input component by @ramedina86 in #292
- feat!: core managed components functionality by @mmikita95 in #279
- feat: Tags component by @ramedina86 in #293
- style: added .editorconfig file by @raaymax in #295
- tests: parallel e2e tests runner by @raaymax in #294
- feat: Avatar component by @ramedina86 in #305
- feat: add serialiser for Polars using Dataframe Interchange Protocol by @FabienArcellier in #298
- style: .editorconfig with spaces for python by @raaymax in #300
- chore: updated github actions to use node 20 by @raaymax in #306
- fix: convert all content values to strings by @mmikita95 in #303
- refactor: added better types in ui.py by @raaymax in #301
- fix: send components to the frontend only upon update by @mmikita95 in #296
- chore: add init_ui method by @mmikita95 in #297
- feat: generating bindings for ui.py by @raaymax in #309
- chore: binding syntax by @mmikita95 in #310
- feat:declare optional schema on streamsync state by @FabienArcellier in #278
- fix: removed default values from ui.py by @raaymax in #318
- fix: added support for autocompletion on the low ui approach for pycharm by @FabienArcellier in #313
- fix: code managed component are missing on init_ui by @FabienArcellier in #321
- docs: code managed components by @mmikita95 in #320
- chore: check if ui binding is up to date in continuous integration by @FabienArcellier in #317
- fix: avoid removal of CMCs during ingestion by @mmikita95 in #323
- feat: added readonly settings for generated components by @raaymax in #316
- fix: logic for determining position by @mmikita95 in #324
- docs: update modifying-app-ui-through-backend.md by @mmikita95 in #325
- feat: cmc components are rendered always at the bottom by @raaymax in #327
- chore: chat to chatbot by @ramedina86 in #322
- refactor: Change flag to isCodeManaged by @ramedina86 in #331
- chore: LCUI minor aesthetic changes by @ramedina86 in #329
- chore: preset IDs for pages by @mmikita95 in #328
- fix: Remove page from hash when it doesn't have a key by @ramedina86 in #332
- feat: repeater triggers exception when the last item is removed from linked state element by @FabienArcellier in #307
- chore:configure pypi package deployment when tagging a new release by @FabienArcellier in #333
- Fix minor UI corrections by @ramedina86 in #334
- tests: checking if all components have images in docs by @raaymax in #304
- feat: better orphan detection by @raaymax in #338
- feat: added rendering error when component can't be rendered by @raaymax in #337
- chore: Release 0.4.0rc1 by @ramedina86 in #339
- chore: configure pypi package deployment when tagging a new release by @FabienArcellier in #340
- chore: Merge for release by @ramedina86 in #341
- chore: configure pypi package deployment when tagging a new release by @FabienArcellier in #342
- chore: Merge for release by @ramedina86 in #343
- chore: Update version to 0.4.0rc2 by @ramedina86 in #344
- chore: sync dev with master by @raaymax in #345
- fix: Pandas serialisation by @ramedina86 in #346
- chore: Merge for release by @ramedina86 in #347
- fix: evaluator fails for objects when no default value is set by @raaymax in #348
- chore: removed unnecessary import by @raaymax in #351
- e2e: tests for low-code UI by @raaymax in #349
- examples: added chat, iframe and pdf components to hello app by @raaymax in #352
- refactor: separate trees by @mmikita95 in #353
- examples: hello app tests fix by @raaymax in #357
- docs: Minor fixes by @ramedina86 in #358
- chore: Merge for release by @ramedina86 in #359
- chore: Update version, remove rc by @ramedina86 in #360
New Contributors
- @raaymax made their first contribution in #238
- @gunnar-enerin made their first contribution in #257
Full Changelog: v0.3.0...v0.4.0