@woven-canvas/vue 0.1.2 → 0.1.4

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.
Files changed (36) hide show
  1. package/build/index.js +9141 -8651
  2. package/build/index.umd.cjs +41 -40
  3. package/build/src/components/ActionBar.vue.d.ts +3 -0
  4. package/build/src/components/ActionBar.vue.d.ts.map +1 -0
  5. package/build/src/components/EditableText.vue.d.ts +0 -1
  6. package/build/src/components/EditableText.vue.d.ts.map +1 -1
  7. package/build/src/components/FileDropZone.vue.d.ts +8 -0
  8. package/build/src/components/FileDropZone.vue.d.ts.map +1 -0
  9. package/build/src/components/FloatingMenu.vue.d.ts.map +1 -1
  10. package/build/src/components/FloatingMenuBar.vue.d.ts.map +1 -1
  11. package/build/src/components/Toolbar.vue.d.ts +4 -2
  12. package/build/src/components/Toolbar.vue.d.ts.map +1 -1
  13. package/build/src/components/WovenCanvas.vue.d.ts +1 -0
  14. package/build/src/components/WovenCanvas.vue.d.ts.map +1 -1
  15. package/build/src/components/blocks/ShapeBlock.vue.d.ts.map +1 -1
  16. package/build/src/components/blocks/StickyNote.vue.d.ts.map +1 -1
  17. package/build/src/components/blocks/TextBlock.vue.d.ts.map +1 -1
  18. package/build/src/components/buttons/MenuDropdown.vue.d.ts.map +1 -1
  19. package/build/src/components/buttons/text/TextButtonGroup.vue.d.ts +8 -0
  20. package/build/src/components/buttons/text/TextButtonGroup.vue.d.ts.map +1 -0
  21. package/build/src/components/buttons/text/index.d.ts +2 -0
  22. package/build/src/components/buttons/text/index.d.ts.map +1 -1
  23. package/build/src/components/tools/ImageTool.vue.d.ts.map +1 -1
  24. package/build/src/composables/index.d.ts +1 -0
  25. package/build/src/composables/index.d.ts.map +1 -1
  26. package/build/src/composables/useImageCreation.d.ts +13 -0
  27. package/build/src/composables/useImageCreation.d.ts.map +1 -0
  28. package/build/src/composables/useTextBatchController.d.ts.map +1 -1
  29. package/build/src/injection/dropdown.d.ts +4 -0
  30. package/build/src/injection/dropdown.d.ts.map +1 -0
  31. package/build/src/injection/index.d.ts +1 -0
  32. package/build/src/injection/index.d.ts.map +1 -1
  33. package/build/style.css +1 -1
  34. package/build/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +5 -5
  36. package/src/theme.css +8 -0
@@ -0,0 +1,3 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
3
+ //# sourceMappingURL=ActionBar.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionBar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ActionBar.vue"],"names":[],"mappings":";AAyRA,wBAKG"}
@@ -1,7 +1,6 @@
1
1
  import type { BlockData } from "../types";
2
2
  interface Props extends BlockData {
3
3
  blockElement: HTMLElement | null;
4
- measureElement?: HTMLElement | null;
5
4
  }
6
5
  declare const _default: import("vue").DefineComponent<Props, {
7
6
  editableTextRef: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"EditableText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/EditableText.vue"],"names":[],"mappings":"AA0UA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,UAAU,KAAM,SAAQ,SAAS;IAE/B,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IAEjC,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACrC;;;;;iBAQc,MAAM;eACR,MAAM;gBACL,MAAM;cACR,MAAM;aACP,MAAM;;;;iBAJF,MAAM;eACR,MAAM;gBACL,MAAM;cACR,MAAM;aACP,MAAM;;;AAoSjB,wBAQG"}
1
+ {"version":3,"file":"EditableText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/EditableText.vue"],"names":[],"mappings":"AAoXA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,UAAU,KAAM,SAAQ,SAAS;IAE/B,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;;;;;iBAQc,MAAM;eACR,MAAM;gBACL,MAAM;cACR,MAAM;aACP,MAAM;;;;iBAJF,MAAM;eACR,MAAM;gBACL,MAAM;cACR,MAAM;aACP,MAAM;;;AAwUjB,wBAQG"}
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ maxSize?: number;
3
+ };
4
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
5
+ maxSize: number;
6
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ export default _default;
8
+ //# sourceMappingURL=FileDropZone.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDropZone.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FileDropZone.vue"],"names":[],"mappings":"AA0NA,KAAK,WAAW,GAAG;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;;aADU,MAAM;;AAiOpB,wBAOG"}
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingMenu.vue"],"names":[],"mappings":"AAufA,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAuB/C,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"FloatingMenu.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingMenu.vue"],"names":[],"mappings":"AAmhBA,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAuB/C,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingMenuBar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingMenuBar.vue"],"names":[],"mappings":"AAqdA,QAAA,IAAI,OAAO,oBAAU,EAAE,OAAO;;CAAU,EAAE,OAAO;;CAAU,EAAE,QAAQ;;CAAU,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAY,CAAE;AAC3L,KAAK,WAAW,GAAG,EAAE,GACnB;KAAG,CAAC,IAAI,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG;CAAE,GACvE;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACpD;IAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACxD;IAAE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7D;IAAE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7D;IAAE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3D;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAsCtD,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"FloatingMenuBar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingMenuBar.vue"],"names":[],"mappings":"AA2XA,QAAA,IAAI,OAAO,oBAAU,EAAE,OAAO;;CAAU,EAAE,OAAO;;CAAU,EAAE,QAAQ;;CAAU,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAY,CAAE;AAC3L,KAAK,WAAW,GAAG,EAAE,GACnB;KAAG,CAAC,IAAI,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG;CAAE,GACvE;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACpD;IAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACxD;IAAE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7D;IAAE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7D;IAAE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3D;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AA+BtD,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,6 +1,8 @@
1
- declare var __VLS_1: {};
1
+ declare var __VLS_4: {}, __VLS_17: {};
2
2
  type __VLS_Slots = {} & {
3
- default?: (props: typeof __VLS_1) => any;
3
+ default?: (props: typeof __VLS_4) => any;
4
+ } & {
5
+ default?: (props: typeof __VLS_17) => any;
4
6
  };
5
7
  declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
8
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Toolbar.vue"],"names":[],"mappings":"AA8WA,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AA8B/C,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Toolbar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Toolbar.vue"],"names":[],"mappings":"AAwyBA,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAkChD,QAAA,MAAM,eAAe,+QAKnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -50,6 +50,7 @@ type __VLS_Slots = {
50
50
  versionMismatch: boolean;
51
51
  }) => any;
52
52
  "back-to-content"?: () => any;
53
+ "file-drop-zone"?: () => any;
53
54
  } & {
54
55
  [slotName: `block:${string}`]: (props: BlockData) => any;
55
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"WovenCanvas.vue.d.ts","sourceRoot":"","sources":["../../../src/components/WovenCanvas.vue"],"names":[],"mappings":"AA46BA,OAAO,EACL,MAAM,EAQN,KAAK,oBAAoB,EASzB,KAAK,kBAAkB,EAOxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,cAAc,CAAC;AAkBtB,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAwB7D,MAAM,WAAW,gBAAgB;IAE/B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAG3B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAG5B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAG/B,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,0BAA0B,GAAG,KAAK,CAAC;QAC9C,SAAS,CAAC,EAAE,2BAA2B,GAAG,KAAK,CAAC;QAChD,MAAM,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;QACrC,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,MAAM,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;KACtC,CAAC;IAGF,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAWD,KAAK,WAAW,GAAG;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,GAAG,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,iBAAiB,CAAA;KAAE,KAAK,GAAG,CAAC;IAC/D,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACrD,KAAK,GAAG,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;KAAE,KAAK,GAAG,CAAC;IACxD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,GAAG,CAAC;IAC5D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,KAAK,GAAG,CAAC;IAClE,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;CAC/B,GAAG;IACF,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC;CAC1D,CAAC;AA45BJ,QAAA,MAAM,eAAe;;;;kFAOnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAQ1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"WovenCanvas.vue.d.ts","sourceRoot":"","sources":["../../../src/components/WovenCanvas.vue"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShapeBlock.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/ShapeBlock.vue"],"names":[],"mappings":"AA8IA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;AAiK7C,wBAMG"}
1
+ {"version":3,"file":"ShapeBlock.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/ShapeBlock.vue"],"names":[],"mappings":"AA6IA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;AA+J7C,wBAMG"}
@@ -1 +1 @@
1
- {"version":3,"file":"StickyNote.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/StickyNote.vue"],"names":[],"mappings":"AA8EA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;AAgG7C,wBAMG"}
1
+ {"version":3,"file":"StickyNote.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/StickyNote.vue"],"names":[],"mappings":"AA6EA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;AA8F7C,wBAMG"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextBlock.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/TextBlock.vue"],"names":[],"mappings":"AAuDA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;AAkF7C,wBAMG"}
1
+ {"version":3,"file":"TextBlock.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/TextBlock.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;AAkF7C,wBAMG"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuDropdown.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/buttons/MenuDropdown.vue"],"names":[],"mappings":"AAkJA,KAAK,WAAW,GAAG;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAEhD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA2CJ,iBAAS,KAAK,SAEb;AAkGD,QAAA,IAAI,OAAO;;CAAU,EAAE,OAAO;;CAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AA+BhD,QAAA,MAAM,eAAe;;;;;;;eApLL,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;cAEpC,MAAM;6EA0LnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAa1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"MenuDropdown.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/buttons/MenuDropdown.vue"],"names":[],"mappings":"AAqLA,KAAK,WAAW,GAAG;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAEhD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA+DJ,iBAAS,KAAK,SAEb;AA+GD,QAAA,IAAI,OAAO;;CAAU,EAAE,OAAO;;CAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AA+BhD,QAAA,MAAM,eAAe;;;;;;;eArNL,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;cAEpC,MAAM;6EA2NnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAa1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { EntityId } from "@woven-canvas/core";
2
+ type __VLS_Props = {
3
+ entityIds: EntityId[];
4
+ showVerticalAlign?: boolean;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ export default _default;
8
+ //# sourceMappingURL=TextButtonGroup.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextButtonGroup.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/buttons/text/TextButtonGroup.vue"],"names":[],"mappings":"AA+JA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAenD,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;;AA0QF,wBAMG"}
@@ -1,9 +1,11 @@
1
1
  export { default as TextAlignmentButton } from './TextAlignmentButton.vue';
2
2
  export { default as TextBoldButton } from './TextBoldButton.vue';
3
+ export { default as TextButtonGroup } from './TextButtonGroup.vue';
3
4
  export { default as TextColorButton } from './TextColorButton.vue';
4
5
  export type { FontOption } from './TextFontFamilyButton.vue';
5
6
  export { default as TextFontFamilyButton } from './TextFontFamilyButton.vue';
6
7
  export { default as TextFontSizeButton } from './TextFontSizeButton.vue';
7
8
  export { default as TextItalicButton } from './TextItalicButton.vue';
8
9
  export { default as TextUnderlineButton } from './TextUnderlineButton.vue';
10
+ export { default as VerticalAlignButton } from './VerticalAlignButton.vue';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/buttons/text/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/buttons/text/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/tools/ImageTool.vue"],"names":[],"mappings":";AA6bA,wBAKG"}
1
+ {"version":3,"file":"ImageTool.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/tools/ImageTool.vue"],"names":[],"mappings":";AA0OA,wBAKG"}
@@ -1,6 +1,7 @@
1
1
  export { useComponent } from './useComponent';
2
2
  export { useComponents } from './useComponents';
3
3
  export { type EditorContext, useEditorContext } from './useEditorContext';
4
+ export { type ImageCreationOptions, type UseImageCreationReturn, useImageCreation } from './useImageCreation';
4
5
  export { type QueryResultItem, useQuery } from './useQuery';
5
6
  export { useSingleton } from './useSingleton';
6
7
  export { type TextBatchCommands, type TextBatchController, type TextBatchState, useTextBatchController, } from './useTextBatchController';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC7G,OAAO,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { type EntityId } from '@woven-canvas/core';
2
+ export interface ImageCreationOptions {
3
+ maxSize?: number;
4
+ }
5
+ export interface UseImageCreationReturn {
6
+ getImageDimensions: (file: File) => Promise<{
7
+ width: number;
8
+ height: number;
9
+ }>;
10
+ createImageBlock: (file: File, worldX: number, worldY: number, options?: ImageCreationOptions) => Promise<EntityId>;
11
+ }
12
+ export declare function useImageCreation(): UseImageCreationReturn;
13
+ //# sourceMappingURL=useImageCreation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageCreation.d.ts","sourceRoot":"","sources":["../../../src/composables/useImageCreation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,QAAQ,EAA4B,MAAM,oBAAoB,CAAA;AAMtH,MAAM,WAAW,oBAAoB;IAEnC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,sBAAsB;IAErC,kBAAkB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAE9E,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CACpH;AAMD,wBAAgB,gBAAgB,IAAI,sBAAsB,CA2HzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTextBatchController.d.ts","sourceRoot":"","sources":["../../../src/composables/useTextBatchController.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,KAAK,QAAQ,EAAgB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,KAAK,WAAW,EAAY,KAAK,gBAAgB,EAAsC,MAAM,KAAK,CAAA;AAyB3G,MAAM,WAAW,cAAc;IAE7B,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAErC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAEnC,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAErC,WAAW,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAExC,SAAS,EAAE,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAE5C,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEjC,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEpC,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,iBAAiB;IAEhC,UAAU,IAAI,IAAI,CAAA;IAElB,YAAY,IAAI,IAAI,CAAA;IAEpB,eAAe,IAAI,IAAI,CAAA;IAEvB,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAA;IAE5C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B;AA8SD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,mBAAmB,CAkSnG"}
1
+ {"version":3,"file":"useTextBatchController.d.ts","sourceRoot":"","sources":["../../../src/composables/useTextBatchController.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,KAAK,QAAQ,EAAgB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,KAAK,WAAW,EAAY,KAAK,gBAAgB,EAAsC,MAAM,KAAK,CAAA;AAyB3G,MAAM,WAAW,cAAc;IAE7B,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAErC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAEnC,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAErC,WAAW,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAExC,SAAS,EAAE,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAE5C,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEjC,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEpC,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,iBAAiB;IAEhC,UAAU,IAAI,IAAI,CAAA;IAElB,YAAY,IAAI,IAAI,CAAA;IAEpB,eAAe,IAAI,IAAI,CAAA;IAEvB,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAA;IAE5C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B;AAgUD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,mBAAmB,CAkSnG"}
@@ -0,0 +1,4 @@
1
+ import type { InjectionKey, Ref } from 'vue';
2
+ export declare const DROPDOWN_ACTIVE_KEY: InjectionKey<Ref<Map<number, string>>>;
3
+ export declare const DROPDOWN_LEVEL_KEY: InjectionKey<number>;
4
+ //# sourceMappingURL=dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../../src/injection/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAI5C,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAA4B,CAAA;AACnG,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,MAAM,CAA2B,CAAA"}
@@ -1,3 +1,4 @@
1
+ export { DROPDOWN_ACTIVE_KEY, DROPDOWN_LEVEL_KEY } from './dropdown';
1
2
  export { FLOATING_MENU_KEY, type FloatingMenuContext } from './floatingMenu';
2
3
  export { TOOLBAR_KEY, type ToolbarContext } from './toolbar';
3
4
  export { TOOLTIP_KEY, type TooltipContext, type TooltipState } from './tooltip';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/injection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC/E,OAAO,EACL,KAAK,QAAQ,EACb,gBAAgB,EAChB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/injection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC/E,OAAO,EACL,KAAK,QAAQ,EACb,gBAAgB,EAChB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAA"}
package/build/style.css CHANGED
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@layer wov-reset{.wov-root :where(*:not(svg,svg *)){all:revert}}.wov-root{--wov-primary: #6a58f2;--wov-primary-light: #8a76f4;--wov-error: #ff4d4f;--wov-gray-100: #f8f9f9;--wov-gray-200: #e3e5e8;--wov-gray-300: #c7ccd1;--wov-gray-400: #9099a4;--wov-gray-500: #4f5660;--wov-gray-600: #2e3338;--wov-gray-700: #060607;--wov-z-block-content: 1;--wov-z-cursors: 50;--wov-z-ui: 100;--wov-z-floating-menu: 101;--wov-z-overlay: 1000;--wov-z-dropdown: 1001;--wov-z-tooltip: 1002;--wov-font-family: "Figtree", sans-serif;--wov-menu-border-radius: 12px;--wov-menu-tooltip-border-radius: 6px;--wov-transition-duration: .15s;--wov-transition-timing-function: cubwov-bezier(.4, 0, .2, 1);--wov-highlighted-block-outline-color: var(--wov-primary);--wov-highlighted-block-outline-width: 1.5px;--wov-highlighted-block-outline-offset: -1px;--wov-highlighted-block-border-radius: 2px;--wov-selection-box-bg: #5865f222;--wov-text-selection-color: var(--wov-primary-light)}.wov-root{font-family:var(--wov-font-family)}.wov-root svg{display:block}.wov-root ::selection{background-color:var(--wov-text-selection-color)}.wov-block[data-hovered]>*,.wov-block[data-selected]>*{outline:calc(var(--wov-highlighted-block-outline-width) / var(--wov-zoom, 1)) solid var(--wov-highlighted-block-outline-color);outline-offset:calc(var(--wov-highlighted-block-outline-offset) / var(--wov-zoom, 1));border-radius:calc(var(--wov-highlighted-block-border-radius) / var(--wov-zoom, 1))}.wov-block[data-held-by-other]>*{outline:calc(3px / var(--wov-zoom, 1)) solid var(--wov-held-by-color);outline-offset:calc(2px / var(--wov-zoom, 1));border-radius:calc(var(--wov-highlighted-block-border-radius) / var(--wov-zoom, 1))}.wov-arc-arrow[data-v-bcf5b4f3]{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible;box-sizing:border-box}.arrow-svg[data-v-bcf5b4f3]{width:100%;height:100%;overflow:visible!important}.highlight-overlay[data-v-bcf5b4f3]{stroke:var(--wov-highlighted-block-outline-color)}.wov-block[data-hovered]>.wov-arc-arrow,.wov-block[data-selected]>.wov-arc-arrow{outline:none}.wov-arrow-handle{position:relative;display:block;width:100%;height:100%}.wov-arrow-handle-inner{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;width:100%;height:100%}.wov-arrow-handle-inner:before{content:"";position:absolute;left:50%;top:50%;border-radius:50%;box-sizing:border-box;background-color:var(--wov-primary-light);transform:translate(-50%,-50%) scale(calc(1 / var(--wov-zoom)));transform-origin:center center;transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration);opacity:0}.wov-arrow-handle-inner:after{content:"";position:absolute;left:50%;top:50%;width:50%;height:50%;border-radius:50%;box-sizing:border-box;border:calc(2px / var(--wov-zoom)) solid var(--wov-primary);background-color:var(--wov-gray-100);transform:translate(-50%,-50%);transform-origin:center center;transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-block[data-hovered]>.wov-arrow-handle{outline:none}.wov-block[data-hovered]>.wov-arrow-handle>.wov-arrow-handle-inner:before{opacity:.4}.wov-arrow-terminal{position:relative;display:block;width:100%;height:100%;pointer-events:none}.wov-arrow-terminal-ring{position:absolute;left:50%;top:50%;width:100%;height:100%;border-radius:50%;box-sizing:border-box;border:calc(3px / var(--wov-zoom)) solid var(--wov-primary);transform:translate(-50%,-50%);transform-origin:center center}.wov-arrow-terminal-fill{width:100%;height:100%;border-radius:50%;background-color:var(--wov-gray-100);opacity:.8}.wov-elbow-arrow[data-v-b2719db1]{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible;box-sizing:border-box}.arrow-svg[data-v-b2719db1]{width:100%;height:100%;overflow:visible!important}.highlight-bg[data-v-b2719db1]{stroke:var(--wov-gray-600)}.highlight-overlay[data-v-b2719db1]{stroke:var(--wov-highlighted-block-outline-color)}.wov-block[data-hovered]>.wov-elbow-arrow,.wov-block[data-selected]>.wov-elbow-arrow{outline:none}.wov-eraser-stroke{position:relative;width:100%;height:100%}.wov-eraser-stroke *{box-sizing:border-box;overflow:visible;display:block}.wov-eraser-stroke svg{width:100%;height:100%;overflow:visible}.wov-image-block{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.wov-image-block img{display:block}.wov-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#8080801a;border:1px dashed rgba(128,128,128,.3);border-radius:4px;color:#808080b3;font-size:14px}.wov-image-error{background-color:#ff00000d;border-color:#f003;color:#ff0000b3}.wov-image-upload-overlay{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background-color:#0009;color:#fff;font-size:12px;text-align:center}.wov-image-upload-status{display:inline-block}.wov-pen-stroke[data-v-9b41c649]{position:relative;width:100%;height:100%}.wov-pen-stroke[data-v-9b41c649] *{box-sizing:border-box;overflow:visible;display:block}.wov-pen-stroke svg[data-v-9b41c649]{width:100%;height:100%;overflow:visible}.wov-pen-stroke .highlight[data-v-9b41c649]{position:absolute;top:0;right:0;bottom:0;left:0}.wov-block[data-hovered]>.wov-pen-stroke,.wov-block[data-selected]>.wov-pen-stroke{outline:none}.wov-block[data-held-by-other]>.wov-pen-stroke:not([data-complete]){outline:none}.wov-editable-text{width:100%;display:block;color:#000}.wov-editable-text p{margin:0}.wov-editable-text p:empty:before{content:"";display:inline-block}.wov-editable-text .ProseMirror{outline:none;white-space:inherit;word-wrap:break-word}.wov-editable-text .ProseMirror-focused{outline:none}.wov-shape-block{position:relative;width:100%;height:100%;display:flex;box-sizing:border-box}.wov-shape-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:-1}.wov-shape-content{width:100%;height:100%;display:flex;box-sizing:border-box;padding:8px;z-index:1}.wov-block[data-selected]>.wov-text-block{outline:none}.wov-block[data-held-by-other]>.wov-text-block[data-text-empty]{outline:none}.wov-menu-dropdown-trigger{display:flex;align-items:center;justify-content:center;cursor:pointer}.wov-menu-dropdown{position:absolute;z-index:var(--wov-z-dropdown)}input.wov-color-input{margin-bottom:8px;box-sizing:border-box;padding:6px 8px;font-size:18px;text-align:center;font-family:inherit;color:var(--wov-gray-100);background-color:var(--wov-gray-600);border:1px solid var(--wov-gray-600);border-radius:4px;outline:none}input.wov-color-input:focus{border-color:var(--wov-primary)}.wov-color-slider{width:16px;height:160px;border-radius:6px;position:relative;cursor:pointer}.wov-color-slider-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px}.wov-color-slider-thumb{position:absolute;left:50%;width:16px;height:8px;border-radius:4px;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.wov-color-picker{display:inline-flex;flex-direction:column;align-items:stretch;background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a;padding:8px}.wov-color-picker-area{display:flex;gap:8px}.wov-color-picker-selector{width:160px;height:160px;border-radius:6px;position:relative;cursor:crosshair}.wov-color-picker-selector-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0)}.wov-color-picker-selector-thumb{position:absolute;width:14px;height:14px;border-radius:9999px;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.wov-color-picker-opacity{background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0px;background-color:#404040}.wov-color-bubbles{color:var(--wov-gray-100);background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a;display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;padding:8px;justify-content:center}.wov-color-bubble{width:20px;height:20px;border-radius:9999px;outline-style:solid;outline-width:1px;outline-color:#fff5;cursor:pointer}.wov-color-bubble.selected{outline-width:2px;outline-color:var(--wov-primary);outline-offset:2px}.wov-rainbow-bubble{background:radial-gradient(50% 50% at 50% 50%,#ffffff 0%,transparent 100%),conwov-gradient(from 0deg at 50% 50%,red,#ffa800 47.73deg,#ff0 79.56deg,#0f0 121.33deg,#0ff 180.99deg,#00f 238.67deg,#f0f 294.36deg,red 360deg),#c4c4c4}.wov-color-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:8px;margin:0 8px}.wov-color-swatch{width:20px;height:20px;border-radius:9999px;outline-style:solid;outline-width:1px;outline-color:#fff5}.wov-menu-button{display:flex;align-items:center;justify-content:center;height:32px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-100);transition:background-color .15s ease,color .15s ease}.wov-menu-button:hover{background:#0000000d}.wov-active{background:var(--wov-primary)}.wov-menu-button svg{width:22px;height:18px;flex-shrink:0}.wov-menu-tooltip{position:absolute;z-index:var(--wov-z-tooltip);width:max-content;background:var(--wov-gray-700);color:var(--wov-gray-100);font-weight:700;padding:5px 10px;border-radius:var(--wov-menu-tooltip-border-radius);font-size:70%;pointer-events:none}.wov-tooltip-fade-enter-active{transition:opacity .15s ease-out}.wov-tooltip-fade-leave-active{transition:opacity .1s ease-out}.wov-tooltip-fade-enter-from,.wov-tooltip-fade-leave-to{opacity:0}.wov-fill-color-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:8px;margin:0 8px}.wov-fill-color-icon{width:18px;height:18px}.wov-fill-dropdown{display:flex;flex-direction:column}.wov-fill-mode-section{display:flex;flex-direction:row;justify-content:space-evenly;background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius) var(--wov-menu-border-radius) 0 0;margin-bottom:-2px}.wov-fill-mode-option{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;padding:6px 4px;border:none;background:transparent;cursor:pointer;border-radius:0;color:var(--wov-gray-100);font-size:11px}.wov-fill-mode-option:first-child{border-top-left-radius:8px}.wov-fill-mode-option:last-child{border-top-right-radius:8px}.wov-fill-mode-option:hover,.wov-fill-mode-option.is-active{background:var(--wov-gray-600)}.wov-fill-mode-option svg{width:24px;height:24px}.wov-shape-kind-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:6px;margin:0 8px}.wov-shape-kind-icon{width:18px;height:18px}.wov-shape-kind-dropdown{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:8px;background:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);min-width:200px}.wov-shape-kind-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;border:none;background:transparent;color:var(--wov-gray-100);cursor:pointer;border-radius:4px;font-size:10px}.wov-shape-kind-option:hover{background:var(--wov-gray-600)}.wov-shape-kind-option.is-selected{background:var(--wov-primary-600)}.wov-shape-option-icon{width:24px;height:24px}.wov-stroke-style-section{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:-2px}.wov-stroke-style-option{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;padding:6px 4px;border:none;background:transparent;cursor:pointer;border-radius:0;color:var(--wov-gray-100);font-size:11px}.wov-stroke-style-option:first-child{border-top-left-radius:8px}.wov-stroke-style-option:last-child{border-top-right-radius:8px}.wov-stroke-style-option:hover{background:var(--wov-gray-700)}.wov-stroke-style-option.is-active{background:var(--wov-gray-600)}.wov-stroke-style-option svg{width:32px;height:12px}.wov-stroke-color-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:6px;margin:0 8px}.wov-stroke-color-icon{width:18px;height:18px}.wov-stroke-dropdown{display:flex;flex-direction:column}.wov-stroke-divider{height:1px;background:var(--wov-gray-600);margin:0 8px}.wov-text-color-button{display:flex;flex-shrink:0;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:8px;padding:0 0 0 8px}.wov-text-icon-container{display:flex;flex-shrink:0;flex-direction:column;align-items:center;justify-content:center}.wov-text-icon{width:16px;height:16px}.wov-color-underline{width:100%;height:3px;margin-top:2px;border:1px solid var(--wov-gray-500);border-radius:1px}.wov-font-family-button{display:flex;cursor:pointer;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;height:100%;gap:8px;padding:0 12px}.wov-font-family-label{font-size:14px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.wov-font-family-menu{background-color:var(--wov-gray-700);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;border-radius:8px;cursor:default;width:200px}.wov-font-list{max-height:200px;color:#fff;overflow-y:auto;overflow-x:hidden;border-radius:8px}.wov-font-list>*:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.wov-font-list>*:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.wov-font-item{display:flex;align-items:center;height:32px;padding:0 12px;width:100%;transition:background-color .2s;cursor:pointer}.wov-font-item.active{background-color:var(--wov-primary)}.wov-font-item:not(.active):hover{background-color:var(--wov-gray-600)}.wov-font-preview{filter:invert(1);height:50%;overflow:hidden;object-fit:cover;object-position:left}.wov-font-name{font-size:14px}.wov-font-size-button{display:flex;cursor:pointer;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;height:100%;gap:8px;padding:0 12px}.wov-font-size-label{font-size:14px;white-space:nowrap}.wov-font-size-menu{background-color:var(--wov-gray-700);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;border-radius:8px;cursor:pointer;width:150px}.wov-font-size-menu>*:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.wov-font-size-option{display:flex;align-items:center;height:40px;padding:0 32px;transition:background-color .2s}.wov-font-size-option.active{background-color:var(--wov-primary)}.wov-font-size-option:not(.active):hover{background-color:var(--wov-gray-600)}.wov-check-icon{color:#fff;width:16px;margin-right:8px;margin-left:-24px}.wov-option-label{color:#fff}.wov-separator{margin:4px 0;width:100%;height:.75px;background-color:var(--wov-gray-600)}.wov-input-container{display:flex;position:relative;align-items:center;justify-content:center}.wov-custom-input{background-color:var(--wov-gray-700);width:100%;margin:8px;border-radius:6px;border:none;padding:8px;color:#fff;font-size:14px;outline:1px solid var(--wov-gray-600)}.wov-custom-input:hover{outline:1px solid var(--wov-gray-500)}.wov-custom-input:focus{outline:2px solid var(--wov-primary)}.wov-px-suffix{position:absolute;right:16px;color:var(--wov-gray-400);font-size:14px}.wov-floating-menu-bar{display:flex;overflow:hidden;cursor:pointer;height:40px;color:var(--wov-gray-100);background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-floating-menu-bar>*:first-child{border-top-left-radius:var(--wov-menu-border-radius);border-bottom-left-radius:var(--wov-menu-border-radius)}.wov-floating-menu-bar>*:last-child{border-top-right-radius:var(--wov-menu-border-radius);border-bottom-right-radius:var(--wov-menu-border-radius)}.wov-floating-menu-bar>*{height:100%;transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-floating-menu-bar>*:hover:not([divider]){background-color:var(--wov-gray-600)}.wov-floating-menu-bar>*[menu-open]{background-color:var(--wov-gray-600)}.wov-floating-menu-bar>.wov-active:hover{background:var(--wov-primary-light)}.wov-divider{width:1px!important;height:24px!important;margin:auto 0;background-color:var(--wov-gray-600);flex-shrink:0}.wov-floating-menu{position:absolute;z-index:var(--wov-z-floating-menu);pointer-events:auto}.wov-floating-menu-inner{transition:transform .15s ease-out}.wov-fade-enter-active{transition:opacity .15s ease-out}.wov-fade-enter-from{opacity:0}.wov-fade-enter-from .wov-floating-menu-inner{transform:translateY(10px)}.wov-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--wov-z-overlay);display:flex;align-items:center;justify-content:center;background:#00000080;pointer-events:all}.wov-loading-spinner{font-size:24px;font-family:monospace;color:var(--wov-gray-100, #f5f5f5)}.wov-loading-fade-enter-active,.wov-loading-fade-leave-active{transition:opacity .3s ease}.wov-loading-fade-enter-from,.wov-loading-fade-leave-to{opacity:0}.wov-toolbar-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-100);transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-toolbar-button:hover{background-color:var(--wov-gray-600)}.wov-toolbar-button.selected{background-color:var(--wov-primary)}.wov-toolbar-button svg{width:20px;height:20px}.wov-toolbar-container{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:var(--wov-z-ui)}.wov-toolbar{display:flex;gap:8px;padding:8px 10px;overflow:hidden;cursor:pointer;color:var(--wov-gray-100);background-color:var(--wov-gray-100);border-radius:12px;box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-toolbar *{transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-toolbar *[menu-open]{background-color:var(--wov-gray-600)}.wov-toolbar-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius)}.wov-toolbar-button:hover{background-color:var(--wov-gray-200)}.wov-toolbar-button.selected{background-color:var(--wov-primary);color:var(--wov-gray-100)}.wov-toolbar-button svg{width:20px;height:20px;display:block;flex-shrink:0}.menu{background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.wov-user-presence{position:absolute;top:8px;right:8px;z-index:var(--wov-z-ui)}.wov-user-presence-trigger{display:flex;align-items:center;padding:4px;border:none;border-radius:20px;background:transparent;cursor:pointer;transition:background-color .15s ease}.wov-user-presence-trigger:hover,.wov-user-presence-trigger.is-open{background-color:#00000014}.wov-user-presence-avatars{display:flex;flex-direction:row-reverse}.wov-user-presence-avatars .wov-user-avatar:not(:first-child){margin-right:-12px}.wov-user-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;box-shadow:0 2px 4px #0000001a;border:2px solid white;-webkit-user-select:none;user-select:none}.wov-user-avatar-small{width:28px;height:28px;font-size:11px;flex-shrink:0}.wov-user-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.wov-user-presence-dropdown{position:absolute;top:100%;right:0;margin-top:8px;min-width:200px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.wov-user-presence-list{max-height:240px;overflow-y:auto}.wov-user-presence-item{display:flex;align-items:center;gap:12px;padding:8px 16px}.wov-user-presence-item:hover{background-color:#f9fafb}.wov-user-presence-name{font-size:13px;color:#374151;font-family:system-ui,-apple-system,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wov-selection-box{box-sizing:border-box;width:100%;height:100%;background-color:var(--wov-selection-box-bg);border-style:solid;border-width:calc(3px / var(--wov-zoom));border-color:var(--wov-primary)}.wov-transform-box{position:relative;width:100%;height:100%;box-sizing:border-box;border:calc(2px / var(--wov-zoom)) solid var(--wov-primary);pointer-events:none}.wov-transform-handle{position:relative;width:100%;height:100%;box-sizing:border-box;border:calc(2px / var(--wov-zoom)) solid var(--wov-primary);border-radius:calc(2px / var(--wov-zoom));background-color:var(--wov-gray-100);transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-block[data-hovered]>.wov-transform-handle{background-color:var(--wov-primary)}.wov-sticky-note{width:100%;height:fit-content;display:flex;padding:8%;box-sizing:border-box;box-shadow:#101820a6 0 4px 5px -6px,#10182073 0 11px 13px -12px,#10182d06 0 45px 10px -12px inset}.wov-user-cursors{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:var(--wov-z-cursors)}.wov-user-cursor{position:absolute;top:0;left:0;pointer-events:none;will-change:transform;transition:transform .1s ease-out}.wov-cursor-svg{display:block}.wov-cursor-label{position:absolute;top:16px;left:10px;padding:2px 6px;border-radius:4px;font-size:11px;font-family:system-ui,-apple-system,sans-serif;color:#fff;white-space:nowrap;-webkit-user-select:none;user-select:none}.wov-offline-indicator{position:absolute;top:12px;right:12px;z-index:var(--wov-z-ui);padding:6px 12px;color:var(--wov-gray-400);border-radius:6px;font-size:13px;font-weight:500;pointer-events:none}.wov-version-mismatch-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--wov-z-overlay);display:flex;align-items:center;justify-content:center;background:#00000080}.wov-version-mismatch-dialog{background:var(--wov-gray-50);color:var(--wov-gray-900);border-radius:12px;padding:24px 32px;text-align:center;box-shadow:0 4px 24px #0003}.wov-version-mismatch-dialog p{margin:0 0 8px;font-size:14px}.wov-version-mismatch-dialog button{margin-top:12px;padding:8px 20px;border:none;border-radius:6px;background:var(--wov-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.wov-version-mismatch-dialog button:hover{background:var(--wov-primary-light)}.wov-back-to-content{position:absolute;top:16px;left:16px;z-index:var(--wov-z-ui);display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:500;color:var(--wov-gray-700, #374151);background-color:var(--wov-gray-100, #ffffff);border:1px solid var(--wov-gray-300, #d1d5db);border-radius:8px;cursor:pointer;box-shadow:0 1px 2px #0000000d,0 1px 3px #0000001a;transition:background-color .15s ease,border-color .15s ease}.wov-back-to-content:hover{background-color:var(--wov-gray-200, #f3f4f6);border-color:var(--wov-gray-400, #9ca3af)}.wov-back-to-content:active{background-color:var(--wov-gray-300, #e5e7eb)}.wov-back-to-content svg{flex-shrink:0}.wov-menu-button{display:flex;align-items:center;justify-content:center;height:100%;gap:4px;padding:0 8px}.wov-menu-dropdown{display:flex;background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);overflow:hidden;box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-menu-option{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--wov-gray-100);cursor:pointer;transition:background-color .15s ease}.wov-menu-option:hover{background-color:var(--wov-gray-600)}.wov-menu-option.is-active{background-color:var(--wov-primary)}
1
+ @import"https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap";@layer wov-reset{.wov-root :where(*:not(svg,svg *)){all:revert}}.wov-root{--wov-primary: #6a58f2;--wov-primary-light: #8a76f4;--wov-error: #ff4d4f;--wov-gray-100: #f8f9f9;--wov-gray-200: #e3e5e8;--wov-gray-300: #c7ccd1;--wov-gray-400: #9099a4;--wov-gray-500: #4f5660;--wov-gray-600: #2e3338;--wov-gray-700: #060607;--wov-z-block-content: 1;--wov-z-cursors: 50;--wov-z-ui: 100;--wov-z-floating-menu: 101;--wov-z-overlay: 1000;--wov-z-dropdown: 1001;--wov-z-tooltip: 1002;--wov-font-family: "Figtree", sans-serif;--wov-menu-border-radius: 12px;--wov-menu-tooltip-border-radius: 6px;--wov-transition-duration: .15s;--wov-transition-timing-function: cubwov-bezier(.4, 0, .2, 1);--wov-highlighted-block-outline-color: var(--wov-primary);--wov-highlighted-block-outline-width: 1.5px;--wov-highlighted-block-outline-offset: -1px;--wov-highlighted-block-border-radius: 2px;--wov-selection-box-bg: #5865f222;--wov-text-selection-color: var(--wov-primary-light)}.wov-root{font-family:var(--wov-font-family);touch-action:none}.wov-root svg{display:block}.wov-root ::selection{background-color:var(--wov-text-selection-color)}.wov-block[data-hovered]>*,.wov-block[data-selected]>*{outline:calc(var(--wov-highlighted-block-outline-width) / var(--wov-zoom, 1)) solid var(--wov-highlighted-block-outline-color);outline-offset:calc(var(--wov-highlighted-block-outline-offset) / var(--wov-zoom, 1));border-radius:calc(var(--wov-highlighted-block-border-radius) / var(--wov-zoom, 1))}.wov-block[data-held-by-other]>*{outline:calc(3px / var(--wov-zoom, 1)) solid var(--wov-held-by-color);outline-offset:calc(2px / var(--wov-zoom, 1));border-radius:calc(var(--wov-highlighted-block-border-radius) / var(--wov-zoom, 1))}@media (hover: none){.wov-menu-tooltip{display:none!important}}.wov-arc-arrow[data-v-bcf5b4f3]{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible;box-sizing:border-box}.arrow-svg[data-v-bcf5b4f3]{width:100%;height:100%;overflow:visible!important}.highlight-overlay[data-v-bcf5b4f3]{stroke:var(--wov-highlighted-block-outline-color)}.wov-block[data-hovered]>.wov-arc-arrow,.wov-block[data-selected]>.wov-arc-arrow{outline:none}.wov-arrow-handle{position:relative;display:block;width:100%;height:100%}.wov-arrow-handle-inner{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;width:100%;height:100%}.wov-arrow-handle-inner:before{content:"";position:absolute;left:50%;top:50%;border-radius:50%;box-sizing:border-box;background-color:var(--wov-primary-light);transform:translate(-50%,-50%) scale(calc(1 / var(--wov-zoom)));transform-origin:center center;transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration);opacity:0}.wov-arrow-handle-inner:after{content:"";position:absolute;left:50%;top:50%;width:50%;height:50%;border-radius:50%;box-sizing:border-box;border:calc(2px / var(--wov-zoom)) solid var(--wov-primary);background-color:var(--wov-gray-100);transform:translate(-50%,-50%);transform-origin:center center;transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-block[data-hovered]>.wov-arrow-handle{outline:none}.wov-block[data-hovered]>.wov-arrow-handle>.wov-arrow-handle-inner:before{opacity:.4}.wov-arrow-terminal{position:relative;display:block;width:100%;height:100%;pointer-events:none}.wov-arrow-terminal-ring{position:absolute;left:50%;top:50%;width:100%;height:100%;border-radius:50%;box-sizing:border-box;border:calc(3px / var(--wov-zoom)) solid var(--wov-primary);transform:translate(-50%,-50%);transform-origin:center center}.wov-arrow-terminal-fill{width:100%;height:100%;border-radius:50%;background-color:var(--wov-gray-100);opacity:.8}.wov-elbow-arrow[data-v-b2719db1]{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible;box-sizing:border-box}.arrow-svg[data-v-b2719db1]{width:100%;height:100%;overflow:visible!important}.highlight-bg[data-v-b2719db1]{stroke:var(--wov-gray-600)}.highlight-overlay[data-v-b2719db1]{stroke:var(--wov-highlighted-block-outline-color)}.wov-block[data-hovered]>.wov-elbow-arrow,.wov-block[data-selected]>.wov-elbow-arrow{outline:none}.wov-eraser-stroke{position:relative;width:100%;height:100%}.wov-eraser-stroke *{box-sizing:border-box;overflow:visible;display:block}.wov-eraser-stroke svg{width:100%;height:100%;overflow:visible}.wov-image-block{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.wov-image-block img{display:block}.wov-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#8080801a;border:1px dashed rgba(128,128,128,.3);border-radius:4px;color:#808080b3;font-size:14px}.wov-image-error{background-color:#ff00000d;border-color:#f003;color:#ff0000b3}.wov-image-upload-overlay{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background-color:#0009;color:#fff;font-size:12px;text-align:center}.wov-image-upload-status{display:inline-block}.wov-pen-stroke[data-v-9b41c649]{position:relative;width:100%;height:100%}.wov-pen-stroke[data-v-9b41c649] *{box-sizing:border-box;overflow:visible;display:block}.wov-pen-stroke svg[data-v-9b41c649]{width:100%;height:100%;overflow:visible}.wov-pen-stroke .highlight[data-v-9b41c649]{position:absolute;top:0;right:0;bottom:0;left:0}.wov-block[data-hovered]>.wov-pen-stroke,.wov-block[data-selected]>.wov-pen-stroke{outline:none}.wov-block[data-held-by-other]>.wov-pen-stroke:not([data-complete]){outline:none}.wov-editable-text{width:100%;display:block;color:#000}.wov-editable-text p{margin:0}.wov-editable-text p:empty:before{content:"";display:inline-block}.wov-editable-text .ProseMirror{outline:none;white-space:inherit;word-wrap:break-word}.wov-editable-text .ProseMirror-focused{outline:none}.wov-shape-block{position:relative;width:100%;height:100%;display:flex;box-sizing:border-box}.wov-shape-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:-1}.wov-shape-content{width:100%;height:100%;display:flex;box-sizing:border-box;padding:8px;z-index:1}.wov-text-block{width:fit-content;height:fit-content}.wov-block[data-selected]>.wov-text-block{outline:none}.wov-block[data-held-by-other]>.wov-text-block[data-text-empty]{outline:none}.wov-menu-dropdown-trigger{display:flex;align-items:center;justify-content:center;cursor:pointer}.wov-menu-dropdown{position:absolute;z-index:var(--wov-z-dropdown)}input.wov-color-input{margin-bottom:8px;box-sizing:border-box;padding:6px 8px;font-size:18px;text-align:center;font-family:inherit;color:var(--wov-gray-100);background-color:var(--wov-gray-600);border:1px solid var(--wov-gray-600);border-radius:4px;outline:none}input.wov-color-input:focus{border-color:var(--wov-primary)}.wov-color-slider{width:16px;height:160px;border-radius:6px;position:relative;cursor:pointer}.wov-color-slider-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px}.wov-color-slider-thumb{position:absolute;left:50%;width:16px;height:8px;border-radius:4px;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.wov-color-picker{display:inline-flex;flex-direction:column;align-items:stretch;background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a;padding:8px}.wov-color-picker-area{display:flex;gap:8px}.wov-color-picker-selector{width:160px;height:160px;border-radius:6px;position:relative;cursor:crosshair}.wov-color-picker-selector-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0)}.wov-color-picker-selector-thumb{position:absolute;width:14px;height:14px;border-radius:9999px;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.wov-color-picker-opacity{background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0px;background-color:#404040}.wov-color-bubbles{color:var(--wov-gray-100);background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a;display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;padding:8px;justify-content:center}.wov-color-bubble{width:20px;height:20px;border-radius:9999px;outline-style:solid;outline-width:1px;outline-color:#fff5;cursor:pointer}.wov-color-bubble.selected{outline-width:2px;outline-color:var(--wov-primary);outline-offset:2px}.wov-rainbow-bubble{background:radial-gradient(50% 50% at 50% 50%,#ffffff 0%,transparent 100%),conic-gradient(from 0deg at 50% 50%,red,#ffa800 47.73deg,#ff0 79.56deg,#0f0 121.33deg,#0ff 180.99deg,#00f 238.67deg,#f0f 294.36deg,red 360deg),#c4c4c4}.wov-color-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:8px;margin:0 8px}.wov-color-swatch{width:20px;height:20px;border-radius:9999px;outline-style:solid;outline-width:1px;outline-color:#fff5}.wov-menu-button{display:flex;align-items:center;justify-content:center;height:32px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-100);transition:background-color .15s ease,color .15s ease}.wov-menu-button:hover{background:#0000000d}.wov-active{background:var(--wov-primary)}.wov-menu-button svg{width:22px;height:18px;flex-shrink:0}.wov-menu-tooltip{position:absolute;z-index:var(--wov-z-tooltip);width:max-content;background:var(--wov-gray-700);color:var(--wov-gray-100);font-weight:700;padding:5px 10px;border-radius:var(--wov-menu-tooltip-border-radius);font-size:70%;pointer-events:none}.wov-tooltip-fade-enter-active{transition:opacity .15s ease-out}.wov-tooltip-fade-leave-active{transition:opacity .1s ease-out}.wov-tooltip-fade-enter-from,.wov-tooltip-fade-leave-to{opacity:0}.wov-fill-color-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:8px;margin:0 8px}.wov-fill-color-icon{width:18px;height:18px}.wov-fill-dropdown{display:flex;flex-direction:column}.wov-fill-mode-section{display:flex;flex-direction:row;justify-content:space-evenly;background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius) var(--wov-menu-border-radius) 0 0;margin-bottom:-2px}.wov-fill-mode-option{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;padding:6px 4px;border:none;background:transparent;cursor:pointer;border-radius:0;color:var(--wov-gray-100);font-size:11px}.wov-fill-mode-option:first-child{border-top-left-radius:8px}.wov-fill-mode-option:last-child{border-top-right-radius:8px}.wov-fill-mode-option:hover,.wov-fill-mode-option.is-active{background:var(--wov-gray-600)}.wov-fill-mode-option svg{width:24px;height:24px}.wov-shape-kind-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:6px;margin:0 8px}.wov-shape-kind-icon{width:18px;height:18px}.wov-shape-kind-dropdown{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:8px;background:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);min-width:200px}.wov-shape-kind-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;border:none;background:transparent;color:var(--wov-gray-100);cursor:pointer;border-radius:4px;font-size:10px}.wov-shape-kind-option:hover{background:var(--wov-gray-600)}.wov-shape-kind-option.is-selected{background:var(--wov-primary-600)}.wov-shape-option-icon{width:24px;height:24px}.wov-stroke-style-section{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:-2px}.wov-stroke-style-option{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;padding:6px 4px;border:none;background:transparent;cursor:pointer;border-radius:0;color:var(--wov-gray-100);font-size:11px}.wov-stroke-style-option:first-child{border-top-left-radius:8px}.wov-stroke-style-option:last-child{border-top-right-radius:8px}.wov-stroke-style-option:hover{background:var(--wov-gray-700)}.wov-stroke-style-option.is-active{background:var(--wov-gray-600)}.wov-stroke-style-option svg{width:32px;height:12px}.wov-stroke-color-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:6px;margin:0 8px}.wov-stroke-color-icon{width:18px;height:18px}.wov-stroke-dropdown{display:flex;flex-direction:column}.wov-stroke-divider{height:1px;background:var(--wov-gray-600);margin:0 8px}.wov-font-family-button{display:flex;cursor:pointer;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;height:100%;gap:8px;padding:0 12px}.wov-font-family-label{font-size:14px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.wov-font-family-menu{background-color:var(--wov-gray-700);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;border-radius:8px;cursor:default;width:200px}.wov-font-list{max-height:200px;color:#fff;overflow-y:auto;overflow-x:hidden;border-radius:8px}.wov-font-list>*:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.wov-font-list>*:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.wov-font-item{display:flex;align-items:center;height:32px;padding:0 12px;width:100%;transition:background-color .2s;cursor:pointer}.wov-font-item.active{background-color:var(--wov-primary)}.wov-font-item:not(.active):hover{background-color:var(--wov-gray-600)}.wov-font-preview{filter:invert(1);height:50%;overflow:hidden;object-fit:cover;object-position:left}.wov-font-name{font-size:14px}.wov-font-size-button{display:flex;cursor:pointer;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;height:100%;gap:8px;padding:0 12px}.wov-font-size-label{font-size:14px;white-space:nowrap}.wov-font-size-menu{background-color:var(--wov-gray-700);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;border-radius:8px;cursor:pointer;width:150px}.wov-font-size-menu>*:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.wov-font-size-option{display:flex;align-items:center;height:40px;padding:0 32px;transition:background-color .2s}.wov-font-size-option.active{background-color:var(--wov-primary)}.wov-font-size-option:not(.active):hover{background-color:var(--wov-gray-600)}.wov-check-icon{color:#fff;width:16px;margin-right:8px;margin-left:-24px}.wov-option-label{color:#fff}.wov-separator{margin:4px 0;width:100%;height:.75px;background-color:var(--wov-gray-600)}.wov-input-container{display:flex;position:relative;align-items:center;justify-content:center}.wov-custom-input{background-color:var(--wov-gray-700);width:100%;margin:8px;border-radius:6px;border:none;padding:8px;color:#fff;font-size:14px;outline:1px solid var(--wov-gray-600)}.wov-custom-input:hover{outline:1px solid var(--wov-gray-500)}.wov-custom-input:focus{outline:2px solid var(--wov-primary)}.wov-px-suffix{position:absolute;right:16px;color:var(--wov-gray-400);font-size:14px}.wov-text-color-button{display:flex;flex-shrink:0;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:8px;padding:0 0 0 8px}.wov-text-icon-container{display:flex;flex-shrink:0;flex-direction:column;align-items:center;justify-content:center}.wov-text-icon{width:16px;height:16px}.wov-color-underline{width:100%;height:3px;margin-top:2px;border:1px solid var(--wov-gray-500);border-radius:1px}.wov-text-group-button{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;gap:4px;padding:0 12px}.wov-text-group-icon{width:18px;height:18px}.wov-text-group-dropdown{display:flex;flex-direction:column;background-color:var(--wov-gray-700);border-radius:12px;padding:8px;gap:4px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.wov-text-group-row{display:flex;align-items:center;height:40px;border-radius:8px;overflow:hidden;background-color:var(--wov-gray-600)}.wov-text-group-row>*{height:100%}.wov-text-group-row-full>*:not(.wov-text-group-spacer){flex:1}.wov-text-group-row>*:hover:not(.wov-text-group-spacer){background-color:var(--wov-gray-500)}.wov-text-group-spacer{width:1px;height:24px;margin:auto 4px;background-color:var(--wov-gray-500)}.wov-floating-menu-bar{display:flex;overflow:hidden;cursor:pointer;height:40px;color:var(--wov-gray-100);background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-floating-menu-bar>*:first-child{border-top-left-radius:var(--wov-menu-border-radius);border-bottom-left-radius:var(--wov-menu-border-radius)}.wov-floating-menu-bar>*:last-child{border-top-right-radius:var(--wov-menu-border-radius);border-bottom-right-radius:var(--wov-menu-border-radius)}.wov-floating-menu-bar>*{height:100%;transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-floating-menu-bar>*:hover:not([divider]){background-color:var(--wov-gray-600)}.wov-floating-menu-bar>*[menu-open]{background-color:var(--wov-gray-600)}.wov-floating-menu-bar>.wov-active:hover{background:var(--wov-primary-light)}.wov-divider{width:1px!important;height:24px!important;margin:auto 0;background-color:var(--wov-gray-600);flex-shrink:0}.wov-floating-menu{position:absolute;z-index:var(--wov-z-floating-menu);pointer-events:auto}.wov-floating-menu-inner{transition:transform .15s ease-out}.wov-fade-enter-active{transition:opacity .15s ease-out}.wov-fade-enter-from{opacity:0}.wov-fade-enter-from .wov-floating-menu-inner{transform:translateY(10px)}.wov-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--wov-z-overlay);display:flex;align-items:center;justify-content:center;background:#00000080;pointer-events:all}.wov-loading-spinner{font-size:24px;font-family:monospace;color:var(--wov-gray-100, #f5f5f5)}.wov-loading-fade-enter-active,.wov-loading-fade-leave-active{transition:opacity .3s ease}.wov-loading-fade-enter-from,.wov-loading-fade-leave-to{opacity:0}.wov-action-bar{display:none}@media (pointer: coarse){.wov-action-bar{display:flex;width:fit-content;gap:8px;padding:4px 8px;margin-left:10px;background-color:var(--wov-gray-200);border-top-left-radius:10px;border-top-right-radius:10px;box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-action-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius)}.wov-action-button:hover{background-color:var(--wov-gray-200)}.wov-action-button:active{background-color:var(--wov-gray-300)}.wov-action-button:disabled{opacity:.4;cursor:default}.wov-action-button svg{width:14px;height:14px;display:block;flex-shrink:0}}.wov-toolbar-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-100);transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-toolbar-button:hover{background-color:var(--wov-gray-600)}.wov-toolbar-button.selected{background-color:var(--wov-primary)}.wov-toolbar-button svg{width:20px;height:20px}.wov-toolbar-container{position:absolute;bottom:calc(var(--wov-toolbar-bottom-offset, 20px) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:var(--wov-z-ui)}.wov-toolbar{display:flex;gap:8px;padding:8px 10px;overflow:hidden;cursor:pointer;color:var(--wov-gray-100);background-color:var(--wov-gray-100);border-radius:12px;box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-toolbar *{transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-toolbar *[menu-open]{background-color:var(--wov-gray-600)}.wov-toolbar-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;cursor:pointer;color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius)}.wov-toolbar-button:hover{background-color:var(--wov-gray-200)}.wov-toolbar-button.selected{background-color:var(--wov-primary);color:var(--wov-gray-100)}.wov-toolbar-button svg{width:20px;height:20px;display:block;flex-shrink:0}.wov-overflow-button.menu-open{background-color:var(--wov-gray-300)}.wov-toolbar-overflow-menu{display:flex;gap:8px;padding:8px 10px;background-color:var(--wov-gray-100);border-radius:12px;box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a;z-index:var(--wov-z-dropdown)}.menu{background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.wov-user-presence{position:absolute;top:8px;right:8px;z-index:var(--wov-z-ui)}.wov-user-presence-trigger{display:flex;align-items:center;padding:4px;border:none;border-radius:20px;background:transparent;cursor:pointer;transition:background-color .15s ease}.wov-user-presence-trigger:hover,.wov-user-presence-trigger.is-open{background-color:#00000014}.wov-user-presence-avatars{display:flex;flex-direction:row-reverse}.wov-user-presence-avatars .wov-user-avatar:not(:first-child){margin-right:-12px}.wov-user-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;box-shadow:0 2px 4px #0000001a;border:2px solid white;-webkit-user-select:none;user-select:none}.wov-user-avatar-small{width:28px;height:28px;font-size:11px;flex-shrink:0}.wov-user-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.wov-user-presence-dropdown{position:absolute;top:100%;right:0;margin-top:8px;min-width:200px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.wov-user-presence-list{max-height:240px;overflow-y:auto}.wov-user-presence-item{display:flex;align-items:center;gap:12px;padding:8px 16px}.wov-user-presence-item:hover{background-color:#f9fafb}.wov-user-presence-name{font-size:13px;color:#374151;font-family:system-ui,-apple-system,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wov-selection-box{box-sizing:border-box;width:100%;height:100%;background-color:var(--wov-selection-box-bg);border-style:solid;border-width:calc(3px / var(--wov-zoom));border-color:var(--wov-primary)}.wov-transform-box{position:relative;width:100%;height:100%;box-sizing:border-box;border:calc(2px / var(--wov-zoom)) solid var(--wov-primary);pointer-events:none}.wov-transform-handle{position:relative;width:100%;height:100%;box-sizing:border-box;border:calc(2px / var(--wov-zoom)) solid var(--wov-primary);border-radius:calc(2px / var(--wov-zoom));background-color:var(--wov-gray-100);transition-property:background-color;transition-timing-function:var(--wov-transition-timing-function);transition-duration:var(--wov-transition-duration)}.wov-block[data-hovered]>.wov-transform-handle{background-color:var(--wov-primary)}.wov-sticky-note{width:100%;height:fit-content;display:flex;padding:8%;box-sizing:border-box;box-shadow:#101820a6 0 4px 5px -6px,#10182073 0 11px 13px -12px,#10182d06 0 45px 10px -12px inset}.wov-image-drop-zone{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.wov-image-drop-zone.wov-drag-over{pointer-events:auto;background-color:#3b82f61a;border:2px dashed rgba(59,130,246,.5);z-index:9999}.wov-user-cursors{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:var(--wov-z-cursors)}.wov-user-cursor{position:absolute;top:0;left:0;pointer-events:none;will-change:transform;transition:transform .1s ease-out}.wov-cursor-svg{display:block}.wov-cursor-label{position:absolute;top:16px;left:10px;padding:2px 6px;border-radius:4px;font-size:11px;font-family:system-ui,-apple-system,sans-serif;color:#fff;white-space:nowrap;-webkit-user-select:none;user-select:none}.wov-offline-indicator{position:absolute;top:12px;right:12px;z-index:var(--wov-z-ui);padding:6px 12px;color:var(--wov-gray-400);border-radius:6px;font-size:13px;font-weight:500;pointer-events:none}.wov-version-mismatch-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--wov-z-overlay);display:flex;align-items:center;justify-content:center;background:#00000080}.wov-version-mismatch-dialog{background:var(--wov-gray-50);color:var(--wov-gray-900);border-radius:12px;padding:24px 32px;text-align:center;box-shadow:0 4px 24px #0003}.wov-version-mismatch-dialog p{margin:0 0 8px;font-size:14px}.wov-version-mismatch-dialog button{margin-top:12px;padding:8px 20px;border:none;border-radius:6px;background:var(--wov-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.wov-version-mismatch-dialog button:hover{background:var(--wov-primary-light)}.wov-back-to-content{position:absolute;top:16px;left:16px;z-index:var(--wov-z-ui);display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:500;color:var(--wov-gray-700, #374151);background-color:var(--wov-gray-100, #ffffff);border:1px solid var(--wov-gray-300, #d1d5db);border-radius:8px;cursor:pointer;box-shadow:0 1px 2px #0000000d,0 1px 3px #0000001a;transition:background-color .15s ease,border-color .15s ease}.wov-back-to-content:hover{background-color:var(--wov-gray-200, #f3f4f6);border-color:var(--wov-gray-400, #9ca3af)}.wov-back-to-content:active{background-color:var(--wov-gray-300, #e5e7eb)}.wov-back-to-content svg{flex-shrink:0}.wov-menu-button{display:flex;align-items:center;justify-content:center;height:100%;gap:4px;padding:0 8px}.wov-menu-dropdown{display:flex;background-color:var(--wov-gray-700);border-radius:var(--wov-menu-border-radius);overflow:hidden;box-shadow:0 0 .5px #0000002e,0 3px 8px #0000001a,0 1px 3px #0000001a}.wov-menu-option{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--wov-gray-100);cursor:pointer;transition:background-color .15s ease}.wov-menu-option:hover{background-color:var(--wov-gray-600)}.wov-menu-option.is-active{background-color:var(--wov-primary)}