@netless/appliance-plugin 1.1.28 → 1.1.30-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/cdn.js +1 -1
- package/cdn/fullWorker-CWzLC1.js +486 -0
- package/cdn/subWorker-Bb5WAj.js +486 -0
- package/dist/ObserverMap-BudneEfB.mjs +58 -0
- package/dist/ObserverMap-DTz9zucn.js +1 -0
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +19 -18
- package/dist/collector/collector.d.ts +6 -0
- package/dist/component/svg/base.d.ts +30 -0
- package/dist/component/svg/manager.d.ts +44 -0
- package/dist/component/svg/markmap.d.ts +41 -0
- package/dist/component/svg/mermaid-check.d.ts +18 -0
- package/dist/component/svg/mermaid-loader.d.ts +29 -0
- package/dist/component/svg/mermaid.d.ts +109 -0
- package/dist/component/svg/snapshot.d.ts +31 -0
- package/dist/component/svg/svgElemt.d.ts +43 -0
- package/dist/component/svg/svgToImageLoader.d.ts +25 -0
- package/dist/component/svg/types.d.ts +10 -0
- package/dist/component/svg/utils.d.ts +9 -0
- package/dist/component/svg/vNodeManager.d.ts +28 -0
- package/dist/core/backGroundThread/index.d.ts +35 -0
- package/dist/core/backGroundThread/types.d.ts +12 -0
- package/dist/core/enum.d.ts +12 -2
- package/dist/core/mainEngine.d.ts +11 -3
- package/dist/core/mainThread/snapshotThread.d.ts +2 -1
- package/dist/core/mainThread/subLocalThread.d.ts +1 -2
- package/dist/core/mainThread/subTopThread.d.ts +2 -2
- package/dist/core/msgEvent/baseForBackgroundThread.d.ts +9 -0
- package/dist/core/msgEvent/copyNode/forBackgroundThread.d.ts +8 -0
- package/dist/core/msgEvent/forBackgroundThread.d.ts +12 -0
- package/dist/core/msgEvent/setZIndex/forMain.d.ts +7 -0
- package/dist/core/tools/base.d.ts +5 -1
- package/dist/core/tools/shadowSvg.d.ts +36 -0
- package/dist/core/tools/svg.d.ts +0 -0
- package/dist/core/tools/utils.d.ts +9 -8
- package/dist/core/types.d.ts +36 -1
- package/dist/core/utils/ObserverMap.d.ts +19 -0
- package/dist/core/utils/index.d.ts +1 -0
- package/dist/core/vNodeManager.d.ts +6 -5
- package/dist/core/worker/base.d.ts +1 -1
- package/dist/core/worker/fullWorkerLocal.d.ts +1 -7
- package/dist/core/worker/simpleWorker.d.ts +2 -1
- package/dist/core/worker/subWorkerTopLayer.d.ts +2 -2
- package/dist/fullWorker.js +127 -158
- package/dist/index-CaGxVP6U.mjs +1256 -0
- package/dist/{index-dNUi36ql.mjs → index-Cp4iDsa1.mjs} +1253 -1097
- package/dist/index-DIJe5ta7.js +1 -0
- package/dist/index-ELCL_4SK.js +3 -0
- package/dist/index-GdF83s93.js +1 -0
- package/dist/{index-Be0GtbHC.mjs → index-OkrVupZ5.mjs} +6767 -6315
- package/dist/plugin/baseApplianceManager.d.ts +7 -2
- package/dist/plugin/baseViewContainerManager.d.ts +2 -0
- package/dist/plugin/displayerView.d.ts +2 -0
- package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +1 -0
- package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +2 -0
- package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +2 -0
- package/dist/plugin/types.d.ts +70 -2
- package/dist/style.css +1 -1
- package/dist/subWorker.js +127 -158
- package/dist/svgToImageLoader-DPRAAhwW.js +1 -0
- package/dist/svgToImageLoader-mXH53h-l.mjs +18 -0
- package/package.json +7 -2
- package/cdn/fullWorker-CWXCEL.js +0 -517
- package/cdn/subWorker-CHwEVk.js +0 -517
- package/dist/core/msgEvent/deleteNode/forMainThread.d.ts +0 -6
- package/dist/core/msgEvent/deleteNode/forWorker.d.ts +0 -6
- package/dist/index-D6tJMnFK.js +0 -1
- package/dist/index-DBSetQlP.js +0 -1
|
@@ -3,7 +3,7 @@ import { MemberState, AppliancePluginLike } from "./types";
|
|
|
3
3
|
import { Collector, ViewId } from "../collector";
|
|
4
4
|
import { RoomMemberManager } from "../members";
|
|
5
5
|
import { TextEditorManager } from "../component/textEditor";
|
|
6
|
-
import type { Camera, Displayer, DisplayerCallbacks, IconifyInformation, Player, Rectangle, RequiredAppliancePluginOptions, Room, RoomMember, _ArrayTrue } from "./types";
|
|
6
|
+
import type { Camera, Displayer, DisplayerCallbacks, ISVGMarkmapInformation, ISVGUrlInformation, IconifyInformation, MarkmapId, Player, Rectangle, RequiredAppliancePluginOptions, Room, RoomMember, _ArrayTrue } from "./types";
|
|
7
7
|
import { CursorManager } from "../cursors";
|
|
8
8
|
import { ViewContainerManager } from "./baseViewContainerManager";
|
|
9
9
|
import { MasterControlForWorker } from "../core/mainEngine";
|
|
@@ -71,6 +71,8 @@ export declare abstract class BaseApplianceManager {
|
|
|
71
71
|
get isUseOffscreenTransfer(): boolean;
|
|
72
72
|
/** 是否使用简单模式, 简单模式则无需开启 miniMap 和 plugin */
|
|
73
73
|
get isUseSimple(): boolean;
|
|
74
|
+
/** 是否使用背景画布, 默认false */
|
|
75
|
+
get isUseBackgroundThread(): boolean;
|
|
74
76
|
bindPlugin(plugin: AppliancePluginLike): void;
|
|
75
77
|
/** 激活 plugin */
|
|
76
78
|
abstract activePlugin(): void;
|
|
@@ -98,7 +100,7 @@ export declare abstract class BaseApplianceManager {
|
|
|
98
100
|
toolsType: EToolsKey.Clicker;
|
|
99
101
|
toolsOpt: {};
|
|
100
102
|
} | {
|
|
101
|
-
toolsType: EToolsKey.Pencil | EToolsKey.Eraser | EToolsKey.PencilEraser | EToolsKey.BitMapEraser | EToolsKey.Selector | EToolsKey.Arrow | EToolsKey.Hand | EToolsKey.LaserPen | EToolsKey.Text | EToolsKey.Straight | EToolsKey.Rectangle | EToolsKey.Ellipse | EToolsKey.Star | EToolsKey.Triangle | EToolsKey.Rhombus | EToolsKey.Polygon | EToolsKey.SpeechBalloon | EToolsKey.Image;
|
|
103
|
+
toolsType: EToolsKey.Pencil | EToolsKey.Eraser | EToolsKey.PencilEraser | EToolsKey.BitMapEraser | EToolsKey.Selector | EToolsKey.Arrow | EToolsKey.Hand | EToolsKey.LaserPen | EToolsKey.Text | EToolsKey.Straight | EToolsKey.Rectangle | EToolsKey.Ellipse | EToolsKey.Star | EToolsKey.Triangle | EToolsKey.Rhombus | EToolsKey.Polygon | EToolsKey.SpeechBalloon | EToolsKey.Image | EToolsKey.BackgroundSVG;
|
|
102
104
|
toolsOpt: BaseShapeOptions;
|
|
103
105
|
};
|
|
104
106
|
private getLineCap;
|
|
@@ -132,6 +134,9 @@ export declare abstract class BaseApplianceManager {
|
|
|
132
134
|
createMiniMap(viewId: string, div: HTMLElement): Promise<void>;
|
|
133
135
|
destroyMiniMap(viewId: string): Promise<void>;
|
|
134
136
|
insertIconify(viewId: string, iconifyInfo: IconifyInformation): void;
|
|
137
|
+
insertBackgroundSVG(viewId: string, svgInfo: ISVGUrlInformation): void;
|
|
138
|
+
insertBackgroundMarkMap(viewId: string, svgInfo: ISVGMarkmapInformation): Promise<MarkmapId | undefined>;
|
|
139
|
+
updateBackgroundMarkMap(viewId: string, markmapId: string, svgInfo: ISVGMarkmapInformation): void;
|
|
135
140
|
usePlugin(plugin: Plugin): void | undefined;
|
|
136
141
|
stopDraw(viewId: string): Promise<void>;
|
|
137
142
|
setViewLocalScenePathChange(viewId: string, scenePath: string): Promise<void>;
|
|
@@ -85,6 +85,7 @@ export declare abstract class BaseViewDisplayerManager {
|
|
|
85
85
|
abstract canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
86
86
|
abstract canvasFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
87
87
|
abstract canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
88
|
+
abstract backgroundContainerRef: React.RefObject<HTMLDivElement>;
|
|
88
89
|
abstract floatBarRef: React.RefObject<HTMLDivElement>;
|
|
89
90
|
abstract containerOffset: {
|
|
90
91
|
x: number;
|
|
@@ -163,6 +164,7 @@ export declare abstract class AppViewDisplayerManager extends BaseViewDisplayerM
|
|
|
163
164
|
/** 主容器管理器抽象 */
|
|
164
165
|
export declare abstract class MainViewDisplayerManager extends BaseViewDisplayerManager {
|
|
165
166
|
abstract snapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
167
|
+
abstract backgroundSnapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
166
168
|
constructor(control: ApplianceManagerLike, internalMsgEmitter: EventEmitter2);
|
|
167
169
|
get viewId(): string;
|
|
168
170
|
updateSize(): void;
|
|
@@ -7,10 +7,12 @@ export interface BaseDisplayerProps {
|
|
|
7
7
|
mananger: ApplianceViewManagerLike;
|
|
8
8
|
refs: {
|
|
9
9
|
snapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
10
|
+
backgroundSnapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
10
11
|
canvasContainerRef: React.RefObject<HTMLDivElement>;
|
|
11
12
|
subLocalCanvasContainerRef?: React.RefObject<HTMLDivElement>;
|
|
12
13
|
canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
13
14
|
canvasFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
15
|
+
backgroundContainerRef: React.RefObject<HTMLDivElement>;
|
|
14
16
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
15
17
|
canvasTopRef?: React.RefObject<HTMLCanvasElement>;
|
|
16
18
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
@@ -15,6 +15,7 @@ export declare class AppViewDisplayerManagerImpl extends AppViewDisplayerManager
|
|
|
15
15
|
canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
16
16
|
canvasFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
17
17
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
18
|
+
backgroundContainerRef: React.RefObject<HTMLDivElement>;
|
|
18
19
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
19
20
|
containerOffset: {
|
|
20
21
|
x: number;
|
|
@@ -10,12 +10,14 @@ export declare class MainViewMultiDisplayerManager extends MainViewDisplayerMana
|
|
|
10
10
|
vDom?: BaseViewDisplayer;
|
|
11
11
|
eventTragetElement?: HTMLDivElement;
|
|
12
12
|
snapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
13
|
+
backgroundSnapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
13
14
|
canvasContainerRef: React.RefObject<HTMLDivElement>;
|
|
14
15
|
subLocalCanvasContainerRef?: React.RefObject<HTMLDivElement>;
|
|
15
16
|
canvasTopRef?: React.RefObject<HTMLCanvasElement>;
|
|
16
17
|
canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
17
18
|
canvasFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
18
19
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
20
|
+
backgroundContainerRef: React.RefObject<HTMLDivElement>;
|
|
19
21
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
20
22
|
containerOffset: {
|
|
21
23
|
x: number;
|
|
@@ -10,10 +10,12 @@ export declare class MainViewSingleDisplayerManager extends MainViewDisplayerMan
|
|
|
10
10
|
vDom?: BaseViewDisplayer;
|
|
11
11
|
eventTragetElement?: HTMLDivElement;
|
|
12
12
|
snapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
13
|
+
backgroundSnapshotContainerRef?: React.RefObject<HTMLDivElement>;
|
|
13
14
|
canvasContainerRef: React.RefObject<HTMLDivElement>;
|
|
14
15
|
subLocalCanvasContainerRef?: React.RefObject<HTMLDivElement>;
|
|
15
16
|
canvasTopRef?: React.RefObject<HTMLCanvasElement>;
|
|
16
17
|
canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
18
|
+
backgroundContainerRef: React.RefObject<HTMLDivElement>;
|
|
17
19
|
canvasFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
18
20
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
19
21
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
package/dist/plugin/types.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ import type { ApplianceMultiPlugin } from "./applianceMultiPlugin";
|
|
|
10
10
|
import type { ECanvasContextType, EToolsKey, EvevtWorkState } from "../core/enum";
|
|
11
11
|
import type { AuthRenderScenesData } from "../core/renderCotrol";
|
|
12
12
|
import type { Plugin } from "../core/plugin";
|
|
13
|
-
import { TextEditorInfo } from "../component/textEditor/types";
|
|
13
|
+
import type { TextEditorInfo } from "../component/textEditor/types";
|
|
14
|
+
import type { IMarkmapOptions } from "../component/svg/markmap";
|
|
14
15
|
export type { Room, ImageInformation, Point, Size, Rectangle, RoomMember, RoomState, Player, HotKeys, Camera, Displayer, DisplayerCallbacks, CameraState, View, Cursor, CursorAdapter, RenderEngine, _MemberState, };
|
|
15
16
|
export declare enum ApplianceNames {
|
|
16
17
|
/**
|
|
@@ -303,6 +304,8 @@ export type ExtrasOptions = {
|
|
|
303
304
|
useWorker?: UseWorkerType;
|
|
304
305
|
/** 是否使用简单模式, 默认值为 ``false`` */
|
|
305
306
|
useSimple?: boolean;
|
|
307
|
+
/** 是否使用背景Svg功能, 默认值为 ``false`` */
|
|
308
|
+
useBackgroundSvg?: boolean;
|
|
306
309
|
/** 同步数据配置项 */
|
|
307
310
|
syncOpt?: SyncOpt;
|
|
308
311
|
/** 画布配置项 */
|
|
@@ -327,6 +330,8 @@ export type ExtrasOptions = {
|
|
|
327
330
|
normalStroke?: NormalOpt;
|
|
328
331
|
/** 撤销重做配置项 */
|
|
329
332
|
undoRedo?: UndoRedoOpt;
|
|
333
|
+
/** markmap 配置项 */
|
|
334
|
+
markmap?: MarkmapOpt;
|
|
330
335
|
};
|
|
331
336
|
export type UndoRedoOpt = {
|
|
332
337
|
/** 是否启用全局撤销重做, 默认值为 false */
|
|
@@ -334,6 +339,18 @@ export type UndoRedoOpt = {
|
|
|
334
339
|
/** 撤销重做最大堆栈长度, 默认值为 20 */
|
|
335
340
|
maxStackLength?: number;
|
|
336
341
|
};
|
|
342
|
+
export type MarkmapOpt = {
|
|
343
|
+
/** 是否启用 markmap, 默认值为 true */
|
|
344
|
+
enable: boolean;
|
|
345
|
+
/** markmap 配置项 */
|
|
346
|
+
options: Partial<IMarkmapOptions>;
|
|
347
|
+
/** 获取markmapId超时时间,单位:毫秒,默认值为 10000 */
|
|
348
|
+
timeout?: number;
|
|
349
|
+
};
|
|
350
|
+
export type SnapshotOpt = {
|
|
351
|
+
/** 获取单张图片超时时间,单位:毫秒,默认值为 10000 */
|
|
352
|
+
timeout: number;
|
|
353
|
+
};
|
|
337
354
|
export type NormalOpt = {
|
|
338
355
|
/** 虚线端点样式, square: 平头, round: 圆头, 默认值为 round */
|
|
339
356
|
lineCap: "square" | "round";
|
|
@@ -363,6 +380,7 @@ export type AppliancePluginOptions = {
|
|
|
363
380
|
export type RequiredExtrasOptions = {
|
|
364
381
|
useWorker: Required<UseWorkerType>;
|
|
365
382
|
useSimple: Required<boolean>;
|
|
383
|
+
useBackgroundSvg: Required<boolean>;
|
|
366
384
|
syncOpt: Required<SyncOpt>;
|
|
367
385
|
canvasOpt: Required<CanvasOpt>;
|
|
368
386
|
cursor: Required<CursorOpt>;
|
|
@@ -375,6 +393,7 @@ export type RequiredExtrasOptions = {
|
|
|
375
393
|
dottedStroke: Required<DottedOpt>;
|
|
376
394
|
normalStroke: Required<NormalOpt>;
|
|
377
395
|
undoRedo: Required<UndoRedoOpt>;
|
|
396
|
+
markmap: Required<MarkmapOpt>;
|
|
378
397
|
};
|
|
379
398
|
export type RequiredAppliancePluginOptions = {
|
|
380
399
|
cdn: CdnOpt;
|
|
@@ -504,9 +523,10 @@ export declare enum EmitEventType {
|
|
|
504
523
|
/** 复制节点 */
|
|
505
524
|
CopyNode = "CopyNode",
|
|
506
525
|
/** 激活层级设置 */
|
|
507
|
-
ZIndexActive = "ZIndexActive",
|
|
508
526
|
/** 设置节点层级 */
|
|
509
527
|
ZIndexNode = "ZIndexNode",
|
|
528
|
+
/** 设置背景svg层级 */
|
|
529
|
+
ZIndexBackgroundSVG = "ZIndexBackgroundSVG",
|
|
510
530
|
/** 旋转节点 */
|
|
511
531
|
RotateNode = "RotateNode",
|
|
512
532
|
/** 设置节点颜色 */
|
|
@@ -628,3 +648,51 @@ export type IconifyInformation = {
|
|
|
628
648
|
*/
|
|
629
649
|
crossOrigin?: boolean | string;
|
|
630
650
|
};
|
|
651
|
+
export type ISVGBaseInformation = {
|
|
652
|
+
/**
|
|
653
|
+
* svg的唯一识别符
|
|
654
|
+
*/
|
|
655
|
+
uuid: string;
|
|
656
|
+
/**
|
|
657
|
+
* 图片中点在世界坐标系中的 x 坐标
|
|
658
|
+
*/
|
|
659
|
+
centerX: number;
|
|
660
|
+
/**
|
|
661
|
+
* 图片中点在世界坐标系中的 y 坐标
|
|
662
|
+
*/
|
|
663
|
+
centerY: number;
|
|
664
|
+
/**
|
|
665
|
+
* 图片中点在世界坐标系中的宽
|
|
666
|
+
*/
|
|
667
|
+
width: number;
|
|
668
|
+
/**
|
|
669
|
+
* 图片中点在世界坐标系中的高
|
|
670
|
+
*/
|
|
671
|
+
height: number;
|
|
672
|
+
/**
|
|
673
|
+
* 图片是否被锁定
|
|
674
|
+
*/
|
|
675
|
+
locked: boolean;
|
|
676
|
+
/**
|
|
677
|
+
* 图片是否禁止非等比放缩
|
|
678
|
+
*/
|
|
679
|
+
uniformScale?: boolean;
|
|
680
|
+
/**
|
|
681
|
+
* 是否以跨域方式加载图片
|
|
682
|
+
*/
|
|
683
|
+
crossOrigin?: boolean | string;
|
|
684
|
+
};
|
|
685
|
+
export type ISVGUrlInformation = ISVGBaseInformation & {
|
|
686
|
+
/**
|
|
687
|
+
* svg 源 url, 必须为 http 或 https 协议
|
|
688
|
+
*/
|
|
689
|
+
src: string;
|
|
690
|
+
};
|
|
691
|
+
export type ISVGMarkmapInformation = ISVGBaseInformation & {
|
|
692
|
+
/**
|
|
693
|
+
* markdown 数据 tostring
|
|
694
|
+
*/
|
|
695
|
+
data: string;
|
|
696
|
+
};
|
|
697
|
+
export type ISVGInformation = ISVGUrlInformation | ISVGMarkmapInformation;
|
|
698
|
+
export type MarkmapId = string;
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--text-editor-border-color-unable: rgba(0, 0, 0, .12)}.appliance-plugin-main-view-displayer,.appliance-plugin-app-view-displayer{position:relative;width:100%;height:100%;transform:translateY(-100%);pointer-events:none;z-index:2;box-sizing:content-box}.appliance-plugin-floatbtns{position:absolute;left:3px;transform:translateY(-60px);display:flex;flex-direction:row;align-items:center;background:#fff;border:1px solid #efefef;box-shadow:0 6px 12px #0000001f;border-radius:4px;color-scheme:light;pointer-events:auto;z-index:9}.appliance-plugin-floatbtns .normal-button{width:40px;height:40px;touch-action:none}.appliance-plugin-floatbtns .button{display:flex;justify-content:center;align-items:center;cursor:pointer;border:none}.appliance-plugin-floatbtns .button:hover,.appliance-plugin-floatbtns .button.active{background-color:#eef0f6}.appliance-plugin-floatbtns .shapeOpt-sub-menu,.appliance-plugin-floatbtns .font-style-menu,.appliance-plugin-floatbtns .image-layer-menu,.appliance-plugin-floatbtns .font-colors-menu{box-sizing:border-box;display:flex;flex-wrap:wrap;flex-direction:row;justify-content:flex-start;align-items:center;position:absolute;padding:4px;background:#fff;box-shadow:0 3px 6px #0000001f;border-radius:2px;top:50px;touch-action:none}.appliance-plugin-floatbtns .shapeOpt-sub-menu .normal-button,.appliance-plugin-floatbtns .font-style-menu .normal-button,.appliance-plugin-floatbtns .image-layer-menu .normal-button,.appliance-plugin-floatbtns .font-colors-menu .normal-button{width:32px;height:32px;touch-action:none}.appliance-plugin-floatbtns .font-colors-menu{justify-content:flex-start;width:128px}.appliance-plugin-floatbtns .font-colors-menu .font-color-button{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:4px;width:22px;height:22px;border-radius:50%;border-width:1px;border-style:solid;border-color:#fff;background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px;box-sizing:border-box}.appliance-plugin-floatbtns .font-colors-menu .font-color-button.active{border-color:#a7a7a7}.appliance-plugin-floatbtns .font-colors-menu .font-color-button .circle{box-sizing:border-box;width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.12);touch-action:none}.appliance-plugin-floatbtns .font-colors-menu .font-color-button .none{position:relative;background-color:#fff}.appliance-plugin-floatbtns .font-colors-menu .font-color-button .none:before{content:"";position:absolute;left:50%;width:1px;height:100%;background-color:#0000001f;transform:rotate(45deg)}.appliance-plugin-floatbtns .font-colors-icon{flex-direction:column}.appliance-plugin-floatbtns .font-colors-icon .color-bar{height:2px;width:12px;margin-top:-2px;background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px}.appliance-plugin-floatbtns .font-colors-icon .color-bar .color-bar-color{width:100%;height:100%}.appliance-plugin-floatbtns .font-colors-icon .color-bar-fill,.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring{height:12px;width:12px;border-radius:6px;border:1px solid rgba(0,0,0,.12);background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px}.appliance-plugin-floatbtns .font-colors-icon .color-bar-fill .circle,.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring .circle{width:100%;height:100%;border-radius:50%;touch-action:none}.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring{border:0}.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring .circle{transform:translate(35%,30%);width:60%;height:60%;border-radius:50%;background-color:#fff;touch-action:none}.appliance-plugin-floatbtns .font-color-opacity{box-sizing:border-box;width:100px;height:6px;margin:5px 0 10px;border-radius:3px;background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px;position:relative}.appliance-plugin-floatbtns .font-color-opacity .range-color{height:6px;box-shadow:inset 0 0 1px #00000040;border-radius:4px;top:0;right:0;bottom:0;left:0}.appliance-plugin-floatbtns .font-color-opacity .range-opacity{position:absolute;top:0;left:-10px;height:6px;width:120px;touch-action:auto}.appliance-plugin-floatbtns .font-color-opacity .range-opacity .range-opacity-data-icon{position:absolute;top:10px;left:0;width:30px;height:16px;text-align:center;background-color:#333;border-radius:4px;font-size:12px;color:#fff;display:none}.appliance-plugin-floatbtns .font-color-opacity .range-opacity:hover .range-opacity-data-icon{display:block}.appliance-plugin-floatbtns .font-color-opacity .circle{position:absolute;top:-3px;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 1px #00000040,0 0 0 1px #0000000f;width:12px;height:12px;box-sizing:border-box;touch-action:none}.appliance-plugin-floatbtns .font-style-menu{justify-content:space-between;width:128px}.appliance-plugin-floatbtns .font-style-menu .font-style-button{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:4px;width:22px;height:22px;box-sizing:border-box}.appliance-plugin-floatbtns .font-style-menu .font-style-button.active{border-color:#a7a7a7}.appliance-plugin-floatbtns .font-size-barBtn .font-size-input{line-height:20px;height:20px;padding:0 2px;margin-left:2px;width:25px;border:1px solid;border-radius:3px}.appliance-plugin-floatbtns .font-size-barBtn .font-size-input:focus{background:#eef0f6}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns{width:15px;margin-left:3px;display:flex;flex-direction:column;justify-content:center}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add,.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut{position:relative;width:10px;height:10px}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add:hover,.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut:hover{background:#eef0f6}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add:after,.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut:after{content:"";position:absolute;top:0;border:4px solid #999;border-left-color:transparent;border-right-color:transparent}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add{margin-bottom:3px}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add:after{border-top-color:transparent}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut:after{border-bottom-color:transparent}.appliance-plugin-floatbtns .font-size-barBtn .font-size-menu{position:absolute;top:35px;width:50px;overflow-y:auto;display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #efefef;box-shadow:0 6px 12px #0000001f}.appliance-plugin-floatbtns .font-size-barBtn .font-size-menu .font-size-btn{font-size:12px;line-height:20px;width:100%;text-align:center}.appliance-plugin-floatbtns .font-size-barBtn .font-size-menu .font-size-btn:hover{background:#eef0f6}.appliance-plugin-floatbtns .font-size-barBtn:hover{background:#fff}.appliance-plugin-floatbtns .shapeOpt-sub-menu{flex-direction:column;touch-action:none}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-tabs{display:flex;flex-direction:row;justify-content:flex-start;width:100%}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-tabs .tab-button{width:32px;height:24px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content{flex:1;background-color:#eef0f6;display:flex;flex-direction:column;align-items:baseline;width:100%}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button{flex:1;height:32px;padding:5px 0;cursor:default;display:flex;flex-direction:row;justify-content:flex-start;width:100%}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button img{width:16px;height:16px;margin:0 5px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number{flex:1;padding:0 3px;height:20px;border:1px solid;border-radius:3px;margin-right:5px;max-width:70px;min-width:40px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns{width:15px;display:flex;flex-direction:column;justify-content:center}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add,.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut{position:relative;width:10px;height:10px;cursor:pointer}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add:hover,.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut:hover{background:#eef0f6}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add:after,.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut:after{content:"";position:absolute;top:0;border:4px solid #999;border-left-color:transparent;border-right-color:transparent}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add{margin-bottom:3px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add:after{border-top-color:transparent}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut:after{border-bottom-color:transparent}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container{flex:1;box-sizing:border-box;width:100px;height:6px;margin:7px 6px 7px 0;border-radius:3px;background-color:#3381ff;position:relative}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container .range-number-color{height:6px;box-shadow:inset 0 0 1px #00000040;border-radius:4px;top:0;right:0;bottom:0;left:0}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container .range-number{position:absolute;top:0;left:-6px;height:6px;width:112px;cursor:pointer}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container .circle{position:absolute;top:-3px;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 1px #00000040,0 0 0 1px #0000000f;width:12px;height:12px;box-sizing:border-box;background-color:#3381ff;touch-action:none}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .select-option-menu{position:absolute;top:60px;left:30px;width:80px;display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #efefef;box-shadow:0 6px 12px #0000001f}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .select-option-menu .select-option-btn{font-size:12px;line-height:20px;width:100%;text-align:center}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .select-option-menu .select-option-btn:hover{background:#eef0f6}.appliance-plugin-floatbtns .font-colors-line{width:100%;height:0px;border-bottom:1px dashed #ccc;margin-bottom:3px}.appliance-plugin-floatbtns .stroke-type-box{width:100%;height:15px;display:flex;flex-direction:row;justify-content:space-around;padding-top:8px;cursor:default}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item{box-sizing:content-box;padding-top:2px;width:20px;height:3px;border:0;cursor:pointer;opacity:.3}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.active{opacity:1}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.Stroke{margin-top:2px;padding:0;height:3px;border-radius:0 10px}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.Normal{height:0;border-bottom:3px solid}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.Dotted{height:0;border-bottom:3px dotted}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.LongDotted{height:0;border-bottom:3px dashed}.appliance-plugin-fill-scene-snapshot-img{position:absolute;top:50%;left:50%;max-width:100%;max-height:100%;transform:translate(-50%,-50%);pointer-events:none}.index-module__Container__nLsM3{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;outline:none;pointer-events:none;touch-action:none}.index-module__Container__nLsM3 *{touch-action:none}.index-module__Container__nLsM3 .index-module__CanvasBox__j2Xe-{position:relative;width:100%;height:100%;pointer-events:none}.index-module__Container__nLsM3 .index-module__CanvasBox__j2Xe- .index-module__FloatCanvas__d1YR7{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.index-module__Container__nLsM3 .index-module__CanvasBox__j2Xe- .index-module__TopFloatCanvas__7IaCw{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.index-module__Container__nLsM3 .index-module__CanvasBoxSub__hcMeK{position:absolute!important;top:0;left:0;width:100%;height:100%;z-index:1}.index-module__Container__nLsM3 .index-module__SnapshotBox__--eeE{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL{position:absolute;top:0;left:0;width:0;height:0;pointer-events:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box{position:relative;box-sizing:border-box;width:100%;height:100%;border:1px solid;z-index:1;pointer-events:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .point{position:absolute;width:7px;height:7px;transform:translate(-50%,-50%);pointer-events:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .point-dot{margin:-1px 0 0 -1px;width:5px;height:5px;border:1px solid;border-radius:3px;background-color:#fff}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LT,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LB{left:0}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LT,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .TC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RT{top:0}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RT,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RB{right:-7px}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RB,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .BC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LB{bottom:-7px}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LC{top:50%}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .TC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .BC{left:50%}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .lock{pointer-events:none;position:absolute;width:22px;height:22px;top:-11px;left:-11px}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-floatCanvas-box{position:absolute;z-index:1;overflow:hidden}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-floatCanvas{width:100%;height:100%}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor-box{position:absolute;touch-action:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor-box.readonly{pointer-events:none;border-color:transparent}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor{position:relative;padding:5px;pointer-events:none;resize:none;z-index:2;white-space:pre;box-sizing:content-box;display:flex;flex-direction:column;align-items:baseline}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor:focus,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor:focus-visible{outline:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor div{min-width:2px;min-height:inherit}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf{position:absolute;cursor:move;top:0;left:0;width:16px;height:16px;z-index:2;pointer-events:auto}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-btn{position:absolute;left:0;top:0;width:16px;height:16px;border-radius:8px;display:flex;justify-content:center;align-items:center;pointer-events:none}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-btn img{width:12px;height:12px}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer{position:relative;width:100%;height:100%;opacity:0;pointer-events:none}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer.active{opacity:1}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer img{width:100%;height:100%}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer .angle-icon{position:absolute;top:-16px;left:-16px;width:30px;height:16px;text-align:center;background-color:#333;border-radius:4px;font-size:12px;color:#fff}.index-module__Container__nLsM3 .index-module__ResizeBtn__yjvda{position:absolute;box-sizing:content-box;top:0;width:0;left:0;z-index:1;touch-action:none}.index-module__Container__nLsM3 .index-module__CursorBox__2UHvI{position:absolute;left:0;top:0;z-index:2}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden;transform:translateZ(0)}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box{position:absolute;touch-action:none;border:1px dashed transparent;box-sizing:border-box}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.none{display:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.active{pointer-events:auto}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.active:hover{border-style:solid;cursor:text}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.active .editor{opacity:0;pointer-events:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.editing{pointer-events:auto}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.editing .editor{opacity:1;pointer-events:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.editing:hover{border-color:var(--text-editor-border-color-unable)!important}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.hover:hover{border-style:solid}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.hover .editor{opacity:1;pointer-events:auto}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor{position:relative;padding:5px;pointer-events:none;font-family:sans-serif;resize:none;z-index:2;white-space:nowrap;box-sizing:content-box;display:flex;flex-direction:column;align-items:baseline}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor:focus,.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor:focus-visible{outline:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor div{min-width:2px;min-height:inherit}.index-module__Container__nLsM3 .index-module__ResizeTowBox__HOllX{position:absolute;top:0;width:0;left:0}.index-module__Container__nLsM3 .index-module__ResizeTowBox__HOllX .appliance-plugin-point-btn{position:absolute;width:5px;height:5px;border:1px solid;border-radius:3px;transform:translate(-50%,-50%);background-color:#fff;z-index:2}.index-module__Container__nLsM3 .index-module__ResizeTowBox__HOllX .appliance-plugin-point-draggable-btn{position:absolute;width:10px;height:10px;margin-top:-5px;margin-left:-5px;z-index:3;pointer-events:auto;cursor:move;touch-action:none}.index-module__Container__nLsM3 .index-module__FloatBarBtn__FJrOG{position:absolute;pointer-events:none}.cursor-box{color:#fff;padding:4px;border-radius:2px;width:100%;height:100%}.cursor-box .cursor-name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:80px}.cursor-pencil-image{width:26px;height:26px}.cursor-selector-image{width:24px;height:24px}.cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px}.cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}
|
|
1
|
+
:root{--text-editor-border-color-unable: rgba(0, 0, 0, .12)}.appliance-plugin-main-view-displayer,.appliance-plugin-app-view-displayer{position:relative;width:100%;height:100%;transform:translateY(-100%);pointer-events:none;z-index:2;box-sizing:content-box}.appliance-plugin-floatbtns{position:absolute;left:3px;transform:translateY(-60px);display:flex;flex-direction:row;align-items:center;background:#fff;border:1px solid #efefef;box-shadow:0 6px 12px #0000001f;border-radius:4px;color-scheme:light;pointer-events:auto;z-index:9}.appliance-plugin-floatbtns .normal-button{width:40px;height:40px;touch-action:none}.appliance-plugin-floatbtns .button{display:flex;justify-content:center;align-items:center;cursor:pointer;border:none}.appliance-plugin-floatbtns .button:hover,.appliance-plugin-floatbtns .button.active{background-color:#eef0f6}.appliance-plugin-floatbtns .shapeOpt-sub-menu,.appliance-plugin-floatbtns .font-style-menu,.appliance-plugin-floatbtns .image-layer-menu,.appliance-plugin-floatbtns .font-colors-menu{box-sizing:border-box;display:flex;flex-wrap:wrap;flex-direction:row;justify-content:flex-start;align-items:center;position:absolute;padding:4px;background:#fff;box-shadow:0 3px 6px #0000001f;border-radius:2px;top:50px;touch-action:none}.appliance-plugin-floatbtns .shapeOpt-sub-menu .normal-button,.appliance-plugin-floatbtns .font-style-menu .normal-button,.appliance-plugin-floatbtns .image-layer-menu .normal-button,.appliance-plugin-floatbtns .font-colors-menu .normal-button{width:32px;height:32px;touch-action:none}.appliance-plugin-floatbtns .font-colors-menu{justify-content:flex-start;width:128px}.appliance-plugin-floatbtns .font-colors-menu .font-color-button{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:4px;width:22px;height:22px;border-radius:50%;border-width:1px;border-style:solid;border-color:#fff;background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px;box-sizing:border-box}.appliance-plugin-floatbtns .font-colors-menu .font-color-button.active{border-color:#a7a7a7}.appliance-plugin-floatbtns .font-colors-menu .font-color-button .circle{box-sizing:border-box;width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.12);touch-action:none}.appliance-plugin-floatbtns .font-colors-menu .font-color-button .none{position:relative;background-color:#fff}.appliance-plugin-floatbtns .font-colors-menu .font-color-button .none:before{content:"";position:absolute;left:50%;width:1px;height:100%;background-color:#0000001f;transform:rotate(45deg)}.appliance-plugin-floatbtns .font-colors-icon{flex-direction:column}.appliance-plugin-floatbtns .font-colors-icon .color-bar{height:2px;width:12px;margin-top:-2px;background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px}.appliance-plugin-floatbtns .font-colors-icon .color-bar .color-bar-color{width:100%;height:100%}.appliance-plugin-floatbtns .font-colors-icon .color-bar-fill,.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring{height:12px;width:12px;border-radius:6px;border:1px solid rgba(0,0,0,.12);background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px}.appliance-plugin-floatbtns .font-colors-icon .color-bar-fill .circle,.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring .circle{width:100%;height:100%;border-radius:50%;touch-action:none}.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring{border:0}.appliance-plugin-floatbtns .font-colors-icon .color-bar-ring .circle{transform:translate(35%,30%);width:60%;height:60%;border-radius:50%;background-color:#fff;touch-action:none}.appliance-plugin-floatbtns .font-color-opacity{box-sizing:border-box;width:100px;height:6px;margin:5px 0 10px;border-radius:3px;background-image:conic-gradient(rgba(0,0,0,.06) 0 25%,transparent 0 50%,rgba(0,0,0,.06) 0 75%,transparent 0);background-size:6px 6px;position:relative}.appliance-plugin-floatbtns .font-color-opacity .range-color{height:6px;box-shadow:inset 0 0 1px #00000040;border-radius:4px;top:0;right:0;bottom:0;left:0}.appliance-plugin-floatbtns .font-color-opacity .range-opacity{position:absolute;top:0;left:-10px;height:6px;width:120px;touch-action:auto}.appliance-plugin-floatbtns .font-color-opacity .range-opacity .range-opacity-data-icon{position:absolute;top:10px;left:0;width:30px;height:16px;text-align:center;background-color:#333;border-radius:4px;font-size:12px;color:#fff;display:none}.appliance-plugin-floatbtns .font-color-opacity .range-opacity:hover .range-opacity-data-icon{display:block}.appliance-plugin-floatbtns .font-color-opacity .circle{position:absolute;top:-3px;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 1px #00000040,0 0 0 1px #0000000f;width:12px;height:12px;box-sizing:border-box;touch-action:none}.appliance-plugin-floatbtns .font-style-menu{justify-content:space-between;width:128px}.appliance-plugin-floatbtns .font-style-menu .font-style-button{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:4px;width:22px;height:22px;box-sizing:border-box}.appliance-plugin-floatbtns .font-style-menu .font-style-button.active{border-color:#a7a7a7}.appliance-plugin-floatbtns .font-size-barBtn .font-size-input{line-height:20px;height:20px;padding:0 2px;margin-left:2px;width:25px;border:1px solid;border-radius:3px}.appliance-plugin-floatbtns .font-size-barBtn .font-size-input:focus{background:#eef0f6}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns{width:15px;margin-left:3px;display:flex;flex-direction:column;justify-content:center}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add,.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut{position:relative;width:10px;height:10px}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add:hover,.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut:hover{background:#eef0f6}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add:after,.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut:after{content:"";position:absolute;top:0;border:4px solid #999;border-left-color:transparent;border-right-color:transparent}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add{margin-bottom:3px}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-add:after{border-top-color:transparent}.appliance-plugin-floatbtns .font-size-barBtn .font-size-btns .font-size-cut:after{border-bottom-color:transparent}.appliance-plugin-floatbtns .font-size-barBtn .font-size-menu{position:absolute;top:35px;width:50px;overflow-y:auto;display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #efefef;box-shadow:0 6px 12px #0000001f}.appliance-plugin-floatbtns .font-size-barBtn .font-size-menu .font-size-btn{font-size:12px;line-height:20px;width:100%;text-align:center}.appliance-plugin-floatbtns .font-size-barBtn .font-size-menu .font-size-btn:hover{background:#eef0f6}.appliance-plugin-floatbtns .font-size-barBtn:hover{background:#fff}.appliance-plugin-floatbtns .shapeOpt-sub-menu{flex-direction:column;touch-action:none}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-tabs{display:flex;flex-direction:row;justify-content:flex-start;width:100%}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-tabs .tab-button{width:32px;height:24px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content{flex:1;background-color:#eef0f6;display:flex;flex-direction:column;align-items:baseline;width:100%}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button{flex:1;height:32px;padding:5px 0;cursor:default;display:flex;flex-direction:row;justify-content:flex-start;width:100%}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button img{width:16px;height:16px;margin:0 5px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number{flex:1;padding:0 3px;height:20px;border:1px solid;border-radius:3px;margin-right:5px;max-width:70px;min-width:40px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns{width:15px;display:flex;flex-direction:column;justify-content:center}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add,.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut{position:relative;width:10px;height:10px;cursor:pointer}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add:hover,.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut:hover{background:#eef0f6}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add:after,.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut:after{content:"";position:absolute;top:0;border:4px solid #999;border-left-color:transparent;border-right-color:transparent}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add{margin-bottom:3px}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-add:after{border-top-color:transparent}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .input-number-btns .input-number-cut:after{border-bottom-color:transparent}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container{flex:1;box-sizing:border-box;width:100px;height:6px;margin:7px 6px 7px 0;border-radius:3px;background-color:#3381ff;position:relative}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container .range-number-color{height:6px;box-shadow:inset 0 0 1px #00000040;border-radius:4px;top:0;right:0;bottom:0;left:0}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container .range-number{position:absolute;top:0;left:-6px;height:6px;width:112px;cursor:pointer}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .range-number-container .circle{position:absolute;top:-3px;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 1px #00000040,0 0 0 1px #0000000f;width:12px;height:12px;box-sizing:border-box;background-color:#3381ff;touch-action:none}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .select-option-menu{position:absolute;top:60px;left:30px;width:80px;display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #efefef;box-shadow:0 6px 12px #0000001f}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .select-option-menu .select-option-btn{font-size:12px;line-height:20px;width:100%;text-align:center}.appliance-plugin-floatbtns .shapeOpt-sub-menu .shapeOpt-sub-menu-content .input-button .select-option-menu .select-option-btn:hover{background:#eef0f6}.appliance-plugin-floatbtns .font-colors-line{width:100%;height:0px;border-bottom:1px dashed #ccc;margin-bottom:3px}.appliance-plugin-floatbtns .stroke-type-box{width:100%;height:15px;display:flex;flex-direction:row;justify-content:space-around;padding-top:8px;cursor:default}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item{box-sizing:content-box;padding-top:2px;width:20px;height:3px;border:0;cursor:pointer;opacity:.3}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.active{opacity:1}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.Stroke{margin-top:2px;padding:0;height:3px;border-radius:0 10px}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.Normal{height:0;border-bottom:3px solid}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.Dotted{height:0;border-bottom:3px dotted}.appliance-plugin-floatbtns .stroke-type-box .stroke-type-box-item.LongDotted{height:0;border-bottom:3px dashed}.appliance-plugin-fill-scene-snapshot-img{position:absolute;top:50%;left:50%;max-width:100%;max-height:100%;transform:translate(-50%,-50%);pointer-events:none}.appliance-plugin-background-svg-active.appliance-plugin-background-isWritable .svg{pointer-events:auto;-webkit-user-select:text;user-select:text}.index-module__Container__nLsM3{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;outline:none;pointer-events:none;touch-action:none}.index-module__Container__nLsM3 *{touch-action:none}.index-module__Container__nLsM3 .index-module__BackgroundSvgBox__Fv1ay,.index-module__Container__nLsM3 .index-module__BackgroundSnapshotBox__NEM-C{position:absolute!important;z-index:-1;width:100%;height:100%;overflow:hidden;pointer-events:none}.index-module__Container__nLsM3 .index-module__BackgroundSvgBox__Fv1ay .img,.index-module__Container__nLsM3 .index-module__BackgroundSnapshotBox__NEM-C .img,.index-module__Container__nLsM3 .index-module__BackgroundSvgBox__Fv1ay .svg,.index-module__Container__nLsM3 .index-module__BackgroundSnapshotBox__NEM-C .svg{position:absolute;transform:translate(-50%,-50%);touch-action:none}.index-module__Container__nLsM3 .index-module__BackgroundSnapshotBox__NEM-C{z-index:-2;clip-path:inset(100% 0 0 0)}.index-module__Container__nLsM3 .index-module__BackgroundSnapshotContent__NFLAl{position:absolute;top:0;left:0;width:100%;height:100%}.index-module__Container__nLsM3 .index-module__CanvasBox__j2Xe-{position:relative;width:100%;height:100%;pointer-events:none}.index-module__Container__nLsM3 .index-module__CanvasBox__j2Xe- .index-module__FloatCanvas__d1YR7{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.index-module__Container__nLsM3 .index-module__CanvasBox__j2Xe- .index-module__TopFloatCanvas__7IaCw{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.index-module__Container__nLsM3 .index-module__CanvasBoxSub__hcMeK{position:absolute!important;top:0;left:0;width:100%;height:100%;z-index:1}.index-module__Container__nLsM3 .index-module__SnapshotBox__--eeE{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL{position:absolute;top:0;left:0;width:0;height:0;pointer-events:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box{position:relative;box-sizing:border-box;width:100%;height:100%;border:1px solid;z-index:1;pointer-events:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .point{position:absolute;width:7px;height:7px;transform:translate(-50%,-50%);pointer-events:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .point-dot{margin:-1px 0 0 -1px;width:5px;height:5px;border:1px solid;border-radius:3px;background-color:#fff}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LT,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LB{left:0}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LT,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .TC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RT{top:0}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RT,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RB{right:-7px}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RB,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .BC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LB{bottom:-7px}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .RC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .LC{top:50%}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .TC,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .BC{left:50%}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-hightlight-box .lock{pointer-events:none;position:absolute;width:22px;height:22px;top:-11px;left:-11px}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-floatCanvas-box{position:absolute;z-index:1;overflow:hidden}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .appliance-plugin-floatCanvas{width:100%;height:100%}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor-box{position:absolute;touch-action:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor-box.readonly{pointer-events:none;border-color:transparent}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor{position:relative;padding:5px;pointer-events:none;resize:none;z-index:2;white-space:pre;box-sizing:content-box;display:flex;flex-direction:column;align-items:baseline}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor:focus,.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor:focus-visible{outline:none}.index-module__Container__nLsM3 .index-module__FloatBar__cm-EL .editor div{min-width:2px;min-height:inherit}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf{position:absolute;cursor:move;top:0;left:0;width:16px;height:16px;z-index:2;pointer-events:auto}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-btn{position:absolute;left:0;top:0;width:16px;height:16px;border-radius:8px;display:flex;justify-content:center;align-items:center;pointer-events:none}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-btn img{width:12px;height:12px}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer{position:relative;width:100%;height:100%;opacity:0;pointer-events:none}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer.active{opacity:1}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer img{width:100%;height:100%}.index-module__Container__nLsM3 .index-module__RotateBtn__HSSkf .appliance-plugin-rotate-mouse-pointer .angle-icon{position:absolute;top:-16px;left:-16px;width:30px;height:16px;text-align:center;background-color:#333;border-radius:4px;font-size:12px;color:#fff}.index-module__Container__nLsM3 .index-module__ResizeBtn__yjvda{position:absolute;box-sizing:content-box;top:0;width:0;left:0;z-index:1;touch-action:none}.index-module__Container__nLsM3 .index-module__CursorBox__2UHvI{position:absolute;left:0;top:0;z-index:2}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden;transform:translateZ(0)}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box{position:absolute;touch-action:none;border:1px dashed transparent;box-sizing:border-box}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.none{display:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.active{pointer-events:auto}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.active:hover{border-style:solid;cursor:text}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.active .editor{opacity:0;pointer-events:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.editing{pointer-events:auto}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.editing .editor{opacity:1;pointer-events:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.editing:hover{border-color:var(--text-editor-border-color-unable)!important}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.hover:hover{border-style:solid}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor-box.hover .editor{opacity:1;pointer-events:auto}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor{position:relative;padding:5px;pointer-events:none;font-family:sans-serif;resize:none;z-index:2;white-space:nowrap;box-sizing:content-box;display:flex;flex-direction:column;align-items:baseline}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor:focus,.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor:focus-visible{outline:none}.index-module__Container__nLsM3 .index-module__TextEditorContainer__Qm8KC .editor div{min-width:2px;min-height:inherit}.index-module__Container__nLsM3 .index-module__ResizeTowBox__HOllX{position:absolute;top:0;width:0;left:0}.index-module__Container__nLsM3 .index-module__ResizeTowBox__HOllX .appliance-plugin-point-btn{position:absolute;width:5px;height:5px;border:1px solid;border-radius:3px;transform:translate(-50%,-50%);background-color:#fff;z-index:2}.index-module__Container__nLsM3 .index-module__ResizeTowBox__HOllX .appliance-plugin-point-draggable-btn{position:absolute;width:10px;height:10px;margin-top:-5px;margin-left:-5px;z-index:3;pointer-events:auto;cursor:move;touch-action:none}.index-module__Container__nLsM3 .index-module__FloatBarBtn__FJrOG{position:absolute;pointer-events:none}.cursor-box{color:#fff;padding:4px;border-radius:2px;width:100%;height:100%}.cursor-box .cursor-name-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:80px}.cursor-pencil-image{width:26px;height:26px}.cursor-selector-image{width:24px;height:24px}.cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px}.cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}
|