Skip to content

v0.7.0

Choose a tag to compare

@doodlewind doodlewind released this 17 Jul 15:56
· 3843 commits to master since this release
a676391

🎉 Announcing BlockSuite 0.7.0! This version is bundled in AFFiNE Client 0.7-beta, incorporating 318 new merged pull requests and an addition of 7 contributors. In the past few weeks, we have significantly enhanced data persistence and whiteboard usability. Feature highlights:

So far, the primary focus of the BlockSuite project has been on feature-richness. However, with the next major release, we plan to make the editing feature more adaptable with a new API surface. Stay tuned!

Detailed Commits

  • build: release package block-std @himself65 (#3179)
  • build: fix module exports @himself65 (#3196)
  • build: fix output types @himself65 (#3197)
  • build(store): compatibility with moduleResolution Node @himself65 (#3199)
  • chore: modify the size of the importIcon and add a hover effect to it @HydenLiu (#3039)
  • chore: fix typo @HydenLiu (#3040)
  • chore: upgrade pnpm in ci @Saul-Mirone (#3053)
  • chore: update database tooltip content @doodlewind (#3067)
  • chore: bump version @himself65 (#3120)
  • chore: bump lock file version @fourdim (#3154)
  • chore: disable note index by default @Flrande (#3334)
  • chore: bump playwright @lawvs (#3409)
  • chore: bump version @himself65 (#3452)
  • chore: adjust delete item color @JimmFly (#3482)
  • chore: spread url methods to common utils @QiShaoXuan (#3520)
  • chore(edgeless): optimize tooltip text @doodlewind (#3364)
  • ci: ignore coverage upload failed @lawvs (#3142)
  • ci: add lit-analyzer @Flrande (#3168)
  • docs: update block desc @doodlewind (#3299)
  • docs: update CLA @Yukiniro (#3311)
  • docs: update CLA @AliceLanniste (#3438)
  • docs: update CLA @youhua (#3547)
  • docs: sign CLA @joshirakesh (#3564)
  • docs: add release note automation script @doodlewind (#3574)
  • feat: refactor to support multi-view and filter for database block @zzj3720 (#3010)
  • feat: add block on clicking page bottom when necessary @QiShaoXuan (#3028)
  • feat: add support for subdocuments @Saul-Mirone (#2948)
  • feat: edgeless mode upload multiple images @donteatfriedrice (#3025)
  • feat: export page to pdf file @zuoxiaodong0815 (#3047)
  • feat: support pressing esc to select blocks @donteatfriedrice (#3035)
  • feat: handling left key press for cursor transition from paragraph to page title @tillkwl (#2973)
  • feat: support filter for the database block @zzj3720 (#3065)
  • feat: export page to image @zuoxiaodong0815 (#3058)
  • feat: support for indenting and unindenting multi-level blocks @donteatfriedrice (#3127)
  • feat: the mouse pointer can become a gesture when dragging @zzj3720 (#3174)
  • feat: optimizing line width icons in edgeless mode @donteatfriedrice (#3195)
  • feat: support for adding tags to pages @zzj3720 (#3203)
  • feat: use human-readable name in code block @lawvs (#3225)
  • feat: support import notion database @fourdim (#3170)
  • feat: show format-bar when click drag handler @lawvs (#2694)
  • feat: delete empty subpages from import @fourdim (#3266)
  • feat: rename bookmark property title to bookmarkTitle @QiShaoXuan (#3278)
  • feat: improve page metadata UI @zzj3720 (#3275)
  • feat: update edgeless toolbar ui and zoom bar position @donteatfriedrice (#3281)
  • feat: hide toolbar when drag element move(#3271) @Yukiniro (#3310)
  • feat: supports copying images and cross app pasting @fundon (#3318)
  • feat: supports customizing the slash menu @lawvs (#3407)
  • feat: modify style of bookmark and editor @QiShaoXuan (#3486)
  • feat: add new css variable to control editor side padding @QiShaoXuan (#3491)
  • feat(block-std): init package and move event dispatcher to std @Saul-Mirone (#3164)
  • feat(block-std): add block spec @Saul-Mirone (#3175)
  • feat(block-std): scaffolding new selection manager @Saul-Mirone (#3261)
  • feat(blocks): support delete hotkey @Alkaidcc (#2552)
  • feat(blocks): add page block service @Saul-Mirone (#3232)
  • feat(database): support select option to modify color @zqran (#3015)
  • feat(database): row selection uses pointer event instead of drag event @zqran (#3029)
  • feat(database): drag inside the database without selecting the block @zqran (#3052)
  • feat(database): save the last title being edited @zqran (#3101)
  • feat(database): hide the tooltip of "+ New Record" button in edgeless mode @zqran (#3117)
  • feat(database): set default width when dragging to create a database in edgeless mode @zqran (#3133)
  • feat(database): save the last title being edited when add new column @zqran (#3134)
  • feat(database): support modal display @zqran (#3167)
  • feat(database): update the style of column-type arrow icon @zqran (#3211)
  • feat(database): support link column type @zqran (#3187)
  • feat(database): title column hide Move Right @zqran (#3255)
  • feat(database): temporarily close the modal popup display @zqran (#3257)
  • feat(database): update UI style @zqran (#3269)
  • feat(database): hide the Move Left of the first normal column @zqran (#3354)
  • feat(database): optimize row selection @zqran (#3383)
  • feat(database): remove the selection when deleting the cell @zqran (#3549)
  • feat(edgeless): change text default color between themes @Flrande (#3007)
  • feat(edgeless): add common math utils @regischen (#3009)
  • feat(edgeless): add some utilies @regischen (#3034)
  • feat(edgeless): update note border color @Flrande (#3057)
  • feat(edgeless): edgless element drag snap @regischen (#2967)
  • feat(edgeless): keep viewport state between mode switch @regischen (#3081)
  • feat(edgeless): support drag canvas with middle button of mouse @doouding (#3146)
  • feat(edgeless): edgeless earser tool @regischen (#3126)
  • feat(edgeless): keep brush state in one session @regischen (#3161)
  • feat(edgeless): support manage note index and hidden state @Flrande (#3177)
  • feat(edgeless): update note ui @Flrande (#3185)
  • feat(edgeless): support select element below the hollow shape @doouding (#3212)
  • feat(edgeless): add index for other notes when selecting a note @Flrande (#3235)
  • feat(edgeless): update toolbar ui @Flrande (#3262)
  • feat(edgeless): improve toolbar ui @Flrande (#3258)
  • feat(edgeless): support DnD images from outside into editor @fundon (#3123)
  • feat(edgeless): support copy as PNG @fundon (#3072)
  • feat(edgeless): connector @regischen (#3184)
  • feat(edgeless): new edgeless tool bar @donteatfriedrice (#3230)
  • feat(edgeless): support rotating shapes @fundon (#2931)
  • feat(edgeless): toast message after copying to clipboard @fundon (#3337)
  • feat(edgeless): support note clipping @doouding (#3314)
  • feat(edgeless): optimize note cut interaction details @doouding (#3343)
  • feat(edgeless): add overlay for note and shape tool @donteatfriedrice (#3335)
  • feat(edgeless): click to add shape with shape tool @donteatfriedrice (#3382)
  • feat(edgeless): support connecting rotated elements @regischen (#3394)
  • feat(edgeless): support adding text in shape @Flrande (#3423)
  • feat(edgeless): support pasting image in edgeless mode @zuoxiaodong0815 (#3445)
  • feat(edgeless): migrate to lineWidthPanel for shape and connector @donteatfriedrice (#3459)
  • feat(edgeless): complete canvas text component toolbar @donteatfriedrice (#3465)
  • feat(slash-menu): insert database after the current block @zqran (#3102)
  • feat(store): clarify different types of providers @himself65 (#3073)
  • feat(store): lazy load spaces only when waitForLoaded is called @Saul-Mirone (#3082)
  • feat(store): add workspace version in meta @Saul-Mirone (#3107)
  • feat(store): let user control subdoc load timing after page meta added @Saul-Mirone (#3157)
  • feat(store): init broadcast channel provider @himself65 (#3190)
  • feat(virgo): support embed @Flrande (#3041)
  • fix: unable to focus on image caption @lawvs (#3000)
  • fix: link page menu active state @lawvs (#3038)
  • fix: press enter in the middle of parent also indent children list @donteatfriedrice (#3046)
  • fix: link page menu import icon @lawvs (#3054)
  • fix: export two adjacent bookmarks produce one invalid url @donteatfriedrice (#3055)
  • fix: ignore arrow key when select is composing @lawvs (#3076)
  • fix: cannot drag to select the block @zqran (#3088)
  • fix: exclude the current page from linked page popover @lawvs (#3114)
  • fix: can not drop bookmark with new frame in edgeless from block-hub @QiShaoXuan (#3145)
  • fix: notion import error on todo @fourdim (#3110)
  • fix: handling backspace key press for cursor transition from paragraph to page title @zhengjitf (#3148)
  • fix: text cannot be selected in edit mode @zzj3720 (#3173)
  • fix: missing update in provider @himself65 (#3213)
  • fix: edgeless text error when importing from snapshot @Saul-Mirone (#3229)
  • fix: console error exporting PNG/PDF in playground @zuoxiaodong0815 (#3205)
  • fix: the incorrect import path @fourdim (#3234)
  • fix: image resize after switch page mode @lawvs (#3238)
  • fix: remove generic in js @lawvs (#3239)
  • fix: bookmark toolbar hidden by the frame in edgeless mode @QiShaoXuan (#3267)
  • fix: drag handle indicator z index @himself65 (#3270)
  • fix: bookmark block z index @himself65 (#3272)
  • fix: typo @lzlme (#3274)
  • fix: prepend "https" if url without protocol when bookmark click to open @QiShaoXuan (#3277)
  • fix: missing title when exporting markdown @zuoxiaodong0815 (#3273)
  • fix: link confirm should change color when link legal @lawvs (#3276)
  • fix: missing blob mime types in IndexedDB @fourdim (#3280)
  • fix: notion import error on bookmark @fourdim (#3302)
  • fix: show widgets in edgeless @lawvs (#3307)
  • fix: dark mode export PNG is not consistent with dark mode appearance and hard to read @zuoxiaodong0815 (#3298)
  • fix: edgeless toolbar overflow @donteatfriedrice (#3309)
  • fix: page tag ui styling @zqran (#3317)
  • fix: ignore import blobId for non http url @himself65 (#3325)
  • fix: switch to popover z index variable @lawvs (#3328)
  • fix: console error when copying as image @fundon (#3331)
  • fix: can not insert bookmark in correct position from block hub @QiShaoXuan (#3333)
  • fix: todo block display error after importing notion @zuoxiaodong0815 (#3322)
  • fix: backlink jump does not work @zzj3720 (#3342)
  • fix: toast unstable @lawvs (#3349)
  • fix: text before the link incorrectly automatically recognized as part of the link @QiShaoXuan (#3357)
  • fix: cursor jump when pasting text @Flrande (#3361)
  • fix: hide turn card btn when the link inside database @lawvs (#3397)
  • fix: can not paste url to create bookmark @QiShaoXuan (#3399)
  • fix: multiple database block selection conflict @zzj3720 (#3414)
  • fix: after exporting bookmark, the image is empty @zuoxiaodong0815 (#3417)
  • fix: adaptation vertical edgeless-zoom-toolbar @Yukiniro (#3431)
  • fix: default language option unmatched @AliceLanniste (#3419)
  • fix: display current lang first @lawvs (#3442)
  • fix: incorrect highlight for page info and bookmark after exporting @zuoxiaodong0815 (#3443)
  • fix: circular import @himself65 (#3451)
  • fix: paste multi lines in windows @fourdim (#3455)
  • fix: remove windows html format clipboard fragment @fourdim (#3458)
  • fix: code block lagging @lawvs (#3462)
  • fix: brush icon color should be consistent with selected color @donteatfriedrice (#3464)
  • fix: format bar break caretRangeFromPoint @lawvs (#3479)
  • fix: lang list z-index in code block @lawvs (#3484)
  • fix: redundant editing button on the exported file @zuoxiaodong0815 (#3478)
  • fix: style error casused by prettier formatting @QiShaoXuan (#3493)
  • fix: cursor position on changing block types @smallnine9 (#3158)
  • fix: copy as png @zuoxiaodong0815 (#3502)
  • fix: fail to inteligent identify link string @QiShaoXuan (#3519)
  • fix: add default image proxy url @zuoxiaodong0815 (#3523)
  • fix: don't forcefully change list type @smallnine9 (#3526)
  • fix: simple editor error on Hub/Content must have parent @fourdim (#3531)
  • fix: inaccurate markdown convert patterns @zhengjitf (#3530)
  • fix: copy as PNG paste location is impacted by zoom @donteatfriedrice (#3534)
  • fix: bookmark modal style error @QiShaoXuan (#3548)
  • fix: the image in the page mode can not be copied and downloaded @zuoxiaodong0815 (#3555)
  • fix: file type @himself65 (#3562)
  • fix: filter connectors when rotating with multiselect @Yukiniro (#3557)
  • fix: register database in simple affine editor @joshirakesh (#3563)
  • fix: the image in the page mode can not be copied and downloaded @zuoxiaodong0815 (#3575)
  • fix: incorrect icon color in dark mode @JimmFly (#3580)
  • fix: ad-hoc the process key with ime @lawvs (#3582)
  • fix(block-hub): delete redundant DragIndicator @fundon (#3105)
  • fix(block-std): use the host as keyboard control root @lawvs (#3297)
  • fix(database): dragging to the number column cannot trigger row selecion @zqran (#3077)
  • fix(database): select option icon color @zqran (#3096)
  • fix(database): wrong "+ new record" button position @zqran (#3100)
  • fix(database): accidentally triggered row selection @zqran (#3129)
  • fix(database): scrollbar is missing @zzj3720 (#3265)
  • fix(database): save data when number column is out of focus @zqran (#3260)
  • fix(database): width adjust preview has wrong position @zzj3720 (#3321)
  • fix(database): prevent tag from being selected when compsing @zqran (#3336)
  • fix(database): hotkeys do not work @zzj3720 (#3356)
  • fix(database): normalize url of link column @zqran (#3373)
  • fix(database): enter row level selection on click drag handle @zqran (#3363)
  • fix(database): search is too strict @zzj3720 (#3522)
  • fix(database): selection will flash when selecting text in title column @zzj3720 (#3524)
  • fix(database): unable to blur from cell of title column @zzj3720 (#3528)
  • fix(database): incomplete display of the color list @zzj3720 (#3527)
  • fix(database): support pasting code block content @zqran (#3535)
  • fix(edgeless): fix intersects method @regischen (#3023)
  • fix(edgeless): correct the connecotor's handle behavior @blurname (#3030)
  • fix(edgeless): fix delete and select-all when active @regischen (#3027)
  • fix(edgeless): fit to screen not working @regischen (#3070)
  • fix(edgeless): connectors cannot be activated using letter shortcuts @donteatfriedrice (#3099)
  • fix(edgeless): click not remove database @regischen (#3116)
  • fix(edgeless): add a new note if all notes are hidden @Flrande (#3215)
  • fix(edgeless): note toolbar position @Flrande (#3241)
  • fix(edgeless): note index should only appear when selecting a note @Flrande (#3248)
  • fix(edgeless): make cursor visible in empty text @Flrande (#3259)
  • fix(edgeless): click in page mode will add a new note automatically when no visible note @Flrande (#3263)
  • fix(edgeless): edgeless toolbar position not updated when viewport changed @Flrande (#3296)
  • fix(edgeless): update toolbar position when selected rect updated @Flrande (#3308)
  • fix(edgeless): optimize elbow connector path structure @regischen (#3285)
  • fix(edgeless): the selected rect follow snap @regischen (#3312)
  • fix(edgeless): fix connector paste bugs @regischen (#3313)
  • fix(edgeless): adjust note toolbar width @Flrande (#3341)
  • fix(edgeless): multi-selection of shape elements @doouding (#3358)
  • fix(edgeless): dragging a block from the middle of a note should not separate t… @doouding (#3360)
  • fix(edgeless): note overlay padding issue @donteatfriedrice (#3380)
  • fix(edgeless): add z-index in canvas text editor @Flrande (#3386)
  • fix(edgeless): edgeless toolbar note-menu rounded border @donteatfriedrice (#3388)
  • fix(edgeless): fix incorrect connector color state @regischen (#3390)
  • fix(edgeless): optimize note toolbar ui styling @Flrande (#3387)
  • fix(edgeless): reset selected blocks after clipping note @doouding (#3396)
  • fix(edgeless): fix incorrect connector handle position on zooming @regischen (#3403)
  • fix(edgeless): note menu scroll too fast @donteatfriedrice (#3410)
  • fix(edgeless): cursor when resizing @fundon (#3411)
  • fix(edgeless): lower the note height updating threshold @doouding (#3412)
  • fix(edgeless): add size limit for grid gap @Yukiniro (#3425)
  • fix(edgeless): connector toolbar stroke border @regischen (#3441)
  • fix(edgeless): unexpected history record added when updating note height @doouding (#3424)
  • fix(edgeless): missing images when copying as png @fundon (#3450)
  • fix(edgeless): incorrect overlay position on panning edgeless viewport @donteatfriedrice (#3422)
  • fix(edgeless): scissors z-index bug after bump into AFFiNE @doouding (#3460)
  • fix(edgeless): change image caption background to transparent @donteatfriedrice (#3475)
  • fix(edgeless): change shape stroke style to none does not work @donteatfriedrice (#3474)
  • fix(edgeless): convert surface element to Y data structure only on first level @doouding (#3480)
  • fix(edgeless): copy-as-png at different zoom levels @fundon (#3494)
  • fix(edgeless): inserted image size should be consistent in different viewport zoom level @donteatfriedrice (#3500)
  • fix(edgeless): connector tooltips inconsistency @donteatfriedrice (#3517)
  • fix(edgeless): text align in canvas text @Flrande (#3521)
  • fix(edgeless): z-index of shape text editor @Flrande (#3554)
  • fix(edgeless): text rect should be updated after changed font @Flrande (#3573)
  • fix(editor): unable to insert blocks in new page @donteatfriedrice (#3020)
  • fix(phasor): bound should be calculated using expand @fundon (#3220)
  • fix(phasor): curveFitting should be enabled on ellipse @fundon (#3224)
  • fix(phasor): align the text rendered on the canvas with the text in the DOM @Flrande (#3552)
  • fix(playground): press cmd+z loss content when first time enter playground @donteatfriedrice (#3017)
  • fix(store): ytext in a ymap throws error when cloned by proxy @Saul-Mirone (#3062)
  • fix(store): waitForLoaded timeout if doc loaded @Saul-Mirone (#3176)
  • fix(store): provider awareness @himself65 (#3186)
  • fix(store): broadcast channel @himself65 (#3200)
  • fix(store): workspace search @himself65 (#3201)
  • fix(store): enable database by default @himself65 (#3219)
  • fix(store): bring back remove page for subdoc @Saul-Mirone (#3221)
  • fix(store): broadcast channel not defined @himself65 (#3222)
  • fix(store): snapshot import and export @Saul-Mirone (#3223)
  • fix(store): handle resource load error when importing snapshot @Saul-Mirone (#3227)
  • fix(virgo): handle the deletion of selected text @Flrande (#3155)
  • refactor: replace @popperjs/core with @floating-ui/dom @zqran (#3021)
  • refactor: move font @import to playground @Flrande (#3026)
  • refactor: clean selection state @lawvs (#3080)
  • refactor: decouple cell render from model @zzj3720 (#3086)
  • refactor: move image options inside image block @lawvs (#3111)
  • refactor: use transform instead of position on selected-blocks @fundon (#3166)
  • refactor: refact toast @lawvs (#3183)
  • refactor: switch to block level image selection @lawvs (#3178)
  • refactor: remove focused from BlockElement @lawvs (#3214)
  • refactor: migrate image resize manager to block level @lawvs (#3218)
  • refactor: image upload API @lawvs (#3237)
  • refactor: replacing whitespace with   @zzj3720 (#3279)
  • refactor: migrate slash menu to widget component @lawvs (#3128)
  • refactor: remove unused clipboard module @doodlewind (#3300)
  • refactor: add import tests for tables and bookmarks @fourdim (#3353)
  • refactor: remove deprecated format bar buttom component @lawvs (#3420)
  • refactor: migrate linked page to widget @lawvs (#3449)
  • refactor: remove active color from icon @lawvs (#3477)
  • refactor: support customize linked page @lawvs (#3565)
  • refactor(blocks): frame -> note @Flrande (#3144)
  • refactor(blocks): embed -> image @Saul-Mirone (#3147)
  • refactor(blocks): make elements as prop of surface block @Saul-Mirone (#3156)
  • refactor(blocks): split code @Flrande (#3228)
  • refactor(database): set the cell height after selecting select @zqran (#3037)
  • refactor(database): use hover to show modify select color popup & test @zqran (#3036)
  • refactor(database): make the cell editing mode consistent @zzj3720 (#3109)
  • refactor(database): decouple table render from model @zzj3720 (#3151)
  • refactor(edgeless): clean code about color in edgeless @Flrande (#3024)
  • refactor(edgeless): switch to Bound.deserialize @regischen (#3131)
  • refactor(edgeless): mode -> tool @doodlewind (#3181)
  • refactor(edgeless): empty note @Flrande (#3210)
  • refactor(edgeless): rename children container @Flrande (#3231)
  • refactor(edgeless): surface-text-editor -> edgeless-text-editor @Flrande (#3389)
  • refactor(edgeless): remove redundant callback param @fundon (#3439)
  • refactor(phasor): close vitest browser mode @Flrande (#3016)
  • refactor(phasor): remove unnecessary fields @Flrande (#3050)
  • refactor(phasor): manage roughness using constants @Flrande (#3051)
  • refactor(phasor): prevent SurfaceElement export @Flrande (#3150)
  • refactor(phasor): copy roughjs @Flrande (#3245)
  • refactor(store): remove deprecated tag in schema @Saul-Mirone (#3098)
  • refactor(store): remove shim logic for providers @Saul-Mirone (#3182)
  • refactor(store): abstract provider implementation @himself65 (#3193)
  • refactor(store): optimization and bug fix for proxy @Saul-Mirone (#3209)
  • refactor(store): use prefixedId as subdoc's guid @thorseraq (#3359)
  • refactor(virgo): rewrite embed support @Flrande (#3504)
  • refactor(virgo): isVRangeEqual should not accept null values @Flrande (#3560)
  • revert: circular deps @doodlewind (#3004)
  • style: adjust checkbox style @JimmFly (#3240)
  • style: adjust link page style and add padding for title @JimmFly (#3290)
  • test: add coverage on yjs applyUpdate @himself65 (#3188)
  • test(database): add tests for row selection @zqran (#3079)

New Contributors

Full Changelog: v0.6.0...v0.7.0