Skip to content

v0.14.0

Latest
Compare
Choose a tag to compare
@Saul-Mirone Saul-Mirone released this 10 May 05:49
· 76 commits to master since this release
2314f10

BlockSuite v0.14.0 is now released with 348 PRs landed and 5 new contributors.
It's currently used in Affine 0.14. This release includes a lot of new features, improvements, and bug fixes.
And it's a version centered around the AI features.

AI Features

Important

The AI features are only available in the Affine AI due to the dependency on the backend service.

AI

We have added a lot of AI features in this release to support the Affine AI project.
Thanks to our team members and contributors (@Flrande, @pengx17, @fundon, @donteatfriedrice, @zzj3720, @doouding, @regischen) for their hard work on this release.

  • AI Action Infra: The AI features are supported by a new AI action infrastructure.
  • Ask AI Format Bar: The format bar now has a new button to ask AI for help.
  • AI Chat Panel: A new AI panel is added to the right sidebar. It can generate text, images, and slides.
  • Edgeless AI: The edgeless elements and blocks now can be interacted with AI actions.

Contribution Details

Infra Improvements

  • Rewrite the view store to support the new block collection and selector. (#6521, #6672, #6534, #6737, #6780)
    In previous versions, the view store is responsible for managing the views of the blocks.
    It was designed to control different views of the same block, such as the editor view and the preview view.
    However, we found that it's a anti-pattern to render different views of the same block in the same block tree.
    Which makes it hard to track the view by the block model.
    In this release, we introduce the block collection and selector to make it easier to render different views of the same block.

  • Introduced the draft model for the transformer. (#6630)
    The draft model is a new model that can be used to transform the block model to a new model.
    It's useful when you want to transform the block model to a new model without changing the original block model.

  • Bson for clipboard. (#6526, #6562)
    We use bson for the clipboard mime to optimize the clipboard data serialization and deserialization.

  • Add spec builder. (#6976)
    The spec builder is a new tool to manage the block specs.

  • Switch to es2022 targets. (#6527)
    We have switched to the es2022 targets to support the latest JavaScript features.

  • refactor(store): support streaming editor.doc from empty state @doodlewind (#6522)

  • refactor(examples): sync collection lifecycle with provider @doodlewind (#6683)

Embed Doc Polishing

In this release, we have polished the embed doc feature to make it more user-friendly.

  • Move embed reload button. (#6502)
  • Polish the styles. (#6523, #6536)
  • Make embed card toolbar a widget. (#6635)
  • Fix the issue that creating linked doc from block selection will loss data. (#6510)
  • Fix the issue that users can't jump into doc inside embed synced doc. (#6531)

Database Enhancements

In this release, the Database has seen a series of enhancements aimed at increasing the fluidity of the editing experience, with improvements to keyboard shortcuts and cursor behavior:

  1. Supports using the Tab key to move the cursor to the next field (#6565)
  2. Supports selecting additional rows using arrow keys (#6941)
  3. Clicking on “New Record” now focuses on the title cell of the new row (#6561)
  4. Supports filling a column with the same content via drag-and-drop (#6895)

Additionally, enhancements to the title column now allow it to link to another page (#6572).
When you drag Kanban cards to the edge, the Kanban will now automatically scroll (#6614).
The Database will display as many views as possible instead of just three (#6642), and the same goes for filters (#6739).

There are also some experimental features that can be enabled through feature flags:

  1. Table now includes a statistics feature (#6560)
  2. The Database now supports using Todo blocks from all pages as a data source (#6785)

Documentation Improvements

We've added some new examples thanks to @doodlewind, @L-Sun.

  • Add vanilla-indexeddb example. (#6525)
  • Add react-indexeddb example. (#6689)
  • Add react-websocket example. (#6624)

Community Features

Detailed Bug Fixes and Improvements