refactor(editor): extract color picker component (#9456)

This commit is contained in:
Saul-Mirone
2024-12-31 07:23:37 +00:00
parent 353eaf7fbe
commit 597b631918
29 changed files with 106 additions and 85 deletions

View File

@@ -36,6 +36,7 @@
"exports": { "exports": {
".": "./src/index.ts", ".": "./src/index.ts",
"./ai-item": "./src/ai-item/index.ts", "./ai-item": "./src/ai-item/index.ts",
"./color-picker": "./src/color-picker/index.ts",
"./icons": "./src/icons/index.ts", "./icons": "./src/icons/index.ts",
"./peek": "./src/peek/index.ts", "./peek": "./src/peek/index.ts",
"./portal": "./src/portal/index.ts", "./portal": "./src/portal/index.ts",

View File

@@ -1,6 +1,6 @@
import type { EditorMenuButton } from '@blocksuite/affine-components/toolbar';
import type { ColorScheme, Palette } from '@blocksuite/affine-model'; import type { ColorScheme, Palette } from '@blocksuite/affine-model';
import { resolveColor } from '@blocksuite/affine-model'; import { resolveColor } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { WithDisposable } from '@blocksuite/global/utils'; import { WithDisposable } from '@blocksuite/global/utils';
import { html, LitElement } from 'lit'; import { html, LitElement } from 'lit';
import { property, query, state } from 'lit/decorators.js'; import { property, query, state } from 'lit/decorators.js';
@@ -8,7 +8,7 @@ import { choose } from 'lit/directives/choose.js';
import { ifDefined } from 'lit/directives/if-defined.js'; import { ifDefined } from 'lit/directives/if-defined.js';
import { styleMap } from 'lit/directives/style-map.js'; import { styleMap } from 'lit/directives/style-map.js';
import type { ColorEvent } from '../panel/color-panel.js'; import type { EditorMenuButton } from '../toolbar/menu-button.js';
import type { ModeType, PickColorEvent, PickColorType } from './types.js'; import type { ModeType, PickColorEvent, PickColorType } from './types.js';
import { keepColor, preprocessColor, rgbaToHex8 } from './utils.js'; import { keepColor, preprocessColor, rgbaToHex8 } from './utils.js';

View File

@@ -0,0 +1,20 @@
import { EdgelessColorPickerButton } from './button.js';
import { EdgelessColorPicker } from './color-picker.js';
import { EdgelessColorCustomButton } from './custom-button.js';
export * from './button.js';
export * from './color-picker.js';
export * from './types.js';
export * from './utils.js';
export function effects() {
customElements.define('edgeless-color-picker', EdgelessColorPicker);
customElements.define(
'edgeless-color-picker-button',
EdgelessColorPickerButton
);
customElements.define(
'edgeless-color-custom-button',
EdgelessColorCustomButton
);
}

View File

@@ -1,3 +1,4 @@
import type { Palette } from '@blocksuite/affine-model';
import { IS_IOS, IS_MAC } from '@blocksuite/global/env'; import { IS_IOS, IS_MAC } from '@blocksuite/global/env';
export function isTouchPadPinchEvent(e: WheelEvent) { export function isTouchPadPinchEvent(e: WheelEvent) {
@@ -347,3 +348,19 @@ export const createKeydownObserver = ({
// Fix composition input // Fix composition input
target.addEventListener('compositionend', () => onInput?.(true), { signal }); target.addEventListener('compositionend', () => onInput?.(true), { signal });
}; };
export class ColorEvent extends Event {
detail: Palette;
constructor(
type: string,
{
detail,
composed,
bubbles,
}: { detail: Palette; composed: boolean; bubbles: boolean }
) {
super(type, { bubbles, composed });
this.detail = detail;
}
}

View File

@@ -18,6 +18,7 @@ import { effects as componentAiItemEffects } from '@blocksuite/affine-components
import { BlockSelection } from '@blocksuite/affine-components/block-selection'; import { BlockSelection } from '@blocksuite/affine-components/block-selection';
import { BlockZeroWidth } from '@blocksuite/affine-components/block-zero-width'; import { BlockZeroWidth } from '@blocksuite/affine-components/block-zero-width';
import { effects as componentCaptionEffects } from '@blocksuite/affine-components/caption'; import { effects as componentCaptionEffects } from '@blocksuite/affine-components/caption';
import { effects as componentColorPickerEffects } from '@blocksuite/affine-components/color-picker';
import { effects as componentContextMenuEffects } from '@blocksuite/affine-components/context-menu'; import { effects as componentContextMenuEffects } from '@blocksuite/affine-components/context-menu';
import { effects as componentDatePickerEffects } from '@blocksuite/affine-components/date-picker'; import { effects as componentDatePickerEffects } from '@blocksuite/affine-components/date-picker';
import { effects as componentDragIndicatorEffects } from '@blocksuite/affine-components/drag-indicator'; import { effects as componentDragIndicatorEffects } from '@blocksuite/affine-components/drag-indicator';
@@ -43,9 +44,6 @@ import { EdgelessAutoCompletePanel } from './root-block/edgeless/components/auto
import { EdgelessAutoComplete } from './root-block/edgeless/components/auto-complete/edgeless-auto-complete.js'; import { EdgelessAutoComplete } from './root-block/edgeless/components/auto-complete/edgeless-auto-complete.js';
import { EdgelessToolIconButton } from './root-block/edgeless/components/buttons/tool-icon-button.js'; import { EdgelessToolIconButton } from './root-block/edgeless/components/buttons/tool-icon-button.js';
import { EdgelessToolbarButton } from './root-block/edgeless/components/buttons/toolbar-button.js'; import { EdgelessToolbarButton } from './root-block/edgeless/components/buttons/toolbar-button.js';
import { EdgelessColorPickerButton } from './root-block/edgeless/components/color-picker/button.js';
import { EdgelessColorPicker } from './root-block/edgeless/components/color-picker/color-picker.js';
import { EdgelessColorCustomButton } from './root-block/edgeless/components/color-picker/custom-button.js';
import { EdgelessConnectorHandle } from './root-block/edgeless/components/connector/connector-handle.js'; import { EdgelessConnectorHandle } from './root-block/edgeless/components/connector/connector-handle.js';
import { import {
NOTE_SLICER_WIDGET, NOTE_SLICER_WIDGET,
@@ -221,6 +219,7 @@ export function effects() {
componentDragIndicatorEffects(); componentDragIndicatorEffects();
componentToggleButtonEffects(); componentToggleButtonEffects();
componentAiItemEffects(); componentAiItemEffects();
componentColorPickerEffects();
widgetScrollAnchoringEffects(); widgetScrollAnchoringEffects();
widgetMobileToolbarEffects(); widgetMobileToolbarEffects();
@@ -241,10 +240,6 @@ export function effects() {
'edgeless-copilot-toolbar-entry', 'edgeless-copilot-toolbar-entry',
EdgelessCopilotToolbarEntry EdgelessCopilotToolbarEntry
); );
customElements.define(
'edgeless-color-custom-button',
EdgelessColorCustomButton
);
customElements.define('edgeless-connector-handle', EdgelessConnectorHandle); customElements.define('edgeless-connector-handle', EdgelessConnectorHandle);
customElements.define('edgeless-zoom-toolbar', EdgelessZoomToolbar); customElements.define('edgeless-zoom-toolbar', EdgelessZoomToolbar);
customElements.define( customElements.define(
@@ -331,13 +326,8 @@ export function effects() {
EdgelessNavigatorSettingButton EdgelessNavigatorSettingButton
); );
customElements.define('edgeless-present-button', EdgelessPresentButton); customElements.define('edgeless-present-button', EdgelessPresentButton);
customElements.define('edgeless-color-picker', EdgelessColorPicker);
customElements.define('overlay-scrollbar', OverlayScrollbar); customElements.define('overlay-scrollbar', OverlayScrollbar);
customElements.define('affine-template-loading', AffineTemplateLoading); customElements.define('affine-template-loading', AffineTemplateLoading);
customElements.define(
'edgeless-color-picker-button',
EdgelessColorPickerButton
);
customElements.define('edgeless-auto-complete', EdgelessAutoComplete); customElements.define('edgeless-auto-complete', EdgelessAutoComplete);
customElements.define( customElements.define(
'edgeless-font-weight-and-style-panel', 'edgeless-font-weight-and-style-panel',

View File

@@ -1,3 +0,0 @@
export * from './button.js';
export * from './color-picker.js';
export * from './types.js';

View File

@@ -1,6 +1,7 @@
import type { Color, ColorScheme, Palette } from '@blocksuite/affine-model'; import type { Color, ColorScheme, Palette } from '@blocksuite/affine-model';
import { isTransparent, resolveColor } from '@blocksuite/affine-model'; import { isTransparent, resolveColor } from '@blocksuite/affine-model';
import { unsafeCSSVarV2 } from '@blocksuite/affine-shared/theme'; import { unsafeCSSVarV2 } from '@blocksuite/affine-shared/theme';
import { ColorEvent } from '@blocksuite/affine-shared/utils';
import { css, html, LitElement, nothing, svg, type TemplateResult } from 'lit'; import { css, html, LitElement, nothing, svg, type TemplateResult } from 'lit';
import { property } from 'lit/decorators.js'; import { property } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js'; import { classMap } from 'lit/directives/class-map.js';
@@ -8,22 +9,6 @@ import { ifDefined } from 'lit/directives/if-defined.js';
import { repeat } from 'lit/directives/repeat.js'; import { repeat } from 'lit/directives/repeat.js';
import isEqual from 'lodash.isequal'; import isEqual from 'lodash.isequal';
export class ColorEvent extends Event {
detail: Palette;
constructor(
type: string,
{
detail,
composed,
bubbles,
}: { detail: Palette; composed: boolean; bubbles: boolean }
) {
super(type, { bubbles, composed });
this.detail = detail;
}
}
function TransparentIcon(hollowCircle = false) { function TransparentIcon(hollowCircle = false) {
const CircleIcon: TemplateResult | typeof nothing = hollowCircle const CircleIcon: TemplateResult | typeof nothing = hollowCircle
? svg`<circle cx="10" cy="10" r="8" fill="white" />` ? svg`<circle cx="10" cy="10" r="8" fill="white" />`

View File

@@ -3,11 +3,11 @@ import {
DefaultTheme, DefaultTheme,
type StrokeStyle, type StrokeStyle,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { WithDisposable } from '@blocksuite/global/utils'; import { WithDisposable } from '@blocksuite/global/utils';
import { css, html, LitElement } from 'lit'; import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js'; import { property } from 'lit/decorators.js';
import type { ColorEvent } from './color-panel.js';
import { type LineStyleEvent, LineStylesPanel } from './line-styles-panel.js'; import { type LineStyleEvent, LineStylesPanel } from './line-styles-panel.js';
export class StrokeStylePanel extends WithDisposable(LitElement) { export class StrokeStylePanel extends WithDisposable(LitElement) {

View File

@@ -3,13 +3,13 @@ import {
EditPropsStore, EditPropsStore,
ThemeProvider, ThemeProvider,
} from '@blocksuite/affine-shared/services'; } from '@blocksuite/affine-shared/services';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import type { GfxToolsFullOptionValue } from '@blocksuite/block-std/gfx'; import type { GfxToolsFullOptionValue } from '@blocksuite/block-std/gfx';
import { SignalWatcher } from '@blocksuite/global/utils'; import { SignalWatcher } from '@blocksuite/global/utils';
import { computed } from '@preact/signals-core'; import { computed } from '@preact/signals-core';
import { css, html, LitElement } from 'lit'; import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js'; import { property } from 'lit/decorators.js';
import type { ColorEvent } from '../../panel/color-panel.js';
import type { LineWidthEvent } from '../../panel/line-width-panel.js'; import type { LineWidthEvent } from '../../panel/line-width-panel.js';
import { EdgelessToolbarToolMixin } from '../mixins/tool.mixin.js'; import { EdgelessToolbarToolMixin } from '../mixins/tool.mixin.js';

View File

@@ -8,13 +8,13 @@ import {
EditPropsStore, EditPropsStore,
ThemeProvider, ThemeProvider,
} from '@blocksuite/affine-shared/services'; } from '@blocksuite/affine-shared/services';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import type { GfxToolsFullOptionValue } from '@blocksuite/block-std/gfx'; import type { GfxToolsFullOptionValue } from '@blocksuite/block-std/gfx';
import { SignalWatcher } from '@blocksuite/global/utils'; import { SignalWatcher } from '@blocksuite/global/utils';
import { computed } from '@preact/signals-core'; import { computed } from '@preact/signals-core';
import { css, html, LitElement } from 'lit'; import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js'; import { property } from 'lit/decorators.js';
import type { ColorEvent } from '../../panel/color-panel.js';
import type { LineWidthEvent } from '../../panel/line-width-panel.js'; import type { LineWidthEvent } from '../../panel/line-width-panel.js';
import { EdgelessToolbarToolMixin } from '../mixins/tool.mixin.js'; import { EdgelessToolbarToolMixin } from '../mixins/tool.mixin.js';

View File

@@ -14,13 +14,13 @@ import {
EditPropsStore, EditPropsStore,
ThemeProvider, ThemeProvider,
} from '@blocksuite/affine-shared/services'; } from '@blocksuite/affine-shared/services';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils';
import { computed, effect, type Signal, signal } from '@preact/signals-core'; import { computed, effect, type Signal, signal } from '@preact/signals-core';
import { css, html, LitElement } from 'lit'; import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js'; import { property } from 'lit/decorators.js';
import type { EdgelessRootBlockComponent } from '../../../edgeless-root-block.js'; import type { EdgelessRootBlockComponent } from '../../../edgeless-root-block.js';
import type { ColorEvent } from '../../panel/color-panel.js';
import { ShapeComponentConfig } from './shape-menu-config.js'; import { ShapeComponentConfig } from './shape-menu-config.js';
export class EdgelessShapeMenu extends SignalWatcher( export class EdgelessShapeMenu extends SignalWatcher(

View File

@@ -1,11 +1,11 @@
import { DefaultTheme } from '@blocksuite/affine-model'; import { DefaultTheme } from '@blocksuite/affine-model';
import { ThemeProvider } from '@blocksuite/affine-shared/services'; import { ThemeProvider } from '@blocksuite/affine-shared/services';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import type { GfxToolsFullOptionValue } from '@blocksuite/block-std/gfx'; import type { GfxToolsFullOptionValue } from '@blocksuite/block-std/gfx';
import { computed } from '@preact/signals-core'; import { computed } from '@preact/signals-core';
import { css, html, LitElement, nothing } from 'lit'; import { css, html, LitElement, nothing } from 'lit';
import { property } from 'lit/decorators.js'; import { property } from 'lit/decorators.js';
import type { ColorEvent } from '../../panel/color-panel.js';
import { EdgelessToolbarToolMixin } from '../mixins/tool.mixin.js'; import { EdgelessToolbarToolMixin } from '../mixins/tool.mixin.js';
export class EdgelessTextMenu extends EdgelessToolbarToolMixin(LitElement) { export class EdgelessTextMenu extends EdgelessToolbarToolMixin(LitElement) {

View File

@@ -1,4 +1,12 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '@blocksuite/affine-components/color-picker';
import {
packColor,
packColorsWithColorScheme,
} from '@blocksuite/affine-components/color-picker';
import type { import type {
BrushElementModel, BrushElementModel,
BrushProps, BrushProps,
@@ -9,18 +17,12 @@ import {
LineWidth, LineWidth,
resolveColor, resolveColor,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { countBy, maxBy, WithDisposable } from '@blocksuite/global/utils'; import { countBy, maxBy, WithDisposable } from '@blocksuite/global/utils';
import { html, LitElement, nothing } from 'lit'; import { html, LitElement, nothing } from 'lit';
import { property, query } from 'lit/decorators.js'; import { property, query } from 'lit/decorators.js';
import { when } from 'lit/directives/when.js'; import { when } from 'lit/directives/when.js';
import type { EdgelessColorPickerButton } from '../../edgeless/components/color-picker/button.js';
import type { PickColorEvent } from '../../edgeless/components/color-picker/types.js';
import {
packColor,
packColorsWithColorScheme,
} from '../../edgeless/components/color-picker/utils.js';
import type { ColorEvent } from '../../edgeless/components/panel/color-panel.js';
import type { LineWidthEvent } from '../../edgeless/components/panel/line-width-panel.js'; import type { LineWidthEvent } from '../../edgeless/components/panel/line-width-panel.js';
import type { EdgelessRootBlockComponent } from '../../edgeless/edgeless-root-block.js'; import type { EdgelessRootBlockComponent } from '../../edgeless/edgeless-root-block.js';

View File

@@ -1,4 +1,12 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '@blocksuite/affine-components/color-picker';
import {
packColor,
packColorsWithColorScheme,
} from '@blocksuite/affine-components/color-picker';
import { import {
AddTextIcon, AddTextIcon,
ConnectorCWithArrowIcon, ConnectorCWithArrowIcon,
@@ -34,6 +42,7 @@ import {
resolveColor, resolveColor,
StrokeStyle, StrokeStyle,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { countBy, maxBy, WithDisposable } from '@blocksuite/global/utils'; import { countBy, maxBy, WithDisposable } from '@blocksuite/global/utils';
import { html, LitElement, nothing, type TemplateResult } from 'lit'; import { html, LitElement, nothing, type TemplateResult } from 'lit';
import { property, query } from 'lit/decorators.js'; import { property, query } from 'lit/decorators.js';
@@ -43,13 +52,6 @@ import { repeat } from 'lit/directives/repeat.js';
import { styleMap } from 'lit/directives/style-map.js'; import { styleMap } from 'lit/directives/style-map.js';
import { when } from 'lit/directives/when.js'; import { when } from 'lit/directives/when.js';
import type { EdgelessColorPickerButton } from '../../edgeless/components/color-picker/button.js';
import type { PickColorEvent } from '../../edgeless/components/color-picker/types.js';
import {
packColor,
packColorsWithColorScheme,
} from '../../edgeless/components/color-picker/utils.js';
import type { ColorEvent } from '../../edgeless/components/panel/color-panel.js';
import { import {
type LineStyleEvent, type LineStyleEvent,
LineStylesPanel, LineStylesPanel,

View File

@@ -1,4 +1,12 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '@blocksuite/affine-components/color-picker';
import {
packColor,
packColorsWithColorScheme,
} from '@blocksuite/affine-components/color-picker';
import { import {
NoteIcon, NoteIcon,
RenameIcon, RenameIcon,
@@ -14,6 +22,7 @@ import {
NoteDisplayMode, NoteDisplayMode,
resolveColor, resolveColor,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { matchFlavours } from '@blocksuite/affine-shared/utils'; import { matchFlavours } from '@blocksuite/affine-shared/utils';
import { GfxExtensionIdentifier } from '@blocksuite/block-std/gfx'; import { GfxExtensionIdentifier } from '@blocksuite/block-std/gfx';
import { import {
@@ -28,13 +37,6 @@ import { property, query } from 'lit/decorators.js';
import { join } from 'lit/directives/join.js'; import { join } from 'lit/directives/join.js';
import { when } from 'lit/directives/when.js'; import { when } from 'lit/directives/when.js';
import type { EdgelessColorPickerButton } from '../../edgeless/components/color-picker/button.js';
import type { PickColorEvent } from '../../edgeless/components/color-picker/types.js';
import {
packColor,
packColorsWithColorScheme,
} from '../../edgeless/components/color-picker/utils.js';
import type { ColorEvent } from '../../edgeless/components/panel/color-panel.js';
import type { EdgelessRootBlockComponent } from '../../edgeless/edgeless-root-block.js'; import type { EdgelessRootBlockComponent } from '../../edgeless/edgeless-root-block.js';
import type { EdgelessFrameManager } from '../../edgeless/frame-manager.js'; import type { EdgelessFrameManager } from '../../edgeless/frame-manager.js';
import { mountFrameTitleEditor } from '../../edgeless/utils/text.js'; import { mountFrameTitleEditor } from '../../edgeless/utils/text.js';

View File

@@ -1,4 +1,12 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '@blocksuite/affine-components/color-picker';
import {
packColor,
packColorsWithColorScheme,
} from '@blocksuite/affine-components/color-picker';
import { import {
ExpandIcon, ExpandIcon,
LineStyleIcon, LineStyleIcon,
@@ -35,14 +43,6 @@ import { join } from 'lit/directives/join.js';
import { createRef, type Ref, ref } from 'lit/directives/ref.js'; import { createRef, type Ref, ref } from 'lit/directives/ref.js';
import { when } from 'lit/directives/when.js'; import { when } from 'lit/directives/when.js';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '../../edgeless/components/color-picker/index.js';
import {
packColor,
packColorsWithColorScheme,
} from '../../edgeless/components/color-picker/utils.js';
import { import {
type LineStyleEvent, type LineStyleEvent,
LineStylesPanel, LineStylesPanel,

View File

@@ -1,4 +1,12 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '@blocksuite/affine-components/color-picker';
import {
packColor,
packColorsWithColorScheme,
} from '@blocksuite/affine-components/color-picker';
import { import {
AddTextIcon, AddTextIcon,
ChangeShapeIcon, ChangeShapeIcon,
@@ -26,6 +34,7 @@ import {
ShapeStyle, ShapeStyle,
StrokeStyle, StrokeStyle,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { countBy, maxBy, WithDisposable } from '@blocksuite/global/utils'; import { countBy, maxBy, WithDisposable } from '@blocksuite/global/utils';
import { css, html, LitElement, nothing, type TemplateResult } from 'lit'; import { css, html, LitElement, nothing, type TemplateResult } from 'lit';
import { property, query } from 'lit/decorators.js'; import { property, query } from 'lit/decorators.js';
@@ -36,13 +45,6 @@ import { styleMap } from 'lit/directives/style-map.js';
import { when } from 'lit/directives/when.js'; import { when } from 'lit/directives/when.js';
import isEqual from 'lodash.isequal'; import isEqual from 'lodash.isequal';
import type { EdgelessColorPickerButton } from '../../edgeless/components/color-picker/button.js';
import type { PickColorEvent } from '../../edgeless/components/color-picker/types.js';
import {
packColor,
packColorsWithColorScheme,
} from '../../edgeless/components/color-picker/utils.js';
import type { ColorEvent } from '../../edgeless/components/panel/color-panel.js';
import { import {
type LineStyleEvent, type LineStyleEvent,
LineStylesPanel, LineStylesPanel,

View File

@@ -4,6 +4,14 @@ import {
normalizeShapeBound, normalizeShapeBound,
TextUtils, TextUtils,
} from '@blocksuite/affine-block-surface'; } from '@blocksuite/affine-block-surface';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '@blocksuite/affine-components/color-picker';
import {
packColor,
packColorsWithColorScheme,
} from '@blocksuite/affine-components/color-picker';
import { import {
SmallArrowDownIcon, SmallArrowDownIcon,
TextAlignCenterIcon, TextAlignCenterIcon,
@@ -25,6 +33,7 @@ import {
TextElementModel, TextElementModel,
type TextStyleProps, type TextStyleProps,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import type { ColorEvent } from '@blocksuite/affine-shared/utils';
import { import {
Bound, Bound,
countBy, countBy,
@@ -37,15 +46,6 @@ import { choose } from 'lit/directives/choose.js';
import { join } from 'lit/directives/join.js'; import { join } from 'lit/directives/join.js';
import { when } from 'lit/directives/when.js'; import { when } from 'lit/directives/when.js';
import type {
EdgelessColorPickerButton,
PickColorEvent,
} from '../../edgeless/components/color-picker/index.js';
import {
packColor,
packColorsWithColorScheme,
} from '../../edgeless/components/color-picker/utils.js';
import type { ColorEvent } from '../../edgeless/components/panel/color-panel.js';
import type { EdgelessRootBlockComponent } from '../../edgeless/edgeless-root-block.js'; import type { EdgelessRootBlockComponent } from '../../edgeless/edgeless-root-block.js';
const FONT_SIZE_LIST = [ const FONT_SIZE_LIST = [

View File

@@ -1,3 +1,4 @@
import { parseStringToRgba } from '@blocksuite/affine-components/color-picker';
import { import {
ColorScheme, ColorScheme,
FrameBlockModel, FrameBlockModel,
@@ -22,7 +23,6 @@ import { themeToVar } from '@toeverything/theme/v2';
import { LitElement } from 'lit'; import { LitElement } from 'lit';
import { property, state } from 'lit/decorators.js'; import { property, state } from 'lit/decorators.js';
import { parseStringToRgba } from '../../edgeless/components/color-picker/utils.js';
import type { EdgelessRootService } from '../../edgeless/index.js'; import type { EdgelessRootService } from '../../edgeless/index.js';
import { frameTitleStyle, frameTitleStyleVars } from './styles.js'; import { frameTitleStyle, frameTitleStyleVars } from './styles.js';

View File

@@ -1,4 +1,4 @@
import { parseStringToRgba } from '@blocks/root-block/edgeless/components/color-picker/utils.js'; import { parseStringToRgba } from '@blocksuite/affine-components/color-picker';
import { expect, type Locator, type Page } from '@playwright/test'; import { expect, type Locator, type Page } from '@playwright/test';
import { dragBetweenCoords } from 'utils/actions/drag.js'; import { dragBetweenCoords } from 'utils/actions/drag.js';
import { import {

View File

@@ -7,6 +7,7 @@
"test": "yarn playwright test" "test": "yarn playwright test"
}, },
"dependencies": { "dependencies": {
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-model": "workspace:*", "@blocksuite/affine-model": "workspace:*",
"@blocksuite/block-std": "workspace:*", "@blocksuite/block-std": "workspace:*",
"@blocksuite/global": "workspace:*", "@blocksuite/global": "workspace:*",

View File

@@ -415,6 +415,7 @@ export const PackageList = [
location: 'blocksuite/tests-legacy', location: 'blocksuite/tests-legacy',
name: '@blocksuite/legacy-e2e', name: '@blocksuite/legacy-e2e',
workspaceDependencies: [ workspaceDependencies: [
'blocksuite/affine/components',
'blocksuite/affine/model', 'blocksuite/affine/model',
'blocksuite/framework/block-std', 'blocksuite/framework/block-std',
'blocksuite/framework/global', 'blocksuite/framework/global',

View File

@@ -3953,6 +3953,7 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@blocksuite/legacy-e2e@workspace:blocksuite/tests-legacy" resolution: "@blocksuite/legacy-e2e@workspace:blocksuite/tests-legacy"
dependencies: dependencies:
"@blocksuite/affine-components": "workspace:*"
"@blocksuite/affine-model": "workspace:*" "@blocksuite/affine-model": "workspace:*"
"@blocksuite/block-std": "workspace:*" "@blocksuite/block-std": "workspace:*"
"@blocksuite/global": "workspace:*" "@blocksuite/global": "workspace:*"