Skip to content

Releases: toeverything/blocksuite

0.4.1

19 Feb 01:40
Compare
Choose a tag to compare

0.4.0

18 Feb 15:50
Compare
Choose a tag to compare

Announcing BlockSuite 0.4.0

💠 We are excited to announce the release of BlockSuite 0.4.0! This new version is shipped in AFFiNE Alpha "Downhills". With 484 pull requests merged and 15 new contributors involved, BlockSuite has evolved significantly over this period.

📦 Blocks & UI Components

🏗️ Architecture & Editor Infra

  • The class-based block model is replaced by zod-based schema (#859 #868) by @himself65. This allows for more declarative and block definition.
  • The block-specific methods are abstracted into BlockService (#856 #857) by @himself65. This provides composable ways defining block methods.
  • The new addBlockByFlavour API is supported (#628) by @himself65. This allows for adding blocks in a type-safe way.
  • The feature flag mechanism is supported (#658 #690 #695) This allows for enabling or disabling feature at runtime, and also makes the single-master development possible by merging immature features into master but opt-out by default.
  • The BlockTag entity is supported (#734) by @himself65. This enables attaching group-able tags onto blocks.
  • The new virgo package is added (#912 #932 #943 #944 #948 #974 #1243) by @Flrande. This is a tiny rich-text editing component we designed to replace Quill in the future.
  • The new phasor package is added (#546 #552 #806 #890 #891) by @doodlewind. This is a canvas-based renderer designed for optimized whiteboard content rendering.
  • The new global package is added (#618) by @himself65. This allows for better cross-package typing and reusability of common utils.

📚 Misc

  • Image blob uploading support (#735 #786 #918 #1188).
  • HMR support in playground (#621 #1050).
  • URL-based markdown import in playground (#825).
  • Adaptive height support for QuickFormatBar (#777).
  • YDoc binary exporting support in playground (#509).
  • Mode switch support in edgeless mode (#514).
  • Markdown import support for image and code block (#544).
  • Markdown export support for del and underline format (#651).
  • Ctrl-enter hotkey support (#821).
  • CSS debug menu support (#901).
  • Debug log support (#710 #928).
  • New SimpleAffineEditor pre-configured editor component (#811).
  • Use random room by-default in playground (#594).
  • New BlockSuite logo (#966 #1119).

🧹 Refactoring

  • The affine:group block flavour is renamed to affine:frame (#520).
  • The SelectionController is replaced by MouseModeController (#745).
  • The AwarenessAdapter is replaced by AwarenessStore (#780).
  • The Signal.fromEvent is replaced by Signal.disposableListener (#1114).
  • The IndexedDBBlobProvider is replaced by DuplexBlobProvider (#866).
  • The affine:shape block flavour is removed (#804).
  • The disposable callbacks are replaced by DisposableGroup (#760).
  • The PrelimText type is removed (#1146).
  • The page field in Text is removed (#1146).

🙌 New Contributors

🐛 Detailed Bugfixes

  • fix: incorrect code block short ligatures (#511)
  • fix: add a minimum limit on the drag-and-drop width of images (#513)
  • fix: unexpected behaviour of markdown shortcut when creating code block and inline code (#512)
  • fix: code block language does not keep after refreshing page (#516)
  • fix: when image size too large, option operation should show inside (#515)
  • fix: remove css files (#523)
  • fix: keep image meta fields in clipboard (#519)
  • fix: remove css import (#524)
  • fix: indent operation in rich text (#528)
  • fix: select all with hot key at the start of the line (#537)
  • fix: paste at the start of line (#540)
  • fix: use animationend event (#541)
  • fix: toast dom not removed (#542)
  • fix: update block cache when mouse move (#549)
  • fix: phasor ts config (#550)
  • fix: indent should not work under some block (#553)
  • fix: cursor lose outside container (#555)
  • fix: export HTML or Markdown format lost (#547)
  • fix: drag handle appear in edgeless mode (#557)
  • fix: delete selected content on cut (#548)
  • fix: drag position in list block (#563)
  • fix(playground): split room in different version (#568)
  • fix: block shouldn't highlighted when not dragging (#578)
  • fix: cleanup drag handle (#579)
  • fix: multi-line title size after undo/redo (#584)
  • fix: use flex in children container (#586)
  • fix: native selection (#588)
  • fix: move drag handle outside blocks (#598)
  • fix: keep cursor to title when deleting at the start of the first block (#580)
  • fix: hide drag handle on wheel (#604)
  • fix: image rect (#606)
  • fix: remove unused detection (#614)
  • fix: captureSync on creating code block & filter hotkey listener (#597)
  • fix: move drag handle when resize window (#622)
  • fix: code block unexpectedly get focus (#631)
  • fix: keep code block option popup open on hover (#634)
  • fix: use manual shallow copy on DOMRect (#643)
  • fix: optimize isForward detection in SelectionManager (#640)
  • fix: delete code block when selected (#637)
  • fix: return the correct delta result in sliceToDelta (#635)
  • fix: import @blocksuite/blocks cause ts error in other monorepos (#654)
  • fix: drag handle behavior in Firefox browser (#656)
  • fix: parse inline html into single paragraph (#659)
  • fix(blocks): set supressWarning to true of quill-cursors (#661)
  • fix: query code block container when loading (#666)
  • fix: global types unreachable in downstream package (#668)
  • fix: blot types (#665)
  • fix: type SurfaceBlockModel (#672)
  • fix: peer cursor updates sometimes does not emit "change" event (#673)
  • fix: blob import with cors header (#678)
  • fix: cant reach the last block in nesting (#677)
  • fix: collect wrong BaseBlockModel[] at _block() (#681)
  • fix: line number for wrapped lines (#680)
  • fix: adapting parent index of blocks to binarySearchBlockEditingState (#685)
  • fix: should check that parentIndex is not undefined (#688)
  • fix: use Partial in defaultFlags (#691)
  • fix: disable hotkey format and redo/undo in readonly mode (#693)
  • fix: undo/redo is unavailable in title (#701)
  • fix: revert .nvmrc (#705)
  • fix: bring children to father model (#707)
  • fix: handle children when delete a block (#708)
  • fix: delete selected text on enter (#712)
  • fix: hide mock line element properly (#713)
  • fix: should keep first line format when pasted into a new line (#715)
  • fix: should not create link in readonly mode (#719)
  • fix: incorrect comparison in assertEquals (#725)
  • fix: uniform event handler outside of rich text (#724)
  • fix: click bottom should add a new paragraph block (#727)
  • fix: flaky test case with raw enter press (#730)
  • fix: surface history with transact origin (#746)
  • fix: indicator lifecycle on direct opening edgeless mode (#748)
  • fix: use requestAnimationFrame (#751)
  • fix: replace text when paste to a block (#718)
  • fix(global): compatibility with cjs (#767)
  • fix: block hub subscribe (#769)
  • fix: edgeless selection rect index over block hub (#781)
  • fix: reuse comparePoint to decide dragging direction during nat...
Read more

0.3.1

01 Jan 11:54
Compare
Choose a tag to compare

What's Changed

Full Changelog: https://github.com/toeverything/blocksuite/compare/@blocksuite/[email protected]...@blocksuite/[email protected]

0.3.0

30 Dec 14:37
Compare
Choose a tag to compare

Announcing BlockSuite 0.3.0

💠 We are excited to announce the release of BlockSuite 0.3.0! This new version is shipped in AFFiNE Alpha "Abbey Wood", and it comes with lots of new features:

🌈 APIs & Data Persistence

📦 New Blocks & UI Components

  • Image block - The affine:embed block type, created by @DiamondThree
  • Code block - The affine:code block type, created by @thorseraq
  • Divider block - The affine:divider block type, created by @JimmFly
  • Shape block (experimental) - The affine:shape block type, created by @himself65
  • Inline text style popup component - The FormatQuickBar component, created by @lawvs
  • Read-only mode support by @QiShaoXuan

🛠️ Integration & DX

🙌 New Contributors

Thank @himself65 @Austaras @linonetwo @LuciNyan @Flrande @donaldxdonald @septs for their contributions!