v0.12.0 - Embeds, Sync Engine, and Cross-Browser Support!
The BlockSuite v0.12.0 release comes with 220 landed PRs, which is the version used in AFFiNE 0.12, with many major framework improvements and product features in the editor.
Note that from this version, BlockSuite is released using the version installed in AFFiNE Stable.
Notable Framework Enhancements
- Support for Safari and Firefox by moving to single
contenteditable
(#5850) - New
@blocksuite/sync
package that provides andocSources
option for syncing the overall workspace, which replaces previous providers. The BlockSuite playground apps have migrated to the new sync engine (#6204) - Reorganized edgeless API exposed on service (#5972 #6108 #6165 #6180)
- Refactored editor initializing flow that allows for simpler code setup for creating editor with existing content (#6167)
- New
setup
function in block spec for passing in custom configs (#6122) - Move to per-block version that allow co-existing of multiple block versions in same doc (#6065)
- Improved API for pulling out
context
of a command (#6265)
Also, the BlockSuite documentation site now adds the new components and blog entries. We'll keep them updated in the following!
Notable Product Features
- The card view and embed view of documents that allow experience like Synced Block in Notion (#6193 #5955)
- The embed view of Figma, GitHub, Loom and attachment (#5927 #5988 #5955 #6224 #6069)
- New note slicer that splits note blocks in an easier way (#6029)
- New bi-directional link panel for inbound and outbound bi-directional links (#6010)
- Better note visibility between doc and edgeless editors (#5994)
Detailed Bugfixes
- fix: import use .js postfix @regischen (#5965)
- fix: change video embed card dimensions @AyushAgrawal-A2 (#5967)
- fix: change title/tooltip/description of entry points for adding link @AyushAgrawal-A2 (#5971)
- fix: title & description on generic link card when fetch failed @AyushAgrawal-A2 (#5974)
- fix: cursor pointer on hover over card url @AyushAgrawal-A2 (#5975)
- fix: unexpected spaces in the inline node @Flrande (#5982)
- fix:
embed-card-create-portal
- remove block specific url validation @AyushAgrawal-A2 (#5981) - fix: treat embed-* blocks without iframe as card view @AyushAgrawal-A2 (#5984)
- fix: dragPreview / dropIndicator / dragEndPos viewport offsets @AyushAgrawal-A2 (#5980)
- fix: add hover/select status of links in all card view and embed view @AyushAgrawal-A2 (#6003)
- fix: input overflow menu @nawbc (#6005)
- fix:
reference-node
sometimes failed to getinline-editor
@Flrande (#6021) - fix: proportional scaling for linked card horizontal style @AyushAgrawal-A2 (#6023)
- fix: add .js postfix @regischen (#6025)
- fix: add .js postfix @AyushAgrawal-A2 (#6026)
- fix: remove empty banner placeholder in linked doc card @AyushAgrawal-A2 (#6024)
- fix: remove link panel from affine-doc-editor @regischen (#6031)
- fix: on hover logic and css selector on icon @AyushAgrawal-A2 (#6050)
- fix: don't delete image when deleting in caption @zqran (#6059)
- fix: attachment block should not contenteditable @Flrande (#6064)
- fix: should not show placeholder when composing @Flrande (#6076)
- fix: event scope source type @Saul-Mirone (#6074)
- fix: card-view linked page display in backlink @regischen (#6081)
- fix: unexpected cursor position after clicking page outside @Flrande (#6087)
- fix: line number container in code-block should not contenteditable @Flrande (#6085)
- fix: bookmark and image block should not contenteditable @Flrande (#6089)
- fix: embed-* blocks should not be contentEditable @AyushAgrawal-A2 (#6100)
- fix: show github status on update @AyushAgrawal-A2 (#6097)
- fix: card banner images should not be draggable @AyushAgrawal-A2 (#6098)
- fix: resolve loading state after queryUrlData fails @AyushAgrawal-A2 (#6102)
- fix: list number should not be contenteditable @Flrande (#6113)
- fix: bidirectional link panel bug @regischen (#6116)
- fix: group paste bug @regischen (#6118)
- fix: bookmark should show caption @AyushAgrawal-A2 (#6119)
- fix: surface ref should not contenteditable @Flrande (#6126)
- fix: image-block error/loading state & captions in edgeless @AyushAgrawal-A2 (#6139)
- fix: drag-handle note-scale in page mode @AyushAgrawal-A2 (#6140)
- fix: support export scaled images in html @lawvs (#6142)
- fix: export png incorrectly when svg without width and height @donteatfriedrice (#6146)
- fix: remove duplicated title when exporting markdown @lawvs (#6152)
- fix: optimize note display status @donteatfriedrice (#6154)
- fix: untitled name fallback for bi-directional link panel @regischen (#6164)
- fix: hide format-bar / component-toolbar while dragging @AyushAgrawal-A2 (#6185)
- fix: can not render link node with bold style @Flrande (#6188)
- fix: link-popup input background color in dark mode @Flrande (#6189)
- fix: linked & synced starter examples should work @AyushAgrawal-A2 (#6191)
- fix: should not extend attributes when composing @Flrande (#6190)
- fix: disable two fingers back/forward swipe in chrome @fundon (#6208)
- fix: format bar popup disappears on edgeless @lawvs (#6216)
- fix: sync package configs @doodlewind (#6229)
- fix: tooltip flickers when the mouse is moved slightly @lawvs (#6240)
- fix: improve code block performance @Flrande (#6236)
- fix: cursor cannot be moved as expected in firefox @Flrande (#6249)
- fix: arrow buttons are disabled when kanban exists in page @ununian (#6248)
- fix: failed to select from empty line and unexpected format result in empty line @Flrande (#6259)
- fix: resolve
this
error in LinkPreviewer @AyushAgrawal-A2 (#6260) - fix: synced doc toolbar & caption bug @AyushAgrawal-A2 (#6262)
- fix: unexpected format result when in block selection and empty line @Flrande (#6261)
- fix(database): drag a row out of the database block @zzj3720 (#6263)
- fix(database): select column Popup position @zqran (#6266)
- fix(edgeless): incorrect dragStart in surface @AyushAgrawal-A2 (#5985)
- fix(edgeless): embed-card toolbar incorrect card styles @AyushAgrawal-A2 (#5987)
- fix(edgeless): wrong transparent shape overlay @donteatfriedrice (#5990)
- fix(edgeless): enable double click on cards in surface @AyushAgrawal-A2 (#6009)
- fix(edgeless): edgeless only index label position shift @donteatfriedrice (#6022)
- fix(edgeless): should update index label when note order changed @donteatfriedrice (#6060)
- fix(edgeless): should generate connectors' path once when loading connector middleware @doouding (#6084)
- fix(edgeless): should focus at note after creating it @donteatfriedrice (#6091)
- fix(edgeless): bugs of connector and block @doouding (#6088)
- fix(edgeless): drag to add note should support collapse @donteatfriedrice (#6093)
- fix(edgeless): show curve icon on resize handle hover before scaling starts @AyushAgrawal-A2 (#6095)
- fix(edgeless): prevent file drop indicator on block elements in surface @AyushAgrawal-A2 (#6099)
- fix(edgeless): remove redundant menu divider @donteatfriedrice (#6114)
- fix(edgeless): prevent native selection on drag select in edgeless @AyushAgrawal-A2 (#6117)
- fix(edgeless): don't record last props in session @regischen (#6128)
- fix(edgeless): should rerender when new element was added or removed @doouding (#6130)
- fix(edgeless): remove single connector selected rect and multi select… @regischen (#6150)
- fix(edgeless): frame title disappear after reordering frames @AyushAgrawal-A2 (#6157)
- fix(edgeless): should be able to change embed card style @AyushAgrawal-A2 (#6159)
- fix(edgeless): template and surface-ref bug @doouding (#6161)
- fix(edgeless): insert frame/group into page @donteatfriedrice (#6163)
- fix(edgeless): should not select last docOnly note @donteatfriedrice (#6226)
- fix(edgeless): change connector toolbar tip @regischen (#6233)
- fix(edgeless): more button copy not work @regischen (#6235)
- fix(edgeless): active eventDispatcher when edgeless tool updated @donteatfriedrice (#6234)
- fix(edgeless): cannot click more button in AFFiNE @donteatfriedrice (#6250)
- fix(edgeless): inner frame hittest @regischen (#6255)
- fix(edgeless): slide menu content height @fundon (#6253)
- fix(edgeless): modify connector tip @regischen (#6267)
- fix(inline): event source should not contenteditable when in readonly @Flrande (#6127)
- fix(inline): line break issue @golok727 (#6212)
- fix(lit):
textSelectionToRange
result incorrect when selection is reversed @Flrande (#6227) - fix(page): enter in title move cursor @regischen (#5962)
- fix(page): merge delta when exporting code @fourdim (#5964)
- fix(page): export long page to png @donteatfriedrice (#5973)
- fix(page): change text attribute on converting inline-link to card @AyushAgrawal-A2 (#5968)
- fix(page): dragStart for bookmark / embed / image block @AyushAgrawal-A2 (#5979)
- fix(page): show backlink for
affine:embed-linked-doc
@AyushAgrawal-A2 (#5986) - fix(page): empty clipboard because of transient activation @fourdim (#6000)
- fix(page): linked page should show new title @AyushAgrawal-A2 (#6008)
- fix(page): show only one toolbar at a time @AyushAgrawal-A2 (#6037)
- fix(page): export png position shift @donteatfriedrice (#6075)
- fix(page): should not remove empty lines when canceling an action @lawvs (#6104)
- fix(page): add attachment transformer @fourdim (#6109)
- fix(page): snapshot export assets rename @fourdim (#6132)
- fix(page): link disapper when paste @regischen (#6135)
- fix(page): linked page/web toolbar should not be displayed when the page is in read-only mode @AyushAgrawal-A2 (#6141)
- fix(page): bullet list style update @AyushAgrawal-A2 (#6144)
- fix(page): export embed as link @fourdim (#6148)
- fix(page): markdown export list early closing issue @fourdim (#6151)
- fix(page): add support for all top level blocks in surface ref portal @AyushAgrawal-A2 (#6160)
- fix(page): delete block when deleting the last database view @lawvs (#6174)
- fix(page): should be able to convert embed image card to image block @AyushAgrawal-A2 (#6179)
- fix(page): flat p and div nodes inside list @fourdim (#6195)
- fix(page): clipboard payload does not have assets @fourdim (#6194)
- fix(page): default to plain text when parsing markdown code @fourdim (#6201)
- fix(page): normalize newline characters @fourdim (#6211)
- fix(page): synced block placeholder should not appear after adding content @AyushAgrawal-A2 (#6223)
- fix(page): correct image fetch via proxy with response.ok check @AyushAgrawal-A2 (#6251)
- fix(page): should not convert block when prefix text presents in the second line of the block @fourdim (#6270)
- fix(page): toast when importing markdown using notion option @fourdim (#6274)
- fix(playground): bring snapshot import back @fourdim (#6111)
- fix(playground): starter default mode should be page @Flrande (#6187)
- fix(playground): default page idb and collaboration not work @Flrande (#6192)
- fix(playground): default page init when idb data exist @Flrande (#6225)
- fix(playground):
/starter/?init&room=1
not works @Flrande (#6230) - fix(playground): missing root model after refresh page @zkwolf (#6256)
- fix(presets): no frame preview in sidebar @donteatfriedrice (#6124)
- fix(store): extension name @fourdim (#6110)
Full Changelog: v0.11.0...v0.12.0