+ ${format?.(size) ?? size}
+ ${ArrowDownSmallIcon()}
+
+ `}
+ >
+
+ ${repeat(
+ sizes,
+ ({ key, value }) => key ?? value,
+ ({ key, value }) => html`
+ this.select(value)}
+ >
+ ${key ?? format?.(value) ?? value}
+ ${when(isCheckType && size === value, () => DoneIcon())}
+
+ `
+ )}
+
+
+
+
+ `;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'affine-size-dropdown-menu': SizeDropdownMenu;
+ }
+}
diff --git a/blocksuite/affine/components/src/size-dropdown-menu/index.ts b/blocksuite/affine/components/src/size-dropdown-menu/index.ts
new file mode 100644
index 0000000000..c98cf1f84d
--- /dev/null
+++ b/blocksuite/affine/components/src/size-dropdown-menu/index.ts
@@ -0,0 +1,7 @@
+import { SizeDropdownMenu } from './dropdown-menu';
+
+export * from './dropdown-menu';
+
+export function effects() {
+ customElements.define('affine-size-dropdown-menu', SizeDropdownMenu);
+}
diff --git a/blocksuite/affine/components/src/view-dropdown-menu/dropdown-menu.ts b/blocksuite/affine/components/src/view-dropdown-menu/dropdown-menu.ts
index 38115ee909..e4f8128663 100644
--- a/blocksuite/affine/components/src/view-dropdown-menu/dropdown-menu.ts
+++ b/blocksuite/affine/components/src/view-dropdown-menu/dropdown-menu.ts
@@ -2,14 +2,11 @@ import {
type ToolbarAction,
ToolbarContext,
} from '@blocksuite/affine-shared/services';
-import {
- PropTypes,
- requiredProperties,
- ShadowlessElement,
-} from '@blocksuite/block-std';
+import { PropTypes, requiredProperties } from '@blocksuite/block-std';
import { SignalWatcher } from '@blocksuite/global/lit';
import { ArrowDownSmallIcon } from '@blocksuite/icons/lit';
import type { ReadonlySignal, Signal } from '@preact/signals-core';
+import { LitElement } from 'lit';
import { property } from 'lit/decorators.js';
import { html } from 'lit-html';
import { ifDefined } from 'lit-html/directives/if-defined.js';
@@ -20,7 +17,7 @@ import { repeat } from 'lit-html/directives/repeat.js';
context: PropTypes.instanceOf(ToolbarContext),
viewType$: PropTypes.object,
})
-export class ViewDropdownMenu extends SignalWatcher(ShadowlessElement) {
+export class ViewDropdownMenu extends SignalWatcher(LitElement) {
@property({ attribute: false })
accessor actions!: ToolbarAction[];
@@ -43,6 +40,7 @@ export class ViewDropdownMenu extends SignalWatcher(ShadowlessElement) {
.button=${html`