refactor(editor): separate lit and slot in global (#10666)

This commit is contained in:
Saul-Mirone
2025-03-06 10:24:59 +00:00
parent 56b842f2e1
commit 84e2dda3f8
322 changed files with 366 additions and 353 deletions

View File

@@ -1,5 +1,5 @@
import type { EditorHost } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import {
ArrowDownBigIcon as ArrowDownIcon,
ArrowUpBigIcon as ArrowUpIcon,

View File

@@ -3,7 +3,7 @@ import './action-wrapper';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import type { SpecBuilder } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { html, nothing } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -2,7 +2,7 @@ import './action-wrapper';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { html, nothing } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

View File

@@ -2,7 +2,7 @@ import './action-wrapper';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { html, nothing } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

View File

@@ -2,7 +2,7 @@ import './action-wrapper';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { html } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

View File

@@ -2,7 +2,7 @@ import './action-wrapper';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { html } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

View File

@@ -3,7 +3,7 @@ import '../../messages/slides-renderer';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { html, nothing } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

View File

@@ -1,7 +1,7 @@
import './action-wrapper';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

View File

@@ -1,4 +1,4 @@
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -3,7 +3,7 @@ import {
ShadowlessElement,
} from '@blocksuite/affine/block-std';
import { createLitPortal } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { PlusIcon } from '@blocksuite/icons/lit';
import { flip, offset } from '@floating-ui/dom';
import { css, html, nothing, type PropertyValues } from 'lit';

View File

@@ -1,7 +1,7 @@
import { stopPropagation } from '@affine/core/utils';
import type { EditorHost } from '@blocksuite/affine/block-std';
import { openFileOrFiles, unsafeCSSVarV2 } from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import {
BroomIcon,
CloseIcon,

View File

@@ -6,7 +6,7 @@ import {
isInsidePageEditor,
type SpecBuilder,
} from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import type { BaseSelection } from '@blocksuite/affine/store';
import {
AiIcon,

View File

@@ -3,7 +3,7 @@ import {
type LinkedMenuGroup,
scrollbarStyle,
} from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { SearchIcon } from '@blocksuite/icons/lit';
import type { DocMeta } from '@blocksuite/store';
import { css, html } from 'lit';

View File

@@ -1,5 +1,5 @@
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { CloseIcon } from '@blocksuite/icons/lit';
import { css, html, type TemplateResult } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -2,7 +2,7 @@ import {
type EditorHost,
ShadowlessElement,
} from '@blocksuite/affine/block-std';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { Signal } from '@preact/signals-core';
import { html, type PropertyValues } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -1,6 +1,6 @@
import { ShadowlessElement } from '@blocksuite/affine/block-std';
import { getAttachmentFileIcon } from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { html } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -7,7 +7,7 @@ import {
NotificationProvider,
type SpecBuilder,
} from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import type { Store } from '@blocksuite/affine/store';
import { HelpIcon, InformationIcon } from '@blocksuite/icons/lit';
import { type Signal, signal } from '@preact/signals-core';

View File

@@ -4,7 +4,7 @@ import {
requiredProperties,
} from '@blocksuite/affine/block-std';
import { createLitPortal } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { flip, offset } from '@floating-ui/dom';
import { baseTheme } from '@toeverything/theme';
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';

View File

@@ -4,7 +4,7 @@ import {
requiredProperties,
} from '@blocksuite/affine/block-std';
import { ArrowRightIcon, EnterIcon } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement, nothing } from 'lit';
import { property, query } from 'lit/decorators.js';

View File

@@ -4,7 +4,7 @@ import {
requiredProperties,
} from '@blocksuite/affine/block-std';
import { EnterIcon } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { baseTheme } from '@toeverything/theme';
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -3,7 +3,7 @@ import {
ShadowlessElement,
} from '@blocksuite/affine/block-std';
import { scrollbarStyle } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import type { PropertyValues } from 'lit';
import { css, html } from 'lit';
import { property, query } from 'lit/decorators.js';

View File

@@ -2,7 +2,7 @@ import './ask-ai-panel';
import { type EditorHost } from '@blocksuite/affine/block-std';
import { createLitPortal, HoverController } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { flip, offset } from '@floating-ui/dom';
import { css, html, LitElement, nothing } from 'lit';
import { property, query } from 'lit/decorators.js';

View File

@@ -1,5 +1,5 @@
import { AIStarIcon } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -1,6 +1,6 @@
import { type EditorHost } from '@blocksuite/affine/block-std';
import { DocModeProvider, scrollbarStyle } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { cssVar } from '@toeverything/theme';
import { css, html, LitElement, unsafeCSS } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -4,7 +4,7 @@ import {
TextSelection,
} from '@blocksuite/affine/block-std';
import { createLitPortal } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { flip, offset } from '@floating-ui/dom';
import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -9,7 +9,8 @@ import {
Tooltip,
unsafeCSSVarV2,
} from '@blocksuite/affine/blocks';
import { noop, WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { noop } from '@blocksuite/affine/global/utils';
import { CopyIcon, MoreHorizontalIcon, ResetIcon } from '@blocksuite/icons/lit';
import { css, html, LitElement, nothing, type PropertyValues } from 'lit';
import { property, query, state } from 'lit/decorators.js';

View File

@@ -14,7 +14,7 @@ import {
PageEditorBlockSpecs,
} from '@blocksuite/affine/blocks';
import { Container, type ServiceProvider } from '@blocksuite/affine/global/di';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import type {
ExtensionType,
Query,

View File

@@ -1,6 +1,6 @@
import { type EditorHost } from '@blocksuite/affine/block-std';
import { scrollbarStyle, unsafeCSSVarV2 } from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { InformationIcon, ToggleDownIcon } from '@blocksuite/icons/lit';
import { signal } from '@preact/signals-core';
import { baseTheme } from '@toeverything/theme';

View File

@@ -1,7 +1,7 @@
import { WorkspaceImpl } from '@affine/core/modules/workspace/impls/workspace';
import { BlockStdScope, type EditorHost } from '@blocksuite/affine/block-std';
import { SpecProvider } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import type { Store } from '@blocksuite/affine/store';
import { css, html, LitElement, nothing } from 'lit';
import { property, query } from 'lit/decorators.js';

View File

@@ -11,7 +11,7 @@ import {
type SurfaceBlockModel,
} from '@blocksuite/affine/blocks';
import type { ServiceProvider } from '@blocksuite/affine/global/di';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { Schema, type Store } from '@blocksuite/affine/store';
import { css, html, LitElement, nothing } from 'lit';
import { property, query } from 'lit/decorators.js';

View File

@@ -1,6 +1,6 @@
import { BlockService } from '@blocksuite/affine/block-std';
import { RootBlockSchema } from '@blocksuite/affine/blocks';
import { Slot } from '@blocksuite/affine/global/utils';
import { Slot } from '@blocksuite/affine/global/slot';
export class MindmapService extends BlockService {
static override readonly flavour = RootBlockSchema.model.flavour;

View File

@@ -1,6 +1,6 @@
import type { EditorHost } from '@blocksuite/affine/block-std';
import { openFileOrFiles, unsafeCSSVarV2 } from '@blocksuite/affine/blocks';
import { SignalWatcher } from '@blocksuite/affine/global/utils';
import { SignalWatcher } from '@blocksuite/affine/global/lit';
import { BroomIcon, ImageIcon, PublishIcon } from '@blocksuite/icons/lit';
import { css, html, LitElement, nothing } from 'lit';
import { property, query, state } from 'lit/decorators.js';

View File

@@ -1,5 +1,5 @@
import type { EditorHost } from '@blocksuite/affine/block-std';
import { Slot } from '@blocksuite/affine/global/utils';
import { Slot } from '@blocksuite/affine/global/slot';
import { captureException } from '@sentry/react';
import type { ChatContextValue } from '../chat-panel/chat-context';

View File

@@ -10,7 +10,7 @@ import {
Bound,
getCommonBoundWithRotation,
} from '@blocksuite/affine/global/gfx';
import { Slot } from '@blocksuite/affine/global/utils';
import { Slot } from '@blocksuite/affine/global/slot';
import {
AFFINE_AI_PANEL_WIDGET,

View File

@@ -1,4 +1,4 @@
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement } from 'lit';
export class AIPanelDivider extends WithDisposable(LitElement) {

View File

@@ -5,7 +5,7 @@ import {
NotificationProvider,
WarningIcon,
} from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { baseTheme } from '@toeverything/theme';
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
import { property, state } from 'lit/decorators.js';

View File

@@ -4,7 +4,7 @@ import {
LightLoadingIcon,
unsafeCSSVar,
} from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { baseTheme } from '@toeverything/theme';
import {
css,

View File

@@ -1,5 +1,5 @@
import type { EditorHost } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { baseTheme } from '@toeverything/theme';
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -1,5 +1,5 @@
import type { EditorHost } from '@blocksuite/affine/block-std';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { baseTheme } from '@toeverything/theme';
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -1,6 +1,6 @@
import type { ColorScheme } from '@blocksuite/affine/blocks';
import { AIStarIconWithAnimation, AIStopIcon } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { baseTheme } from '@toeverything/theme';
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -3,7 +3,7 @@ import {
stopPropagation,
unsafeCSSVarV2,
} from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { PublishIcon, SendIcon } from '@blocksuite/icons/lit';
import { css, html, LitElement, nothing } from 'lit';
import { property, query, state } from 'lit/decorators.js';

View File

@@ -1,6 +1,6 @@
import type { EditorHost } from '@blocksuite/affine/block-std';
import { on, scrollbarStyle, stopPropagation } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement, nothing } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -4,7 +4,7 @@ import {
isGfxGroupCompatibleModel,
} from '@blocksuite/affine/block-std/gfx';
import { AIStarIcon, sortEdgelessElements } from '@blocksuite/affine/blocks';
import { WithDisposable } from '@blocksuite/affine/global/utils';
import { WithDisposable } from '@blocksuite/affine/global/lit';
import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js';

View File

@@ -11,7 +11,7 @@ import {
ImageProxyService,
LinkPreviewerService,
} from '@blocksuite/affine/blocks';
import { DisposableGroup } from '@blocksuite/affine/global/utils';
import { DisposableGroup } from '@blocksuite/affine/global/slot';
import type { Store } from '@blocksuite/affine/store';
import { Slot } from '@radix-ui/react-slot';
import { useLiveData, useService } from '@toeverything/infra';

View File

@@ -3,7 +3,7 @@ import {
EdgelessEditorBlockSpecs,
ThemeProvider,
} from '@blocksuite/affine/blocks';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import type { Store } from '@blocksuite/affine/store';
import { css, html, nothing, type TemplateResult } from 'lit';
import { property, state } from 'lit/decorators.js';

View File

@@ -4,11 +4,8 @@ import {
ShadowlessElement,
} from '@blocksuite/affine/block-std';
import { PageEditorBlockSpecs, ThemeProvider } from '@blocksuite/affine/blocks';
import {
noop,
SignalWatcher,
WithDisposable,
} from '@blocksuite/affine/global/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/affine/global/lit';
import { noop } from '@blocksuite/affine/global/utils';
import type { Store } from '@blocksuite/affine/store';
import { css, html, nothing } from 'lit';
import { property, state } from 'lit/decorators.js';

View File

@@ -26,7 +26,7 @@ import type {
Container,
ServiceIdentifier,
} from '@blocksuite/affine/global/di';
import { DisposableGroup } from '@blocksuite/affine/global/utils';
import { DisposableGroup } from '@blocksuite/affine/global/slot';
import type { ExtensionType } from '@blocksuite/affine/store';
import { batch, signal } from '@preact/signals-core';
import type { FrameworkProvider } from '@toeverything/infra';

View File

@@ -1,5 +1,5 @@
import { DebugLogger } from '@affine/debug';
import { DisposableGroup } from '@blocksuite/affine/global/utils';
import { DisposableGroup } from '@blocksuite/affine/global/slot';
import type { Store, Workspace } from '@blocksuite/affine/store';
import { useEffect, useState } from 'react';

View File

@@ -1,5 +1,5 @@
import { DebugLogger } from '@affine/debug';
import { DisposableGroup } from '@blocksuite/affine/global/utils';
import { DisposableGroup } from '@blocksuite/affine/global/slot';
import type { Store, Workspace } from '@blocksuite/affine/store';
import { useEffect, useState } from 'react';

View File

@@ -22,7 +22,7 @@ import { RefNodeSlotsProvider } from '@blocksuite/affine/blocks';
import {
type Disposable,
DisposableGroup,
} from '@blocksuite/affine/global/utils';
} from '@blocksuite/affine/global/slot';
import {
AiIcon,
FrameIcon,

View File

@@ -26,7 +26,7 @@ import {
DocModes,
RefNodeSlotsProvider,
} from '@blocksuite/affine/blocks';
import { DisposableGroup } from '@blocksuite/affine/global/utils';
import { DisposableGroup } from '@blocksuite/affine/global/slot';
import { Logo1Icon } from '@blocksuite/icons/rc';
import { FrameworkScope, useLiveData, useService } from '@toeverything/infra';
import clsx from 'clsx';

View File

@@ -28,7 +28,7 @@ import {
LinkPreviewerService,
RefNodeSlotsProvider,
} from '@blocksuite/affine/blocks';
import { DisposableGroup } from '@blocksuite/affine/global/utils';
import { DisposableGroup } from '@blocksuite/affine/global/slot';
import {
FrameworkScope,
useLiveData,

View File

@@ -14,7 +14,7 @@ import { Bound } from '@blocksuite/affine/global/gfx';
import {
type Disposable,
DisposableGroup,
} from '@blocksuite/affine/global/utils';
} from '@blocksuite/affine/global/slot';
import {
FrameworkScope,
useLiveData,

View File

@@ -1,5 +1,5 @@
import { SpecProvider } from '@blocksuite/affine/blocks';
import { Slot } from '@blocksuite/affine/global/utils';
import { Slot } from '@blocksuite/affine/global/slot';
import {
AwarenessStore,
type Doc,

View File

@@ -1,4 +1,4 @@
import { Slot } from '@blocksuite/affine/global/utils';
import { Slot } from '@blocksuite/affine/global/slot';
import {
createYProxy,
type DocMeta,

View File

@@ -2,7 +2,8 @@ import {
BlockSuiteError,
ErrorCode,
} from '@blocksuite/affine/global/exceptions';
import { NoopLogger, Slot } from '@blocksuite/affine/global/utils';
import { Slot } from '@blocksuite/affine/global/slot';
import { NoopLogger } from '@blocksuite/affine/global/utils';
import {
type CreateBlocksOptions,
type Doc,