vkedit 3.2.7 → 4.0.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/CHANGELOG.md +51 -0
- package/README.en.md +38 -36
- package/README.md +32 -28
- package/dist/commands/change-layer-order-command.d.ts +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/reorder-elements-command.d.ts +19 -0
- package/dist/components/BaseElementPropertyPanel.vue.d.ts +28 -1
- package/dist/components/TextProperty.vue.d.ts +2 -0
- package/dist/components/ui/VkButton.vue.d.ts +2 -2
- package/dist/components/ui/VkColorPicker.vue.d.ts +26 -0
- package/dist/components/ui/VkTextarea.vue.d.ts +20 -0
- package/dist/components/ui/index.d.ts +2 -1
- package/dist/core/ContentLayer.vue.d.ts +0 -2
- package/dist/core/Editor.vue.d.ts +1 -0
- package/dist/{plugins/rect/Tool.vue.d.ts → core/GraphicToolRenderer.vue.d.ts} +6 -1
- package/dist/core/HelpGuide.vue.d.ts +3 -1
- package/dist/{plugins/table/CellsBorder.vue.d.ts → core/TransformOverlay.vue.d.ts} +2 -2
- package/dist/core/editor-host.d.ts +2 -11
- package/dist/favicon.ico +0 -0
- package/dist/favicon.svg +8 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/use-content-layer.d.ts +6 -6
- package/dist/hooks/use-host-state.d.ts +1 -0
- package/dist/hooks/use-ruler-layer.d.ts +24 -0
- package/dist/hooks/use-selection-layer.d.ts +2 -3
- package/dist/hooks/use-stage-event.d.ts +1 -0
- package/dist/hooks/use-transform-overlay.d.ts +108 -0
- package/dist/index-CSKpw1uX.js +25597 -0
- package/dist/{index.es-B1gCGYT7.js → index.es-Dswe047Z.js} +1 -1
- package/dist/plugins/barcode/Shape.vue.d.ts +1 -1
- package/dist/plugins/barcode/barcode.d.ts +12 -13
- package/dist/plugins/barcode/index.d.ts +0 -1
- package/dist/plugins/export/export.d.ts +1 -2
- package/dist/plugins/graphic-registry/graphic-registry.d.ts +43 -0
- package/dist/plugins/graphic-registry/index.d.ts +1 -0
- package/dist/plugins/import/import.d.ts +1 -2
- package/dist/plugins/index.d.ts +2 -6
- package/dist/plugins/{table/ContextMenu.vue.d.ts → layer-manager/LayerPanel.vue.d.ts} +5 -4
- package/dist/plugins/layer-manager/index.d.ts +2 -0
- package/dist/plugins/layer-manager/layer-manager.d.ts +16 -0
- package/dist/plugins/line/Shape.vue.d.ts +1 -1
- package/dist/plugins/line/index.d.ts +0 -1
- package/dist/plugins/line/line.d.ts +12 -13
- package/dist/plugins/qrcode/Shape.vue.d.ts +1 -1
- package/dist/plugins/qrcode/index.d.ts +0 -1
- package/dist/plugins/qrcode/qrcode.d.ts +12 -13
- package/dist/plugins/rect/Shape.vue.d.ts +1 -1
- package/dist/plugins/rect/index.d.ts +0 -1
- package/dist/plugins/rect/rect.d.ts +11 -13
- package/dist/plugins/selection.d.ts +0 -1
- package/dist/plugins/text/Shape.vue.d.ts +1 -1
- package/dist/plugins/text/index.d.ts +0 -1
- package/dist/plugins/text/text.d.ts +16 -13
- package/dist/types/base-graphic-element.d.ts +10 -3
- package/dist/types/base.d.ts +5 -18
- package/dist/types/event-data.d.ts +17 -0
- package/dist/types/event-map.d.ts +8 -1
- package/dist/types/graphic-plugin.d.ts +27 -0
- package/dist/types/index.d.ts +1 -3
- package/dist/utils/color.d.ts +40 -0
- package/dist/utils/css-var.d.ts +14 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/readability.d.ts +22 -0
- package/dist/utils/theme.d.ts +2 -0
- package/dist/utils/transform-geometry.d.ts +62 -0
- package/dist/utils/transform-overlay.d.ts +62 -0
- package/dist/vkedit.css +1 -1
- package/dist/vkedit.es.js +81 -96
- package/package.json +4 -5
- package/dist/components/ui/VkIcon.vue.d.ts +0 -8
- package/dist/index-Aa1HXlw6.js +0 -72887
- package/dist/plugins/barcode/Tool.vue.d.ts +0 -6
- package/dist/plugins/chart/PropertyPanel.vue.d.ts +0 -9
- package/dist/plugins/chart/Shape.vue.d.ts +0 -23
- package/dist/plugins/chart/Tool.vue.d.ts +0 -6
- package/dist/plugins/chart/chart.d.ts +0 -38
- package/dist/plugins/chart/index.d.ts +0 -4
- package/dist/plugins/element-manager.d.ts +0 -24
- package/dist/plugins/graphic-manager/graphic-manager.d.ts +0 -31
- package/dist/plugins/graphic-manager/index.d.ts +0 -1
- package/dist/plugins/graphic-tool-manager.d.ts +0 -16
- package/dist/plugins/line/Tool.vue.d.ts +0 -7
- package/dist/plugins/property-panel-manager/index.d.ts +0 -1
- package/dist/plugins/property-panel-manager/property-panel-manager.d.ts +0 -32
- package/dist/plugins/qrcode/Tool.vue.d.ts +0 -6
- package/dist/plugins/table/PropertyPanel.vue.d.ts +0 -9
- package/dist/plugins/table/Shape.vue.d.ts +0 -26
- package/dist/plugins/table/Tool.vue.d.ts +0 -7
- package/dist/plugins/table/cell.d.ts +0 -61
- package/dist/plugins/table/index.d.ts +0 -6
- package/dist/plugins/table/table.d.ts +0 -92
- package/dist/plugins/text/Tool.vue.d.ts +0 -6
- package/dist/types/base-graphic-type.d.ts +0 -9
- package/dist/types/element-type-map.d.ts +0 -12
- package/dist/types/plugin-map.d.ts +0 -12
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
export * from './base-graphic-element';
|
|
2
|
-
export * from './base-graphic-type';
|
|
3
2
|
export * from './base-plugin';
|
|
4
3
|
export * from './base';
|
|
5
4
|
export * from './event-data';
|
|
6
5
|
export * from './event-map';
|
|
7
6
|
export * from './konva-text';
|
|
8
|
-
export * from './plugin
|
|
9
|
-
export * from './element-type-map';
|
|
7
|
+
export * from './graphic-plugin';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 判断输入是否是完整的 #RRGGBB 形式的 HEX 颜色
|
|
3
|
+
*/
|
|
4
|
+
export declare function isFullHexColor(value: unknown): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* 将任意输入规范化为小写 #rrggbb 形式的 HEX 字符串
|
|
7
|
+
* @returns 规范化结果;输入不是合法完整 HEX 时返回 null
|
|
8
|
+
*/
|
|
9
|
+
export declare function normalizeHex(value: unknown): string | null;
|
|
10
|
+
/**
|
|
11
|
+
* 将 #rrggbb 形式的字符串拆分成 r/g/b 三个 0-255 的整数分量
|
|
12
|
+
*/
|
|
13
|
+
export declare function hexToRgb(hex: unknown): {
|
|
14
|
+
r: number;
|
|
15
|
+
g: number;
|
|
16
|
+
b: number;
|
|
17
|
+
} | null;
|
|
18
|
+
/**
|
|
19
|
+
* WCAG 2.x sRGB 相对亮度
|
|
20
|
+
* https://www.w3.org/TR/WCAG21/#dfn-relative-luminance
|
|
21
|
+
*/
|
|
22
|
+
export declare function relativeLuminance(rgb: {
|
|
23
|
+
r: number;
|
|
24
|
+
g: number;
|
|
25
|
+
b: number;
|
|
26
|
+
}): number;
|
|
27
|
+
/**
|
|
28
|
+
* WCAG 2.x 对比度 = (较亮 + 0.05) / (较暗 + 0.05)
|
|
29
|
+
*/
|
|
30
|
+
export declare function contrastRatio(a: {
|
|
31
|
+
r: number;
|
|
32
|
+
g: number;
|
|
33
|
+
b: number;
|
|
34
|
+
}, b: {
|
|
35
|
+
r: number;
|
|
36
|
+
g: number;
|
|
37
|
+
b: number;
|
|
38
|
+
}): number;
|
|
39
|
+
export declare const DEFAULT_SWATCHES: string[];
|
|
40
|
+
export declare const PRESET_SWATCHES: string[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a CSS custom property from the editor theme scope.
|
|
3
|
+
* Prefer passing a node inside the editor (e.g. host.stageState.wrapperEl).
|
|
4
|
+
*/
|
|
5
|
+
export declare function cssVar(name: string, el?: Element | null): string;
|
|
6
|
+
/**
|
|
7
|
+
* Resolve a color token to a computed color (rgb/rgba) that canvas/Konva can use.
|
|
8
|
+
* getPropertyValue alone may return nested `var(...)` which Konva cannot paint.
|
|
9
|
+
*/
|
|
10
|
+
export declare function cssColorVar(name: string, el?: Element | null): string;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve color-mix against a token (e.g. primary @ 16% transparent) for Konva fills.
|
|
13
|
+
*/
|
|
14
|
+
export declare function cssColorMix(name: string, percent: number, el?: Element | null, space?: string): string;
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
export declare const READABILITY_WARNING_TEXT = "\u5F53\u524D\u524D\u666F\u8272\u4E0E\u80CC\u666F\u8272\u7684\u660E\u6697\u5173\u7CFB\u6216\u5BF9\u6BD4\u5EA6\u53EF\u80FD\u5BFC\u81F4\u7801\u65E0\u6CD5\u8BC6\u522B\uFF0C\u8BF7\u4F7F\u7528\u5B9E\u9645\u8BBE\u5907\u626B\u7801\u786E\u8BA4\u3002";
|
|
3
|
+
export declare const READABILITY_CONTRAST_THRESHOLD = 4.5;
|
|
4
|
+
/**
|
|
5
|
+
* 判定给定前景色与背景色组合是否会触发可读性风险提示。
|
|
6
|
+
* - 前景亮度 >= 背景亮度 ⇒ 必然触发
|
|
7
|
+
* - 前景更暗但对比度 < 4.5 ⇒ 触发
|
|
8
|
+
* - 前景更暗且对比度 >= 4.5 ⇒ 不触发
|
|
9
|
+
*/
|
|
10
|
+
export declare function shouldWarnReadability(fg: string, bg: string): boolean;
|
|
11
|
+
export interface UseReadabilityWarningInput {
|
|
12
|
+
foreground: ComputedRef<string> | {
|
|
13
|
+
value: string;
|
|
14
|
+
};
|
|
15
|
+
background: ComputedRef<string> | {
|
|
16
|
+
value: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 在属性面板中使用的可读性风险提示组合式:返回文案(无风险时为空字符串)
|
|
21
|
+
*/
|
|
22
|
+
export declare function useReadabilityWarning(input: UseReadabilityWarningInput): ComputedRef<string>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { IGraphicElement } from '../types';
|
|
2
|
+
import { AABB } from './geometry';
|
|
3
|
+
export interface ViewportTransform {
|
|
4
|
+
contentX: number;
|
|
5
|
+
contentY: number;
|
|
6
|
+
zoom: number;
|
|
7
|
+
}
|
|
8
|
+
export interface Rect2D {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}
|
|
14
|
+
export interface OBB {
|
|
15
|
+
centerX: number;
|
|
16
|
+
centerY: number;
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
rotation: number;
|
|
20
|
+
corners: Array<{
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
export declare function normalizeDeg(deg: number): number;
|
|
26
|
+
export declare function formatRotationLabel(deg: number): string;
|
|
27
|
+
export declare function contentToViewport(x: number, y: number, vp: ViewportTransform): {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
};
|
|
31
|
+
export declare function viewportToContent(x: number, y: number, vp: ViewportTransform): {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function getElementOBB(input: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
rotation: number;
|
|
41
|
+
scaleX?: number;
|
|
42
|
+
scaleY?: number;
|
|
43
|
+
}): OBB;
|
|
44
|
+
export declare function getElementOBBFromSource(element: IGraphicElement, node: {
|
|
45
|
+
x: () => number;
|
|
46
|
+
y: () => number;
|
|
47
|
+
rotation: () => number;
|
|
48
|
+
scaleX: () => number;
|
|
49
|
+
scaleY: () => number;
|
|
50
|
+
} | null | undefined): OBB;
|
|
51
|
+
export declare function obbToViewport(obb: OBB, vp: ViewportTransform): OBB;
|
|
52
|
+
export declare function getSelectionUnionRect(items: Array<{
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
rotation: number;
|
|
58
|
+
scaleX?: number;
|
|
59
|
+
scaleY?: number;
|
|
60
|
+
}>): Rect2D | null;
|
|
61
|
+
export declare function aabbToRect(aabb: AABB): Rect2D;
|
|
62
|
+
export declare function rectToViewport(rect: Rect2D, vp: ViewportTransform): Rect2D;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { OBB, Rect2D } from './transform-geometry';
|
|
2
|
+
export type AnchorId = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle-left' | 'middle-right' | 'top-center' | 'bottom-center';
|
|
3
|
+
export type HitZone = {
|
|
4
|
+
type: 'anchor';
|
|
5
|
+
anchor: AnchorId;
|
|
6
|
+
} | {
|
|
7
|
+
type: 'rotate';
|
|
8
|
+
} | {
|
|
9
|
+
type: 'move';
|
|
10
|
+
} | {
|
|
11
|
+
type: 'none';
|
|
12
|
+
};
|
|
13
|
+
export declare const TRANSFORM_OVERLAY_CONSTANTS: {
|
|
14
|
+
readonly ANCHOR_SIZE: 8;
|
|
15
|
+
readonly ANCHOR_HIT_SIZE: 14;
|
|
16
|
+
readonly EDGE_HIT_WIDTH: 8;
|
|
17
|
+
readonly ROTATE_HANDLE_RADIUS: 5;
|
|
18
|
+
readonly ROTATE_HANDLE_HIT_RADIUS: 16;
|
|
19
|
+
readonly ROTATE_HANDLE_OFFSET: 22;
|
|
20
|
+
readonly BORDER_STROKE_WIDTH: 1.5;
|
|
21
|
+
readonly MIN_SIZE_PX: 1;
|
|
22
|
+
readonly ANGLE_LABEL_OFFSET_X: 12;
|
|
23
|
+
readonly ANGLE_LABEL_OFFSET_Y: 12;
|
|
24
|
+
};
|
|
25
|
+
export interface AnchorLayout {
|
|
26
|
+
id: AnchorId;
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
}
|
|
30
|
+
export interface RotateHandleLayout {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
}
|
|
34
|
+
export declare function resolveEnabledAnchors(element: {
|
|
35
|
+
resizable: boolean;
|
|
36
|
+
resizeAnchors?: string[] | null;
|
|
37
|
+
}): string[] | null;
|
|
38
|
+
export declare function resolveShowRotate(element: {
|
|
39
|
+
resizable: boolean;
|
|
40
|
+
locked?: boolean;
|
|
41
|
+
}): boolean;
|
|
42
|
+
export declare function layoutAnchors(obbViewport: OBB, enabledAnchors: string[] | null): AnchorLayout[];
|
|
43
|
+
export declare function layoutRotateHandle(obbViewport: OBB): RotateHandleLayout;
|
|
44
|
+
export declare function hitTestTransformOverlay(pointer: {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
}, input: {
|
|
48
|
+
mode: 'single' | 'multi';
|
|
49
|
+
bounds: OBB | Rect2D;
|
|
50
|
+
enabledAnchors: string[] | null;
|
|
51
|
+
showRotate: boolean;
|
|
52
|
+
canMove: boolean;
|
|
53
|
+
}): HitZone;
|
|
54
|
+
/**
|
|
55
|
+
* 从 event.target 向上遍历 Konva 节点:
|
|
56
|
+
* - name/id 包含 'transform-overlay' → true
|
|
57
|
+
* - 兼容:className === 'Transformer' → true(防御残留)
|
|
58
|
+
*/
|
|
59
|
+
export declare function isClickOnTransformOverlay(event: {
|
|
60
|
+
target?: any;
|
|
61
|
+
}): boolean;
|
|
62
|
+
export declare function cursorForHitZone(zone: HitZone, rotationDeg: number): string;
|
package/dist/vkedit.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--vkedit-color-white: #ffffff;--vkedit-color-bg: #ffffff;--vkedit-color-bg-hover: var(--vkedit-color-neutral-100);--vkedit-color-bg-active: var(--vkedit-color-neutral-200);--vkedit-color-neutral-100: oklch(97% 0 0);--vkedit-color-neutral-200: oklch(92.2% 0 0);--vkedit-color-neutral-400: oklch(70.8% 0 0);--vkedit-color-neutral-500: oklch(55.6% 0 0);--vkedit-color-neutral-700: oklch(37.1% 0 0);--vkedit-color-neutral-800: oklch(26.9% 0 0);--vkedit-color-red-500: oklch(63.7% .237 25.331);--vkedit-color-red-600: oklch(57.7% .245 27.325);--vkedit-color-gray-200: oklch(92.8% .006 264.531);--vkedit-color-gray-600: oklch(44.6% .03 256.802);--vkedit-spacing-xs: .125rem;--vkedit-spacing-sm: .25rem;--vkedit-spacing-md: .5rem;--vkedit-spacing-lg: .75rem;--vkedit-spacing-xl: 2rem;--vkedit-font-sans: ui-sans-serif, system-ui, sans-serif;--vkedit-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--vkedit-font-size-xs: .75rem;--vkedit-font-size-sm: .8125rem;--vkedit-font-size-base: .875rem;--vkedit-font-size-lg: .9375rem;--vkedit-font-size-xl: 1.0625rem;--vkedit-font-weight-medium: 500;--vkedit-font-weight-bold: 700;--vkedit-radius-sm: .25rem;--vkedit-radius-md: .375rem;--vkedit-radius-lg: .5rem;--vkedit-radius-xl: .75rem;--vkedit-radius-full: 9999px;--vkedit-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--vkedit-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--vkedit-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--vkedit-color-border: var(--vkedit-color-neutral-200);--vkedit-color-bg-dark: #1e1e1e;--vkedit-color-bg-dark-hover: #2a2a2a;--vkedit-color-bg-dark-active: #3a3a3a;--vkedit-color-panel-bg: rgba(30, 30, 30, .92);--vkedit-color-toolbar-bg: rgba(30, 30, 30, .65);--vkedit-color-border-dark: rgba(255, 255, 255, .08);--vkedit-color-border-dark-hover: rgba(255, 255, 255, .15);--vkedit-color-text-dark: #e0e0e0;--vkedit-color-text-dark-secondary: #c4c4c4;--vkedit-color-canvas-area: #1a1a2e;--vkedit-blur-panel: blur(12px);--vkedit-shadow-panel: 0 4px 16px rgba(0, 0, 0, .3);--vkedit-toolbar-gap: 2px;--vkedit-toolbar-divider-color: rgba(255, 255, 255, .12);--vkedit-toolbar-top: 33px;--vkedit-transition-colors: color, background-color, border-color, .15s ease}.vkedit-editor :where(*,*:before,*:after){box-sizing:border-box}.vkedit-editor :where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}.vkedit-editor :where(button,input,select,textarea){font:inherit;color:inherit}.vkedit-editor :where(ol,ul,menu){list-style:none}.vkedit-editor :where(img,svg,video,canvas){display:block;vertical-align:middle}@keyframes vkedit-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes vkedit-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes vkedit-fade-in{0%{opacity:0}to{opacity:1}}@keyframes vkedit-fade-out{0%{opacity:1}to{opacity:0}}@keyframes vkedit-toolbar-enter{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes vkedit-toolbar-leave{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-6px)}}.vkedit-editor{position:relative;width:100%;height:100vh;overflow:hidden;background:var(--vkedit-color-canvas-area)}.vkedit-editor .vkedit-editor__minwidth-warning{position:absolute;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--vkedit-color-canvas-area);color:var(--vkedit-color-text-dark);font-size:var(--vkedit-font-size-lg);text-align:center;padding:var(--vkedit-spacing-lg)}.vkedit-editor .vkedit-editor__minwidth-warning p{max-width:320px;line-height:1.6}@media(max-width:1023px){.vkedit-editor .vkedit-floating-toolbox,.vkedit-editor .vkedit-floating-toolbox--collapsed{width:44px}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__title span,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title span,.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__title .vkedit-floating-toolbox__toggle,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title .vkedit-floating-toolbox__toggle{display:none}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__title,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title{border-bottom:none;padding:var(--vkedit-spacing-xs)}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__content,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__content{display:none}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__collapsed-icon,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__collapsed-icon{display:flex}.vkedit-editor .vkedit-floating-property-panel,.vkedit-editor .vkedit-floating-property-panel--collapsed{width:44px}.vkedit-editor .vkedit-floating-toolbar{padding:0 4px;font-size:var(--vkedit-font-size-xs);gap:0}.vkedit-editor .vkedit-floating-toolbar .vkedit-btn--ghost{height:28px;padding:0 4px}.vkedit-editor .vkedit-floating-toolbar .vkedit-toolbar__label{display:none}}body:has(.vkedit-editor) .vkedit-btn--ghost{color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-btn--ghost:hover{background:var(--vkedit-color-bg-dark-hover)}body:has(.vkedit-editor) .vkedit-btn--outline{color:var(--vkedit-color-text-dark);border-color:var(--vkedit-color-border-dark);background:transparent}body:has(.vkedit-editor) .vkedit-btn--outline:hover{background:var(--vkedit-color-bg-dark-hover)}body:has(.vkedit-editor) .vkedit-btn--default{background:var(--vkedit-color-bg-dark-hover);color:var(--vkedit-color-white)}body:has(.vkedit-editor) .vkedit-btn--default:hover{background:var(--vkedit-color-bg-dark-active)}body:has(.vkedit-editor) .vkedit-btn--secondary{background:var(--vkedit-color-bg-dark-hover);color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-btn--secondary:hover{background:var(--vkedit-color-bg-dark-active)}body:has(.vkedit-editor) .vkedit-input{background:#0003;border-color:var(--vkedit-color-border-dark);color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-input::placeholder{color:var(--vkedit-color-text-dark-secondary)}body:has(.vkedit-editor) .vkedit-input:focus-visible{box-shadow:0 0 0 1px var(--vkedit-color-border-dark-hover)}body:has(.vkedit-editor) .vkedit-input-mm__btn{background:var(--vkedit-color-bg-dark-hover);border-color:var(--vkedit-color-border-dark);color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-input-mm__btn:hover{background:var(--vkedit-color-bg-dark-active)}body:has(.vkedit-editor) .vkedit-input-mm__display,body:has(.vkedit-editor) .vkedit-input-mm__input{background:#0003;border-color:var(--vkedit-color-border-dark);color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-label{color:var(--vkedit-color-text-dark-secondary)}body:has(.vkedit-editor) .vkedit-select{background:#0003;border-color:var(--vkedit-color-border-dark);color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-select:focus-visible{box-shadow:0 0 0 1px var(--vkedit-color-border-dark-hover)}body:has(.vkedit-editor) .vkedit-switch{background:var(--vkedit-color-bg-dark-hover)}body:has(.vkedit-editor) .vkedit-switch:has(body:has(.vkedit-editor) .vkedit-switch__input:checked){background:#536f9d}body:has(.vkedit-editor) .vkedit-toggle{color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-toggle:hover{background:var(--vkedit-color-bg-dark-hover)}body:has(.vkedit-editor) .vkedit-toggle--on{background:var(--vkedit-color-bg-dark-active);color:var(--vkedit-color-white)}.vkedit-floating-toolbar{position:absolute;top:var(--vkedit-toolbar-top);left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:0;height:40px;padding:0 8px;background:var(--vkedit-color-toolbar-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:1px solid var(--vkedit-color-border-dark-hover);border-radius:var(--vkedit-radius-xl);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text-dark);font-size:var(--vkedit-font-size-sm);transition:opacity .2s ease,transform .2s ease}.vkedit-toolbar__group{display:flex;align-items:center;gap:var(--vkedit-toolbar-gap)}.vkedit-toolbar__divider{width:1px;height:20px;margin:0 6px;background:var(--vkedit-toolbar-divider-color);flex-shrink:0}.vkedit-floating-toolbox{position:absolute;top:52px;left:37px;width:180px;z-index:90;background:var(--vkedit-color-panel-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:1px solid var(--vkedit-color-border-dark);border-radius:8px;box-shadow:var(--vkedit-shadow-panel);max-height:calc(100vh - 64px);font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text-dark);transition:width .2s ease;display:flex;flex-direction:column}.vkedit-floating-toolbox__toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--vkedit-color-text-dark-secondary);flex-shrink:0}.vkedit-floating-toolbox__toggle:hover{background:var(--vkedit-color-bg-dark-hover);color:var(--vkedit-color-text-dark)}.vkedit-floating-toolbox__collapsed-icon{display:none;align-items:center;justify-content:center;height:44px;color:var(--vkedit-color-text-dark-secondary);cursor:pointer}.vkedit-floating-toolbox--collapsed{width:44px;overflow:hidden;align-items:center;justify-content:center}.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title{padding:var(--vkedit-spacing-xs);border-bottom:none}.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title span,.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title .vkedit-floating-toolbox__toggle,.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__content{display:none}.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__collapsed-icon{display:flex}.vkedit-floating-toolbox__title{display:flex;align-items:center;justify-content:space-between;padding:var(--vkedit-spacing-sm) var(--vkedit-spacing-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-bold);border-bottom:1px solid var(--vkedit-color-border-dark);flex-shrink:0}.vkedit-floating-toolbox__content{padding:var(--vkedit-spacing-sm);display:flex;flex-direction:column;gap:var(--vkedit-spacing-xs)}.vkedit-floating-toolbox__content .vkedit-btn{width:100%;justify-content:center}.vkedit-stage-view{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:hidden}.vkedit-status-bar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:90;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#000000a6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:0 16px;height:36px;color:#e0e0e0;font-size:var(--vkedit-font-size-sm);-webkit-user-select:none;user-select:none;white-space:nowrap}.vkedit-status-bar__section{display:flex;align-items:center;gap:8px}.vkedit-status-bar__zoom-controls{display:flex;align-items:center;gap:4px}.vkedit-status-bar__btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:#e0e0e0}.vkedit-status-bar__btn:hover{background:#ffffff1a}.vkedit-status-bar__zoom-value{font-size:var(--vkedit-font-size-sm);font-weight:500;min-width:44px;text-align:center;color:#e0e0e0}.vkedit-status-bar__coords{font-size:var(--vkedit-font-size-sm);font-variant-numeric:tabular-nums;color:#e0e0e0;letter-spacing:.02em}.vkedit-status-bar__cursor-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px}.vkedit-context-menu{position:absolute;z-index:200;min-width:160px;border-radius:8px;border:1px solid var(--vkedit-color-border-dark);background:var(--vkedit-color-bg-dark);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);padding:4px;box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text-dark);font-size:var(--vkedit-font-size-sm);display:flex;flex-direction:column;gap:2px}.vkedit-context-menu__item{display:block;width:100%;padding:4px 8px;border:none;border-radius:4px;background:transparent;font-size:var(--vkedit-font-size-sm);cursor:pointer;text-align:left;color:var(--vkedit-color-text-dark)}.vkedit-context-menu__item:hover{background:var(--vkedit-color-bg-dark-hover)}.vkedit-context-menu>button{width:100%;justify-content:flex-start}.vkedit-help-guide{position:absolute;bottom:16px;right:16px;z-index:95}.vkedit-help-guide__btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#000000a6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;color:#e0e0e0}.vkedit-help-guide__btn:hover{background:#ffffff26}.vkedit-help-guide__overlay{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;background:#0000004d}.vkedit-help-guide__popup{width:380px;max-height:80vh;overflow-y:auto;border:1px solid var(--vkedit-color-border-dark, rgba(255, 255, 255, .08));border-radius:12px;background:var(--vkedit-color-bg-dark, #1e1e1e);backdrop-filter:var(--vkedit-blur-panel, blur(12px));-webkit-backdrop-filter:var(--vkedit-blur-panel, blur(12px));box-shadow:var(--vkedit-shadow-panel, 0 4px 16px rgba(0, 0, 0, .3));color:var(--vkedit-color-text-dark, #e0e0e0);font-size:var(--vkedit-font-size-base);-webkit-user-select:none;user-select:none}.vkedit-help-guide__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.vkedit-help-guide__title{font-size:var(--vkedit-font-size-xl);font-weight:600}.vkedit-help-guide__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;cursor:pointer;color:#999}.vkedit-help-guide__close:hover{background:#ffffff1a;color:#e0e0e0}.vkedit-help-guide__list{padding:12px 20px 16px}.vkedit-help-guide__group{margin-bottom:14px}.vkedit-help-guide__group:last-child{margin-bottom:0}.vkedit-help-guide__group-title{font-size:var(--vkedit-font-size-xs);font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.vkedit-help-guide__item{display:flex;align-items:center;gap:6px;padding:5px 0;line-height:1.5}.vkedit-help-guide__sep{color:#666;font-size:var(--vkedit-font-size-xs)}.vkedit-help-guide__desc{margin-left:auto;color:#999;font-size:var(--vkedit-font-size-sm);white-space:nowrap}.vkedit-help-guide__item kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff14;font-family:inherit;font-size:var(--vkedit-font-size-xs);line-height:1;color:#e0e0e0;white-space:nowrap}.vkedit-floating-property-panel,.vkedit-property-panel{position:absolute;top:52px;right:12px;width:240px;z-index:90;background:var(--vkedit-color-panel-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:1px solid var(--vkedit-color-border-dark);border-radius:8px;box-shadow:var(--vkedit-shadow-panel);max-height:calc(100vh - 64px);overflow-y:auto;font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text-dark);transition:width .2s ease;display:flex;flex-direction:column}.vkedit-floating-property-panel__toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--vkedit-color-text-dark-secondary);flex-shrink:0}.vkedit-floating-property-panel__toggle:hover{background:var(--vkedit-color-bg-dark-hover);color:var(--vkedit-color-text-dark)}.vkedit-floating-property-panel__collapsed-icon{display:none;align-items:center;justify-content:center;height:44px;color:var(--vkedit-color-text-dark-secondary);cursor:pointer}.vkedit-floating-property-panel--collapsed{width:44px;overflow:hidden;align-items:center;justify-content:center}.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__title{padding:var(--vkedit-spacing-xs);border-bottom:none}.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__title span,.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__title .vkedit-floating-property-panel__toggle,.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__content{display:none}.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__collapsed-icon{display:flex}.vkedit-floating-property-panel__title{display:flex;align-items:center;justify-content:space-between;padding:var(--vkedit-spacing-sm) var(--vkedit-spacing-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-bold);border-bottom:1px solid var(--vkedit-color-border-dark);flex-shrink:0}.vkedit-floating-property-panel__content{padding:var(--vkedit-spacing-md);overflow:hidden auto;display:grid;grid-template-columns:1fr;gap:var(--vkedit-spacing-md)}.vkedit-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--vkedit-spacing-sm);white-space:nowrap;border-radius:var(--vkedit-radius-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);transition:var(--vkedit-transition-colors);cursor:pointer;border:none;line-height:1}.vkedit-btn:focus-visible{outline:none;box-shadow:0 0 0 1px var(--vkedit-color-neutral-400)}.vkedit-btn:disabled{pointer-events:none;opacity:.5}.vkedit-btn svg{pointer-events:none;width:16px;height:16px;flex-shrink:0}.vkedit-btn--default{background:var(--vkedit-color-neutral-800);color:var(--vkedit-color-white)}.vkedit-btn--default:hover{background:var(--vkedit-color-neutral-700)}.vkedit-btn--destructive{background:var(--vkedit-color-red-500);color:var(--vkedit-color-white)}.vkedit-btn--destructive:hover{background:var(--vkedit-color-red-600)}.vkedit-btn--outline{border:1px solid var(--vkedit-color-border);background:var(--vkedit-color-white)}.vkedit-btn--outline:hover,.vkedit-btn--secondary{background:var(--vkedit-color-neutral-100)}.vkedit-btn--secondary:hover{background:var(--vkedit-color-neutral-200)}.vkedit-btn--ghost:hover{background:var(--vkedit-color-neutral-100)}.vkedit-btn--link{text-decoration:underline;text-underline-offset:4px}.vkedit-btn--link:hover{text-decoration:none}.vkedit-btn--default{height:28px;padding:0 .5rem}.vkedit-btn--xs{height:24px;padding:0 .375rem;font-size:var(--vkedit-font-size-xs)}.vkedit-btn--sm{height:26px;padding:0 .375rem;font-size:var(--vkedit-font-size-xs)}.vkedit-btn--lg{height:32px;padding:0 .75rem}.vkedit-btn--icon{height:28px;width:28px;padding:0}.vkedit-btn--icon-sm{height:24px;width:24px;padding:0}.vkedit-btn--icon-lg{height:32px;width:32px;padding:0}.vkedit-toggle{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--vkedit-radius-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);border:none;background:transparent;cursor:pointer;white-space:nowrap;outline:none}.vkedit-toggle:hover{background:var(--vkedit-color-neutral-100)}.vkedit-toggle--on{background:var(--vkedit-color-neutral-100);color:var(--vkedit-color-neutral-800)}.vkedit-toggle:focus-visible{box-shadow:0 0 0 3px rgb(from var(--vkedit-color-neutral-400) r g b/.5)}.vkedit-toggle:disabled{pointer-events:none;opacity:.5}.vkedit-toggle svg{pointer-events:none;width:16px;height:16px;flex-shrink:0}.vkedit-toggle--default{height:36px;min-width:36px;padding:0 var(--vkedit-spacing-sm)}.vkedit-toggle--sm{height:32px;min-width:32px;padding:0 6px}.vkedit-toggle--lg{height:40px;min-width:40px;padding:0 10px}.vkedit-input{display:flex;height:28px;width:100%;border-radius:var(--vkedit-radius-md);border:1px solid var(--vkedit-color-border);background:transparent;padding:0 var(--vkedit-spacing-sm);font-size:var(--vkedit-font-size-sm);box-shadow:var(--vkedit-shadow-sm);transition:var(--vkedit-transition-colors)}.vkedit-input::placeholder{color:var(--vkedit-color-neutral-500)}.vkedit-input:focus-visible{outline:none;box-shadow:0 0 0 1px var(--vkedit-color-neutral-400)}.vkedit-input:disabled{cursor:not-allowed;opacity:.5}.vkedit-label{font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);line-height:1;margin-bottom:var(--vkedit-spacing-xs)}.vkedit-select{display:flex;height:28px;width:100%;border-radius:var(--vkedit-radius-md);border:1px solid var(--vkedit-color-border);background:transparent;padding:0 var(--vkedit-spacing-sm);font-size:var(--vkedit-font-size-sm);box-shadow:var(--vkedit-shadow-sm);transition:var(--vkedit-transition-colors);cursor:pointer}.vkedit-select:focus-visible{outline:none;box-shadow:0 0 0 1px var(--vkedit-color-neutral-400)}.vkedit-select:disabled{cursor:not-allowed;opacity:.5}.vkedit-switch{display:inline-flex;height:20px;width:36px;flex-shrink:0;cursor:pointer;align-items:center;border-radius:var(--vkedit-radius-full);border:2px solid transparent;background:#d4d4d4;transition:var(--vkedit-transition-colors);box-shadow:var(--vkedit-shadow-sm);position:relative}.vkedit-switch__input{position:absolute;opacity:0;width:0;height:0}.vkedit-switch__thumb{display:block;height:16px;width:16px;border-radius:var(--vkedit-radius-full);background:var(--vkedit-color-white);box-shadow:var(--vkedit-shadow-lg);transition:transform .15s ease}.vkedit-switch:has(.vkedit-switch__input:checked){background:#6a87b7}.vkedit-switch:has(.vkedit-switch__input:checked) .vkedit-switch__thumb{transform:translate(16px)}.vkedit-switch:has(.vkedit-switch__input:disabled){cursor:not-allowed;opacity:.5}.vkedit-input-mm{display:flex;align-items:center;gap:0}.vkedit-input-mm__btn{display:flex;align-items:center;justify-content:center;height:28px;width:28px;border:1px solid var(--vkedit-color-border);background:transparent;font-size:var(--vkedit-font-size-lg);cursor:pointer;-webkit-user-select:none;user-select:none}.vkedit-input-mm__btn:first-child{border-radius:var(--vkedit-radius-md) 0 0 var(--vkedit-radius-md);border-right:none}.vkedit-input-mm__btn:last-child{border-radius:0 var(--vkedit-radius-md) var(--vkedit-radius-md) 0;border-left:none}.vkedit-input-mm__btn:hover{background:var(--vkedit-color-neutral-100)}.vkedit-input-mm__field{flex:1}.vkedit-input-mm__display,.vkedit-input-mm__input{display:flex;height:28px;width:100%;border:1px solid var(--vkedit-color-border);border-left:none;border-right:none;background:transparent;padding:0 var(--vkedit-spacing-sm);font-size:var(--vkedit-font-size-sm);text-align:center;transition:var(--vkedit-transition-colors)}.vkedit-input-mm__display:focus-visible,.vkedit-input-mm__input:focus-visible{outline:none;box-shadow:0 0 0 1px var(--vkedit-color-neutral-400);position:relative;z-index:1}.vkedit-dropdown{position:relative;display:inline-block}.vkedit-dropdown__overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:150}.vkedit-dropdown__content{position:fixed;z-index:160;min-width:160px;max-height:300px;overflow-x:hidden;overflow-y:auto;border-radius:8px;border:1px solid var(--vkedit-color-border-dark);background:var(--vkedit-color-bg-dark);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);padding:4px;box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text-dark)}.vkedit-dropdown__label{padding:4px 8px;font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);color:var(--vkedit-color-text-dark-secondary)}.vkedit-dropdown__sep{height:1px;margin:4px 0;background:var(--vkedit-color-border-dark)}.vkedit-dropdown__item{display:flex;align-items:center;gap:var(--vkedit-spacing-sm);width:100%;padding:4px 8px;border:none;border-radius:4px;background:transparent;font-size:var(--vkedit-font-size-sm);cursor:pointer;text-align:left;color:var(--vkedit-color-text-dark)}.vkedit-dropdown__item:hover{background:var(--vkedit-color-bg-dark-hover)}.vkedit-dropdown__item svg{width:16px;height:16px;flex-shrink:0}.vkedit-scale-enter-active{animation:vkedit-scale-in .15s ease-out}.vkedit-scale-leave-active{animation:vkedit-scale-out .15s ease-in}body:has(.vkedit-editor) .vkedit-dropdown__content{background:var(--vkedit-color-bg-dark);border-color:var(--vkedit-color-border-dark);color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-dropdown__item{color:var(--vkedit-color-text-dark)}body:has(.vkedit-editor) .vkedit-dropdown__item:hover{background:var(--vkedit-color-bg-dark-hover)}.vkedit-btn-group{display:flex;align-items:stretch;width:fit-content}.vkedit-property__title{font-size:var(--vkedit-font-size-xl);font-weight:var(--vkedit-font-weight-bold);padding-bottom:var(--vkedit-spacing-sm);color:var(--vkedit-color-text-dark)}.vkedit-property__label{font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text-dark-secondary);display:block}.vkedit-property__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--vkedit-spacing-md);align-items:center;padding:var(--vkedit-spacing-sm) 0}.vkedit-property__col-full{grid-column:1/-1}.vkedit-chart__field{width:100%;border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);padding:0 var(--vkedit-spacing-sm)}.vkedit-chart__input{width:100%;border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);padding:0 var(--vkedit-spacing-sm);height:36px}.vkedit-chart__textarea{width:100%;border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);padding:var(--vkedit-spacing-xs) var(--vkedit-spacing-sm);font-family:var(--vkedit-font-mono);font-size:var(--vkedit-font-size-xs);height:192px;resize:vertical}.vkedit-chart__error{color:var(--vkedit-color-red-500);font-size:var(--vkedit-font-size-xs);margin-top:4px}.vkedit-chart__section{padding-top:var(--vkedit-spacing-md);font-weight:var(--vkedit-font-weight-bold)}.vkedit-input-mm__input[data-v-47959cb1]::-webkit-outer-spin-button,.vkedit-input-mm__input[data-v-47959cb1]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vkedit-input-mm__input[data-v-47959cb1]{-moz-appearance:textfield}.vkedit-input-mm__input[data-v-f78ba536]::-webkit-outer-spin-button,.vkedit-input-mm__input[data-v-f78ba536]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vkedit-input-mm__input[data-v-f78ba536]{-moz-appearance:textfield}.vkedit-icon[data-v-b4ed0b97]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.vkedit-icon[data-v-b4ed0b97] svg{width:100%;height:100%;display:block;fill:currentColor}.vkedit-toolbar-enter-active[data-v-f04619fe]{animation:vkedit-toolbar-enter .2s ease-out}.vkedit-toolbar-leave-active[data-v-f04619fe]{animation:vkedit-toolbar-leave .15s ease-in}
|
|
1
|
+
@charset "UTF-8";:root{--vkedit-palette-neutral-0: oklch(99% 0 0);--vkedit-palette-neutral-50: oklch(97% 0 0);--vkedit-palette-neutral-100: oklch(94% 0 0);--vkedit-palette-neutral-200: oklch(88% 0 0);--vkedit-palette-neutral-300: oklch(78% 0 0);--vkedit-palette-neutral-400: oklch(68% 0 0);--vkedit-palette-neutral-500: oklch(55% 0 0);--vkedit-palette-neutral-600: oklch(45% 0 0);--vkedit-palette-neutral-700: oklch(35% 0 0);--vkedit-palette-neutral-800: oklch(27% 0 0);--vkedit-palette-neutral-900: oklch(20% 0 0);--vkedit-palette-neutral-950: oklch(14% 0 0);--vkedit-palette-teal-400: oklch(78% .12 185);--vkedit-palette-teal-500: oklch(70% .14 185);--vkedit-palette-teal-600: oklch(60% .13 185);--vkedit-palette-danger-500: oklch(63% .22 25);--vkedit-palette-danger-600: oklch(55% .23 27);--vkedit-palette-warning-500: oklch(78% .15 75);--vkedit-palette-success-500: oklch(72% .15 155);--vkedit-spacing-0: 0;--vkedit-spacing-0-5: .125rem;--vkedit-spacing-1: .25rem;--vkedit-spacing-1-5: .375rem;--vkedit-spacing-2: .5rem;--vkedit-spacing-3: .75rem;--vkedit-spacing-4: 1rem;--vkedit-spacing-5: 1.25rem;--vkedit-spacing-6: 1.5rem;--vkedit-spacing-8: 2rem;--vkedit-spacing-xs: var(--vkedit-spacing-0-5);--vkedit-spacing-sm: var(--vkedit-spacing-1);--vkedit-spacing-md: var(--vkedit-spacing-2);--vkedit-spacing-lg: var(--vkedit-spacing-3);--vkedit-spacing-xl: var(--vkedit-spacing-8);--vkedit-radius-sm: .25rem;--vkedit-radius-md: .375rem;--vkedit-radius-lg: .5rem;--vkedit-radius-xl: .75rem;--vkedit-radius-full: 9999px;--vkedit-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--vkedit-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--vkedit-font-size-xs: .75rem;--vkedit-font-size-sm: .8125rem;--vkedit-font-size-base: .875rem;--vkedit-font-size-lg: .9375rem;--vkedit-font-size-xl: 1.0625rem;--vkedit-font-weight-medium: 500;--vkedit-font-weight-bold: 700;--vkedit-line-height-tight: 1.25;--vkedit-line-height-normal: 1.5;--vkedit-border-width: 1px;--vkedit-duration-fast: .12s;--vkedit-duration-normal: .16s;--vkedit-duration-slow: .22s;--vkedit-easing-default: cubic-bezier(.2, 0, 0, 1);--vkedit-easing-in: cubic-bezier(.4, 0, 1, 1);--vkedit-easing-out: cubic-bezier(0, 0, .2, 1);--vkedit-z-base: 1;--vkedit-z-sidebar: 90;--vkedit-z-toolbar: 100;--vkedit-z-dropdown-overlay: 150;--vkedit-z-dropdown: 160;--vkedit-z-context-menu: 200;--vkedit-z-modal: 999;--vkedit-z-warning: 1000;--vkedit-toolbar-gap: 2px;--vkedit-toolbar-top: 33px;--vkedit-control-height-sm: 24px;--vkedit-control-height-md: 28px;--vkedit-control-height-lg: 32px}.vkedit-editor,[data-vkedit-theme=dark]{color-scheme:dark;--vkedit-color-primary: var(--vkedit-palette-teal-500);--vkedit-color-primary-hover: var(--vkedit-palette-teal-400);--vkedit-color-on-primary: var(--vkedit-palette-neutral-950);--vkedit-color-danger: var(--vkedit-palette-danger-500);--vkedit-color-danger-hover: var(--vkedit-palette-danger-600);--vkedit-color-on-danger: var(--vkedit-palette-neutral-0);--vkedit-color-warning: var(--vkedit-palette-warning-500);--vkedit-color-success: var(--vkedit-palette-success-500);--vkedit-color-canvas-area: oklch(20% .015 265);--vkedit-color-paper: var(--vkedit-palette-neutral-0);--vkedit-color-surface: oklch(26% .012 260 / .92);--vkedit-color-surface-solid: oklch(26% .012 260);--vkedit-color-surface-1: oklch(22% .01 260 / .55);--vkedit-color-surface-2: oklch(30% .01 260);--vkedit-color-bg: var(--vkedit-color-surface-solid);--vkedit-color-bg-hover: oklch(32% .01 260);--vkedit-color-bg-active: oklch(36% .012 260);--vkedit-color-border: oklch(100% 0 0 / .09);--vkedit-color-border-subtle: oklch(100% 0 0 / .06);--vkedit-color-border-strong: oklch(100% 0 0 / .14);--vkedit-color-text: oklch(86% .005 260);--vkedit-color-text-secondary: oklch(70% .005 260);--vkedit-color-text-muted: oklch(58% .005 260);--vkedit-color-text-disabled: oklch(50% 0 0 / .55);--vkedit-color-focus-ring: var(--vkedit-color-primary);--vkedit-color-overlay: oklch(0% 0 0 / .45);--vkedit-color-toolbar-bg: oklch(26% .012 260 / .78);--vkedit-color-panel-bg: var(--vkedit-color-surface);--vkedit-toolbar-divider-color: var(--vkedit-color-border-strong);--vkedit-blur-panel: blur(12px);--vkedit-elevation-1: 0 1px 2px oklch(0% 0 0 / .18);--vkedit-elevation-2: 0 4px 16px oklch(0% 0 0 / .28);--vkedit-elevation-3: 0 12px 32px oklch(0% 0 0 / .36);--vkedit-shadow-sm: var(--vkedit-elevation-1);--vkedit-shadow-md: var(--vkedit-elevation-2);--vkedit-shadow-lg: var(--vkedit-elevation-3);--vkedit-shadow-panel: var(--vkedit-elevation-2);--vkedit-transition-colors: color, background-color, border-color, box-shadow, opacity, var(--vkedit-duration-fast) var(--vkedit-easing-default)}[data-vkedit-theme=light]{color-scheme:light;--vkedit-color-primary: var(--vkedit-palette-teal-600);--vkedit-color-primary-hover: var(--vkedit-palette-teal-500);--vkedit-color-on-primary: var(--vkedit-palette-neutral-0);--vkedit-color-danger: var(--vkedit-palette-danger-500);--vkedit-color-danger-hover: var(--vkedit-palette-danger-600);--vkedit-color-on-danger: var(--vkedit-palette-neutral-0);--vkedit-color-warning: var(--vkedit-palette-warning-500);--vkedit-color-success: var(--vkedit-palette-success-500);--vkedit-color-canvas-area: oklch(94% .01 260);--vkedit-color-paper: var(--vkedit-palette-neutral-0);--vkedit-color-surface: oklch(100% 0 0 / .92);--vkedit-color-surface-solid: oklch(100% 0 0);--vkedit-color-surface-1: oklch(97% 0 0);--vkedit-color-surface-2: oklch(94% 0 0);--vkedit-color-bg: var(--vkedit-color-surface-solid);--vkedit-color-bg-hover: oklch(96% 0 0);--vkedit-color-bg-active: oklch(92% 0 0);--vkedit-color-border: oklch(0% 0 0 / .1);--vkedit-color-border-subtle: oklch(0% 0 0 / .06);--vkedit-color-border-strong: oklch(0% 0 0 / .16);--vkedit-color-text: oklch(22% 0 0);--vkedit-color-text-secondary: oklch(40% 0 0);--vkedit-color-text-muted: oklch(50% 0 0);--vkedit-color-text-disabled: oklch(55% 0 0 / .7);--vkedit-color-focus-ring: var(--vkedit-color-primary);--vkedit-color-overlay: oklch(0% 0 0 / .35);--vkedit-color-toolbar-bg: oklch(100% 0 0 / .78);--vkedit-color-panel-bg: var(--vkedit-color-surface);--vkedit-toolbar-divider-color: var(--vkedit-color-border);--vkedit-blur-panel: blur(12px);--vkedit-elevation-1: 0 1px 2px oklch(0% 0 0 / .06);--vkedit-elevation-2: 0 4px 16px oklch(0% 0 0 / .1);--vkedit-elevation-3: 0 12px 32px oklch(0% 0 0 / .14);--vkedit-shadow-sm: var(--vkedit-elevation-1);--vkedit-shadow-md: var(--vkedit-elevation-2);--vkedit-shadow-lg: var(--vkedit-elevation-3);--vkedit-shadow-panel: var(--vkedit-elevation-2);--vkedit-transition-colors: color, background-color, border-color, box-shadow, opacity, var(--vkedit-duration-fast) var(--vkedit-easing-default)}.vkedit-editor :where(*,*:before,*:after){box-sizing:border-box}.vkedit-editor :where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}.vkedit-editor :where(button,input,select,textarea){font:inherit;color:inherit}.vkedit-editor :where(ol,ul,menu){list-style:none}.vkedit-editor :where(img,svg,video,canvas){display:block;vertical-align:middle}@keyframes vkedit-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes vkedit-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes vkedit-fade-in{0%{opacity:0}to{opacity:1}}@keyframes vkedit-fade-out{0%{opacity:1}to{opacity:0}}@keyframes vkedit-toolbar-enter{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes vkedit-toolbar-leave{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-6px)}}.vkedit-scale-enter-active{animation:vkedit-scale-in var(--vkedit-duration-fast) var(--vkedit-easing-out)}.vkedit-scale-leave-active{animation:vkedit-scale-out var(--vkedit-duration-fast) var(--vkedit-easing-in)}.vkedit-toolbar-enter-active{animation:vkedit-toolbar-enter var(--vkedit-duration-normal) var(--vkedit-easing-out)}.vkedit-toolbar-leave-active{animation:vkedit-toolbar-leave var(--vkedit-duration-normal) var(--vkedit-easing-in)}@media(prefers-reduced-motion:reduce){.vkedit-scale-enter-active,.vkedit-scale-leave-active,.vkedit-toolbar-enter-active,.vkedit-toolbar-leave-active{animation-duration:.01ms!important;animation-iteration-count:1!important}.vkedit-editor *,[data-vkedit-theme] *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.vkedit-editor{position:relative;width:100%;height:100vh;overflow:hidden;background:var(--vkedit-color-canvas-area);font-family:var(--vkedit-font-sans);color:var(--vkedit-color-text)}.vkedit-editor *{scrollbar-width:thin;scrollbar-color:var(--vkedit-color-border-strong) transparent}.vkedit-editor *::-webkit-scrollbar{width:8px;height:8px}.vkedit-editor *::-webkit-scrollbar-thumb{background:var(--vkedit-color-border-strong);border-radius:var(--vkedit-radius-full)}.vkedit-editor *::-webkit-scrollbar-thumb:hover{background:var(--vkedit-color-text-muted)}.vkedit-editor .vkedit-editor__minwidth-warning{position:absolute;inset:0;z-index:var(--vkedit-z-warning);display:flex;align-items:center;justify-content:center;background:var(--vkedit-color-canvas-area);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-lg);text-align:center;padding:var(--vkedit-spacing-lg)}.vkedit-editor .vkedit-editor__minwidth-warning p{max-width:320px;line-height:1.6}@media(max-width:1023px){.vkedit-editor .vkedit-floating-toolbox,.vkedit-editor .vkedit-floating-toolbox--collapsed{width:44px}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__title span,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title span,.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__title .vkedit-floating-toolbox__toggle,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title .vkedit-floating-toolbox__toggle{display:none}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__title,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title{border-bottom:none;padding:var(--vkedit-spacing-xs)}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__content,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__content{display:none}.vkedit-editor .vkedit-floating-toolbox .vkedit-floating-toolbox__collapsed-icon,.vkedit-editor .vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__collapsed-icon{display:flex}.vkedit-editor .vkedit-floating-property-panel,.vkedit-editor .vkedit-floating-property-panel--collapsed{width:44px}.vkedit-editor .vkedit-floating-toolbar{padding:0 var(--vkedit-spacing-xs);font-size:var(--vkedit-font-size-xs);gap:0}.vkedit-editor .vkedit-floating-toolbar .vkedit-btn--ghost{height:28px;padding:0 var(--vkedit-spacing-xs)}.vkedit-editor .vkedit-floating-toolbar .vkedit-toolbar__label{display:none}}.vkedit-floating-toolbar{position:absolute;top:var(--vkedit-toolbar-top);left:50%;transform:translate(-50%);z-index:var(--vkedit-z-toolbar);display:flex;align-items:center;height:40px;padding:0 var(--vkedit-spacing-2);background:var(--vkedit-color-toolbar-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:var(--vkedit-border-width) solid var(--vkedit-color-border-strong);border-radius:var(--vkedit-radius-xl);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-sm);transition:opacity var(--vkedit-duration-normal) var(--vkedit-easing-default)}.vkedit-toolbar__group{display:flex;align-items:center;gap:var(--vkedit-toolbar-gap)}.vkedit-toolbar__divider{width:1px;height:20px;margin:0 var(--vkedit-spacing-1-5);background:var(--vkedit-toolbar-divider-color);flex-shrink:0}.vkedit-floating-toolbar .vkedit-btn.is-active,.vkedit-floating-toolbar .vkedit-btn[aria-pressed=true]{color:var(--vkedit-color-primary);background:var(--vkedit-color-bg-active)}.vkedit-floating-toolbox{position:absolute;top:100px;left:36px;width:var(--vkedit-sidebar-width, 200px);z-index:var(--vkedit-z-sidebar);background:var(--vkedit-color-panel-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-lg);box-shadow:var(--vkedit-shadow-panel);max-height:calc(100vh - 64px);font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text);transition:width var(--vkedit-duration-normal) var(--vkedit-easing-default);display:flex;flex-direction:column;overflow:hidden}.vkedit-floating-toolbox__title{display:flex;align-items:center;justify-content:space-between;padding:var(--vkedit-spacing-sm) var(--vkedit-spacing-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-bold);border-bottom:1px solid var(--vkedit-color-border-subtle);flex-shrink:0}.vkedit-floating-toolbox__toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--vkedit-radius-sm);cursor:pointer;color:var(--vkedit-color-text-secondary);flex-shrink:0}.vkedit-floating-toolbox__toggle:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-floating-toolbox__collapsed-icon{display:flex;align-items:center;justify-content:center;height:100%;min-height:44px;color:var(--vkedit-color-text-secondary);cursor:pointer}.vkedit-floating-toolbox__collapsed-icon:hover{color:var(--vkedit-color-text);background:var(--vkedit-color-bg-hover)}.vkedit-floating-toolbox--collapsed{width:44px;overflow:hidden}.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__title,.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__content,.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__resize-handle{display:none}.vkedit-floating-toolbox--collapsed .vkedit-floating-toolbox__collapsed-icon{display:flex}.vkedit-floating-toolbox__content{padding:var(--vkedit-spacing-sm);display:flex;flex-direction:column;gap:var(--vkedit-spacing-xs);overflow-y:auto;flex:1;min-height:0}.vkedit-floating-toolbox__content .vkedit-btn{width:100%;justify-content:center}.vkedit-floating-toolbox__layers{margin-top:var(--vkedit-spacing-xs);padding-top:var(--vkedit-spacing-xs);border-top:1px solid var(--vkedit-color-border)}.vkedit-floating-toolbox__resize-handle{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;background:transparent;transition:background var(--vkedit-duration-fast) var(--vkedit-easing-default)}.vkedit-floating-toolbox__resize-handle:hover,.vkedit-floating-toolbox__resize-handle--active{background:var(--vkedit-color-border)}.vkedit-floating-toolbox.vkedit-floating-toolbox .vkedit-floating-toolbox__content .vkedit-tool-link{background:transparent;color:var(--vkedit-color-text-secondary)}.vkedit-floating-toolbox.vkedit-floating-toolbox .vkedit-floating-toolbox__content .vkedit-tool-link:hover{background:transparent;color:var(--vkedit-color-text)}.vkedit-floating-toolbox .vkedit-graphic-tool__header{display:flex;align-items:center;gap:var(--vkedit-spacing-sm);padding:var(--vkedit-spacing-xs) 0;color:var(--vkedit-color-text-secondary)}.vkedit-floating-toolbox .vkedit-graphic-tool__title{font-size:var(--vkedit-font-size-xs);font-weight:var(--vkedit-font-weight-bold);white-space:nowrap}.vkedit-floating-toolbox .vkedit-graphic-tool__divider{flex:1;height:1px;background:var(--vkedit-color-border)}.vkedit-floating-toolbox .vkedit-graphic-tool__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--vkedit-spacing-md);padding:var(--vkedit-spacing-sm) 0 var(--vkedit-spacing-md)}.vkedit-graphic-tool__grid .vkedit-btn.vkedit-tool-link{flex-direction:column;gap:var(--vkedit-spacing-xs);height:auto;padding:var(--vkedit-spacing-md)}.vkedit-graphic-tool__grid .vkedit-btn.vkedit-tool-link svg{width:24px;height:24px}.vkedit-stage-view{position:absolute;inset:0;width:100%;height:100%;z-index:var(--vkedit-z-base);overflow:hidden;background:transparent}.vkedit-status-bar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:var(--vkedit-z-sidebar);display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--vkedit-color-toolbar-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-lg);padding:0 var(--vkedit-spacing-4);height:36px;color:var(--vkedit-color-text-secondary);font-size:var(--vkedit-font-size-sm);-webkit-user-select:none;user-select:none;white-space:nowrap}.vkedit-status-bar__section{display:flex;align-items:center;gap:8px}.vkedit-status-bar__zoom-controls{display:flex;align-items:center;gap:4px}.vkedit-status-bar__btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--vkedit-radius-sm);cursor:pointer;color:var(--vkedit-color-text-secondary)}.vkedit-status-bar__btn:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-status-bar__btn--active{background:var(--vkedit-color-bg-active);color:var(--vkedit-color-text)}.vkedit-status-bar__zoom-value{font-size:var(--vkedit-font-size-sm);font-weight:500;min-width:44px;text-align:center;color:var(--vkedit-color-text-secondary)}.vkedit-status-bar__coords{font-size:var(--vkedit-font-size-sm);font-variant-numeric:tabular-nums;color:var(--vkedit-color-text-secondary);letter-spacing:.02em}.vkedit-status-bar__cursor-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px}.vkedit-context-menu{position:absolute;z-index:var(--vkedit-z-context-menu);min-width:160px;border-radius:var(--vkedit-radius-lg);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-surface-solid);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);padding:var(--vkedit-spacing-1);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-sm);display:flex;flex-direction:column;gap:2px}.vkedit-context-menu__item{display:block;width:100%;padding:4px 8px;border:none;border-radius:var(--vkedit-radius-sm);background:transparent;font-size:var(--vkedit-font-size-sm);cursor:pointer;text-align:left;color:var(--vkedit-color-text)}.vkedit-context-menu__item:hover{background:var(--vkedit-color-bg-hover)}.vkedit-context-menu>button{width:100%;justify-content:flex-start}.vkedit-help-guide{position:absolute;bottom:16px;right:16px;z-index:95}.vkedit-help-guide__btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-lg);background:var(--vkedit-color-toolbar-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);cursor:pointer;color:var(--vkedit-color-text-secondary)}.vkedit-help-guide__btn:hover{background:var(--vkedit-color-bg-hover)}.vkedit-help-guide__overlay{position:fixed;inset:0;z-index:var(--vkedit-z-modal);display:flex;align-items:center;justify-content:center;background:var(--vkedit-color-overlay)}.vkedit-help-guide__popup{width:380px;max-height:80vh;overflow-y:auto;border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:12px;background:var(--vkedit-color-surface-solid);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-base);-webkit-user-select:none;user-select:none}.vkedit-help-guide__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:var(--vkedit-border-width) solid var(--vkedit-color-border)}.vkedit-help-guide__title{font-size:var(--vkedit-font-size-xl);font-weight:600}.vkedit-help-guide__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--vkedit-radius-sm);background:transparent;cursor:pointer;color:var(--vkedit-color-text-muted)}.vkedit-help-guide__close:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-help-guide__list{padding:12px 20px 16px}.vkedit-help-guide__group{margin-bottom:14px}.vkedit-help-guide__group:last-child{margin-bottom:0}.vkedit-help-guide__group-title{font-size:var(--vkedit-font-size-xs);font-weight:600;color:var(--vkedit-color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.vkedit-help-guide__item{display:flex;align-items:center;gap:6px;padding:5px 0;line-height:1.5}.vkedit-help-guide__sep{color:var(--vkedit-color-text-muted);font-size:var(--vkedit-font-size-xs)}.vkedit-help-guide__desc{margin-left:auto;color:var(--vkedit-color-text-muted);font-size:var(--vkedit-font-size-sm);white-space:nowrap}.vkedit-help-guide__item kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;border:var(--vkedit-border-width) solid var(--vkedit-color-border-subtle);border-radius:var(--vkedit-radius-sm);background:var(--vkedit-color-bg-hover);font-family:inherit;font-size:var(--vkedit-font-size-xs);line-height:1;color:var(--vkedit-color-text-secondary);white-space:nowrap}.vkedit-floating-property-panel,.vkedit-property-panel{position:absolute;top:100px;right:12px;width:240px;z-index:var(--vkedit-z-sidebar);background:var(--vkedit-color-panel-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-lg);box-shadow:var(--vkedit-shadow-panel);max-height:calc(100vh - 64px);overflow-y:auto;font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text);transition:width var(--vkedit-duration-slow) var(--vkedit-easing-default);display:flex;flex-direction:column}.vkedit-floating-property-panel__toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--vkedit-color-text-secondary);flex-shrink:0}.vkedit-floating-property-panel__toggle:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-floating-property-panel__collapsed-icon{display:none;align-items:center;justify-content:center;height:44px;color:var(--vkedit-color-text-secondary);cursor:pointer}.vkedit-floating-property-panel--collapsed{width:44px;overflow:hidden;align-items:center;justify-content:center}.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__title{padding:var(--vkedit-spacing-xs);border-bottom:none}.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__title span,.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__title .vkedit-floating-property-panel__toggle,.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__content{display:none}.vkedit-floating-property-panel--collapsed .vkedit-floating-property-panel__collapsed-icon{display:flex}.vkedit-floating-property-panel__title{display:flex;align-items:center;justify-content:space-between;padding:var(--vkedit-spacing-sm) var(--vkedit-spacing-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-bold);border-bottom:var(--vkedit-border-width) solid var(--vkedit-color-border-subtle);flex-shrink:0}.vkedit-floating-property-panel__content{padding:var(--vkedit-spacing-3);overflow:hidden auto;display:grid;grid-template-columns:1fr;gap:var(--vkedit-spacing-3)}.vkedit-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--vkedit-spacing-sm);white-space:nowrap;border-radius:var(--vkedit-radius-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);line-height:1;border:var(--vkedit-border-width) solid transparent;cursor:pointer;transition:var(--vkedit-transition-colors);color:var(--vkedit-color-text);background:transparent}.vkedit-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--vkedit-color-canvas-area),0 0 0 4px var(--vkedit-color-focus-ring)}.vkedit-btn:disabled{pointer-events:none;opacity:.45;color:var(--vkedit-color-text-disabled)}.vkedit-btn svg{pointer-events:none;width:16px;height:16px;flex-shrink:0;color:currentColor}.vkedit-btn--primary{background:var(--vkedit-color-primary);color:var(--vkedit-color-on-primary)}.vkedit-btn--primary:hover{background:var(--vkedit-color-primary-hover)}.vkedit-btn--primary:active{filter:brightness(.95)}.vkedit-btn--default{background:var(--vkedit-color-bg-active);color:var(--vkedit-color-text)}.vkedit-btn--default:hover{background:var(--vkedit-color-bg-hover)}.vkedit-btn--destructive{background:var(--vkedit-color-danger);color:var(--vkedit-color-on-danger)}.vkedit-btn--destructive:hover{background:var(--vkedit-color-danger-hover)}.vkedit-btn--outline{border-color:var(--vkedit-color-border-strong);background:transparent;color:var(--vkedit-color-text)}.vkedit-btn--outline:hover{background:var(--vkedit-color-bg-hover)}.vkedit-btn--secondary{background:var(--vkedit-color-surface-1);color:var(--vkedit-color-text)}.vkedit-btn--secondary:hover{background:var(--vkedit-color-bg-hover)}.vkedit-btn--ghost{background:transparent;color:var(--vkedit-color-text)}.vkedit-btn--ghost:hover{background:var(--vkedit-color-bg-hover)}.vkedit-btn--ghost:active,.vkedit-btn--ghost.is-active,.vkedit-btn--ghost[aria-pressed=true]{background:var(--vkedit-color-bg-active);color:var(--vkedit-color-primary)}.vkedit-btn--link{background:transparent;color:var(--vkedit-color-primary);text-decoration:underline;text-underline-offset:4px;border-color:transparent}.vkedit-btn--link:hover{color:var(--vkedit-color-primary-hover)}.vkedit-btn--default{height:var(--vkedit-control-height-md);padding:0 var(--vkedit-spacing-2)}.vkedit-btn--xs{height:var(--vkedit-control-height-sm);padding:0 var(--vkedit-spacing-1-5);font-size:var(--vkedit-font-size-xs)}.vkedit-btn--sm{height:26px;padding:0 var(--vkedit-spacing-1-5);font-size:var(--vkedit-font-size-xs)}.vkedit-btn--lg{height:var(--vkedit-control-height-lg);padding:0 var(--vkedit-spacing-3)}.vkedit-btn--icon{height:var(--vkedit-control-height-md);width:var(--vkedit-control-height-md);padding:0}.vkedit-btn--icon-sm{height:var(--vkedit-control-height-sm);width:var(--vkedit-control-height-sm);padding:0}.vkedit-btn--icon-lg{height:var(--vkedit-control-height-lg);width:var(--vkedit-control-height-lg);padding:0}.vkedit-toggle{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--vkedit-radius-md);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);border:none;background:transparent;cursor:pointer;white-space:nowrap;outline:none;color:var(--vkedit-color-text-secondary)}.vkedit-toggle:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-toggle--on{background:var(--vkedit-color-bg-active);color:var(--vkedit-color-primary)}.vkedit-toggle:focus-visible{box-shadow:0 0 0 2px var(--vkedit-color-focus-ring)}.vkedit-toggle:disabled{pointer-events:none;opacity:.45}.vkedit-toggle svg{pointer-events:none;width:16px;height:16px;flex-shrink:0}.vkedit-toggle--default{height:36px;min-width:36px;padding:0 var(--vkedit-spacing-sm)}.vkedit-toggle--sm{height:32px;min-width:32px;padding:0 6px}.vkedit-toggle--lg{height:40px;min-width:40px;padding:0 10px}.vkedit-input{display:flex;align-items:center;height:var(--vkedit-control-height-md);width:100%;border-radius:var(--vkedit-radius-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-surface-1);padding:0 var(--vkedit-spacing-2);font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text);box-shadow:none;transition:var(--vkedit-transition-colors)}.vkedit-input::placeholder{color:var(--vkedit-color-text-muted)}.vkedit-input:hover:not(:disabled):not(:focus-visible){border-color:var(--vkedit-color-border-strong)}.vkedit-input:focus-visible{outline:none;border-color:var(--vkedit-color-focus-ring);box-shadow:0 0 0 2px var(--vkedit-color-canvas-area),0 0 0 4px color-mix(in oklab,var(--vkedit-color-focus-ring) 45%,transparent)}.vkedit-input:disabled{cursor:not-allowed;opacity:.5;color:var(--vkedit-color-text-disabled)}.vkedit-input.is-invalid,.vkedit-input[aria-invalid=true]{border-color:var(--vkedit-color-danger)}.vkedit-textarea{display:block;width:100%;min-height:72px;resize:vertical;border-radius:var(--vkedit-radius-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-surface-1);padding:var(--vkedit-spacing-2);font-size:var(--vkedit-font-size-sm);line-height:var(--vkedit-line-height-normal);color:var(--vkedit-color-text);transition:var(--vkedit-transition-colors)}.vkedit-textarea::placeholder{color:var(--vkedit-color-text-muted)}.vkedit-textarea:focus-visible{outline:none;border-color:var(--vkedit-color-focus-ring);box-shadow:0 0 0 2px var(--vkedit-color-canvas-area),0 0 0 4px color-mix(in oklab,var(--vkedit-color-focus-ring) 45%,transparent)}.vkedit-textarea:disabled{cursor:not-allowed;opacity:.5}.vkedit-label{font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);color:var(--vkedit-color-text-secondary);line-height:var(--vkedit-line-height-tight);margin-bottom:var(--vkedit-spacing-xs)}.vkedit-select{display:flex;align-items:center;height:var(--vkedit-control-height-md);width:100%;border-radius:var(--vkedit-radius-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-surface-1);padding:0 var(--vkedit-spacing-2);font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text);color-scheme:inherit;transition:var(--vkedit-transition-colors);cursor:pointer}.vkedit-select option{background:var(--vkedit-color-surface-solid);color:var(--vkedit-color-text)}.vkedit-select:hover:not(:disabled){border-color:var(--vkedit-color-border-strong)}.vkedit-select:focus-visible{outline:none;border-color:var(--vkedit-color-focus-ring);box-shadow:0 0 0 2px var(--vkedit-color-focus-ring)}.vkedit-select:disabled{opacity:.5;cursor:not-allowed}.vkedit-switch{display:inline-flex;height:20px;width:36px;flex-shrink:0;cursor:pointer;align-items:center;border-radius:var(--vkedit-radius-full);border:2px solid transparent;background:var(--vkedit-color-bg-active);transition:var(--vkedit-transition-colors);box-shadow:var(--vkedit-shadow-sm);position:relative}.vkedit-switch__input{position:absolute;opacity:0;width:0;height:0}.vkedit-switch__thumb{display:block;height:16px;width:16px;border-radius:var(--vkedit-radius-full);background:var(--vkedit-color-text);box-shadow:var(--vkedit-shadow-sm);transition:transform var(--vkedit-duration-fast) var(--vkedit-easing-default)}.vkedit-switch:has(.vkedit-switch__input:checked){background:var(--vkedit-color-primary)}.vkedit-switch:has(.vkedit-switch__input:checked) .vkedit-switch__thumb{transform:translate(16px);background:var(--vkedit-color-on-primary)}.vkedit-switch:has(.vkedit-switch__input:focus-visible){box-shadow:0 0 0 2px var(--vkedit-color-focus-ring)}.vkedit-switch:has(.vkedit-switch__input:disabled){cursor:not-allowed;opacity:.45}.vkedit-input-mm{display:flex;align-items:stretch;width:100%}.vkedit-input-mm__btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vkedit-control-height-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--vkedit-transition-colors)}.vkedit-input-mm__btn:first-child{border-radius:var(--vkedit-radius-md) 0 0 var(--vkedit-radius-md);border-right:none}.vkedit-input-mm__btn:last-child{border-radius:0 var(--vkedit-radius-md) var(--vkedit-radius-md) 0;border-left:none}.vkedit-input-mm__btn:hover:not(:disabled){background:var(--vkedit-color-bg-active)}.vkedit-input-mm__btn:disabled{opacity:.45;cursor:not-allowed}.vkedit-input-mm__field{flex:1}.vkedit-input-mm__display,.vkedit-input-mm__input{flex:1;min-width:0;height:var(--vkedit-control-height-md);width:100%;border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-left:none;border-right:none;background:var(--vkedit-color-surface-1);color:var(--vkedit-color-text);padding:0 var(--vkedit-spacing-sm);font-size:var(--vkedit-font-size-sm);text-align:center;transition:var(--vkedit-transition-colors)}.vkedit-input-mm__display:focus-visible,.vkedit-input-mm__input:focus-visible{outline:none;border-color:var(--vkedit-color-focus-ring);box-shadow:0 0 0 2px var(--vkedit-color-canvas-area),0 0 0 4px color-mix(in oklab,var(--vkedit-color-focus-ring) 45%,transparent);position:relative;z-index:1}.vkedit-dropdown{position:relative;display:inline-block}.vkedit-dropdown__overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--vkedit-z-dropdown-overlay)}.vkedit-dropdown__content{position:fixed;z-index:var(--vkedit-z-dropdown);min-width:160px;max-height:300px;overflow-x:hidden;overflow-y:auto;border-radius:var(--vkedit-radius-lg);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-surface-solid);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);padding:var(--vkedit-spacing-1);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text)}.vkedit-dropdown__label{padding:var(--vkedit-spacing-1) var(--vkedit-spacing-2);font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);color:var(--vkedit-color-text-secondary)}.vkedit-dropdown__sep{height:1px;margin:var(--vkedit-spacing-1) 0;background:var(--vkedit-color-border)}.vkedit-dropdown__item{display:flex;align-items:center;gap:var(--vkedit-spacing-sm);width:100%;padding:var(--vkedit-spacing-1) var(--vkedit-spacing-2);border:none;border-radius:var(--vkedit-radius-sm);background:transparent;font-size:var(--vkedit-font-size-sm);cursor:pointer;text-align:left;color:var(--vkedit-color-text)}.vkedit-dropdown__item:hover{background:var(--vkedit-color-bg-hover)}.vkedit-dropdown__item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--vkedit-color-focus-ring)}.vkedit-dropdown__item:disabled,.vkedit-dropdown__item[disabled]{opacity:.45;pointer-events:none}.vkedit-dropdown__item.is-active,.vkedit-dropdown__item[aria-selected=true]{color:var(--vkedit-color-primary);background:color-mix(in oklab,var(--vkedit-color-primary) 16%,transparent)}.vkedit-dropdown__item svg{width:16px;height:16px;flex-shrink:0}.vkedit-btn-group{display:flex;align-items:stretch;gap:var(--vkedit-toolbar-gap);width:fit-content}.vkedit-btn-group>.vkedit-btn{border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md)}.vkedit-color-picker{display:flex;flex-direction:column;gap:var(--vkedit-spacing-xs)}.vkedit-color-picker.is-disabled{opacity:.6;pointer-events:none}.vkedit-color-picker__label{font-size:var(--vkedit-font-size-sm);font-weight:var(--vkedit-font-weight-medium);line-height:var(--vkedit-line-height-tight);color:var(--vkedit-color-text-secondary)}.vkedit-color-picker__field{display:flex;align-items:stretch;gap:var(--vkedit-spacing-sm);min-width:0}.vkedit-color-picker__swatch{position:relative;width:28px;height:28px;flex-shrink:0;border-radius:var(--vkedit-radius-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background-image:linear-gradient(45deg,#c8c8c8 25%,transparent 25%),linear-gradient(-45deg,#c8c8c8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#c8c8c8 75%),linear-gradient(-45deg,transparent 75%,#c8c8c8 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;cursor:pointer;overflow:hidden;box-shadow:var(--vkedit-shadow-sm)}.vkedit-color-picker__swatch-inner{position:absolute;inset:0}.vkedit-color-picker__swatch.is-transparent{cursor:pointer}.vkedit-color-picker__hex{flex:1;min-width:0;font-family:var(--vkedit-font-mono);text-transform:lowercase}.vkedit-color-picker__none-btn{height:28px;padding:0 var(--vkedit-spacing-sm);border-radius:var(--vkedit-radius-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:transparent;font-size:var(--vkedit-font-size-xs);font-weight:var(--vkedit-font-weight-medium);color:var(--vkedit-color-text-secondary);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:var(--vkedit-transition-colors)}.vkedit-color-picker__none-btn:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-color-picker__none-btn.is-active{background:var(--vkedit-color-bg-active);color:var(--vkedit-color-text);border-color:var(--vkedit-color-border-strong)}.vkedit-color-picker__none-btn:disabled{cursor:not-allowed;opacity:.5}.vkedit-color-picker__message{font-size:var(--vkedit-font-size-xs);line-height:1.4;padding:2px 6px;border-radius:var(--vkedit-radius-sm)}.vkedit-color-picker__message.is-error{color:var(--vkedit-color-danger);background:color-mix(in oklab,var(--vkedit-color-danger) 12%,transparent)}.vkedit-color-picker__message.is-warning{color:var(--vkedit-color-warning);background:color-mix(in oklab,var(--vkedit-color-warning) 12%,transparent)}.vkedit-color-picker__overlay{position:fixed;inset:0;z-index:var(--vkedit-z-dropdown-overlay)}.vkedit-color-picker__panel{position:fixed;z-index:var(--vkedit-z-dropdown);min-width:220px;padding:var(--vkedit-spacing-3);border-radius:var(--vkedit-radius-lg);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-surface-solid);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text);display:flex;flex-direction:column;gap:var(--vkedit-spacing-sm)}.vkedit-color-picker__panel-title{font-size:var(--vkedit-font-size-xs);font-weight:var(--vkedit-font-weight-medium);color:var(--vkedit-color-text-secondary)}.vkedit-color-picker__panel-native{display:flex;align-items:center;gap:var(--vkedit-spacing-sm)}.vkedit-color-picker__panel-native input[type=color]{width:100%;height:32px;border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);background:transparent;cursor:pointer;padding:2px}.vkedit-color-picker__panel-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.vkedit-color-picker__panel-swatch{width:100%;aspect-ratio:1;border-radius:var(--vkedit-radius-sm);border:var(--vkedit-border-width) solid var(--vkedit-color-border);cursor:pointer;padding:0;transition:transform .1s ease}.vkedit-color-picker__panel-swatch:hover{transform:scale(1.06)}.vkedit-color-picker__panel-actions{display:flex;justify-content:flex-end}.vkedit-color-picker__panel-btn{height:28px;padding:0 var(--vkedit-spacing-md);border-radius:var(--vkedit-radius-md);border:var(--vkedit-border-width) solid var(--vkedit-color-border);background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-xs);cursor:pointer}.vkedit-color-picker__panel-btn:hover{background:var(--vkedit-color-bg-active)}.vkedit-property__title{font-size:var(--vkedit-font-size-base);font-weight:var(--vkedit-font-weight-bold);color:var(--vkedit-color-text);padding-bottom:var(--vkedit-spacing-sm);border-bottom:var(--vkedit-border-width) solid var(--vkedit-color-border-subtle);margin-bottom:var(--vkedit-spacing-sm)}.vkedit-property__label{font-size:var(--vkedit-font-size-sm);color:var(--vkedit-color-text-secondary);display:block}.vkedit-property__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--vkedit-spacing-md);align-items:center;padding:var(--vkedit-spacing-sm) 0}.vkedit-property__col-full{grid-column:1/-1}.vkedit-chart__field{width:100%;border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);padding:0 var(--vkedit-spacing-sm)}.vkedit-chart__input{width:100%;border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);padding:0 var(--vkedit-spacing-sm);height:36px}.vkedit-chart__textarea{width:100%;border:1px solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-md);padding:var(--vkedit-spacing-xs) var(--vkedit-spacing-sm);font-family:var(--vkedit-font-mono);font-size:var(--vkedit-font-size-xs);height:192px;resize:vertical}.vkedit-chart__error{color:var(--vkedit-color-danger);font-size:var(--vkedit-font-size-xs);margin-top:4px}.vkedit-chart__section{padding-top:var(--vkedit-spacing-md);font-weight:var(--vkedit-font-weight-bold)}.vkedit-input-mm__input[data-v-47959cb1]::-webkit-outer-spin-button,.vkedit-input-mm__input[data-v-47959cb1]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vkedit-input-mm__input[data-v-47959cb1]{-moz-appearance:textfield}.vkedit-input-mm__input[data-v-f78ba536]::-webkit-outer-spin-button,.vkedit-input-mm__input[data-v-f78ba536]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vkedit-input-mm__input[data-v-f78ba536]{-moz-appearance:textfield}.vkedit-textarea[data-v-079f2ff9]{display:block;width:100%;min-height:56px;height:auto;resize:vertical;padding:var(--vkedit-spacing-sm);line-height:1.4;font-family:var(--vkedit-font-sans);text-transform:none}.vkedit-property__warning[data-v-02fac382]{font-size:var(--vkedit-font-size-xs);color:var(--vkedit-color-warning);background:color-mix(in oklab,var(--vkedit-color-warning) 12%,transparent);padding:4px 6px;border-radius:var(--vkedit-radius-sm);line-height:1.4}[data-v-b2a701f6]:root{--vkedit-palette-neutral-0: oklch(99% 0 0);--vkedit-palette-neutral-50: oklch(97% 0 0);--vkedit-palette-neutral-100: oklch(94% 0 0);--vkedit-palette-neutral-200: oklch(88% 0 0);--vkedit-palette-neutral-300: oklch(78% 0 0);--vkedit-palette-neutral-400: oklch(68% 0 0);--vkedit-palette-neutral-500: oklch(55% 0 0);--vkedit-palette-neutral-600: oklch(45% 0 0);--vkedit-palette-neutral-700: oklch(35% 0 0);--vkedit-palette-neutral-800: oklch(27% 0 0);--vkedit-palette-neutral-900: oklch(20% 0 0);--vkedit-palette-neutral-950: oklch(14% 0 0);--vkedit-palette-teal-400: oklch(78% .12 185);--vkedit-palette-teal-500: oklch(70% .14 185);--vkedit-palette-teal-600: oklch(60% .13 185);--vkedit-palette-danger-500: oklch(63% .22 25);--vkedit-palette-danger-600: oklch(55% .23 27);--vkedit-palette-warning-500: oklch(78% .15 75);--vkedit-palette-success-500: oklch(72% .15 155);--vkedit-spacing-0: 0;--vkedit-spacing-0-5: .125rem;--vkedit-spacing-1: .25rem;--vkedit-spacing-1-5: .375rem;--vkedit-spacing-2: .5rem;--vkedit-spacing-3: .75rem;--vkedit-spacing-4: 1rem;--vkedit-spacing-5: 1.25rem;--vkedit-spacing-6: 1.5rem;--vkedit-spacing-8: 2rem;--vkedit-spacing-xs: var(--vkedit-spacing-0-5);--vkedit-spacing-sm: var(--vkedit-spacing-1);--vkedit-spacing-md: var(--vkedit-spacing-2);--vkedit-spacing-lg: var(--vkedit-spacing-3);--vkedit-spacing-xl: var(--vkedit-spacing-8);--vkedit-radius-sm: .25rem;--vkedit-radius-md: .375rem;--vkedit-radius-lg: .5rem;--vkedit-radius-xl: .75rem;--vkedit-radius-full: 9999px;--vkedit-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--vkedit-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--vkedit-font-size-xs: .75rem;--vkedit-font-size-sm: .8125rem;--vkedit-font-size-base: .875rem;--vkedit-font-size-lg: .9375rem;--vkedit-font-size-xl: 1.0625rem;--vkedit-font-weight-medium: 500;--vkedit-font-weight-bold: 700;--vkedit-line-height-tight: 1.25;--vkedit-line-height-normal: 1.5;--vkedit-border-width: 1px;--vkedit-duration-fast: .12s;--vkedit-duration-normal: .16s;--vkedit-duration-slow: .22s;--vkedit-easing-default: cubic-bezier(.2, 0, 0, 1);--vkedit-easing-in: cubic-bezier(.4, 0, 1, 1);--vkedit-easing-out: cubic-bezier(0, 0, .2, 1);--vkedit-z-base: 1;--vkedit-z-sidebar: 90;--vkedit-z-toolbar: 100;--vkedit-z-dropdown-overlay: 150;--vkedit-z-dropdown: 160;--vkedit-z-context-menu: 200;--vkedit-z-modal: 999;--vkedit-z-warning: 1000;--vkedit-toolbar-gap: 2px;--vkedit-toolbar-top: 33px;--vkedit-control-height-sm: 24px;--vkedit-control-height-md: 28px;--vkedit-control-height-lg: 32px}.vkedit-editor[data-v-b2a701f6],[data-vkedit-theme=dark][data-v-b2a701f6]{color-scheme:dark;--vkedit-color-primary: var(--vkedit-palette-teal-500);--vkedit-color-primary-hover: var(--vkedit-palette-teal-400);--vkedit-color-on-primary: var(--vkedit-palette-neutral-950);--vkedit-color-danger: var(--vkedit-palette-danger-500);--vkedit-color-danger-hover: var(--vkedit-palette-danger-600);--vkedit-color-on-danger: var(--vkedit-palette-neutral-0);--vkedit-color-warning: var(--vkedit-palette-warning-500);--vkedit-color-success: var(--vkedit-palette-success-500);--vkedit-color-canvas-area: oklch(20% .015 265);--vkedit-color-paper: var(--vkedit-palette-neutral-0);--vkedit-color-surface: oklch(26% .012 260 / .92);--vkedit-color-surface-solid: oklch(26% .012 260);--vkedit-color-surface-1: oklch(22% .01 260 / .55);--vkedit-color-surface-2: oklch(30% .01 260);--vkedit-color-bg: var(--vkedit-color-surface-solid);--vkedit-color-bg-hover: oklch(32% .01 260);--vkedit-color-bg-active: oklch(36% .012 260);--vkedit-color-border: oklch(100% 0 0 / .09);--vkedit-color-border-subtle: oklch(100% 0 0 / .06);--vkedit-color-border-strong: oklch(100% 0 0 / .14);--vkedit-color-text: oklch(86% .005 260);--vkedit-color-text-secondary: oklch(70% .005 260);--vkedit-color-text-muted: oklch(58% .005 260);--vkedit-color-text-disabled: oklch(50% 0 0 / .55);--vkedit-color-focus-ring: var(--vkedit-color-primary);--vkedit-color-overlay: oklch(0% 0 0 / .45);--vkedit-color-toolbar-bg: oklch(26% .012 260 / .78);--vkedit-color-panel-bg: var(--vkedit-color-surface);--vkedit-toolbar-divider-color: var(--vkedit-color-border-strong);--vkedit-blur-panel: blur(12px);--vkedit-elevation-1: 0 1px 2px oklch(0% 0 0 / .18);--vkedit-elevation-2: 0 4px 16px oklch(0% 0 0 / .28);--vkedit-elevation-3: 0 12px 32px oklch(0% 0 0 / .36);--vkedit-shadow-sm: var(--vkedit-elevation-1);--vkedit-shadow-md: var(--vkedit-elevation-2);--vkedit-shadow-lg: var(--vkedit-elevation-3);--vkedit-shadow-panel: var(--vkedit-elevation-2);--vkedit-transition-colors: color, background-color, border-color, box-shadow, opacity, var(--vkedit-duration-fast) var(--vkedit-easing-default)}[data-vkedit-theme=light][data-v-b2a701f6]{color-scheme:light;--vkedit-color-primary: var(--vkedit-palette-teal-600);--vkedit-color-primary-hover: var(--vkedit-palette-teal-500);--vkedit-color-on-primary: var(--vkedit-palette-neutral-0);--vkedit-color-danger: var(--vkedit-palette-danger-500);--vkedit-color-danger-hover: var(--vkedit-palette-danger-600);--vkedit-color-on-danger: var(--vkedit-palette-neutral-0);--vkedit-color-warning: var(--vkedit-palette-warning-500);--vkedit-color-success: var(--vkedit-palette-success-500);--vkedit-color-canvas-area: oklch(94% .01 260);--vkedit-color-paper: var(--vkedit-palette-neutral-0);--vkedit-color-surface: oklch(100% 0 0 / .92);--vkedit-color-surface-solid: oklch(100% 0 0);--vkedit-color-surface-1: oklch(97% 0 0);--vkedit-color-surface-2: oklch(94% 0 0);--vkedit-color-bg: var(--vkedit-color-surface-solid);--vkedit-color-bg-hover: oklch(96% 0 0);--vkedit-color-bg-active: oklch(92% 0 0);--vkedit-color-border: oklch(0% 0 0 / .1);--vkedit-color-border-subtle: oklch(0% 0 0 / .06);--vkedit-color-border-strong: oklch(0% 0 0 / .16);--vkedit-color-text: oklch(22% 0 0);--vkedit-color-text-secondary: oklch(40% 0 0);--vkedit-color-text-muted: oklch(50% 0 0);--vkedit-color-text-disabled: oklch(55% 0 0 / .7);--vkedit-color-focus-ring: var(--vkedit-color-primary);--vkedit-color-overlay: oklch(0% 0 0 / .35);--vkedit-color-toolbar-bg: oklch(100% 0 0 / .78);--vkedit-color-panel-bg: var(--vkedit-color-surface);--vkedit-toolbar-divider-color: var(--vkedit-color-border);--vkedit-blur-panel: blur(12px);--vkedit-elevation-1: 0 1px 2px oklch(0% 0 0 / .06);--vkedit-elevation-2: 0 4px 16px oklch(0% 0 0 / .1);--vkedit-elevation-3: 0 12px 32px oklch(0% 0 0 / .14);--vkedit-shadow-sm: var(--vkedit-elevation-1);--vkedit-shadow-md: var(--vkedit-elevation-2);--vkedit-shadow-lg: var(--vkedit-elevation-3);--vkedit-shadow-panel: var(--vkedit-elevation-2);--vkedit-transition-colors: color, background-color, border-color, box-shadow, opacity, var(--vkedit-duration-fast) var(--vkedit-easing-default)}.vkedit-layer-panel[data-v-b2a701f6]{display:flex;flex-direction:column;gap:var(--vkedit-spacing-xs);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-xs);-webkit-user-select:none;user-select:none;position:relative}.vkedit-layer-panel__header[data-v-b2a701f6]{display:flex;align-items:center;gap:var(--vkedit-spacing-sm);padding:var(--vkedit-spacing-xs) 0;color:var(--vkedit-color-text-secondary)}.vkedit-layer-panel__title[data-v-b2a701f6]{font-size:var(--vkedit-font-size-xs);font-weight:var(--vkedit-font-weight-bold);white-space:nowrap}.vkedit-layer-panel__divider[data-v-b2a701f6]{flex:1;height:1px;background:var(--vkedit-color-border)}.vkedit-layer-panel__empty[data-v-b2a701f6]{padding:var(--vkedit-spacing-md) var(--vkedit-spacing-sm);color:var(--vkedit-color-text-secondary);text-align:center;font-size:var(--vkedit-font-size-xs);opacity:.6}.vkedit-layer-panel__list[data-v-b2a701f6]{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:2px 0}.vkedit-layer-row[data-v-b2a701f6]{display:flex;align-items:center;gap:var(--vkedit-spacing-sm);height:36px;padding:0 var(--vkedit-spacing-sm);border-radius:var(--vkedit-radius-sm);cursor:pointer;position:relative;transition:background .1s ease,transform .2s ease}.vkedit-layer-row[data-v-b2a701f6]:hover{background:var(--vkedit-color-bg-hover)}.vkedit-layer-row--selected[data-v-b2a701f6]{background:color-mix(in oklab,var(--vkedit-color-primary) 14%,transparent)}.vkedit-layer-row--hidden[data-v-b2a701f6]{opacity:.5}.vkedit-layer-row--locked .vkedit-layer-row__handle[data-v-b2a701f6]{color:var(--vkedit-color-text-secondary)}.vkedit-layer-row--dragging[data-v-b2a701f6]{opacity:.5;box-shadow:var(--vkedit-shadow-panel)}.vkedit-layer-row__handle[data-v-b2a701f6]{display:flex;align-items:center;cursor:grab;color:var(--vkedit-color-text-secondary)}.vkedit-layer-row__handle[data-v-b2a701f6]:hover{color:var(--vkedit-color-text)}.vkedit-layer-row__type[data-v-b2a701f6]{flex-shrink:0;color:var(--vkedit-color-text-secondary)}.vkedit-layer-row__name[data-v-b2a701f6]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--vkedit-font-size-xs)}.vkedit-layer-row__rename-input[data-v-b2a701f6]{flex:1;min-width:0;height:24px;padding:0 4px;background:var(--vkedit-color-bg-active);border:1px solid var(--vkedit-color-border-strong);border-radius:var(--vkedit-radius-sm);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-xs);outline:none}.vkedit-layer-row__actions[data-v-b2a701f6]{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .1s ease}.vkedit-layer-row:hover .vkedit-layer-row__actions[data-v-b2a701f6],.vkedit-layer-row--selected .vkedit-layer-row__actions[data-v-b2a701f6]{opacity:1}.vkedit-layer-row__btn[data-v-b2a701f6]{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--vkedit-radius-sm);cursor:pointer;color:var(--vkedit-color-text-secondary)}.vkedit-layer-row__btn[data-v-b2a701f6]:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-layer-row__btn--active[data-v-b2a701f6]{color:var(--vkedit-color-text)}.vkedit-layer-indicator[data-v-b2a701f6]{position:absolute;left:var(--vkedit-spacing-sm);right:var(--vkedit-spacing-sm);height:2px;border-radius:1px;background:var(--vkedit-color-border-strong);box-shadow:0 0 6px var(--vkedit-color-border-strong);z-index:2;pointer-events:none;animation:vkedit-layer-indicator-fade-in-b2a701f6 .12s ease-out}.vkedit-layer-indicator--top[data-v-b2a701f6]{top:0}.vkedit-layer-indicator--bottom[data-v-b2a701f6]{bottom:0}@keyframes vkedit-layer-indicator-fade-in-b2a701f6{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.vkedit-layer-menu[data-v-b2a701f6]{position:fixed;z-index:var(--vkedit-z-dropdown);min-width:140px;padding:4px;background:var(--vkedit-color-surface-solid);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:var(--vkedit-border-width) solid var(--vkedit-color-border);border-radius:var(--vkedit-radius-sm);box-shadow:var(--vkedit-shadow-panel);color:var(--vkedit-color-text);display:flex;flex-direction:column;gap:2px}.vkedit-layer-menu__item[data-v-b2a701f6]{display:flex;align-items:center;gap:var(--vkedit-spacing-sm);padding:8px var(--vkedit-spacing-sm);background:transparent;border:none;border-radius:var(--vkedit-radius-sm);cursor:pointer;color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-xs);text-align:left}.vkedit-layer-menu__item[data-v-b2a701f6]:hover{background:var(--vkedit-color-bg-hover)}.vkedit-layer-menu__divider[data-v-b2a701f6]{height:1px;margin:2px 0;background:var(--vkedit-color-border)}.vkedit-layer-ghost[data-v-b2a701f6]{position:fixed;z-index:1000;display:flex;align-items:center;gap:var(--vkedit-spacing-sm);height:32px;padding:0 var(--vkedit-spacing-sm);min-width:160px;max-width:280px;background:var(--vkedit-color-panel-bg);backdrop-filter:var(--vkedit-blur-panel);-webkit-backdrop-filter:var(--vkedit-blur-panel);border:var(--vkedit-border-width) solid var(--vkedit-color-border-strong);border-radius:var(--vkedit-radius-sm);box-shadow:var(--vkedit-shadow-lg);color:var(--vkedit-color-text);font-size:var(--vkedit-font-size-xs);pointer-events:none;-webkit-user-select:none;user-select:none;transform:translateY(-50%);transition:opacity .1s ease}.vkedit-layer-ghost__name[data-v-b2a701f6]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkedit-property__name-row[data-v-b7aca303]{display:flex;flex-direction:column;gap:4px}.vkedit-property__warning[data-v-c699cb78]{font-size:var(--vkedit-font-size-xs);color:var(--vkedit-color-warning);background:color-mix(in oklab,var(--vkedit-color-warning) 12%,transparent);padding:4px 6px;border-radius:var(--vkedit-radius-sm);line-height:1.4}.snap-toggle[data-v-eea47db6]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:8px 0;border:none;border-radius:var(--vkedit-radius-sm);background:transparent;color:var(--vkedit-color-text-secondary);cursor:pointer;transition:var(--vkedit-transition-colors)}.snap-toggle[data-v-eea47db6]:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.snap-toggle--active[data-v-eea47db6]{background:var(--vkedit-color-bg-active);color:var(--vkedit-color-text)}.vkedit-rotate-angle-label{position:fixed;pointer-events:none;z-index:10000;padding:2px 6px;font-size:12px;line-height:1.2;border-radius:4px;background:var(--vkedit-color-surface-solid, #fff);color:var(--vkedit-color-text, #111);border:1px solid var(--vkedit-color-border, #ccc);box-shadow:0 1px 2px #0000001f;white-space:nowrap}.vkedit-toolbar-enter-active[data-v-0b84679c]{animation:vkedit-toolbar-enter .2s ease-out}.vkedit-toolbar-leave-active[data-v-0b84679c]{animation:vkedit-toolbar-leave .15s ease-in}
|
package/dist/vkedit.es.js
CHANGED
|
@@ -1,103 +1,88 @@
|
|
|
1
|
-
import { A as s,
|
|
1
|
+
import { A as s, M as n, f as t, N as r, Q as o, S as l, P as m, O as i, B as u, h as P, at as g, au as p, b as d, as as C, i as E, d as c, a as y, W as S, C as k, X as x, ar as L, D as T, E as V, aw as h, av as B, Y as R, Z as M, ax as v, $ as b, a0 as A, a1 as I, a2 as w, a3 as H, a4 as N, a7 as O, a8 as f, a5 as D, a6 as Q, a9 as U, aa as G, ab as j, ac as q, ad as F, ag as K, ah as Z, ae as _, af as z, R as J, e as W, ai as X, ak as Y, aj as $, an as aa, ao as ea, ap as sa, j as na, al as ta, am as ra, aq as oa, T as la, U as ma, k as ia, t as ua, s as Pa, m as ga, V as pa, r as da, q as Ca, n as Ea, o as ca, p as ya, u as Sa, l as ka, v as xa, w as La, x as Ta, y as Va, z as ha, F as Ba, G as Ra, H as Ma, J as va, I as ba, L as Aa, K as Ia } from "./index-CSKpw1uX.js";
|
|
2
2
|
export {
|
|
3
3
|
s as AddElementCommand,
|
|
4
4
|
n as Align,
|
|
5
5
|
t as AlignElementsCommand,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
P as BarcodeTool,
|
|
6
|
+
r as AlignPlugin,
|
|
7
|
+
o as BarcodeElement,
|
|
8
|
+
l as BarcodePlugin,
|
|
9
|
+
m as BarcodePropertyPanel,
|
|
10
|
+
i as BarcodeShape,
|
|
12
11
|
u as BaseCommand,
|
|
13
|
-
|
|
12
|
+
P as BaseElementPropertyPanel,
|
|
14
13
|
g as BaseGraphicElement,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
E as
|
|
19
|
-
c as
|
|
20
|
-
y as
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
w as
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
ma as
|
|
65
|
-
|
|
66
|
-
ua as
|
|
67
|
-
|
|
68
|
-
ga as
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Ea as
|
|
73
|
-
ca as
|
|
74
|
-
ya as
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
wa as VkSelect,
|
|
90
|
-
Da as VkSwitch,
|
|
91
|
-
Ga as VkToggle,
|
|
92
|
-
Na as Vkedit,
|
|
93
|
-
Qa as createEditorHost,
|
|
94
|
-
Oa as useBgLayer,
|
|
95
|
-
Ua as useContentLayer,
|
|
96
|
-
fa as useHostState,
|
|
97
|
-
Fa as usePropertyCommand,
|
|
98
|
-
Ka as useRulerLayer,
|
|
99
|
-
ja as useSelectionLayer,
|
|
100
|
-
qa as useStage,
|
|
101
|
-
za as useStageEvent,
|
|
102
|
-
Ja as useZoom
|
|
14
|
+
p as BasePlugin,
|
|
15
|
+
d as BatchCommand,
|
|
16
|
+
C as CORNER_ANCHORS,
|
|
17
|
+
E as CanvasPropertyPanel,
|
|
18
|
+
c as ChangeLayerOrderCommand,
|
|
19
|
+
y as ClearSelectionCommand,
|
|
20
|
+
S as ClipboardPlugin,
|
|
21
|
+
k as CommandUtils,
|
|
22
|
+
x as ContextMenuManagerPlugin,
|
|
23
|
+
L as DEFAULT_ANCHORS,
|
|
24
|
+
T as DistributeElementsCommand,
|
|
25
|
+
V as EditorHost,
|
|
26
|
+
h as EventBus,
|
|
27
|
+
B as EventUtils,
|
|
28
|
+
R as Export,
|
|
29
|
+
M as ExportPlugin,
|
|
30
|
+
v as GraphicPlugin,
|
|
31
|
+
b as GraphicRegistryPlugin,
|
|
32
|
+
A as Import,
|
|
33
|
+
I as ImportPlugin,
|
|
34
|
+
w as KeyDownPlugin,
|
|
35
|
+
H as LayerManagerPlugin,
|
|
36
|
+
N as LayerPanel,
|
|
37
|
+
O as LineElement,
|
|
38
|
+
f as LinePlugin,
|
|
39
|
+
D as LinePropertyPanel,
|
|
40
|
+
Q as LineShape,
|
|
41
|
+
U as PreviewPlugin,
|
|
42
|
+
G as QrPropertyPanel,
|
|
43
|
+
j as QrShape,
|
|
44
|
+
q as QrcodeElement,
|
|
45
|
+
F as QrcodePlugin,
|
|
46
|
+
K as RectElement,
|
|
47
|
+
Z as RectPlugin,
|
|
48
|
+
_ as RectPropertyPanel,
|
|
49
|
+
z as RectShape,
|
|
50
|
+
J as RemoveElementCommand,
|
|
51
|
+
W as ReorderElementsCommand,
|
|
52
|
+
X as SelectionPlugin,
|
|
53
|
+
Y as SnapPlugin,
|
|
54
|
+
$ as SnapToggle,
|
|
55
|
+
aa as TextContextMenu,
|
|
56
|
+
ea as TextElement,
|
|
57
|
+
sa as TextPlugin,
|
|
58
|
+
na as TextProperty,
|
|
59
|
+
ta as TextPropertyPanel,
|
|
60
|
+
ra as TextShape,
|
|
61
|
+
oa as ToolbarManagerPlugin,
|
|
62
|
+
la as TransformElementCommand,
|
|
63
|
+
ma as UpdatePropertyCommand,
|
|
64
|
+
ia as VkButton,
|
|
65
|
+
ua as VkColorPicker,
|
|
66
|
+
Pa as VkDropdown,
|
|
67
|
+
ga as VkInput,
|
|
68
|
+
pa as VkInputMM,
|
|
69
|
+
da as VkInputNumber,
|
|
70
|
+
Ca as VkInputNumberMM,
|
|
71
|
+
Ea as VkLabel,
|
|
72
|
+
ca as VkSelect,
|
|
73
|
+
ya as VkSwitch,
|
|
74
|
+
Sa as VkTextarea,
|
|
75
|
+
ka as VkToggle,
|
|
76
|
+
xa as Vkedit,
|
|
77
|
+
La as createEditorHost,
|
|
78
|
+
Ta as useBgLayer,
|
|
79
|
+
Va as useContentLayer,
|
|
80
|
+
ha as useHostState,
|
|
81
|
+
Ba as usePropertyCommand,
|
|
82
|
+
Ra as useRulerLayer,
|
|
83
|
+
Ma as useSelectionLayer,
|
|
84
|
+
va as useStage,
|
|
85
|
+
ba as useStageEvent,
|
|
86
|
+
Aa as useTransformOverlay,
|
|
87
|
+
Ia as useZoom
|
|
103
88
|
};
|