@woven-canvas/vue 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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-safe-area-bottom: 0px;--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;-webkit-tap-highlight-color:transparent}.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.wov-active{background-color: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;color:var(--wov-gray-100);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>.wov-menu-button.wov-active{background-color:var(--wov-primary)}.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(20px + var(--wov-safe-area-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)}
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-safe-area-bottom: 0px;--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;-webkit-tap-highlight-color:transparent}.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{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.wov-active{background-color: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;color:var(--wov-gray-100);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>.wov-menu-button.wov-active{background-color:var(--wov-primary)}.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(20px + var(--wov-safe-area-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)}
@@ -8,10 +8,6 @@ export interface BlockDimensions {
8
8
  left: number;
9
9
  top: number;
10
10
  }
11
- export declare function getUnrotatedDimensions(aabbWidth: number, aabbHeight: number, angle: number): {
12
- width: number;
13
- height: number;
14
- };
15
11
  export declare function computeBlockDimensions(element: HTMLElement, camera: ShallowRef<CameraValue>, screen: ShallowRef<ScreenValue>): BlockDimensions;
16
12
  export {};
17
13
  //# sourceMappingURL=blockDimensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockDimensions.d.ts","sourceRoot":"","sources":["../../src/utils/blockDimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,KAAK,WAAW,GAAG,wBAAwB,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACjE,KAAK,WAAW,GAAG,wBAAwB,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAMD,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgBnC;AAMD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,EAC/B,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAC9B,eAAe,CA0CjB"}
1
+ {"version":3,"file":"blockDimensions.d.ts","sourceRoot":"","sources":["../../src/utils/blockDimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,KAAK,WAAW,GAAG,wBAAwB,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACjE,KAAK,WAAW,GAAG,wBAAwB,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAMD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,EAC/B,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAC9B,eAAe,CAgCjB"}
@@ -1,4 +1,4 @@
1
- export { type BlockDimensions, computeBlockDimensions, getUnrotatedDimensions, } from './blockDimensions';
1
+ export { type BlockDimensions, computeBlockDimensions, } from './blockDimensions';
2
2
  export { type HSVColor, hexToHsv, hexToRgb, hsvToHex, normalizeColor, rgbToHex, } from './color';
3
3
  export { computeCommonComponents } from './computeCommonComponents';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,QAAQ,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,QAAQ,GACT,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,QAAQ,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,QAAQ,GACT,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@woven-canvas/vue",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Vue 3 components for woven-canvas infinite canvas",
5
5
  "repository": {
6
6
  "type": "git",
@@ -52,11 +52,11 @@
52
52
  "@tiptap/vue-3": "^3.15.3",
53
53
  "@vueuse/core": "^14.0.0",
54
54
  "perfect-freehand": "^1.2.2",
55
- "@woven-canvas/plugin-arrows": "^0.1.2",
56
55
  "@woven-canvas/asset-sync": "^0.1.1",
56
+ "@woven-canvas/plugin-arrows": "^0.1.2",
57
57
  "@woven-canvas/plugin-canvas-controls": "^0.1.2",
58
- "@woven-canvas/plugin-pen": "^0.1.2",
59
58
  "@woven-canvas/plugin-eraser": "^0.1.2",
59
+ "@woven-canvas/plugin-pen": "^0.1.2",
60
60
  "@woven-canvas/plugin-selection": "^0.1.3"
61
61
  },
62
62
  "devDependencies": {
@@ -74,8 +74,8 @@
74
74
  "@woven-ecs/core": "^1.0.4",
75
75
  "typescript": "^5",
76
76
  "vue": "^3",
77
- "@woven-canvas/core": "^0.1.4",
78
- "@woven-canvas/math": "^0.1.0"
77
+ "@woven-canvas/math": "^0.1.0",
78
+ "@woven-canvas/core": "^0.1.4"
79
79
  },
80
80
  "scripts": {
81
81
  "dev": "vite",