Saul-Mirone
c1ec17ccba
feat(editor): add block meta for more blocks ( #11034 )
2025-03-20 10:08:01 +00:00
fundon
27a8afa33f
chore(editor): remove redundant line styles components ( #10980 )
...
* Moved `edgeless-line-styles-panel` and `edgeless-line-width-panel` into components pkg
2025-03-20 09:48:02 +00:00
donteatfriedrice
5ea65b1709
feat(editor): support converting inline link to embed iframe block ( #11030 )
...
To close [BS-2846](https://linear.app/affine-design/issue/BS-2846/支持-inline-link-转成-embed-iframe-block )
2025-03-20 08:56:25 +00:00
donteatfriedrice
f4202a7976
refactor(editor): move embed iframe config and service extension to shared ( #11029 )
2025-03-20 08:56:25 +00:00
L-Sun
da63d51b7e
refactor(editor): group and expose parameters of createButtonPopper ( #10999 )
2025-03-20 08:37:59 +00:00
fundon
1f2caca3f5
fix(editor): should not show toolbar when elements have been deleted ( #11026 )
...
Closes: [BS-2691](https://linear.app/affine-design/issue/BS-2691/[bug]-当-edgeless-为空的时候,点击-space-会在左上角出现一个莫名的-toolbar )
2025-03-20 06:01:57 +00:00
Saul-Mirone
92d76ba571
refactor(editor): merge inline to std ( #11025 )
2025-03-20 05:46:56 +00:00
donteatfriedrice
e83f7eba00
feat(editor): add embed iframe provider google docs ( #10998 )
...
Related [BS-2835](https://linear.app/affine-design/issue/BS-2835/支持更多-embed-iframe-providers )
2025-03-20 04:42:26 +00:00
Saul-Mirone
75580e881b
refactor(editor): move gfx frame title to widget ( #11021 )
2025-03-20 04:10:56 +00:00
donteatfriedrice
46ed76ecb0
feat(editor): add embed iframe provider excalidraw ( #10997 )
2025-03-20 03:14:42 +00:00
fundon
b88e7f0e35
chore(editor): remove redundant card-style-panel component ( #10973 )
...
Moved `CardStylePanel` into `CardStyleDropdownMenu`.
2025-03-20 02:08:22 +00:00
fundon
1c0c698375
chore(editor): remove redundant edgeless-align-panel component ( #10972 )
2025-03-20 02:08:22 +00:00
fundon
8b995ea420
chore(editor): remove edgeless element toolbar ( #10900 )
2025-03-20 02:08:21 +00:00
fundon
831f290f84
refactor(editor): edgeless toolbar chevron down icon ( #10898 )
2025-03-20 02:08:20 +00:00
fundon
a7acd5c5b1
refactor(editor): fix edgeless toolbar theme ( #10897 )
2025-03-20 02:08:20 +00:00
fundon
ccc210f88a
refactor(core): edgeless toolbar ai action config extension ( #10884 )
2025-03-20 02:08:19 +00:00
fundon
ac705c724e
refactor(editor): edgeless toolbar linked doc custom config extension ( #10883 )
2025-03-20 02:08:19 +00:00
fundon
a004a2cfab
refactor(editor): edgeless toolbar more actions ( #10882 )
2025-03-20 02:08:18 +00:00
fundon
39704aac66
refactor(editor): edgeless toolbar alignment actions ( #10881 )
2025-03-20 02:08:18 +00:00
fundon
e4b8b367ce
refactor(editor): edgeless toolbar add frame action ( #10880 )
2025-03-20 02:08:17 +00:00
fundon
4a4893a380
refactor(editor): edgeless toolbar add group action and release group action ( #10879 )
2025-03-20 02:08:17 +00:00
fundon
07a64eb004
refactor(editor): edgeless toolbar lock and unlock actions ( #10878 )
2025-03-20 02:08:16 +00:00
fundon
bd9b78f7d2
refactor(editor): edgeless toolbar quick connect action ( #10876 )
2025-03-20 02:08:16 +00:00
fundon
54bc60aa4d
refactor(editor): edgeless shape toolbar config extension ( #10821 )
2025-03-20 02:08:16 +00:00
fundon
1acc7e5a9e
refactor(editor): edgeless text toolbar config extension ( #10811 )
2025-03-20 02:08:15 +00:00
Saul-Mirone
cdd405bbe5
refactor(editor): improve edgeless editors ( #11019 )
2025-03-20 01:49:56 +00:00
Saul-Mirone
258c70cf07
refactor(editor): store should not rely on inline ( #11017 )
2025-03-20 01:33:29 +00:00
Saul-Mirone
b3c6333694
refactor(editor): remove note block service ( #11015 )
2025-03-20 01:04:20 +09:00
Saul-Mirone
2701be8d08
refactor(editor): remove empty block services ( #11014 )
2025-03-20 01:04:20 +09:00
Saul-Mirone
76dc55f328
refactor(editor): remove legacy block service spec slots ( #11013 )
2025-03-20 01:04:18 +09:00
doouding
1c8d25bc29
feat: add ElementTransformManager for edgeless element basic manipulation ( #10824 )
...
### Overview:
We've been working with some legacy code in the default-tool and edgeless-selected-rect modules, which are responsible for fundamental operations like moving, resizing, and rotating elements. Currently, these operations are hardcoded, making it challenging to extend functionalities without diving deep into the code.
### What's Changing:
Introducing `ElementTransformManager` to streamline the handling of basic transformations (move, resize, rotate) while allowing the business logic to dictate when these actions occur.
Providing two ways to extend the transformations behaviour:
- Extends inside element view definition: Elements can decide how to handle move/resize events, such as enforcing size constraints.
- Extension mechanism provided by this manager: Adjust or completely override default drag behaviors, like snapping elements into alignment.
### Code Examples:
Delegate element movement to TransformManager:
```typescript
class DefaultTool {
override dragStart(event) {
if(this.dragType === DragType.ContentMoving) {
const transformManager = this.std.get(TransformManagerIdentifier);
transformManager.startDrag({ selectedElements, event });
}
}
}
```
Enforce minimum width inside view definition:
```typescript
class EdgelessNoteBlock extends GfxBlockComponent {
onResizeDelta({ dw, dh }) {
const bound = this.model.elementBound;
bound.w = Math.min(MAX_WIDTH, bound.w + dw);
bound.h = Math.min(MAX_HEIGHT, bound.h + dh);
this.model.xywh = bound.serialize();
}
}
```
Use extension to implement element snapping:
```typescript
import { TransformerExtension } from '@blocksuite/std/gfx';
// Just extends the TransformerExtension
class SnapManager extends TransformerExtension {
static override key = 'snap-manager';
onDragInitialize() {
return {
onDragMove(context) {
const { dx, dy } = this.getAlignmentMoveDistance(context.elements);
context.dx = dx;
context.dy = dy;
}
}
}
}
```
### Others
The migration will be divided into several PRs. This PR mostly focus on refactoring elements movement part of `default-tool`.
- Delegate elements movement to `TransformManager`
- Rewrite the default tool extension into `TransformManager` extension
- Add drag handler interface to gfx view (both `GfxBlockComponent` and `GfxElementModelView`) to allow element to define how it gonna react on drag
2025-03-19 15:30:06 +00:00
fundon
c98f0900cc
refactor(editor): edgeless mindmap toolbar config extension ( #10803 )
2025-03-19 14:50:55 +00:00
fundon
7f34667b78
refactor(editor): edgeless connector toolbar config extension ( #10798 )
2025-03-19 14:50:55 +00:00
donteatfriedrice
f6e32d8894
feat(editor): add embed iframe provider miro ( #10996 )
2025-03-19 13:57:30 +00:00
Saul-Mirone
ee65d66d67
refactor(editor): remove code block service ( #11010 )
2025-03-19 13:38:10 +00:00
Saul-Mirone
1c6a876e6a
refactor(editor): improve config extension ( #11006 )
2025-03-19 13:38:10 +00:00
Saul-Mirone
c1e16aeaa7
refactor(editor): remove paragraph service ( #11003 )
2025-03-19 13:38:09 +00:00
fundon
03ffc688c3
refactor(editor): edgeless brush toolbar config extension ( #10796 )
2025-03-19 12:34:19 +00:00
fundon
c44a339bd9
refactor(editor): edgeless group toolbar config extension ( #10787 )
2025-03-19 12:34:19 +00:00
fundon
f87cc0f599
refactor(editor): edgeless frame toolbar config extension ( #10769 )
2025-03-19 12:34:18 +00:00
fundon
e320552594
refactor(editor): edgeless note toolbar config extension ( #10719 )
2025-03-19 12:34:18 +00:00
fundon
b5406fa57a
refactor(editor): edgeless image toolbar config extension ( #10718 )
2025-03-19 12:34:18 +00:00
fundon
e686a6aecc
refactor(editor): edgeless internal embed card toolbar config extension ( #10717 )
2025-03-19 12:34:17 +00:00
Saul-Mirone
a9b53839a6
refactor(editor): improve std structure ( #10993 )
2025-03-19 11:37:55 +00:00
L-Sun
9211fbf68c
refactor(editor): move surface-ref toolbar to its block folder ( #10938 )
2025-03-19 10:54:22 +00:00
Saul-Mirone
ae3cb61943
chore: align vitest versions ( #10990 )
2025-03-19 08:57:24 +00:00
fundon
0442430971
refactor(editor): edgeless html embed card toolbar config extension ( #10716 )
2025-03-19 05:03:00 +00:00
doodlewind
80f62a995b
perf(editor): improve resize frame rate ( #10967 )
...
This PR improves panel toggling FPS by minimizing DOM and canvas updates during resizing.
[Screen Recording 2025-03-18 at 11.57.45 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/d36beeab-a2e4-4fd6-923a-705ce7fbcdf7.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/d36beeab-a2e4-4fd6-923a-705ce7fbcdf7.mov )
### What changed?
- Added a debounced resize handling mechanism using RxJS's `debounceTime` operator
- Implemented a new resize strategy that preserves the top-left corner position during resizing
- Added state tracking for resize operations with `_isResizing` flag and `_initialTopLeft` coordinates
2025-03-19 04:42:23 +00:00
fundon
7f4b56e05c
refactor(editor): edgeless external embed card toolbar config extension ( #10712 )
2025-03-19 04:05:36 +00:00
L-Sun
68bc2db560
fix(editor): descendant elements are missing in edgelessToCanvas ( #10933 )
...
### Before

### After

2025-03-19 03:35:06 +00:00