L-Sun
a2e3d318ba
refactor(editor): adjust ui of surface-ref inner toolbar ( #11129 )
...
Close [BS-2803](https://linear.app/affine-design/issue/BS-2803/inserted-frame-ui%E8%B0%83%E6%95%B4 )
Close [BS-2815](https://linear.app/affine-design/issue/BS-2815/inserted-group-ui调整 )
### What Changes
- Add an inner toolbar for hovered `surface-ref-block`
- Simplify viewport related codes of `surface-ref-block`
- Expose popover floating options from `affine-menu-button`
https://github.com/user-attachments/assets/916b0a22-6271-4a6f-b338-6630e0426967
2025-03-25 03:48:12 +00:00
L-Sun
da63d51b7e
refactor(editor): group and expose parameters of createButtonPopper ( #10999 )
2025-03-20 08:37:59 +00:00
L-Sun
9211fbf68c
refactor(editor): move surface-ref toolbar to its block folder ( #10938 )
2025-03-19 10:54:22 +00:00
L-Sun
68bc2db560
fix(editor): descendant elements are missing in edgelessToCanvas ( #10933 )
...
### Before

### After

2025-03-19 03:35:06 +00:00
L-Sun
83af78d9ee
chore(editor): update icon color of link doc card ( #10943 )
...
Close [BS-2679](https://linear.app/affine-design/issue/BS-2679/card-view-icon-color-incorrect )
2025-03-18 05:00:26 +00:00
L-Sun
3dbeebd6ba
fix(editor): background of surface-ref disappeared when it was re-rendered ( #10931 )
...
This PR fixed the background of surface-ref dis
2025-03-17 14:00:17 +00:00
L-Sun
cc8ec72f2c
feat(editor): insert a mindmap slash menu action ( #10930 )
...
Close [BS-2516](https://linear.app/affine-design/issue/BS-2516/添加mind-map入口 )
2025-03-17 13:19:56 +00:00
L-Sun
d80f1e8067
feat(editor): insert a blank frame slash menu action ( #10899 )
...
Close [BS-2517](https://linear.app/affine-design/issue/BS-2517/%E6%B7%BB%E5%8A%A0frame%E5%85%A5%E5%8F%A3 )
### What changes:
- add a insert blank frame action to slash menu
- move `EdgelessFrameManager` and `FrameOverlay` extensions to `FrameBlockSpec`
- make `FrameBlockSpec` as a part of `CommonBlockSpecs` such that we can use `EdgelessFrameManager` to create a frame more easily
https://github.com/user-attachments/assets/ddff5866-8933-4ce5-aaf4-873661407ee4
2025-03-17 10:32:55 +00:00
L-Sun
c1301be1f5
fix(editor): repeat instantiation of std ( #10896 )
2025-03-17 01:04:51 +00:00
L-Sun
3b4453d2b8
chore(editor): update default width of page block ( #10873 )
...
Close [BS-2498](https://linear.app/affine-design/issue/BS-2498/page-block首次切换时默认宽度为800px )
2025-03-14 12:59:17 +00:00
L-Sun
7ba1c1b271
chore(editor): use at menu to insert linked doc ( #10808 )
...
Close [BS-2799](https://linear.app/affine-design/issue/BS-2799/区分linked-doc入口 )
This PR removes the patch for `Linked Doc` action in the slash menu via the `QuickSearch`, reverting it to use the at menu for inserting.
2025-03-13 08:01:59 +00:00
L-Sun
8ac687628c
chore(editor): at menu stays open when left right arrow keys are pressed ( #10806 )
...
Close [BS-2644](https://linear.app/affine-design/issue/BS-2644/menu-support )
2025-03-13 06:14:35 +00:00
L-Sun
c378a8a3ad
fix(editor): horizontal scroll bar missing in code block ( #10742 )
2025-03-12 01:14:45 +00:00
L-Sun
027d3a51dc
chore(editor): keep root slash menu open when pressing left arrow left ( #10730 )
...
Close [BS-2643](https://linear.app/affine-design/issue/BS-2643/slash-menu-左键不关闭根菜单 )
2025-03-10 13:36:37 +00:00
L-Sun
c45abb013a
fix(editor): error rotation of highlight element in frame ( #10737 )
...
This PR fixed frame rotation by converting degrees to radians
2025-03-10 12:59:11 +00:00
L-Sun
c13d4c575f
chore(editor): update slash menu tooltips ( #10746 )
...
Close [BS-2676](https://linear.app/affine-design/issue/BS-2676/loom入口增加简介 ) [BS-2767](https://linear.app/affine-design/issue/BS-2767/table的tooltip需要更新,现在用的是database的 )
2025-03-10 12:38:59 +00:00
L-Sun
6b0639facd
fix(editor): repeated instantiation of frame preview editor ( #10729 )
...
Close [BS-2774](https://linear.app/affine-design/issue/BS-2774/frame-preview-会重新创建editor )
2025-03-10 04:41:20 +00:00
L-Sun
05a6845962
refactor(editor): data view slash menu config extension ( #10684 )
2025-03-07 15:22:41 +00:00
L-Sun
46466e2c3a
refactor(editor): code block slash menu config extension ( #10683 )
2025-03-07 15:22:41 +00:00
L-Sun
63bf2b80c1
refactor(editor): linked doc slash menu config extension ( #10682 )
2025-03-07 14:42:56 +00:00
L-Sun
83b05aca4d
refactor(editor): surface-ref slash menu config extension ( #10681 )
2025-03-07 09:05:04 +00:00
L-Sun
d37868d97a
refactor(editor): ai slash menu config extension ( #10680 )
2025-03-07 09:05:03 +00:00
L-Sun
8d9746e0cc
refactor(editor): embed slash menu config extension ( #10679 )
2025-03-07 08:21:19 +00:00
L-Sun
37a13032ed
refactor(editor): note slash menu config extension ( #10678 )
2025-03-07 08:21:18 +00:00
L-Sun
4be80d87ff
refactor(editor): latex slash menu config extension ( #10677 )
2025-03-07 08:21:18 +00:00
L-Sun
ea20751b9b
refactor(editor): attachment slash menu config extension ( #10676 )
2025-03-07 05:48:41 +00:00
L-Sun
34e777e043
refactor(editor): bookmark slash menu config extension ( #10675 )
2025-03-07 05:48:40 +00:00
L-Sun
4e80ecd591
refactor(editor): image slash menu config extension ( #10674 )
2025-03-07 05:48:40 +00:00
L-Sun
66ad87c84a
refactor(editor): table slash menu config extension ( #10673 )
2025-03-07 05:48:39 +00:00
L-Sun
0a234fa263
refactor(editor): callout slash menu config extension ( #10672 )
2025-03-07 04:24:09 +00:00
L-Sun
98d44d5be5
refactor(editor): move focus block commands to blocksuite/shared ( #10671 )
2025-03-07 03:07:49 +00:00
L-Sun
43ce609cba
refactor(editor): database slash menu config extension ( #10670 )
2025-03-07 02:50:27 +00:00
L-Sun
490a191a11
refactor(editor): replace icons with blocksuite/icons ( #10655 )
2025-03-07 02:50:26 +00:00
L-Sun
750c8a44dc
refactor(editor): add slash menu config extension entry ( #10641 )
...
Close [BS-2744](https://linear.app/affine-design/issue/BS-2744/slash-menu%E6%8F%92%E4%BB%B6%E5%8C%96%EF%BC%9Aaction%E6%B3%A8%E5%86%8C%E5%85%A5%E5%8F%A3 )
This PR mainly focus on providing an entry point for configuring the SlashMenu feature. Therefore, it strives to retain the original code to ensure that the modifications are simple and easy to review. Subsequent PRs will focus on moving different configurations into separate blocks.
### How to use?
Here is the type definition for the slash menu configuration. An important change is the new field `group`, which indicates the sorting and grouping of the menu item. See the comments for details.
```ts
// types.ts
export type SlashMenuContext = {
std: BlockStdScope;
model: BlockModel;
};
export type SlashMenuItemBase = {
name: string;
description?: string;
icon?: TemplateResult;
/**
* This field defines sorting and grouping of menu items like VSCode.
* The first number indicates the group index, the second number indicates the item index in the group.
* The group name is the string between `_` and `@`.
* You can find an example figure in https://code.visualstudio.com/api/references/contribution-points#menu-example
*/
group?: `${number}_${string}@${number}`;
/**
* The condition to show the menu item.
*/
when?: (ctx: SlashMenuContext) => boolean;
};
export type SlashMenuActionItem = SlashMenuItemBase & {
action: (ctx: SlashMenuContext) => void;
tooltip?: SlashMenuTooltip;
/**
* The alias of the menu item for search.
*/
searchAlias?: string[];
};
export type SlashMenuSubMenu = SlashMenuItemBase & {
subMenu: SlashMenuItem[];
};
export type SlashMenuItem = SlashMenuActionItem | SlashMenuSubMenu;
export type SlashMenuConfig = {
/**
* The items in the slash menu. It can be generated dynamically with the context.
*/
items: SlashMenuItem[] | ((ctx: SlashMenuContext) => SlashMenuItem[]);
/**
* Slash menu will not be triggered when the condition is true.
*/
disableWhen?: (ctx: SlashMenuContext) => boolean;
};
// extensions.ts
/**
* The extension to add a slash menu items or configure.
*/
export function SlashMenuConfigExtension(ext: {
id: string;
config: SlashMenuConfig;
}): ExtensionType {
return {
setup: di => {
di.addImpl(SlashMenuConfigIdentifier(ext.id), ext.config);
},
};
}
```
Here is an example, `XXXSlashMenuConfig` adds a `Delete` action to the slash menu, which is assigned to the 8th group named `Actions` at position 0.
```ts
import { SlashMenuConfigExtension, type SlashMenuConfig } from '@blocksuite/affine-widget-slash-menu';
const XXXSlashMenuConfig = SlashMenuConfigExtension({
id: 'XXX',
config: {
items: [
{
name: 'Delete',
description: 'Remove a block.',
searchAlias: ['remove'],
icon: DeleteIcon,
group: '8_Actions@0',
action: ({ std, model }) => {
std.host.doc.deleteBlock(model);
},
},
],
},
});
```
2025-03-06 16:12:06 +00:00
L-Sun
62d8c0c7cb
refactor(editor): adjust folder structure for slash menu extension ( #10588 )
...
Close [BS-2743](https://linear.app/affine-design/issue/BS-2743/slash-menu插件化:调整文件夹结构 )
This PR move slash menu from `affine-root-block` to `widget-affine-slash-menu`, and make it as a `WidgetViewExtension`
2025-03-06 16:12:06 +00:00
L-Sun
797e63f86f
chore(editor): remove unexpected bottom padding of code block ( #10660 )
...
Close [BS-2765](https://linear.app/affine-design/issue/BS-2765/代码块在字数超出宽度时,下巴变大 )
https://github.com/user-attachments/assets/1dc53528-6d36-4b2a-861c-9ca06381c681
2025-03-06 09:26:00 +00:00
L-Sun
37fbfbcf3e
fix(editor): zindex of frame child not updated ( #10580 )
...
Close [BS-2689](https://linear.app/affine-design/issue/BS-2689/[bug]-%E5%BD%93%E5%B1%82%E7%BA%A7%E4%BD%8E%E4%BA%8E-frame-%E7%9A%84yuan%E7%B4%A0%E8%A2%AB%E6%8B%96%E5%85%A5-frame-%E6%97%B6%E5%B1%82%E7%BA%A7%E5%BA%94%E8%AF%A5%E8%A2%AB%E8%87%AA%E5%8A%A8%E6%8B%89%E9%AB%98%E5%B5%8C%E5%85%A5-frame )
2025-03-03 10:51:27 +00:00
L-Sun
2cd83be621
fix(editor): code block toolbar float offset ( #10579 )
...
Close [BS-2736](https://linear.app/affine-design/issue/BS-2736/代码块工具栏偏移太大 ), [BS-1974](https://linear.app/affine-design/issue/BS-1974/code-block-浮标歪 )
## Before
https://github.com/user-attachments/assets/f4ec4d7d-8c18-43ea-9464-c18e8b8dce60
https://github.com/user-attachments/assets/76f89ce6-bd89-49d6-a987-e9e5d5f9842a
### After
https://github.com/user-attachments/assets/dac919b9-d19c-4fb3-99bf-be02a460ad8c
https://github.com/user-attachments/assets/e5329f84-f1cf-4776-a789-8d12bea17ece
2025-03-03 09:56:13 +00:00
L-Sun
61541a2d15
fix(editor): patch android backspace key binding with beforeInput ( #10523 )
...
Close [BS-1869](https://linear.app/affine-design/issue/BS-1869/[bug]-android-chrome-%E8%BE%93%E5%85%A5%E9%94%99%E8%AF%AF )
## Problem
On Android devices, keyboard events do not properly capture key information, causing the backspace key and other keyboard functionalities to malfunction. This is due to the specific behavior of Android platform, as discussed in:
- https://stackoverflow.com/a/68188679
- https://stackoverflow.com/a/66724830
## Solution
1. Added special handling for Android platform in `KeyboardControl` class by using `beforeInput` event instead of `keyDown` event
2. Implemented `androidBindKeymapPatch` function to handle special key events on Android platform
3. Updated event handling logic in related components, including:
- CodeBlock
- ListKeymap
- ParagraphKeymap
- PageKeyboardManager
## Changes
- Added `androidBindKeymapPatch` function for handling key events on Android platform
- Modified `KeyboardControl.bindHotkey` method to add `beforeInput` event handling for Android
- Unified event object access using `ctx.get('defaultState').event` instead of `keyboardState.raw`
- Updated key event handling logic in multiple components
## Before
https://github.com/user-attachments/assets/e8602de4-d584-4adf-816f-369f38312022
## After
https://github.com/user-attachments/assets/f9e1680e-28ff-4d52-bdab-7683cdcb6f82
2025-02-28 13:03:00 +00:00
L-Sun
d476d3b1df
fix(editor): android keyboard can not be opened ( #10502 )
...
Close [BS-2674](https://linear.app/affine-design/issue/BS-2674/[android]-%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%8C%BA%E5%9F%9F%E7%82%B9%E5%87%BB%E5%90%8E%E6%97%A0%E6%B3%95%E6%BF%80%E6%B4%BB%E9%94%AE%E7%9B%98 ) [BS-2609](https://linear.app/affine-design/issue/BS-2609/[android]-%E8%BE%93%E5%85%A5%E7%9A%84-toolbar-%E6%B2%A1%E6%9C%89%E4%BA%86 )
2025-02-28 08:23:26 +00:00
L-Sun
90b37ce65c
fix(core): editor blur unexpectedly when clicking blank area ( #10501 )
...
### Before
https://github.com/user-attachments/assets/3c4b20e1-6d89-4dc7-a51f-04b6e9a89486
### After
https://github.com/user-attachments/assets/86b93403-597e-4dbb-ab65-90908342c230
2025-02-28 07:05:06 +00:00
L-Sun
27fc4afc35
chore(core): remove capacitor from frontend/core ( #10500 )
2025-02-28 07:05:05 +00:00
L-Sun
b995b4f965
chore(editor): update page block telemetry ( #10487 )
...
Close [BS-2711](https://linear.app/affine-design/issue/BS-2711/page-block埋点更新 )
2025-02-27 09:58:58 +00:00
L-Sun
2732b96d00
fix(editor): overflow of embed github card in edgeless note ( #10442 )
...
This PR fixes the overflow of the `embed-github-card` inside edgeless notes.
https://github.com/user-attachments/assets/21775d0f-e4c8-4fcc-86d8-aafb27033358
2025-02-26 09:33:57 +00:00
L-Sun
72b751943c
fix(editor): using click event instead of pointerDown event for page block ( #10351 )
...
Close [BS-2647](https://linear.app/affine-design/issue/BS-2647/ios返回手势会误触发focus导致弹起键盘 )
### What Changes:
- Using `click` event instead of `pointerDown` event to handle selection logic in page block, because gestures on mobile devices can trigger the `pointerDown` event, causing the cursor to update and unexpectedly bring up the virtual keyboard.
2025-02-21 13:19:51 +00:00
L-Sun
f79324b6a1
chore(editor): update shadow of ask-ai-panel ( #10336 )
...
Close [PD-2343](https://linear.app/affine-design/issue/PD-2343/[ui]-ai-面板-shadow-改为-overlaypanelshadow )
2025-02-21 06:12:05 +00:00
L-Sun
4fee2a9c4b
chore(editor): update some widget styles ( #10311 )
2025-02-20 15:39:48 +08:00
L-Sun
61ee5531f4
fix(core): incorrect root config identifier ( #10285 )
2025-02-19 08:20:22 +00:00
L-Sun
4e546c78ef
chore(core): remove template doc feature flag ( #10252 )
2025-02-18 09:25:06 +00:00
L-Sun
e639f08b71
chore(editor): remove page block feature flag ( #10251 )
2025-02-18 09:25:05 +00:00
L-Sun
85e413f8c8
chore(editor): add telemetry track to display mode of note ( #10192 )
...
Close [BS-2468](https://linear.app/affine-design/issue/BS-2468/analytics-for-page-block-polish )
2025-02-17 03:23:55 +00:00
L-Sun
35aec95022
chore(editor): adjust margin of edgeless page block title ( #10188 )
...


2025-02-14 11:44:00 +00:00
L-Sun
9d08f446cc
refactor(editor): remove redundant edgeless icons ( #10169 )
...
Continue [BS-2240](https://linear.app/affine-design/issue/BS-2240/%E6%B8%85%E7%90%86%E9%87%8D%E5%A4%8D%E7%9A%84icon )
This PR removes `icons/edgeless.ts` and refactor with `@blocksuite/icons` for reducing redundant icons
2025-02-14 05:03:26 +00:00
L-Sun
3ada4bee0d
chore(editor): adjust min width of edgeless note ( #10153 )
...
Close [BS-2499](https://linear.app/affine-design/issue/BS-2499/所有notes最小宽度调整为218px )
### What changes
- adjusted min width of edgeless note
- placeholder show ellipsis in min edgeless note
- refactored somes button of `change-note-button.ts` with `isPageBlock`
2025-02-13 12:40:14 +00:00
L-Sun
a7de6edfef
fix(editor): overflow of dragging preview of note card in ToC ( #10160 )
...
Close [BS-2503](https://linear.app/affine-design/issue/BS-2503/长note拖拽时会带着右侧边栏标题一起移动 )
2025-02-13 09:55:11 +00:00
L-Sun
dbf1d0038a
fix(edtiro): hide toc drag indicator on edgeless note ( #10135 )
...
Close [BS-2497](https://linear.app/affine-design/issue/BS-2497/隐藏edgeless-only的toc的dnd-indicator )
2025-02-13 04:18:12 +00:00
L-Sun
011c18de8b
fix(editor): hide collpased content during dragging note ( #10133 )
...
Close [BS-2531](https://linear.app/affine-design/issue/BS-2531/%E6%8B%96%E5%8A%A8%E6%8A%98%E5%8F%A0%E7%9A%84note%E6%97%B6%EF%BC%8C%E4%B8%8D%E6%98%BE%E7%A4%BA%E9%9A%90%E8%97%8F%E5%86%85%E5%AE%B9 ), [BS-2536](https://linear.app/affine-design/issue/BS-2536/page-block%E9%A1%B6%E9%83%A8toolbar )
2025-02-13 04:18:11 +00:00
L-Sun
9a17422d36
fix(editor): wrong position of remote selection and at menu in edgeless ( #10137 )
...
Close [BS-2552](https://linear.app/affine-design/issue/BS-2552/menu-loading-时滚动,定位错误 ), [BS-2490](https://linear.app/affine-design/issue/BS-2490/note-block-的menu的输入阴影错位 ), [BS-2300](https://linear.app/affine-design/issue/BS-2300/at-menu的输入阴影在暗黑模式看不见 )
### What Changes
- fix the position of remote selection mask and @ menu input mask in edgeless
- fix the position of @ menu is no updated during edgeless viewport change
- update @ menu mask color in dark mode
### Before
https://github.com/user-attachments/assets/f44f618e-a791-497a-9f53-74824fe48dea
### After
https://github.com/user-attachments/assets/5d87b999-deae-4435-9b8b-4cdf55393395
2025-02-13 01:56:01 +00:00
L-Sun
54d194afe7
fix(editor): set edgeless note style will override collapse state ( #10098 )
...
Close [BS-2489](https://linear.app/affine-design/issue/BS-2489/%E6%94%B9%E5%8F%98note-style%E4%BC%9A%E9%87%8D%E7%BD%AEcollapse%E7%8A%B6%E6%80%81 )
2025-02-11 14:29:25 +00:00
L-Sun
0b3c7a578e
fix(editor): collapsed page block visibility ( #10097 )
...
This PR fixed that doc title is not hidden when page block is collapsed
2025-02-11 14:29:24 +00:00
L-Sun
42bdae16fb
fix(editor): only render emoji in page block header ( #10096 )
2025-02-11 14:29:23 +00:00
L-Sun
401ce70153
refactor(core): remove the unused compareDate field from DocDisplayIconOptions ( #10095 )
2025-02-11 13:26:43 +00:00
L-Sun
a5f36eb1d8
refactor(editor): configurable page block title ( #10063 )
...
### What changes
- make page block title rendering configurable so that a journal title can be rendered by AFFiNE side.
- move page block render logic to a seperate component
2025-02-10 18:17:28 +00:00
L-Sun
23364b59a0
fix(editor): wrap doc title by default ( #10052 )
...
Close [AF-2195](https://linear.app/affine-design/issue/AF-2195/editor-的-title-overflow-时没有换行 )
2025-02-10 11:30:14 +00:00
L-Sun
9f56a21d8a
feat(editor): add animation for switching to edgeless mode firstly ( #10021 )
...
Close [BS-2327](https://linear.app/affine-design/issue/BS-2327/page-block-%E5%9C%A8-edgeless-%E5%88%87%E6%8D%A2%E7%BC%A9%E6%94%BE%E5%8A%A8%E7%94%BB )
### What Changes:
- Add a zoom animation when switching to edgeless mode firstly
- Move viewport record from `sessionStorage` to `localStorage`
https://github.com/user-attachments/assets/dac11aab-76bd-44b1-8c0e-4a8a10919841
2025-02-10 07:41:10 +00:00
L-Sun
459972fe6c
fix(editor): add missing zod schema for edgeless frame ( #10024 )
...
Related to https://github.com/toeverything/AFFiNE/pull/9970#discussion_r1944971309
### What changes:
- Add missing zod shcema for edgeless basic props
- Change `applyLastProps` to generic function for better return type inference of
- Fix: add `ZodIntersection` case to `makeDeepOptional`
2025-02-07 12:49:59 +00:00
L-Sun
891d9df0b1
feat(editor): show doc title in page block ( #9975 )
...
Close [BS-2392](https://linear.app/affine-design/issue/BS-2392/page-block-需要显示文章title )
### What Changes
- Add `<doc-title>` to edgeless page block (a.k.a the first page visible note block)
- Refactors:
- Move `<doc-title>` to `@blocksuite/affine-component`, but you can aslo import it from `@blocksuite/preset`
- Extract `<edgeless-note-mask>` and `<edgeless-note-background>` from `<affine-edgeless-note>` to a seperate file
- Rewrite styles of `<affine-edgeless-note>` with `@vanilla-extract/css`
https://github.com/user-attachments/assets/a0c03239-803e-4bfa-b30e-33b919213b12
2025-02-06 21:18:28 +00:00
L-Sun
f309f8f3e1
fix(ios): incorrect return of getBlob binding in ios ( #9995 )
2025-02-06 17:03:51 +00:00
L-Sun
829980bace
refactor(editor): toc dragging with std.dnd ( #9883 )
...
Close [BS-2458](https://linear.app/affine-design/issue/BS-2458/toc-dnd重构 )
### What Changes
- Refactor toc note card dnd with `std.dnd`
- Extract note display mode change to command `changeNoteDisplayMode`
- It will reorder notes when the display mode changed from `EdgelessOnly` to page mode visible (a.k.a `DocOnly` or `Both`)
2025-01-24 13:27:17 +00:00
L-Sun
351816b343
fix(editor): prevent errors when moving a block to its own position ( #9887 )
2025-01-24 12:55:55 +00:00
L-Sun
3f4311ff1c
chore(editor): add RTL experiement flag for editor ( #9882 )
2025-01-24 08:23:24 +00:00
L-Sun
79fe687b1a
fix(editor): render title in page block header using DocDisplayMetaService ( #9878 )
...
https://github.com/user-attachments/assets/24490a58-ef66-404a-b9cd-1e94d84c6f58
2025-01-23 12:51:55 +00:00
L-Sun
d6cfbec5c9
chore(editor): update notification message of change display mode of doc ( #9874 )
2025-01-23 10:40:24 +00:00
L-Sun
02bcecde72
refactor(editor): simplify TOC implementation with signal and context ( #9873 )
...
### What Changes
1. Used `@preact/signal` and `@lit/context` to simplify repetitive passing of properties of TOC components,
2. Fixed TOC invalid when editor changed, such as click new page button.
2025-01-23 17:01:04 +08:00
L-Sun
1b0758f111
refactor(editor): remove hard code icons from presets ( #9857 )
...
Related [BS-2240](https://linear.app/affine-design/issue/BS-2240/清理重复的icon )
2025-01-23 08:34:54 +00:00
L-Sun
4839f0f369
refactor(editor): shadowless TOC with valilla extract css ( #9856 )
...
Close [BS-2474](https://linear.app/affine-design/issue/BS-2474/使用shadowlesselement重构toc )
This PR refactor TOC with `ShadowlessElement` and `@valilla-extract/css`
2025-01-22 16:24:31 +00:00
L-Sun
29995e498a
feat(editor): add start-with-ai button for empty doc ( #9836 )
...
Close [BS-2391](https://linear.app/affine-design/issue/BS-2391/bs-ai-toolbar-空状态下添加-actions-列表 )
https://github.com/user-attachments/assets/cbded517-2d3d-4a75-b144-644e2b03f68a
2025-01-21 16:00:49 +00:00
L-Sun
16d4430ec9
test(editor): move tests of toc to affine ( #9833 )
2025-01-21 13:34:59 +00:00
L-Sun
7400cf225f
refactor(editor): highlight selected cards of TOC based on signal ( #9807 )
...
Close [BS-2314](https://linear.app/affine-design/issue/BS-2314/添加打开toc时,将note-block-高亮 ), [BS-1868](https://linear.app/affine-design/issue/BS-1868/toc-里面-note之间顺序可拖动性,在page和edgeless里面是不同的,这个是设计的行为么 ?)
This PR refactor the highlight logic of note cards of TOC panel:
- notes block selected in edgeless note
- notes block covered by text or block selection in page mode
- note cards selected in TOC for dragging
Other changes:
- remove not used codes
- add tests for highlight note cards
2025-01-21 07:50:57 +00:00
L-Sun
d2bde09ef6
fix(core): avoid multiple append right sidebar tab lit component ( #9806 )
...
This PR fixed that the TOC panel and frame panel will be connect and disconnect repeatly on the same instance. Similar issue: https://github.com/toeverything/AFFiNE/pull/9019#discussion_r1872635745
2025-01-21 02:32:35 +00:00
L-Sun
6ba802fb17
feat(editor): append note to page button ( #9762 )
...
Close [BS-2310](https://linear.app/affine-design/issue/BS-2310/note-display-in-page-%E7%9A%84%E8%A1%8C%E4%B8%BA ), [BS-2312](https://linear.app/affine-design/issue/BS-2312/edgeless-note-%E7%9A%84-element-toolbar-%E6%B7%BB%E5%8A%A0display-in-page%E6%8C%89%E9%92%AE ) and [BS-2313](https://linear.app/affine-design/issue/BS-2313/添加display-in-page的toast提示,以及打开toc的按钮 )
2025-01-19 08:35:02 +00:00
L-Sun
ad814a0f4f
feat(editor): add sidebar service ( #9761 )
2025-01-17 23:42:50 +08:00
L-Sun
d8727c2001
fix(editor): close embed edit modal on editor unmount ( #9765 )
...
Close [BS-2436](https://linear.app/affine-design/issue/BS-2436/should-close-embed-card-edit-modal-after-editor-unmount )
### What Changes:
- fix(editor): close embed edit modal on editor unmount
- test(editor): add test to embed edit modal when switching mode
2025-01-17 11:53:09 +00:00
L-Sun
c2149f218b
refactor(editor): enable toc dragging in page mode ( #9736 )
...
Related [BS-2322](https://linear.app/affine-design/issue/BS-2322/toc-排序坏掉部分的修复 )
2025-01-16 17:53:28 +00:00
L-Sun
969ac30874
fix(editor): reactive heading icon ( #9729 )
...
Close [BS-2407](https://linear.app/affine-design/issue/BS-2407/[bug]-edgeless-里选中-title-后更改,hint-没有改变 )
2025-01-16 08:32:15 +00:00
L-Sun
f7cbd21dd9
chore(debug): add vscode debug launch setting ( #9725 )
...
This PR allows vscode to add breakpoints to the editor's code.
2025-01-16 06:17:41 +00:00
L-Sun
9df338274d
chore(core): update tooltip of mode switcher ( #9711 )
...
Close [BS-2325](https://linear.app/affine-design/issue/BS-2325/tooltips-显示 )
https://github.com/user-attachments/assets/bd4c6045-8de1-4e72-87ab-2d1d3262e6b7
2025-01-15 12:22:37 +00:00
L-Sun
94c9717a35
feat(editor): edgeless page block toolbar ( #9707 )
...
Close [BS-2315](https://linear.app/affine-design/issue/BS-2315/page-block-header )
### What Changes
- Add header toolbar to page block (the first note in canvas)
- Add e2e tests
- Add some edgeless e2e test utils. **The package `@blocksuite/affine` was added to `"@affine-test/kit"`**
2025-01-15 12:04:44 +00:00
L-Sun
a0cba55a5b
feat(mobile): mobile toc menu ( #9582 )
...
Close [BS-1787](https://linear.app/affine-design/issue/BS-1787/toc-移动端适配 )
2025-01-08 08:03:11 +00:00
L-Sun
440239809c
refactor(editor): refactor page note empty checker ( #9570 )
...
Close [BS-2320](https://linear.app/affine-design/issue/BS-2320/内容为空的状态判断 )
2025-01-07 11:24:40 +00:00
L-Sun
6e0468c70a
chore(editor): revert padding and layout of code block toolbar ( #9562 )
...
Close [BS-1767](https://linear.app/affine-design/issue/BS-1767/code-block调整边距 )
This PR reverts padding and layout of code block toolbar.

2025-01-07 04:53:04 +00:00
L-Sun
ded17abf7e
fix(editor): add childElementIds to ai generated frame ( #9537 )
...
Close [BS-1354](https://linear.app/affine-design/issue/BS-1354/更新-ai-slide-template-到新的-frame )
This PR add `childElementIds` to frame block in ai presentation templates
2025-01-07 04:19:09 +00:00
L-Sun
b51de2ac4c
fix(editor): add index checking to selected elements array ( #9453 )
...
Close https://toeverything.sentry.io/issues/6187666983/?alert_rule_id=15031714&alert_type=issue¬ification_uuid=fe3f4b9d-1e86-420e-a715-c3ca0fa932e4&project=4506307500179456&referrer=slack
2024-12-31 08:05:13 +00:00
L-Sun
4c11537bef
feat(mobile): auto show text keyboard subtoolbar when selecting text ( #9256 )
...
Close [BS-1924](https://linear.app/affine-design/issue/BS-1924/文本选中后-切换toolbar )
https://github.com/user-attachments/assets/2361dfb9-82ae-4be3-808c-6ea33a70c84d
2024-12-24 04:11:00 +00:00
L-Sun
8e1ceec4f9
chore(editor): hide title of locked group ( #9261 )
...
Close [BS-2188](https://linear.app/affine-design/issue/BS-2188/[improvement]-多个yuan素-lock-后不渲染标签 )
2024-12-23 12:39:07 +00:00
L-Sun
f770daec0a
chore: update commit scope enum ( #9262 )
2024-12-23 12:39:05 +00:00
L-Sun
067469aa98
fix(component): prevent auto focus in mobile modal ( #9247 )
...
Continue [BS-2169](https://linear.app/affine-design/issue/BS-2169/新的-menu-不支持移动端 )
2024-12-23 09:56:58 +00:00
L-Sun
ba355d098d
chore: add vscode tasks.json to gitignore ( #9255 )
2024-12-23 09:42:02 +00:00
L-Sun
e378f591cb
fix(mobile): add missing mobile date selector and remove focus style from date picker in mobile ( #9215 )
...
Close [BS-2169](https://linear.app/affine-design/issue/BS-2169/新的-menu-不支持移动端 )
### What changes
- add missing date-selector for mobile
- remove focus style of date picker for mobile

2024-12-20 03:39:49 +00:00
L-Sun
720f6c6a58
chore(mobile): set doc readonly in edgeless mode ( #9068 )
...
Close [BS-1984](https://linear.app/affine-design/issue/BS-1984/edgeless-禁用编辑后,白板上,image-block-chat-block-可以移动 ), [BS-1918](https://linear.app/affine-design/issue/BS-1918/edgeless-移动端只读模式下,应当是单指移动,双指缩放 ), [BS-2035](https://linear.app/affine-design/issue/BS-2035/切换-edgeless-view-变为只读 )
2024-12-10 01:39:30 +00:00