vkedit 4.0.0 → 4.0.1

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.
@@ -1,4 +1,4 @@
1
- import { c as Da, _ as Va, g as il } from "./index-CSKpw1uX.js";
1
+ import { c as Da, _ as Va, g as il } from "./index-Dpse_csX.js";
2
2
  var fn = {}, cn = {}, cr, vn;
3
3
  function Q() {
4
4
  if (vn) return cr;
@@ -1,5 +1,7 @@
1
+ import { EditorHost } from '../../core';
1
2
  import { LineElement } from './line';
2
3
  export interface Props {
4
+ host: EditorHost;
3
5
  element: LineElement;
4
6
  }
5
7
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -74,6 +74,7 @@ export interface IStageState {
74
74
  isPanning: boolean;
75
75
  offsetX: number;
76
76
  offsetY: number;
77
+ autoFitPending: boolean;
77
78
  }
78
79
  export interface IToolbar {
79
80
  name: string;
@@ -7,6 +7,10 @@ export interface BaseEventData {
7
7
  timestamp?: number;
8
8
  source?: string;
9
9
  }
10
+ export interface EditorLifecyclePayload {
11
+ timestamp: number;
12
+ source: string;
13
+ }
10
14
  export interface ElementEventData extends BaseEventData {
11
15
  element: any;
12
16
  elementId: string;
@@ -18,6 +22,9 @@ export interface ElementRegisteredEventData extends BaseEventData {
18
22
  export interface SelectionEventData extends BaseEventData {
19
23
  selection: Array<IGraphicElement>;
20
24
  }
25
+ export interface SelectionChangedPayload {
26
+ elements: unknown[];
27
+ }
21
28
  export interface TransformEventData extends ElementEventData {
22
29
  oldState: any;
23
30
  newState: any;
@@ -35,6 +42,10 @@ export interface ToolEventData extends BaseEventData {
35
42
  export interface PluginEventData extends BaseEventData {
36
43
  plugin: any;
37
44
  }
45
+ export interface PluginLoadedPayload extends BaseEventData {
46
+ name: string;
47
+ plugin: unknown;
48
+ }
38
49
  export interface CommandEventData extends BaseEventData {
39
50
  command: any;
40
51
  }
@@ -81,6 +92,16 @@ export interface LayerOrderEventData extends BaseEventData {
81
92
  direction: 'up' | 'down' | 'top' | 'bottom';
82
93
  newOrder?: string[];
83
94
  }
95
+ export interface LayerOrderChangedPayload extends BaseEventData {
96
+ elementIds: string[];
97
+ elementId?: string;
98
+ direction?: 'up' | 'down' | 'top' | 'bottom';
99
+ newOrder?: string[];
100
+ }
101
+ export interface LayerVisibilityChangedPayload extends BaseEventData {
102
+ elementId: string;
103
+ visible: boolean;
104
+ }
84
105
  export interface BaseStageEventData extends BaseEventData {
85
106
  point: Point2D;
86
107
  target: any;
@@ -1,4 +1,4 @@
1
- import { BaseEventData, ElementDragEventData, ElementEventData, SelectionEventData, TransformEventData, ToolEventData, PluginEventData, CommandEventData, HistoryEventData, ViewEventData, CreationEventData, ErrorEventData, PerformanceEventData, AlignEventData, DistributeEventData, LayerOrderEventData, ElementUpdateEventData, StageDblClickEventData, StageMouseEventData, StageKeyboardEventData, ElementRegisteredEventData, StatusEventData, GraphicEventData, GraphicToolEventData, PropertyPanelEventData } from './event-data';
1
+ import { BaseEventData, EditorLifecyclePayload, ElementDragEventData, ElementEventData, SelectionEventData, TransformEventData, ToolEventData, PluginEventData, PluginLoadedPayload, CommandEventData, HistoryEventData, ViewEventData, CreationEventData, ErrorEventData, PerformanceEventData, AlignEventData, DistributeEventData, LayerOrderEventData, LayerOrderChangedPayload, LayerVisibilityChangedPayload, ElementUpdateEventData, StageDblClickEventData, StageMouseEventData, StageKeyboardEventData, ElementRegisteredEventData, StatusEventData, GraphicEventData, GraphicToolEventData, PropertyPanelEventData } from './event-data';
2
2
  /**
3
3
  * 编辑器事件映射接口
4
4
  * @description 定义编辑器中所有可能的事件及其对应的负载类型。
@@ -16,9 +16,9 @@ import { BaseEventData, ElementDragEventData, ElementEventData, SelectionEventDa
16
16
  * ```
17
17
  * */
18
18
  export interface EventMap {
19
- 'editor:ready': (payload: BaseEventData) => void;
20
- 'editor:destroy': (payload: BaseEventData) => void;
21
- 'editor:reset': (payload: BaseEventData) => void;
19
+ 'editor:ready': (payload: EditorLifecyclePayload) => void;
20
+ 'editor:destroy': (payload: EditorLifecyclePayload) => void;
21
+ 'editor:reset': (payload: EditorLifecyclePayload) => void;
22
22
  'file:new': (payload: BaseEventData) => void;
23
23
  'file:open': (payload: BaseEventData) => void;
24
24
  'file:save': (payload: BaseEventData) => void;
@@ -83,8 +83,8 @@ export interface EventMap {
83
83
  'view:ruler-visibility-change': (payload: ViewEventData) => void;
84
84
  'layer:added': (payload: BaseEventData) => void;
85
85
  'layer:removed': (payload: BaseEventData) => void;
86
- 'layer:order-changed': (payload: LayerOrderEventData) => void;
87
- 'layer:visibility-change': (payload: BaseEventData) => void;
86
+ 'layer:order-changed': (payload: LayerOrderChangedPayload) => void;
87
+ 'layer:visibility-change': (payload: LayerVisibilityChangedPayload) => void;
88
88
  'layer:locked-change': (payload: BaseEventData) => void;
89
89
  'layer:active-change': (payload: BaseEventData) => void;
90
90
  'command:executed': (payload: CommandEventData) => void;
@@ -96,7 +96,7 @@ export interface EventMap {
96
96
  'plugin:unregistered': (payload: PluginEventData) => void;
97
97
  'plugin:activated': (payload: PluginEventData) => void;
98
98
  'plugin:deactivated': (payload: PluginEventData) => void;
99
- 'plugin:loaded': (payload: PluginEventData) => void;
99
+ 'plugin:loaded': (payload: PluginLoadedPayload) => void;
100
100
  'plugin:error': (payload: ErrorEventData) => void;
101
101
  'graphic:registered': (payload: GraphicEventData) => void;
102
102
  'graphic:unregistered': (payload: GraphicEventData) => void;
@@ -19,6 +19,32 @@ export declare abstract class GraphicPlugin<T extends IGraphicElement> extends B
19
19
  abstract graphicType: string;
20
20
  abstract graphicElement: new (host: EditorHost) => T;
21
21
  abstract shapeComponent: Component;
22
+ /**
23
+ * 当前图形自身的属性面板 Vue 组件。
24
+ *
25
+ * 与 {@link shapeComponent} / {@link iconComponent} 风格一致:
26
+ * 直接以组件引用声明,而非工厂函数。
27
+ *
28
+ * 基类会在 `onActivate` 时自动 emit 等价的 `property-panel:registered` 事件:
29
+ * - `graphicTypes = [this.graphicType]`
30
+ * - `render = () => this.propertyPanel`
31
+ * - `isCanvas = false`
32
+ * - `isPublic = false`
33
+ *
34
+ * 如需注册自身以外的图形类型、注册多个面板、或 `isCanvas = true` / `isPublic = true`,
35
+ * 请改用旧 {@link propertyPanels} 字段或在独立插件的 `onInstall` 手动 emit。
36
+ */
37
+ propertyPanel?: Component;
38
+ /**
39
+ * 属性面板注册列表(旧 API,多面板与逃生通道)。
40
+ *
41
+ * @deprecated 请优先使用单数 {@link propertyPanel} 字段。本字段仅作为
42
+ * 「多面板 / 为其他 graphicType 注册 / `isCanvas = true` / `isPublic = true`」
43
+ * 场景下的逃生通道保留。新插件禁止使用本字段。
44
+ *
45
+ * 基类 `onActivate` 仍按现有逻辑遍历本数组 emit `property-panel:registered`,
46
+ * 因此同一插件同时声明 `propertyPanel` 与 `propertyPanels` 时两者都会被注册。
47
+ */
22
48
  propertyPanels?: PropertyPanelRegistration[];
23
49
  iconComponent?: Component;
24
50
  typeDisplayName?: string;
package/dist/vkedit.css CHANGED
@@ -1 +1 @@
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}
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-f1133ec9]: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-f1133ec9],[data-vkedit-theme=dark][data-v-f1133ec9]{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-f1133ec9]{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-f1133ec9]{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-f1133ec9]{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-f1133ec9]{font-size:var(--vkedit-font-size-xs);font-weight:var(--vkedit-font-weight-bold);white-space:nowrap}.vkedit-layer-panel__divider[data-v-f1133ec9]{flex:1;height:1px;background:var(--vkedit-color-border)}.vkedit-layer-panel__empty[data-v-f1133ec9]{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-f1133ec9]{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:2px 0}.vkedit-layer-row[data-v-f1133ec9]{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-f1133ec9]:hover{background:var(--vkedit-color-bg-hover)}.vkedit-layer-row--selected[data-v-f1133ec9]{background:color-mix(in oklab,var(--vkedit-color-primary) 14%,transparent)}.vkedit-layer-row--hidden[data-v-f1133ec9]{opacity:.5}.vkedit-layer-row--locked .vkedit-layer-row__handle[data-v-f1133ec9]{color:var(--vkedit-color-text-secondary)}.vkedit-layer-row--dragging[data-v-f1133ec9]{opacity:.5;box-shadow:var(--vkedit-shadow-panel)}.vkedit-layer-row__handle[data-v-f1133ec9]{display:flex;align-items:center;cursor:grab;color:var(--vkedit-color-text-secondary)}.vkedit-layer-row__handle[data-v-f1133ec9]:hover{color:var(--vkedit-color-text)}.vkedit-layer-row__type[data-v-f1133ec9]{flex-shrink:0;color:var(--vkedit-color-text-secondary)}.vkedit-layer-row__name[data-v-f1133ec9]{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-f1133ec9]{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-f1133ec9]{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-f1133ec9],.vkedit-layer-row--selected .vkedit-layer-row__actions[data-v-f1133ec9]{opacity:1}.vkedit-layer-row__btn[data-v-f1133ec9]{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-f1133ec9]:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.vkedit-layer-row__btn--active[data-v-f1133ec9]{color:var(--vkedit-color-text)}.vkedit-layer-indicator[data-v-f1133ec9]{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-f1133ec9 .12s ease-out}.vkedit-layer-indicator--top[data-v-f1133ec9]{top:0}.vkedit-layer-indicator--bottom[data-v-f1133ec9]{bottom:0}@keyframes vkedit-layer-indicator-fade-in-f1133ec9{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.vkedit-layer-menu[data-v-f1133ec9]{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-f1133ec9]{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-f1133ec9]:hover{background:var(--vkedit-color-bg-hover)}.vkedit-layer-menu__divider[data-v-f1133ec9]{height:1px;margin:2px 0;background:var(--vkedit-color-border)}.vkedit-layer-ghost[data-v-f1133ec9]{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-f1133ec9]{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-ede64735]{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-ede64735]:hover{background:var(--vkedit-color-bg-hover);color:var(--vkedit-color-text)}.snap-toggle--active[data-v-ede64735]{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-d776308e]{animation:vkedit-toolbar-enter .2s ease-out}.vkedit-toolbar-leave-active[data-v-d776308e]{animation:vkedit-toolbar-leave .15s ease-in}
package/dist/vkedit.es.js CHANGED
@@ -1,4 +1,4 @@
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";
1
+ import { A as s, O as n, h as t, P as r, W as o, X as l, Q as m, S as i, B as u, i as P, av as p, aw as g, d, au as C, j as y, e as E, b as c, Y as S, C as k, Z as x, at as L, D as T, E as V, ay as h, ax as B, $ as R, a0 as v, az as M, a1 as b, a2 as A, a3 as I, a4 as w, a5 as H, a6 as N, a9 as O, aa as U, a7 as f, a8 as D, ab as Q, ac as G, ad as j, ae as q, af as z, ai as F, aj as K, ag as Z, ah as _, R as J, f as W, ak as X, am as Y, al as $, ap as aa, aq as ea, ar as sa, k as na, an as ta, ao as ra, as as oa, T as la, a as ma, U as ia, l as ua, u as Pa, t as pa, n as ga, V as da, s as Ca, r as ya, o as Ea, p as ca, q as Sa, v as ka, m as xa, w as La, x as Ta, y as Va, H as ha, z as Ba, F as Ra, G as va, I as Ma, J as ba, L as Aa, K as Ia, N as wa, M as Ha } from "./index-Dpse_csX.js";
2
2
  export {
3
3
  s as AddElementCommand,
4
4
  n as Align,
@@ -10,13 +10,13 @@ export {
10
10
  i as BarcodeShape,
11
11
  u as BaseCommand,
12
12
  P as BaseElementPropertyPanel,
13
- g as BaseGraphicElement,
14
- p as BasePlugin,
13
+ p as BaseGraphicElement,
14
+ g as BasePlugin,
15
15
  d as BatchCommand,
16
16
  C as CORNER_ANCHORS,
17
- E as CanvasPropertyPanel,
18
- c as ChangeLayerOrderCommand,
19
- y as ClearSelectionCommand,
17
+ y as CanvasPropertyPanel,
18
+ E as ChangeLayerOrderCommand,
19
+ c as ClearSelectionCommand,
20
20
  S as ClipboardPlugin,
21
21
  k as CommandUtils,
22
22
  x as ContextMenuManagerPlugin,
@@ -26,8 +26,8 @@ export {
26
26
  h as EventBus,
27
27
  B as EventUtils,
28
28
  R as Export,
29
- M as ExportPlugin,
30
- v as GraphicPlugin,
29
+ v as ExportPlugin,
30
+ M as GraphicPlugin,
31
31
  b as GraphicRegistryPlugin,
32
32
  A as Import,
33
33
  I as ImportPlugin,
@@ -35,18 +35,18 @@ export {
35
35
  H as LayerManagerPlugin,
36
36
  N as LayerPanel,
37
37
  O as LineElement,
38
- f as LinePlugin,
39
- D as LinePropertyPanel,
40
- Q as LineShape,
41
- U as PreviewPlugin,
38
+ U as LinePlugin,
39
+ f as LinePropertyPanel,
40
+ D as LineShape,
41
+ Q as PreviewPlugin,
42
42
  G as QrPropertyPanel,
43
43
  j as QrShape,
44
44
  q as QrcodeElement,
45
- F as QrcodePlugin,
46
- K as RectElement,
47
- Z as RectPlugin,
48
- _ as RectPropertyPanel,
49
- z as RectShape,
45
+ z as QrcodePlugin,
46
+ F as RectElement,
47
+ K as RectPlugin,
48
+ Z as RectPropertyPanel,
49
+ _ as RectShape,
50
50
  J as RemoveElementCommand,
51
51
  W as ReorderElementsCommand,
52
52
  X as SelectionPlugin,
@@ -60,29 +60,31 @@ export {
60
60
  ra as TextShape,
61
61
  oa as ToolbarManagerPlugin,
62
62
  la as TransformElementCommand,
63
- ma as UpdatePropertyCommand,
64
- ia as VkButton,
65
- ua as VkColorPicker,
66
- Pa as VkDropdown,
63
+ ma as UpdateCanvasPropertyCommand,
64
+ ia as UpdatePropertyCommand,
65
+ ua as VkButton,
66
+ Pa as VkColorPicker,
67
+ pa as VkDropdown,
67
68
  ga as VkInput,
68
- pa as VkInputMM,
69
- da as VkInputNumber,
70
- Ca as VkInputNumberMM,
69
+ da as VkInputMM,
70
+ Ca as VkInputNumber,
71
+ ya as VkInputNumberMM,
71
72
  Ea as VkLabel,
72
73
  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
74
+ Sa as VkSwitch,
75
+ ka as VkTextarea,
76
+ xa as VkToggle,
77
+ La as Vkedit,
78
+ Ta as createEditorHost,
79
+ Va as useBgLayer,
80
+ ha as useCanvasPropertyCommand,
81
+ Ba as useContentLayer,
82
+ Ra as useHostState,
83
+ va as usePropertyCommand,
84
+ Ma as useRulerLayer,
85
+ ba as useSelectionLayer,
86
+ Aa as useStage,
87
+ Ia as useStageEvent,
88
+ wa as useTransformOverlay,
89
+ Ha as useZoom
88
90
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vkedit",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -13,21 +13,10 @@
13
13
  "CHANGELOG.md",
14
14
  "README.md",
15
15
  "README.en.md",
16
- "LICENSE"
16
+ "LICENSE",
17
+ "THIRD_PARTY_LICENSES.md"
17
18
  ],
18
19
  "types": "dist/index.d.ts",
19
- "scripts": {
20
- "dev": "vite",
21
- "build": "vue-tsc --noEmit && vite build && pnpm pack",
22
- "build:playground": "vue-tsc --noEmit && vite build --config vite.playground.config.ts",
23
- "prepublishOnly": "npm run build",
24
- "preview": "vite preview",
25
- "build-only": "vite build",
26
- "type-check": "vue-tsc --build",
27
- "lint": "eslint . --fix",
28
- "format": "prettier --write src/",
29
- "build:css": "vite build"
30
- },
31
20
  "peerDependencies": {
32
21
  "konva": "^10.0.2",
33
22
  "vue": "^3.5.18",
@@ -77,10 +66,11 @@
77
66
  "url": "https://github.com/pwg-code/vkedit/issues"
78
67
  },
79
68
  "devDependencies": {
80
- "@iconify-json/material-symbols-light": "^1.2.86",
69
+ "@iconify-json/ph": "^1.2.2",
81
70
  "@tsconfig/node22": "^22.0.2",
82
71
  "@types/lodash": "^4.17.20",
83
72
  "@types/node": "^22.16.5",
73
+ "@types/qrcode": "^1.5.6",
84
74
  "@vitejs/plugin-vue": "^6.0.1",
85
75
  "@vue/eslint-config-prettier": "^10.2.0",
86
76
  "@vue/eslint-config-typescript": "^14.6.0",
@@ -101,7 +91,6 @@
101
91
  "vue-tsc": "^3.0.4"
102
92
  },
103
93
  "dependencies": {
104
- "@types/qrcode": "^1.5.6",
105
94
  "@vueuse/core": "^14.0.0",
106
95
  "jsbarcode": "^3.11.5",
107
96
  "jspdf": "^3.0.3",
@@ -109,8 +98,20 @@
109
98
  "qrcode": "^1.5.1",
110
99
  "uuid": "^13.0.0"
111
100
  },
112
- "packageManager": "pnpm@10.19.0+sha512.c9fc7236e92adf5c8af42fd5bf1612df99c2ceb62f27047032f4720b33f8eacdde311865e91c411f2774f618d82f320808ecb51718bfa82c060c4ba7c76a32b8",
113
101
  "publishConfig": {
114
102
  "registry": "https://registry.npmjs.org/"
103
+ },
104
+ "scripts": {
105
+ "dev": "vite",
106
+ "build": "vue-tsc --noEmit && vite build && pnpm pack",
107
+ "build:playground": "vue-tsc --noEmit && vite build --config vite.playground.config.ts",
108
+ "preview": "vite preview",
109
+ "build-only": "vite build",
110
+ "type-check": "vue-tsc --build",
111
+ "test": "vitest run",
112
+ "test:watch": "vitest",
113
+ "lint": "eslint . --fix",
114
+ "format": "prettier --write src/",
115
+ "build:css": "vite build"
115
116
  }
116
- }
117
+ }
package/dist/favicon.ico DELETED
Binary file