@misenkashari/excalidraw-common 1.0.3 → 1.0.6
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/dist/dev/index.js +5 -5
- package/dist/dev/index.js.map +1 -1
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/constants.d.ts +1 -1
- package/dist/types/common/src/font-metadata.d.ts +1 -1
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/utils.d.ts +1 -1
- package/dist/types/common/src/visualdebug.d.ts +3 -3
- package/dist/types/element/src/Scene.d.ts +4 -4
- package/dist/types/element/src/binding.d.ts +3 -3
- package/dist/types/element/src/bounds.d.ts +2 -2
- package/dist/types/element/src/collision.d.ts +1 -1
- package/dist/types/element/src/delta.d.ts +2 -2
- package/dist/types/element/src/distance.d.ts +1 -1
- package/dist/types/element/src/dragElements.d.ts +1 -1
- package/dist/types/element/src/duplicate.d.ts +1 -1
- package/dist/types/element/src/elbowArrow.d.ts +1 -1
- package/dist/types/element/src/embeddable.d.ts +1 -1
- package/dist/types/element/src/frame.d.ts +1 -1
- package/dist/types/element/src/groups.d.ts +1 -1
- package/dist/types/element/src/heading.d.ts +2 -2
- package/dist/types/element/src/image.d.ts +1 -1
- package/dist/types/element/src/linearElementEditor.d.ts +3 -3
- package/dist/types/element/src/mutateElement.d.ts +1 -1
- package/dist/types/element/src/newElement.d.ts +1 -1
- package/dist/types/element/src/renderElement.d.ts +2 -2
- package/dist/types/element/src/resizeElements.d.ts +1 -1
- package/dist/types/element/src/resizeTest.d.ts +3 -3
- package/dist/types/element/src/shape.d.ts +3 -3
- package/dist/types/element/src/store.d.ts +2 -2
- package/dist/types/element/src/textElement.d.ts +2 -2
- package/dist/types/element/src/transform.d.ts +1 -1
- package/dist/types/element/src/transformHandles.d.ts +3 -3
- package/dist/types/element/src/typeChecks.d.ts +1 -1
- package/dist/types/element/src/types.d.ts +3 -3
- package/dist/types/element/src/utils.d.ts +2 -2
- package/dist/types/element/src/zindex.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +82 -82
- package/dist/types/excalidraw/actions/actionAlign.d.ts +7 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +50 -50
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +275 -275
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +63 -63
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +28 -28
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +69 -69
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +32 -32
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +49 -49
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +29 -29
- package/dist/types/excalidraw/actions/actionExport.d.ts +116 -116
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionFlip.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +242 -242
- package/dist/types/excalidraw/actions/actionGroup.d.ts +43 -43
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +181 -181
- package/dist/types/excalidraw/actions/actionLink.d.ts +31 -31
- package/dist/types/excalidraw/actions/actionMenu.d.ts +27 -27
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionProperties.d.ts +39 -39
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +23 -23
- package/dist/types/excalidraw/actions/actionStyles.d.ts +31 -31
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +29 -29
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +29 -29
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +28 -28
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +28 -28
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +29 -29
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +29 -29
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
- package/dist/types/excalidraw/actions/manager.d.ts +1 -1
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +2 -2
- package/dist/types/excalidraw/appState.d.ts +10 -10
- package/dist/types/excalidraw/charts.d.ts +1 -1
- package/dist/types/excalidraw/clipboard.d.ts +4 -4
- package/dist/types/excalidraw/components/Actions.d.ts +1 -1
- package/dist/types/excalidraw/components/App.d.ts +9 -9
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +2 -2
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -2
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +2 -2
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
- package/dist/types/excalidraw/components/DefaultSidebar.d.ts +1 -1
- package/dist/types/excalidraw/components/ElementCanvasButtons.d.ts +1 -1
- package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +2 -2
- package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +2 -2
- package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
- package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
- package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
- package/dist/types/excalidraw/components/ImageExportDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
- package/dist/types/excalidraw/components/JSONExportDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/LayerUI.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
- package/dist/types/excalidraw/components/MobileMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/index.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/utils.d.ts +2 -2
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
- package/dist/types/excalidraw/components/ToolButton.d.ts +1 -1
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -2
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +1 -1
- package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +3 -3
- package/dist/types/excalidraw/components/icons.d.ts +1 -1
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +1 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +2 -4
- package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
- package/dist/types/excalidraw/data/blob.d.ts +49 -49
- package/dist/types/excalidraw/data/filesystem.d.ts +1 -1
- package/dist/types/excalidraw/data/index.d.ts +1 -1
- package/dist/types/excalidraw/data/json.d.ts +24 -24
- package/dist/types/excalidraw/data/library.d.ts +2 -2
- package/dist/types/excalidraw/data/reconcile.d.ts +2 -2
- package/dist/types/excalidraw/data/resave.d.ts +1 -1
- package/dist/types/excalidraw/data/restore.d.ts +2 -2
- package/dist/types/excalidraw/data/types.d.ts +2 -2
- package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -3
- package/dist/types/excalidraw/history.d.ts +4 -4
- package/dist/types/excalidraw/hooks/useEmitter.d.ts +1 -1
- package/dist/types/excalidraw/i18n.d.ts +1 -1
- package/dist/types/excalidraw/index.d.ts +12 -12
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -2
- package/dist/types/excalidraw/renderer/staticScene.d.ts +1 -1
- package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +1 -1
- package/dist/types/excalidraw/scene/Renderer.d.ts +2 -2
- package/dist/types/excalidraw/scene/export.d.ts +1 -1
- package/dist/types/excalidraw/scene/index.d.ts +2 -2
- package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
- package/dist/types/excalidraw/scene/types.d.ts +3 -3
- package/dist/types/excalidraw/snapping.d.ts +5 -5
- package/dist/types/excalidraw/types.d.ts +6 -6
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +1 -1
- package/dist/types/utils/src/bbox.d.ts +2 -2
- package/dist/types/utils/src/export.d.ts +2 -2
- package/dist/types/utils/src/index.d.ts +1 -1
- package/dist/types/utils/src/shape.d.ts +4 -4
- package/dist/types/utils/src/withinBounds.d.ts +2 -2
- package/package.json +1 -1
package/dist/prod/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Qe=Object.create;var ae=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var rt=(e,t)=>()=>(e&&(t=e(e=0)),t);var se=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ot=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of et(t))!nt.call(e,o)&&o!==n&&ae(e,o,{get:()=>t[o],enumerable:!(r=Je(t,o))||r.enumerable});return e};var ie=(e,t,n)=>(n=e!=null?Qe(tt(e)):{},ot(t||!e||!e.__esModule?ae(n,"default",{value:e,enumerable:!0}):n,e));var h,f=rt(()=>{h={PROD:!0}});var Ue=se((te,ke)=>{f();(function(e,t){typeof define=="function"&&define.amd?define([],t):typeof te=="object"?ke.exports=t():(e.PromisePool=t(),e.promisePool=e.PromisePool)})(te,function(){"use strict";var e=function(){this._listeners={}};e.prototype.addEventListener=function(s,l){this._listeners[s]=this._listeners[s]||[],this._listeners[s].indexOf(l)<0&&this._listeners[s].push(l)},e.prototype.removeEventListener=function(s,l){if(this._listeners[s]){var c=this._listeners[s].indexOf(l);c>=0&&this._listeners[s].splice(c,1)}},e.prototype.dispatchEvent=function(s){if(this._listeners[s.type]&&this._listeners[s.type].length)for(var l=this._listeners[s.type].slice(),c=0,p=l.length;c<p;++c)l[c].call(this,s)};var t=function(s){return typeof s.constructor=="function"&&s.constructor.name==="GeneratorFunction"},n=function(s){return{next:function(){var l=s();return l?{value:l}:{done:!0}}}},r=function(s){var l=!1;return{next:function(){return l?{done:!0}:(l=!0,{value:s})}}},o=function(s,l){var c=typeof s;if(c==="object"){if(typeof s.next=="function")return s;if(typeof s.then=="function")return r(s)}return c==="function"?t(s)?s():n(s):r(l.resolve(s))},a=function(s,l,c){this.target=s,this.type=l,this.data=c},i=function(s,l,c){if(e.call(this),typeof l!="number"||Math.floor(l)!==l||l<1)throw new Error("Invalid concurrency");this._concurrency=l,this._options=c||{},this._options.promise=this._options.promise||Promise,this._iterator=o(s,this._options.promise),this._done=!1,this._size=0,this._promise=null,this._callbacks=null};return i.prototype=new e,i.prototype.constructor=i,i.prototype.concurrency=function(s){return typeof s<"u"&&(this._concurrency=s,this.active()&&this._proceed()),this._concurrency},i.prototype.size=function(){return this._size},i.prototype.active=function(){return!!this._promise},i.prototype.promise=function(){return this._promise},i.prototype.start=function(){var s=this,l=this._options.promise;return this._promise=new l(function(c,p){s._callbacks={reject:p,resolve:c},s._proceed()}),this._promise},i.prototype._fireEvent=function(s,l){this.dispatchEvent(new a(this,s,l))},i.prototype._settle=function(s){s?this._callbacks.reject(s):this._callbacks.resolve(),this._promise=null,this._callbacks=null},i.prototype._onPooledPromiseFulfilled=function(s,l){this._size--,this.active()&&(this._fireEvent("fulfilled",{promise:s,result:l}),this._proceed())},i.prototype._onPooledPromiseRejected=function(s,l){this._size--,this.active()&&(this._fireEvent("rejected",{promise:s,error:l}),this._settle(l||new Error("Unknown error")))},i.prototype._trackPromise=function(s){var l=this;s.then(function(c){l._onPooledPromiseFulfilled(s,c)},function(c){l._onPooledPromiseRejected(s,c)}).catch(function(c){l._settle(new Error("Promise processing failed: "+c))})},i.prototype._proceed=function(){if(!this._done){for(var s={done:!1};this._size<this._concurrency&&!(s=this._iterator.next()).done;)this._size++,this._trackPromise(s.value);this._done=s===null||!!s.done}this._done&&this._size===0&&this._settle()},i.PromisePoolEvent=a,i.PromisePool=i,i})});var $e=se($=>{"use strict";f();Object.defineProperty($,"__esModule",{value:!0});$.sanitizeUrl=void 0;var fn=/^([^\w]*)(javascript|data|vbscript)/im,dn=/&#(\w+)(^\w|;)?/g,pn=/&(newline|tab);/gi,mn=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,hn=/^.+(:|:)/gim,bn=[".","/"];function gn(e){return bn.indexOf(e[0])>-1}function Tn(e){return e.replace(dn,function(t,n){return String.fromCharCode(n)})}function En(e){var t=Tn(e||"").replace(pn,"").replace(mn,"").trim();if(!t)return"about:blank";if(gn(t))return t;var n=t.match(hn);if(!n)return t;var r=n[0];return fn.test(r)?"about:blank":t}$.sanitizeUrl=En});f();f();var le=class{constructor(t){this.scoreFunction=t}content=[];sinkDown(t){let n=this.content[t],r=this.scoreFunction(n);for(;t>0;){let o=(t+1>>1)-1,a=this.content[o];if(r<this.scoreFunction(a))this.content[t]=a,t=o;else break}this.content[t]=n}bubbleUp(t){let n=this.content.length,r=this.content[t],o=this.scoreFunction(r);for(;;){let a=(t+1<<1)-1,i=a+1,s=t,l=o;if(a<n){let c=this.scoreFunction(this.content[a]);c<l&&(s=a,l=c)}if(i<n&&this.scoreFunction(this.content[i])<l&&(s=i),s===t)break;this.content[t]=this.content[s],t=s}this.content[t]=r}push(t){this.content.push(t),this.sinkDown(this.content.length-1)}pop(){if(this.content.length===0)return null;let t=this.content[0],n=this.content.pop();return this.content.length>0&&(this.content[0]=n,this.bubbleUp(0)),t}remove(t){if(this.content.length===0)return;let n=this.content.indexOf(t),r=this.content.pop();n<this.content.length&&(this.content[n]=r,this.scoreFunction(r)<this.scoreFunction(t)?this.sinkDown(n):this.bubbleUp(n))}size(){return this.content.length}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}};f();var ce=e=>Array.isArray(e)&&e.length===4&&typeof e[0]=="number"&&typeof e[1]=="number"&&typeof e[2]=="number"&&typeof e[3]=="number";f();var ue={white:"#ffffff",black:"#000000",gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]};f();function B(e){"@babel/helpers - typeof";return B=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(e)}var it=/^\s+/,lt=/\s+$/;function u(e,t){if(e=e||"",t=t||{},e instanceof u)return e;if(!(this instanceof u))return new u(e,t);var n=ct(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}u.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},getLuminance:function(){var t=this.toRgb(),n,r,o,a,i,s;return n=t.r/255,r=t.g/255,o=t.b/255,n<=.03928?a=n/12.92:a=Math.pow((n+.055)/1.055,2.4),r<=.03928?i=r/12.92:i=Math.pow((r+.055)/1.055,2.4),o<=.03928?s=o/12.92:s=Math.pow((o+.055)/1.055,2.4),.2126*a+.7152*i+.0722*s},setAlpha:function(t){return this._a=ge(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=de(this._r,this._g,this._b);return{h:t.h*360,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=de(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this._a==1?"hsv("+n+", "+r+"%, "+o+"%)":"hsva("+n+", "+r+"%, "+o+"%, "+this._roundA+")"},toHsl:function(){var t=fe(this._r,this._g,this._b);return{h:t.h*360,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=fe(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this._a==1?"hsl("+n+", "+r+"%, "+o+"%)":"hsla("+n+", "+r+"%, "+o+"%, "+this._roundA+")"},toHex:function(t){return pe(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return pt(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(b(this._r,255)*100)+"%",g:Math.round(b(this._g,255)*100)+"%",b:Math.round(b(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(b(this._r,255)*100)+"%, "+Math.round(b(this._g,255)*100)+"%, "+Math.round(b(this._b,255)*100)+"%)":"rgba("+Math.round(b(this._r,255)*100)+"%, "+Math.round(b(this._g,255)*100)+"%, "+Math.round(b(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:St[pe(this._r,this._g,this._b,!0)]||!1},toFilter:function(t){var n="#"+me(this._r,this._g,this._b,this._a),r=n,o=this._gradientType?"GradientType = 1, ":"";if(t){var a=u(t);r="#"+me(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+n+",endColorstr="+r+")"},toString:function(t){var n=!!t;t=t||this._format;var r=!1,o=this._a<1&&this._a>=0,a=!n&&o&&(t==="hex"||t==="hex6"||t==="hex3"||t==="hex4"||t==="hex8"||t==="name");return a?t==="name"&&this._a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},clone:function(){return u(this.toString())},_applyModification:function(t,n){var r=t.apply(null,[this].concat([].slice.call(n)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(gt,arguments)},brighten:function(){return this._applyModification(Tt,arguments)},darken:function(){return this._applyModification(Et,arguments)},desaturate:function(){return this._applyModification(mt,arguments)},saturate:function(){return this._applyModification(ht,arguments)},greyscale:function(){return this._applyModification(bt,arguments)},spin:function(){return this._applyModification(_t,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(At,arguments)},complement:function(){return this._applyCombination(xt,arguments)},monochromatic:function(){return this._applyCombination(vt,arguments)},splitcomplement:function(){return this._applyCombination(yt,arguments)},triad:function(){return this._applyCombination(he,[3])},tetrad:function(){return this._applyCombination(he,[4])}};u.fromRatio=function(e,t){if(B(e)=="object"){var n={};for(var r in e)e.hasOwnProperty(r)&&(r==="a"?n[r]=e[r]:n[r]=D(e[r]));e=n}return u(e,t)};function ct(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,a=null,i=!1,s=!1;return typeof e=="string"&&(e=wt(e)),B(e)=="object"&&(M(e.r)&&M(e.g)&&M(e.b)?(t=ut(e.r,e.g,e.b),i=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):M(e.h)&&M(e.s)&&M(e.v)?(r=D(e.s),o=D(e.v),t=dt(e.h,r,o),i=!0,s="hsv"):M(e.h)&&M(e.s)&&M(e.l)&&(r=D(e.s),a=D(e.l),t=ft(e.h,r,a),i=!0,s="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=ge(n),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function ut(e,t,n){return{r:b(e,255)*255,g:b(t,255)*255,b:b(n,255)*255}}function fe(e,t,n){e=b(e,255),t=b(t,255),n=b(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a,i,s=(r+o)/2;if(r==o)a=i=0;else{var l=r-o;switch(i=s>.5?l/(2-r-o):l/(r+o),r){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,l:s}}function ft(e,t,n){var r,o,a;e=b(e,360),t=b(t,100),n=b(n,100);function i(c,p,g){return g<0&&(g+=1),g>1&&(g-=1),g<1/6?c+(p-c)*6*g:g<1/2?p:g<2/3?c+(p-c)*(2/3-g)*6:c}if(t===0)r=o=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;r=i(l,s,e+1/3),o=i(l,s,e),a=i(l,s,e-1/3)}return{r:r*255,g:o*255,b:a*255}}function de(e,t,n){e=b(e,255),t=b(t,255),n=b(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a,i,s=r,l=r-o;if(i=r===0?0:l/r,r==o)a=0;else{switch(r){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,v:s}}function dt(e,t,n){e=b(e,360)*6,t=b(t,100),n=b(n,100);var r=Math.floor(e),o=e-r,a=n*(1-t),i=n*(1-o*t),s=n*(1-(1-o)*t),l=r%6,c=[n,i,a,a,s,n][l],p=[s,n,n,i,a,a][l],g=[a,a,s,n,n,i][l];return{r:c*255,g:p*255,b:g*255}}function pe(e,t,n,r){var o=[A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16))];return r&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function pt(e,t,n,r,o){var a=[A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16)),A(Te(r))];return o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function me(e,t,n,r){var o=[A(Te(r)),A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16))];return o.join("")}u.equals=function(e,t){return!e||!t?!1:u(e).toRgbString()==u(t).toRgbString()};u.random=function(){return u.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function mt(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.s-=t/100,n.s=G(n.s),u(n)}function ht(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.s+=t/100,n.s=G(n.s),u(n)}function bt(e){return u(e).desaturate(100)}function gt(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.l+=t/100,n.l=G(n.l),u(n)}function Tt(e,t){t=t===0?0:t||10;var n=u(e).toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),u(n)}function Et(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.l-=t/100,n.l=G(n.l),u(n)}function _t(e,t){var n=u(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,u(n)}function xt(e){var t=u(e).toHsl();return t.h=(t.h+180)%360,u(t)}function he(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var n=u(e).toHsl(),r=[u(e)],o=360/t,a=1;a<t;a++)r.push(u({h:(n.h+a*o)%360,s:n.s,l:n.l}));return r}function yt(e){var t=u(e).toHsl(),n=t.h;return[u(e),u({h:(n+72)%360,s:t.s,l:t.l}),u({h:(n+216)%360,s:t.s,l:t.l})]}function At(e,t,n){t=t||6,n=n||30;var r=u(e).toHsl(),o=360/n,a=[u(e)];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(u(r));return a}function vt(e,t){t=t||6;for(var n=u(e).toHsv(),r=n.h,o=n.s,a=n.v,i=[],s=1/t;t--;)i.push(u({h:r,s:o,v:a})),a=(a+s)%1;return i}u.mix=function(e,t,n){n=n===0?0:n||50;var r=u(e).toRgb(),o=u(t).toRgb(),a=n/100,i={r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a};return u(i)};u.readability=function(e,t){var n=u(e),r=u(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)};u.isReadable=function(e,t,n){var r=u.readability(e,t),o,a;switch(a=!1,o=Ot(n),o.level+o.size){case"AAsmall":case"AAAlarge":a=r>=4.5;break;case"AAlarge":a=r>=3;break;case"AAAsmall":a=r>=7;break}return a};u.mostReadable=function(e,t,n){var r=null,o=0,a,i,s,l;n=n||{},i=n.includeFallbackColors,s=n.level,l=n.size;for(var c=0;c<t.length;c++)a=u.readability(e,t[c]),a>o&&(o=a,r=u(t[c]));return u.isReadable(e,r,{level:s,size:l})||!i?r:(n.includeFallbackColors=!1,u.mostReadable(e,["#fff","#000"],n))};var Q=u.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},St=u.hexNames=Mt(Q);function Mt(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function ge(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function b(e,t){Rt(e)&&(e="100%");var n=Lt(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function G(e){return Math.min(1,Math.max(0,e))}function E(e){return parseInt(e,16)}function Rt(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Lt(e){return typeof e=="string"&&e.indexOf("%")!=-1}function A(e){return e.length==1?"0"+e:""+e}function D(e){return e<=1&&(e=e*100+"%"),e}function Te(e){return Math.round(parseFloat(e)*255).toString(16)}function be(e){return E(e)/255}var y=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",o="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function M(e){return!!y.CSS_UNIT.exec(e)}function wt(e){e=e.replace(it,"").replace(lt,"").toLowerCase();var t=!1;if(Q[e])e=Q[e],t=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=y.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=y.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=y.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=y.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=y.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=y.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=y.hex8.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),a:be(n[4]),format:t?"name":"hex8"}:(n=y.hex6.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),format:t?"name":"hex"}:(n=y.hex4.exec(e))?{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),a:be(n[4]+""+n[4]),format:t?"name":"hex8"}:(n=y.hex3.exec(e))?{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),format:t?"name":"hex"}:!1}function Ot(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),t!=="AA"&&t!=="AAA"&&(t="AA"),n!=="small"&&n!=="large"&&(n="small"),{level:t,size:n}}import{clamp as Ee}from"@excalidraw/math";import{degreesToRadians as Ft}from"@excalidraw/math";var J=typeof window<"u"?new Map:null;function Ct(e,t,n,r){let o=e/255,a=t/255,i=n/255,s=Ft(r),l=Math.cos(s),c=Math.sin(s),p=[.213+l*.787-c*.213,.715-l*.715-c*.715,.072-l*.072+c*.928,.213-l*.213+c*.143,.715+l*.285+c*.14,.072-l*.072-c*.283,.213-l*.213-c*.787,.715-l*.715+c*.715,.072+l*.928+c*.072],g=o*p[0]+a*p[1]+i*p[2],I=o*p[3]+a*p[4]+i*p[5],x=o*p[6]+a*p[7]+i*p[8];return{r:Math.round(Math.max(0,Math.min(1,g))*255),g:Math.round(Math.max(0,Math.min(1,I))*255),b:Math.round(Math.max(0,Math.min(1,x))*255)}}var It=(e,t,n,r)=>{let o=Ee(r,0,100)/100,a=c=>{let p=c*(1-o)+(255-c)*o;return Math.round(Ee(p,0,255))},i=a(e),s=a(t),l=a(n);return{r:i,g:s,b:l}},kn=e=>{let t=J?.get(e);if(t)return t;let n=u(e),r=n.getAlpha(),o=n.toRgb(),a=It(o.r,o.g,o.b,93),i=Ct(a.r,a.g,a.b,180),s=Dt(i.r,i.g,i.b,r);return J&&J.set(e,s),s},Un=240,Pt=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),Nn=5,Hn=5,Bn=4,K=4,W=1,v=[0,2,4,6,8],Gn=[0,1,2,3,4],S=(e,t)=>t.map(n=>ue[e][n]),d={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:S("gray",v),red:S("red",v),pink:S("pink",v),grape:S("grape",v),violet:S("violet",v),blue:S("blue",v),cyan:S("cyan",v),teal:S("teal",v),green:S("green",v),yellow:S("yellow",v),orange:S("orange",v),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},_e=Pt(d,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),Kn=[d.black,d.red[K],d.green[K],d.blue[K],d.yellow[K]],Wn=[d.transparent,d.red[W],d.green[W],d.blue[W],d.yellow[W]],Yn=[d.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],Vn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,..._e},zn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,..._e},Xn=e=>[d.cyan[e],d.blue[e],d.violet[e],d.grape[e],d.pink[e],d.green[e],d.teal[e],d.yellow[e],d.orange[e],d.red[e]],Dt=(e,t,n,r)=>{let o=`#${(16777216+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;if(r!==void 0&&r<1){let a=Math.round(r*255).toString(16).padStart(2,"0");return`${o}${a}`}return o};f();var Zn=typeof window<"u"&&"ResizeObserver"in window,Qn="Excalidraw",Jn=36,er=10,tr=20,nr=8,rr=5,or=1,ar=30,sr=Math.PI/12,ir="red",lr={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},cr={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},ur={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"},kt=(m=>(m.COPY="copy",m.PASTE="paste",m.CUT="cut",m.KEYDOWN="keydown",m.KEYUP="keyup",m.MOUSE_MOVE="mousemove",m.RESIZE="resize",m.UNLOAD="unload",m.FOCUS="focus",m.BLUR="blur",m.DRAG_OVER="dragover",m.DROP="drop",m.GESTURE_END="gestureend",m.BEFORE_UNLOAD="beforeunload",m.GESTURE_START="gesturestart",m.GESTURE_CHANGE="gesturechange",m.POINTER_MOVE="pointermove",m.POINTER_DOWN="pointerdown",m.POINTER_UP="pointerup",m.STATE_CHANGE="statechange",m.WHEEL="wheel",m.TOUCH_START="touchstart",m.TOUCH_END="touchend",m.HASHCHANGE="hashchange",m.VISIBILITY_CHANGE="visibilitychange",m.SCROLL="scroll",m.EXCALIDRAW_LINK="excalidraw-link",m.MENU_ITEM_SELECT="menu.itemSelect",m.MESSAGE="message",m.FULLSCREENCHANGE="fullscreenchange",m))(kt||{}),fr={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},Y={TEST:"test",DEVELOPMENT:"development",PRODUCTION:"production"},dr={SIDEBAR:"sidebar",SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper",CONVERT_ELEMENT_TYPE_POPUP:"ConvertElementTypePopup",SHAPE_ACTIONS_THEME_SCOPE:"shape-actions-theme-scope",FRAME_NAME:"frame-name"},pr={sm:16,md:20,lg:28,xl:36},ye="Xiaolai",k="Segoe UI Emoji",T={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9,Assistant:10},Ae="sans-serif",ve="monospace",Ut={[Ae]:998,[ve]:999},ee={[ye]:100,...Ut,[k]:1e3};function Nt(e){switch(e){case T.Cascadia:case T["Comic Shanns"]:return ve;default:return Ae}}var Se=e=>{let t=Nt(e);switch(e){case T.Excalifont:return[ye,t,k];default:return[t,k]}},mr={LIGHT:"light",DARK:"dark"},hr={strokeColor:"#bbb",strokeWidth:2,strokeStyle:"solid",fillStyle:"solid",roughness:0,roundness:null,backgroundColor:"transparent",radius:8,nameOffsetY:3,nameColorLightTheme:"#999999",nameColorDarkTheme:"#7a7a7a",nameFontSize:14,nameLineHeight:1.25},br=1,gr=20,Tr=T.Excalifont,Er="left",_r="top",Me="{version}",Ht=2,Bt=2*Ht,Gt=1e-5,xr=2*Bt-Gt,yr="#ffffff",Ar="#1e1e1e",vr="#a2f1a6",Sr=["selectAll"],Mr=20,Rr=5,Re={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},Kt={text:"text/plain",html:"text/html",json:"application/json",excalidraw:"application/vnd.excalidraw+json",excalidrawlib:"application/vnd.excalidrawlib+json",excalidrawlibIds:"application/vnd.excalidrawlib.ids+json"},xe={...Kt,"excalidraw.svg":"image/svg+xml","excalidraw.png":"image/png",binary:"application/octet-stream",...Re},Lr=[xe.text,xe.html,...Object.values(Re)],wr={png:"png",svg:"svg",clipboard:"clipboard"},Or={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Fr=()=>window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,Cr=500,Ir=300,Pr=500,Dr=1e4,kr=3e4,Ur=100,Nr=.1,Hr=.1,Br=30,Gr=300,Kr=6e4,Wr=3e3,Yr={addLibrary:"addLibrary"},Vr={addLibrary:"addLibrary"},zr={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},Xr=2,$r=[1,2,3],jr=10,qr=1440,Zr=4*1024*1024,Qr="http://www.w3.org/2000/svg",Jr=`<?xml version="1.0" standalone="no"?>
|
|
1
|
+
var Qe=Object.create;var ae=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var rt=(e,t)=>()=>(e&&(t=e(e=0)),t);var se=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ot=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of et(t))!nt.call(e,o)&&o!==n&&ae(e,o,{get:()=>t[o],enumerable:!(r=Je(t,o))||r.enumerable});return e};var ie=(e,t,n)=>(n=e!=null?Qe(tt(e)):{},ot(t||!e||!e.__esModule?ae(n,"default",{value:e,enumerable:!0}):n,e));var h,f=rt(()=>{h={PROD:!0}});var Ue=se((te,ke)=>{f();(function(e,t){typeof define=="function"&&define.amd?define([],t):typeof te=="object"?ke.exports=t():(e.PromisePool=t(),e.promisePool=e.PromisePool)})(te,function(){"use strict";var e=function(){this._listeners={}};e.prototype.addEventListener=function(s,l){this._listeners[s]=this._listeners[s]||[],this._listeners[s].indexOf(l)<0&&this._listeners[s].push(l)},e.prototype.removeEventListener=function(s,l){if(this._listeners[s]){var c=this._listeners[s].indexOf(l);c>=0&&this._listeners[s].splice(c,1)}},e.prototype.dispatchEvent=function(s){if(this._listeners[s.type]&&this._listeners[s.type].length)for(var l=this._listeners[s.type].slice(),c=0,p=l.length;c<p;++c)l[c].call(this,s)};var t=function(s){return typeof s.constructor=="function"&&s.constructor.name==="GeneratorFunction"},n=function(s){return{next:function(){var l=s();return l?{value:l}:{done:!0}}}},r=function(s){var l=!1;return{next:function(){return l?{done:!0}:(l=!0,{value:s})}}},o=function(s,l){var c=typeof s;if(c==="object"){if(typeof s.next=="function")return s;if(typeof s.then=="function")return r(s)}return c==="function"?t(s)?s():n(s):r(l.resolve(s))},a=function(s,l,c){this.target=s,this.type=l,this.data=c},i=function(s,l,c){if(e.call(this),typeof l!="number"||Math.floor(l)!==l||l<1)throw new Error("Invalid concurrency");this._concurrency=l,this._options=c||{},this._options.promise=this._options.promise||Promise,this._iterator=o(s,this._options.promise),this._done=!1,this._size=0,this._promise=null,this._callbacks=null};return i.prototype=new e,i.prototype.constructor=i,i.prototype.concurrency=function(s){return typeof s<"u"&&(this._concurrency=s,this.active()&&this._proceed()),this._concurrency},i.prototype.size=function(){return this._size},i.prototype.active=function(){return!!this._promise},i.prototype.promise=function(){return this._promise},i.prototype.start=function(){var s=this,l=this._options.promise;return this._promise=new l(function(c,p){s._callbacks={reject:p,resolve:c},s._proceed()}),this._promise},i.prototype._fireEvent=function(s,l){this.dispatchEvent(new a(this,s,l))},i.prototype._settle=function(s){s?this._callbacks.reject(s):this._callbacks.resolve(),this._promise=null,this._callbacks=null},i.prototype._onPooledPromiseFulfilled=function(s,l){this._size--,this.active()&&(this._fireEvent("fulfilled",{promise:s,result:l}),this._proceed())},i.prototype._onPooledPromiseRejected=function(s,l){this._size--,this.active()&&(this._fireEvent("rejected",{promise:s,error:l}),this._settle(l||new Error("Unknown error")))},i.prototype._trackPromise=function(s){var l=this;s.then(function(c){l._onPooledPromiseFulfilled(s,c)},function(c){l._onPooledPromiseRejected(s,c)}).catch(function(c){l._settle(new Error("Promise processing failed: "+c))})},i.prototype._proceed=function(){if(!this._done){for(var s={done:!1};this._size<this._concurrency&&!(s=this._iterator.next()).done;)this._size++,this._trackPromise(s.value);this._done=s===null||!!s.done}this._done&&this._size===0&&this._settle()},i.PromisePoolEvent=a,i.PromisePool=i,i})});var $e=se($=>{"use strict";f();Object.defineProperty($,"__esModule",{value:!0});$.sanitizeUrl=void 0;var fn=/^([^\w]*)(javascript|data|vbscript)/im,dn=/&#(\w+)(^\w|;)?/g,pn=/&(newline|tab);/gi,mn=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,hn=/^.+(:|:)/gim,bn=[".","/"];function gn(e){return bn.indexOf(e[0])>-1}function Tn(e){return e.replace(dn,function(t,n){return String.fromCharCode(n)})}function En(e){var t=Tn(e||"").replace(pn,"").replace(mn,"").trim();if(!t)return"about:blank";if(gn(t))return t;var n=t.match(hn);if(!n)return t;var r=n[0];return fn.test(r)?"about:blank":t}$.sanitizeUrl=En});f();f();var le=class{constructor(t){this.scoreFunction=t}content=[];sinkDown(t){let n=this.content[t],r=this.scoreFunction(n);for(;t>0;){let o=(t+1>>1)-1,a=this.content[o];if(r<this.scoreFunction(a))this.content[t]=a,t=o;else break}this.content[t]=n}bubbleUp(t){let n=this.content.length,r=this.content[t],o=this.scoreFunction(r);for(;;){let a=(t+1<<1)-1,i=a+1,s=t,l=o;if(a<n){let c=this.scoreFunction(this.content[a]);c<l&&(s=a,l=c)}if(i<n&&this.scoreFunction(this.content[i])<l&&(s=i),s===t)break;this.content[t]=this.content[s],t=s}this.content[t]=r}push(t){this.content.push(t),this.sinkDown(this.content.length-1)}pop(){if(this.content.length===0)return null;let t=this.content[0],n=this.content.pop();return this.content.length>0&&(this.content[0]=n,this.bubbleUp(0)),t}remove(t){if(this.content.length===0)return;let n=this.content.indexOf(t),r=this.content.pop();n<this.content.length&&(this.content[n]=r,this.scoreFunction(r)<this.scoreFunction(t)?this.sinkDown(n):this.bubbleUp(n))}size(){return this.content.length}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}};f();var ce=e=>Array.isArray(e)&&e.length===4&&typeof e[0]=="number"&&typeof e[1]=="number"&&typeof e[2]=="number"&&typeof e[3]=="number";f();var ue={white:"#ffffff",black:"#000000",gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]};f();function B(e){"@babel/helpers - typeof";return B=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(e)}var it=/^\s+/,lt=/\s+$/;function u(e,t){if(e=e||"",t=t||{},e instanceof u)return e;if(!(this instanceof u))return new u(e,t);var n=ct(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}u.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},getLuminance:function(){var t=this.toRgb(),n,r,o,a,i,s;return n=t.r/255,r=t.g/255,o=t.b/255,n<=.03928?a=n/12.92:a=Math.pow((n+.055)/1.055,2.4),r<=.03928?i=r/12.92:i=Math.pow((r+.055)/1.055,2.4),o<=.03928?s=o/12.92:s=Math.pow((o+.055)/1.055,2.4),.2126*a+.7152*i+.0722*s},setAlpha:function(t){return this._a=ge(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=de(this._r,this._g,this._b);return{h:t.h*360,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=de(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this._a==1?"hsv("+n+", "+r+"%, "+o+"%)":"hsva("+n+", "+r+"%, "+o+"%, "+this._roundA+")"},toHsl:function(){var t=fe(this._r,this._g,this._b);return{h:t.h*360,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=fe(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this._a==1?"hsl("+n+", "+r+"%, "+o+"%)":"hsla("+n+", "+r+"%, "+o+"%, "+this._roundA+")"},toHex:function(t){return pe(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return pt(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(b(this._r,255)*100)+"%",g:Math.round(b(this._g,255)*100)+"%",b:Math.round(b(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(b(this._r,255)*100)+"%, "+Math.round(b(this._g,255)*100)+"%, "+Math.round(b(this._b,255)*100)+"%)":"rgba("+Math.round(b(this._r,255)*100)+"%, "+Math.round(b(this._g,255)*100)+"%, "+Math.round(b(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:St[pe(this._r,this._g,this._b,!0)]||!1},toFilter:function(t){var n="#"+me(this._r,this._g,this._b,this._a),r=n,o=this._gradientType?"GradientType = 1, ":"";if(t){var a=u(t);r="#"+me(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+n+",endColorstr="+r+")"},toString:function(t){var n=!!t;t=t||this._format;var r=!1,o=this._a<1&&this._a>=0,a=!n&&o&&(t==="hex"||t==="hex6"||t==="hex3"||t==="hex4"||t==="hex8"||t==="name");return a?t==="name"&&this._a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},clone:function(){return u(this.toString())},_applyModification:function(t,n){var r=t.apply(null,[this].concat([].slice.call(n)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(gt,arguments)},brighten:function(){return this._applyModification(Tt,arguments)},darken:function(){return this._applyModification(Et,arguments)},desaturate:function(){return this._applyModification(mt,arguments)},saturate:function(){return this._applyModification(ht,arguments)},greyscale:function(){return this._applyModification(bt,arguments)},spin:function(){return this._applyModification(_t,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(At,arguments)},complement:function(){return this._applyCombination(xt,arguments)},monochromatic:function(){return this._applyCombination(vt,arguments)},splitcomplement:function(){return this._applyCombination(yt,arguments)},triad:function(){return this._applyCombination(he,[3])},tetrad:function(){return this._applyCombination(he,[4])}};u.fromRatio=function(e,t){if(B(e)=="object"){var n={};for(var r in e)e.hasOwnProperty(r)&&(r==="a"?n[r]=e[r]:n[r]=D(e[r]));e=n}return u(e,t)};function ct(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,a=null,i=!1,s=!1;return typeof e=="string"&&(e=wt(e)),B(e)=="object"&&(M(e.r)&&M(e.g)&&M(e.b)?(t=ut(e.r,e.g,e.b),i=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):M(e.h)&&M(e.s)&&M(e.v)?(r=D(e.s),o=D(e.v),t=dt(e.h,r,o),i=!0,s="hsv"):M(e.h)&&M(e.s)&&M(e.l)&&(r=D(e.s),a=D(e.l),t=ft(e.h,r,a),i=!0,s="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=ge(n),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function ut(e,t,n){return{r:b(e,255)*255,g:b(t,255)*255,b:b(n,255)*255}}function fe(e,t,n){e=b(e,255),t=b(t,255),n=b(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a,i,s=(r+o)/2;if(r==o)a=i=0;else{var l=r-o;switch(i=s>.5?l/(2-r-o):l/(r+o),r){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,l:s}}function ft(e,t,n){var r,o,a;e=b(e,360),t=b(t,100),n=b(n,100);function i(c,p,g){return g<0&&(g+=1),g>1&&(g-=1),g<1/6?c+(p-c)*6*g:g<1/2?p:g<2/3?c+(p-c)*(2/3-g)*6:c}if(t===0)r=o=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;r=i(l,s,e+1/3),o=i(l,s,e),a=i(l,s,e-1/3)}return{r:r*255,g:o*255,b:a*255}}function de(e,t,n){e=b(e,255),t=b(t,255),n=b(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a,i,s=r,l=r-o;if(i=r===0?0:l/r,r==o)a=0;else{switch(r){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,v:s}}function dt(e,t,n){e=b(e,360)*6,t=b(t,100),n=b(n,100);var r=Math.floor(e),o=e-r,a=n*(1-t),i=n*(1-o*t),s=n*(1-(1-o)*t),l=r%6,c=[n,i,a,a,s,n][l],p=[s,n,n,i,a,a][l],g=[a,a,s,n,n,i][l];return{r:c*255,g:p*255,b:g*255}}function pe(e,t,n,r){var o=[A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16))];return r&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function pt(e,t,n,r,o){var a=[A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16)),A(Te(r))];return o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function me(e,t,n,r){var o=[A(Te(r)),A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16))];return o.join("")}u.equals=function(e,t){return!e||!t?!1:u(e).toRgbString()==u(t).toRgbString()};u.random=function(){return u.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function mt(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.s-=t/100,n.s=G(n.s),u(n)}function ht(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.s+=t/100,n.s=G(n.s),u(n)}function bt(e){return u(e).desaturate(100)}function gt(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.l+=t/100,n.l=G(n.l),u(n)}function Tt(e,t){t=t===0?0:t||10;var n=u(e).toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),u(n)}function Et(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.l-=t/100,n.l=G(n.l),u(n)}function _t(e,t){var n=u(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,u(n)}function xt(e){var t=u(e).toHsl();return t.h=(t.h+180)%360,u(t)}function he(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var n=u(e).toHsl(),r=[u(e)],o=360/t,a=1;a<t;a++)r.push(u({h:(n.h+a*o)%360,s:n.s,l:n.l}));return r}function yt(e){var t=u(e).toHsl(),n=t.h;return[u(e),u({h:(n+72)%360,s:t.s,l:t.l}),u({h:(n+216)%360,s:t.s,l:t.l})]}function At(e,t,n){t=t||6,n=n||30;var r=u(e).toHsl(),o=360/n,a=[u(e)];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(u(r));return a}function vt(e,t){t=t||6;for(var n=u(e).toHsv(),r=n.h,o=n.s,a=n.v,i=[],s=1/t;t--;)i.push(u({h:r,s:o,v:a})),a=(a+s)%1;return i}u.mix=function(e,t,n){n=n===0?0:n||50;var r=u(e).toRgb(),o=u(t).toRgb(),a=n/100,i={r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a};return u(i)};u.readability=function(e,t){var n=u(e),r=u(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)};u.isReadable=function(e,t,n){var r=u.readability(e,t),o,a;switch(a=!1,o=Ot(n),o.level+o.size){case"AAsmall":case"AAAlarge":a=r>=4.5;break;case"AAlarge":a=r>=3;break;case"AAAsmall":a=r>=7;break}return a};u.mostReadable=function(e,t,n){var r=null,o=0,a,i,s,l;n=n||{},i=n.includeFallbackColors,s=n.level,l=n.size;for(var c=0;c<t.length;c++)a=u.readability(e,t[c]),a>o&&(o=a,r=u(t[c]));return u.isReadable(e,r,{level:s,size:l})||!i?r:(n.includeFallbackColors=!1,u.mostReadable(e,["#fff","#000"],n))};var Q=u.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},St=u.hexNames=Mt(Q);function Mt(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function ge(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function b(e,t){Rt(e)&&(e="100%");var n=Lt(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function G(e){return Math.min(1,Math.max(0,e))}function E(e){return parseInt(e,16)}function Rt(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Lt(e){return typeof e=="string"&&e.indexOf("%")!=-1}function A(e){return e.length==1?"0"+e:""+e}function D(e){return e<=1&&(e=e*100+"%"),e}function Te(e){return Math.round(parseFloat(e)*255).toString(16)}function be(e){return E(e)/255}var y=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",o="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function M(e){return!!y.CSS_UNIT.exec(e)}function wt(e){e=e.replace(it,"").replace(lt,"").toLowerCase();var t=!1;if(Q[e])e=Q[e],t=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=y.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=y.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=y.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=y.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=y.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=y.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=y.hex8.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),a:be(n[4]),format:t?"name":"hex8"}:(n=y.hex6.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),format:t?"name":"hex"}:(n=y.hex4.exec(e))?{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),a:be(n[4]+""+n[4]),format:t?"name":"hex8"}:(n=y.hex3.exec(e))?{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),format:t?"name":"hex"}:!1}function Ot(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),t!=="AA"&&t!=="AAA"&&(t="AA"),n!=="small"&&n!=="large"&&(n="small"),{level:t,size:n}}import{clamp as Ee}from"@misenkashari/excalidraw-math";import{degreesToRadians as Ft}from"@misenkashari/excalidraw-math";var J=typeof window<"u"?new Map:null;function Ct(e,t,n,r){let o=e/255,a=t/255,i=n/255,s=Ft(r),l=Math.cos(s),c=Math.sin(s),p=[.213+l*.787-c*.213,.715-l*.715-c*.715,.072-l*.072+c*.928,.213-l*.213+c*.143,.715+l*.285+c*.14,.072-l*.072-c*.283,.213-l*.213-c*.787,.715-l*.715+c*.715,.072+l*.928+c*.072],g=o*p[0]+a*p[1]+i*p[2],I=o*p[3]+a*p[4]+i*p[5],x=o*p[6]+a*p[7]+i*p[8];return{r:Math.round(Math.max(0,Math.min(1,g))*255),g:Math.round(Math.max(0,Math.min(1,I))*255),b:Math.round(Math.max(0,Math.min(1,x))*255)}}var It=(e,t,n,r)=>{let o=Ee(r,0,100)/100,a=c=>{let p=c*(1-o)+(255-c)*o;return Math.round(Ee(p,0,255))},i=a(e),s=a(t),l=a(n);return{r:i,g:s,b:l}},kn=e=>{let t=J?.get(e);if(t)return t;let n=u(e),r=n.getAlpha(),o=n.toRgb(),a=It(o.r,o.g,o.b,93),i=Ct(a.r,a.g,a.b,180),s=Dt(i.r,i.g,i.b,r);return J&&J.set(e,s),s},Un=240,Pt=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),Nn=5,Hn=5,Bn=4,K=4,W=1,v=[0,2,4,6,8],Gn=[0,1,2,3,4],S=(e,t)=>t.map(n=>ue[e][n]),d={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:S("gray",v),red:S("red",v),pink:S("pink",v),grape:S("grape",v),violet:S("violet",v),blue:S("blue",v),cyan:S("cyan",v),teal:S("teal",v),green:S("green",v),yellow:S("yellow",v),orange:S("orange",v),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},_e=Pt(d,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),Kn=[d.black,d.red[K],d.green[K],d.blue[K],d.yellow[K]],Wn=[d.transparent,d.red[W],d.green[W],d.blue[W],d.yellow[W]],Yn=[d.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],Vn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,..._e},zn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,..._e},Xn=e=>[d.cyan[e],d.blue[e],d.violet[e],d.grape[e],d.pink[e],d.green[e],d.teal[e],d.yellow[e],d.orange[e],d.red[e]],Dt=(e,t,n,r)=>{let o=`#${(16777216+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;if(r!==void 0&&r<1){let a=Math.round(r*255).toString(16).padStart(2,"0");return`${o}${a}`}return o};f();var Zn=typeof window<"u"&&"ResizeObserver"in window,Qn="Excalidraw",Jn=36,er=10,tr=20,nr=8,rr=5,or=1,ar=30,sr=Math.PI/12,ir="red",lr={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},cr={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},ur={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"},kt=(m=>(m.COPY="copy",m.PASTE="paste",m.CUT="cut",m.KEYDOWN="keydown",m.KEYUP="keyup",m.MOUSE_MOVE="mousemove",m.RESIZE="resize",m.UNLOAD="unload",m.FOCUS="focus",m.BLUR="blur",m.DRAG_OVER="dragover",m.DROP="drop",m.GESTURE_END="gestureend",m.BEFORE_UNLOAD="beforeunload",m.GESTURE_START="gesturestart",m.GESTURE_CHANGE="gesturechange",m.POINTER_MOVE="pointermove",m.POINTER_DOWN="pointerdown",m.POINTER_UP="pointerup",m.STATE_CHANGE="statechange",m.WHEEL="wheel",m.TOUCH_START="touchstart",m.TOUCH_END="touchend",m.HASHCHANGE="hashchange",m.VISIBILITY_CHANGE="visibilitychange",m.SCROLL="scroll",m.EXCALIDRAW_LINK="excalidraw-link",m.MENU_ITEM_SELECT="menu.itemSelect",m.MESSAGE="message",m.FULLSCREENCHANGE="fullscreenchange",m))(kt||{}),fr={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},Y={TEST:"test",DEVELOPMENT:"development",PRODUCTION:"production"},dr={SIDEBAR:"sidebar",SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper",CONVERT_ELEMENT_TYPE_POPUP:"ConvertElementTypePopup",SHAPE_ACTIONS_THEME_SCOPE:"shape-actions-theme-scope",FRAME_NAME:"frame-name"},pr={sm:16,md:20,lg:28,xl:36},ye="Xiaolai",k="Segoe UI Emoji",T={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9,Assistant:10},Ae="sans-serif",ve="monospace",Ut={[Ae]:998,[ve]:999},ee={[ye]:100,...Ut,[k]:1e3};function Nt(e){switch(e){case T.Cascadia:case T["Comic Shanns"]:return ve;default:return Ae}}var Se=e=>{let t=Nt(e);switch(e){case T.Excalifont:return[ye,t,k];default:return[t,k]}},mr={LIGHT:"light",DARK:"dark"},hr={strokeColor:"#bbb",strokeWidth:2,strokeStyle:"solid",fillStyle:"solid",roughness:0,roundness:null,backgroundColor:"transparent",radius:8,nameOffsetY:3,nameColorLightTheme:"#999999",nameColorDarkTheme:"#7a7a7a",nameFontSize:14,nameLineHeight:1.25},br=1,gr=20,Tr=T.Excalifont,Er="left",_r="top",Me="{version}",Ht=2,Bt=2*Ht,Gt=1e-5,xr=2*Bt-Gt,yr="#ffffff",Ar="#1e1e1e",vr="#a2f1a6",Sr=["selectAll"],Mr=20,Rr=5,Re={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},Kt={text:"text/plain",html:"text/html",json:"application/json",excalidraw:"application/vnd.excalidraw+json",excalidrawlib:"application/vnd.excalidrawlib+json",excalidrawlibIds:"application/vnd.excalidrawlib.ids+json"},xe={...Kt,"excalidraw.svg":"image/svg+xml","excalidraw.png":"image/png",binary:"application/octet-stream",...Re},Lr=[xe.text,xe.html,...Object.values(Re)],wr={png:"png",svg:"svg",clipboard:"clipboard"},Or={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Fr=()=>window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,Cr=500,Ir=300,Pr=500,Dr=1e4,kr=3e4,Ur=100,Nr=.1,Hr=.1,Br=30,Gr=300,Kr=6e4,Wr=3e3,Yr={addLibrary:"addLibrary"},Vr={addLibrary:"addLibrary"},zr={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},Xr=2,$r=[1,2,3],jr=10,qr=1440,Zr=4*1024*1024,Qr="http://www.w3.org/2000/svg",Jr=`<?xml version="1.0" standalone="no"?>
|
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
-
`,eo=128,to={excalidraw:2,excalidrawLibrary:2},no=5,ro=.7,oo=11,ao={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},so={LEFT:"left",CENTER:"center",RIGHT:"right"},io=20,lo=.25,co=32,uo={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Wt={architect:0,artist:1,cartoonist:2},fo={thin:1,bold:2,extraBold:4},po={strokeColor:d.black,backgroundColor:d.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Wt.artist,opacity:100,locked:!1},Yt="library",mo="search",ho={name:"default",defaultTab:Yt},bo=new Set(["iframe","embeddable","image"]),go={selection:"selection",lasso:"lasso",rectangle:"rectangle",diamond:"diamond",ellipse:"ellipse",triangle:"triangle",hexagon:"hexagon",heart:"heart",star:"star",arrow:"arrow",line:"line",freedraw:"freedraw",text:"text",image:"image",eraser:"eraser",hand:"hand",frame:"frame",magicframe:"magicframe",embeddable:"embeddable",laser:"laser"},To={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Eo="Untitled",_o={generalStats:1,elementProperties:2},xo=1,yo={sharp:"sharp",round:"round",elbow:"elbow"},Ao=.3,vo="element",So=Symbol.for("__test__originalId__"),Vt=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(Vt||{}),Mo=20,Ro=35,Lo=700,wo={background:"var(--mobile-action-button-bg)"};f();var V={[T.Excalifont]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25}},[T.Nunito]:{metrics:{unitsPerEm:1e3,ascender:1011,descender:-353,lineHeight:1.25}},[T["Lilita One"]]:{metrics:{unitsPerEm:1e3,ascender:923,descender:-220,lineHeight:1.15}},[T["Comic Shanns"]]:{metrics:{unitsPerEm:1e3,ascender:750,descender:-250,lineHeight:1.25}},[T.Virgil]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},deprecated:!0},[T.Helvetica]:{metrics:{unitsPerEm:2048,ascender:1577,descender:-471,lineHeight:1.15},deprecated:!0,local:!0},[T.Cascadia]:{metrics:{unitsPerEm:2048,ascender:1900,descender:-480,lineHeight:1.2},deprecated:!0},[T["Liberation Sans"]]:{metrics:{unitsPerEm:2048,ascender:1854,descender:-434,lineHeight:1.15},private:!0},[T.Assistant]:{metrics:{unitsPerEm:2048,ascender:1021,descender:-287,lineHeight:1.25},private:!0},[ee.Xiaolai]:{metrics:{unitsPerEm:1e3,ascender:880,descender:-144,lineHeight:1.25},fallback:!0},[ee["Segoe UI Emoji"]]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},local:!0,fallback:!0}},Io={LATIN:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",LATIN_EXT:"U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",CYRILIC_EXT:"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F",CYRILIC:"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116",VIETNAMESE:"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB"},Po="local:",Do=(e,t,n)=>{let{unitsPerEm:r,ascender:o,descender:a}=V[e]?.metrics||V[T.Excalifont].metrics,i=t/r,s=(n-i*o+i*a)/2;return i*o+s},ko=e=>{let{lineHeight:t}=V[e]?.metrics||V[T.Excalifont].metrics;return t};f();var Le=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Oe(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...n){let r=we();return this.jobs.push({jobFactory:t,promise:r,args:n}),this.tick(),r}};f();f();var Fe="excalidraw.desktopUIMode",Ko=599,Wo=1e3,Yo=500,Vo=600,zo=1400,Xo=1440,$o=1229,Ce=/Mac|iPod|iPhone|iPad/.test(navigator.platform),jo=/^Win/.test(navigator.platform),Ie=/\b(android)\b/i.test(navigator.userAgent),qo=typeof window<"u"&&"netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,zt=navigator.userAgent.indexOf("Chrome")!==-1,Zo=!zt&&navigator.userAgent.indexOf("Safari")!==-1,Pe=/iPad|iPhone/i.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,Qo=()=>navigator.brave?.isBrave?.name==="isBrave",Xt=(e,t)=>e<=599||t<500&&e<1e3,$t=(e,t)=>{let n=Math.min(e,t),r=Math.max(e,t);return n>=600&&r<=1400},jt=()=>{let e=navigator.userAgent||"",t=navigator.platform||"",n=navigator.userAgentData;if(n){let o=(n.platform||"").toLowerCase(),a=o==="windows"||o==="macos"||o==="linux"||o==="chrome os";if(n.mobile===!0)return!0;if(n.mobile===!1&&o==="android")return matchMedia?.("(hover: none)").matches&&matchMedia?.("(pointer: coarse)").matches;if(a)return!1}if(Pe)return!0;if(Ie){let o=/Mobile/i.test(e);if(o||!o)return matchMedia?.("(hover: none)").matches&&matchMedia?.("(pointer: coarse)").matches}return/Win|Linux|CrOS|Mac/.test(t)||/Windows NT|X11|CrOS|Macintosh/.test(e),!1},Jo=(e,t)=>Xt(e,t)?"phone":$t(e,t)?"tablet":"desktop",ea=e=>e.formFactor==="phone"?"mobile":e.formFactor==="tablet"?"compact":e.desktopUIMode,ta=e=>{let t=e??"",n="unknown";return Pe?n="ios":Ie?n="android":t&&(n="other"),{isMobileDevice:jt(),platform:n}},na=()=>{if(typeof window>"u")return null;try{let e=window.localStorage.getItem(Fe);if(e==="compact"||e==="full")return e}catch{}return null},qt=e=>{if(!(typeof window>"u"))try{window.localStorage.setItem(Fe,e)}catch{}},ra=e=>{if(!(e!=="compact"&&e!=="full"))return qt(e),e};var De={EQUAL:"Equal",MINUS:"Minus",NUM_ADD:"NumpadAdd",NUM_SUBTRACT:"NumpadSubtract",NUM_ZERO:"Numpad0",BRACKET_RIGHT:"BracketRight",BRACKET_LEFT:"BracketLeft",ONE:"Digit1",TWO:"Digit2",THREE:"Digit3",NINE:"Digit9",QUOTE:"Quote",ZERO:"Digit0",SLASH:"Slash",C:"KeyC",D:"KeyD",H:"KeyH",V:"KeyV",Z:"KeyZ",Y:"KeyY",R:"KeyR",S:"KeyS"},O={ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",BACKSPACE:"Backspace",ALT:"Alt",CTRL_OR_CMD:Ce?"metaKey":"ctrlKey",DELETE:"Delete",ENTER:"Enter",ESCAPE:"Escape",QUESTION_MARK:"?",SPACE:" ",TAB:"Tab",CHEVRON_LEFT:"<",CHEVRON_RIGHT:">",PERIOD:".",COMMA:",",SUBTRACT:"-",SLASH:"/",A:"a",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",L:"l",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",V:"v",X:"x",Y:"y",Z:"z",K:"k",W:"w",0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9"},Zt=new Map([[O.Z,De.Z],[O.Y,De.Y]]),Qt=e=>/^[a-z]$/.test(e.toLowerCase()),ia=(e,t)=>{if(t===e.key.toLowerCase())return!0;let n=Zt.get(t);return!!(n&&!Qt(e.key)&&e.code===n)},la=e=>e===O.ARROW_LEFT||e===O.ARROW_RIGHT||e===O.ARROW_DOWN||e===O.ARROW_UP,ca=e=>e.altKey,ua=e=>e.shiftKey,fa=e=>e.shiftKey;f();import{pointFromPair as Jt}from"@excalidraw/math";var ha=e=>{let t=e.map(r=>r[0]),n=e.map(r=>r[1]);return{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}},ba=(e,t,n,r)=>{let o=n.map(x=>x[e]),a=Math.max(...o),i=Math.min(...o),s=a-i,l=s===0?1:t/s,c=1/0,p=n.map(x=>{let R=x[e]*l,L=[...x];return L[e]=R,R<c&&(c=R),L});if(!r||p.length===2)return p;let g=i-c;return p.map(x=>Jt(x.map((R,L)=>L===e?R+g:R)))},ga=(e,t,n)=>n?[Math.round(e/n)*n,Math.round(t/n)*n]:[e,t];f();var He=ie(Ue(),1),Ne=class{pool;entries={};constructor(t,n){this.pool=new He.default(t,n)}all(){let t=n=>{if(n.data.result){let[r,o]=n.data.result;this.entries[r]=o}};return this.pool.addEventListener("fulfilled",t),this.pool.start().then(()=>(setTimeout(()=>{this.pool.removeEventListener("fulfilled",t)}),Object.values(this.entries)))}};f();f();f();var Be=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");f();var U=class{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}};f();import{average as z}from"@excalidraw/math";var ne=null,Pa=e=>{ne=e},Da=()=>{if(ne)return ne;let e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0"),o=`${e.getHours()}`.padStart(2,"0"),a=`${e.getMinutes()}`.padStart(2,"0");return`${t}-${n}-${r}-${o}${a}`},ka=e=>e.charAt(0).toUpperCase()+e.slice(1),Ua=e=>e instanceof HTMLElement&&e.className.includes("ToolIcon"),en=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,Na=e=>en(e)||e instanceof Element&&!!e.closest("label, button"),Ha=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type==="text"||e.type==="number"||e.type==="password"||e.type==="search"),tn=({fontFamily:e})=>{for(let[t,n]of Object.entries(T))if(n===e)return`${t}${Se(n).map(r=>`, ${r}`).join("")}`;return k},Ba=({fontSize:e,fontFamily:t})=>`${e}px ${tn({fontFamily:t})}`,Ga=async e=>{requestAnimationFrame(()=>requestAnimationFrame(e))},Ka=(e,t)=>{let n=0,r=null,o=(...a)=>{r=a,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...a)},t)};return o.flush=()=>{if(clearTimeout(n),r){let a=r;r=null,e(...a)}},o.cancel=()=>{r=null,clearTimeout(n)},o},Wa=(e,t)=>{let n=null,r=null,o=null,a=s=>{n=window.requestAnimationFrame(()=>{n=null,e(...s),r=null,o&&(r=o,o=null,a(r))})},i=(...s)=>{if(X()){e(...s);return}r=s,n===null?a(r):t?.trailing&&(o=s)};return i.flush=()=>{n!==null&&(cancelAnimationFrame(n),n=null),r&&(e(...o||r),r=o=null)},i.cancel=()=>{r=o=null,n!==null&&(cancelAnimationFrame(n),n=null)},i},We=e=>1-Math.pow(1-e,4),Ge=(e,t,n)=>(t-e)*We(n)+e,Ya=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:o,onStart:a,onEnd:i,onCancel:s})=>{let l=!1,c=0,p;function g(I){if(l)return;p===void 0&&(p=I,a?.());let x=Math.min(I-p,r),R=We(x/r),L={};if(Object.keys(e).forEach(P=>{let w=P,j=(t[w]-e[w])*R+e[w];L[w]=j}),n(L),x<r){let P=x/r,w={};Object.keys(e).forEach(j=>{let N=j,q=e[N],Z=t[N],H;H=o?o(q,Z,P,N):Ge(q,Z,P),H==null&&(H=Ge(q,Z,P)),w[N]=H}),n(w),c=window.requestAnimationFrame(g)}else n(t),i?.()}return c=window.requestAnimationFrame(g),()=>{s?.(),l=!0,window.cancelAnimationFrame(c)}},Va=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0,o=Array(Math.ceil(e.length/t));for(;n<e.length;)o[r++]=e.slice(n,n+=t);return o},za=e=>{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}},Xa=()=>{let e=window.getSelection();e&&e.removeAllRanges()},$a=(e,t)=>Math.abs(e-t),ja=e=>e==="selection"||e==="lasso",qa=(e,t)=>t.type==="custom"?{...e.activeTool,type:"custom",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked,fromSelection:t.fromSelection??!1},Za=()=>document.fullscreenElement?.nodeName==="HTML",Qa=()=>document.documentElement.requestFullscreen(),Ja=()=>document.exitFullscreen(),es=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:a,scrollY:i})=>{let s=(e-r)/n.value-a,l=(t-o)/n.value-i;return{x:s,y:l}},ts=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:a,scrollY:i})=>{let s=(e+a)*n.value+r,l=(t+i)*n.value+o;return{x:s,y:l}},ns=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),nn="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF",rn="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",on=new RegExp(`^[^${nn}]*[${rn}]`),rs=e=>on.test(e),os=e=>{let[t,n]=e;return{x:t,y:n}},as=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},ss=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r<e.length;)if(t(e[r],r,e))return r;return-1},is=(e,t,n=e.length-1)=>{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},ls=(e,t)=>{for(let n=0;n<e.length;n++){let r=t(e[n],n);if(r!=null)return r}},cs=e=>u(e).getAlpha()===0,we=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n},us=(e,t)=>{let n=[{value:1,symbol:"b"},{value:1e3,symbol:"k"},{value:1e6,symbol:"M"},{value:1e9,symbol:"G"}],r=/\.0+$|(\.[0-9]*[1-9])0+$/,o;for(o=n.length-1;o>0&&!(e>=n[o].value);o--);return(e/n[o].value).toFixed(t).replace(r,"$1")+n[o].symbol},fs=()=>document.querySelector('meta[name="version"]')?.content||Me,ds=()=>{let t=document.createElement("canvas").getContext("2d");if(!t)return!1;let n=12;return t.fillStyle="#f00",t.textBaseline="top",t.font="32px Arial",t.fillText("\u{1F600}",0,0),t.getImageData(n,n,1,1).data[0]!==0},ps=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;let{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n==="auto"||n==="scroll"||n==="overlay"))return t;t=t.parentElement}return document},ms=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},hs=e=>{e.preventDefault(),e.returnValue=""},bs=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),gs=()=>X()?1:Date.now(),Ts=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n=="string"?n:n.id,n),t),new Map),Es=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),_s=(e,t)=>e.reduce((n,r,o)=>(n[t?t(r):o]=r,n),{}),xs=e=>e.reduce((t,n,r)=>{let o={...n,prev:null,next:null};if(r!==0){let a=t[r-1];if(o.prev=a,a.next=o,r===e.length-1){let i=t[0];o.next=i,i.prev=o}}return t.push(o),t},[]),an=e=>Array.isArray(e)?e:e.values(),ys=e=>Array.isArray(e)?e:Array.from(an(e)),X=()=>h.MODE===Y.TEST,As=()=>h.MODE===Y.DEVELOPMENT,vs=()=>h.MODE===Y.PRODUCTION,Ss=()=>typeof process<"u"&&!0,Ms=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),Rs=(e,t)=>{let n=!1;for(let r in t){let o=t[r];if(typeof o<"u"){if(e[r]===o&&(typeof o!="object"||o===null))continue;n=!0}}return n?{...e,...t}:e},Ls=e=>{let t=typeof e;return e==null||t!=="object"&&t!=="function"},sn=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}},ws=()=>sn()==="iframe",Os=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Fs=e=>{let t=e?.querySelectorAll("button, a, input, select, textarea, div[tabindex], label[tabindex]");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},Ke=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,ln=(e,t,n,r=!1)=>{let o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return r&&console.warn("%cisShallowEqual: objects don't have same properties ->","color: #8B4000",e,t),!1;if(n&&Array.isArray(n)){for(let i of n)if(!(e[i]===t[i]||Ke(e[i],t[i])))return r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,"color: #8B4000",e[i],t[i]),!1;return!0}return o.every(i=>{let s=n?.[i],l=s?s(e[i],t[i]):e[i]===t[i]||Ke(e[i],t[i]);return!l&&r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,"color: #8B4000",e[i],t[i]),l})},Cs=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},Is=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Ps(e,t){if(!e)throw new Error(t)}var Ds=e=>{let t,n,r=function(o){let a=Object.entries(o);if(t){let s=!0;for(let[l,c]of a)if(t.get(l)!==c){s=!1;break}if(s)return n}let i=e(o);return t=new Map(a),n=i,i};return r.clear=()=>{t=void 0,n=void 0},r},ks=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Us=e=>JSON.parse(JSON.stringify(e)),Ns=(e,t)=>ln(e,t)?e:t;function Hs(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function Bs(e,t=!0){let n=e.length;if(n<4)return"";let r=e[0],o=e[1],a=e[2],i=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${o[0].toFixed(2)},${o[1].toFixed(2)} ${z(o[0],a[0]).toFixed(2)},${z(o[1],a[1]).toFixed(2)} T`;for(let s=2,l=n-1;s<l;s++)r=e[s],o=e[s+1],i+=`${z(r[0],o[0]).toFixed(2)},${z(r[1],o[1]).toFixed(2)} `;return t&&(i+="Z"),i}var Gs=e=>e.replace(/\r?\n|\r/g,`
|
|
4
|
-
`);function Ks(e){return e}var Oe=async(e,...t)=>new Promise(n=>{n(e(...t))}),Ws=(...e)=>Math.max(...e.map(t=>t?1:0))>0,Ys=e=>{try{return JSON.parse(e)}catch{return null}},Ye=e=>e.replace(/"/g,"""),Vs=e=>Array.isArray(e)?e:[e],cn=e=>Array.isArray(e),un=e=>cn(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length,zs=(e,t)=>{if(un(e)===0)return null;let n=t||(o=>o),r=null;for(let o of e){let a=n(o);if((r===null||r===a)&&a!=null)r=a;else return null}return r},Ve="excalidraw-feature-flags",re={COMPLEX_BINDINGS:!1},F=null,Xs=e=>{if(!F)try{let t=localStorage.getItem(Ve);t&&(F=JSON.parse(t)??re)}catch{}return(F||re)[e]},$s=(e,t)=>{try{F={...F||re,[e]:t},localStorage.setItem(Ve,JSON.stringify(F))}catch(n){console.error("unable to set feature flag",n)}};var ze=new U(Date.now()),Xe=0,ei=()=>Math.floor(ze.next()*2**31),ti=e=>{ze=new U(e),Xe=0},ni=()=>X()?`id${Xe++}`:Be();f();var je=ie($e(),1);var _n=e=>(e=e.trim(),e&&(0,je.sanitizeUrl)(Ye(e))),li=e=>!!(e?.includes(location.origin)||e?.startsWith("/")),ci=e=>{if(e=_n(e),e.startsWith("/"))return`${location.origin}${e}`;try{new URL(e)}catch{return"about:blank"}return e};f();var qe=class{subscribers=[];on(...t){let n=t.flat().filter(r=>typeof r=="function");return this.subscribers.push(...n),()=>this.off(n)}once(...t){let n=t.flat().filter(o=>typeof o=="function");n.push(()=>r());let r=this.on(...n);return r}off(...t){let n=t.flat();this.subscribers=this.subscribers.filter(r=>!n.includes(r))}trigger(...t){for(let n of this.subscribers)n(...t);return this}clear(){this.subscribers=[]}};f();import{isLineSegment as xn,lineSegment as C,pointFrom as _}from"@excalidraw
|
|
3
|
+
`,eo=128,to={excalidraw:2,excalidrawLibrary:2},no=5,ro=.7,oo=11,ao={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},so={LEFT:"left",CENTER:"center",RIGHT:"right"},io=20,lo=.25,co=32,uo={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Wt={architect:0,artist:1,cartoonist:2},fo={thin:1,bold:2,extraBold:4},po={strokeColor:d.black,backgroundColor:d.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Wt.artist,opacity:100,locked:!1},Yt="library",mo="search",ho={name:"default",defaultTab:Yt},bo=new Set(["iframe","embeddable","image"]),go={selection:"selection",lasso:"lasso",rectangle:"rectangle",diamond:"diamond",ellipse:"ellipse",triangle:"triangle",hexagon:"hexagon",heart:"heart",star:"star",arrow:"arrow",line:"line",freedraw:"freedraw",text:"text",image:"image",eraser:"eraser",hand:"hand",frame:"frame",magicframe:"magicframe",embeddable:"embeddable",laser:"laser"},To={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Eo="Untitled",_o={generalStats:1,elementProperties:2},xo=1,yo={sharp:"sharp",round:"round",elbow:"elbow"},Ao=.3,vo="element",So=Symbol.for("__test__originalId__"),Vt=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(Vt||{}),Mo=20,Ro=35,Lo=700,wo={background:"var(--mobile-action-button-bg)"};f();var V={[T.Excalifont]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25}},[T.Nunito]:{metrics:{unitsPerEm:1e3,ascender:1011,descender:-353,lineHeight:1.25}},[T["Lilita One"]]:{metrics:{unitsPerEm:1e3,ascender:923,descender:-220,lineHeight:1.15}},[T["Comic Shanns"]]:{metrics:{unitsPerEm:1e3,ascender:750,descender:-250,lineHeight:1.25}},[T.Virgil]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},deprecated:!0},[T.Helvetica]:{metrics:{unitsPerEm:2048,ascender:1577,descender:-471,lineHeight:1.15},deprecated:!0,local:!0},[T.Cascadia]:{metrics:{unitsPerEm:2048,ascender:1900,descender:-480,lineHeight:1.2},deprecated:!0},[T["Liberation Sans"]]:{metrics:{unitsPerEm:2048,ascender:1854,descender:-434,lineHeight:1.15},private:!0},[T.Assistant]:{metrics:{unitsPerEm:2048,ascender:1021,descender:-287,lineHeight:1.25},private:!0},[ee.Xiaolai]:{metrics:{unitsPerEm:1e3,ascender:880,descender:-144,lineHeight:1.25},fallback:!0},[ee["Segoe UI Emoji"]]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},local:!0,fallback:!0}},Io={LATIN:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",LATIN_EXT:"U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",CYRILIC_EXT:"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F",CYRILIC:"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116",VIETNAMESE:"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB"},Po="local:",Do=(e,t,n)=>{let{unitsPerEm:r,ascender:o,descender:a}=V[e]?.metrics||V[T.Excalifont].metrics,i=t/r,s=(n-i*o+i*a)/2;return i*o+s},ko=e=>{let{lineHeight:t}=V[e]?.metrics||V[T.Excalifont].metrics;return t};f();var Le=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Oe(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...n){let r=we();return this.jobs.push({jobFactory:t,promise:r,args:n}),this.tick(),r}};f();f();var Fe="excalidraw.desktopUIMode",Ko=599,Wo=1e3,Yo=500,Vo=600,zo=1400,Xo=1440,$o=1229,Ce=/Mac|iPod|iPhone|iPad/.test(navigator.platform),jo=/^Win/.test(navigator.platform),Ie=/\b(android)\b/i.test(navigator.userAgent),qo=typeof window<"u"&&"netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,zt=navigator.userAgent.indexOf("Chrome")!==-1,Zo=!zt&&navigator.userAgent.indexOf("Safari")!==-1,Pe=/iPad|iPhone/i.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,Qo=()=>navigator.brave?.isBrave?.name==="isBrave",Xt=(e,t)=>e<=599||t<500&&e<1e3,$t=(e,t)=>{let n=Math.min(e,t),r=Math.max(e,t);return n>=600&&r<=1400},jt=()=>{let e=navigator.userAgent||"",t=navigator.platform||"",n=navigator.userAgentData;if(n){let o=(n.platform||"").toLowerCase(),a=o==="windows"||o==="macos"||o==="linux"||o==="chrome os";if(n.mobile===!0)return!0;if(n.mobile===!1&&o==="android")return matchMedia?.("(hover: none)").matches&&matchMedia?.("(pointer: coarse)").matches;if(a)return!1}if(Pe)return!0;if(Ie){let o=/Mobile/i.test(e);if(o||!o)return matchMedia?.("(hover: none)").matches&&matchMedia?.("(pointer: coarse)").matches}return/Win|Linux|CrOS|Mac/.test(t)||/Windows NT|X11|CrOS|Macintosh/.test(e),!1},Jo=(e,t)=>Xt(e,t)?"phone":$t(e,t)?"tablet":"desktop",ea=e=>e.formFactor==="phone"?"mobile":e.formFactor==="tablet"?"compact":e.desktopUIMode,ta=e=>{let t=e??"",n="unknown";return Pe?n="ios":Ie?n="android":t&&(n="other"),{isMobileDevice:jt(),platform:n}},na=()=>{if(typeof window>"u")return null;try{let e=window.localStorage.getItem(Fe);if(e==="compact"||e==="full")return e}catch{}return null},qt=e=>{if(!(typeof window>"u"))try{window.localStorage.setItem(Fe,e)}catch{}},ra=e=>{if(!(e!=="compact"&&e!=="full"))return qt(e),e};var De={EQUAL:"Equal",MINUS:"Minus",NUM_ADD:"NumpadAdd",NUM_SUBTRACT:"NumpadSubtract",NUM_ZERO:"Numpad0",BRACKET_RIGHT:"BracketRight",BRACKET_LEFT:"BracketLeft",ONE:"Digit1",TWO:"Digit2",THREE:"Digit3",NINE:"Digit9",QUOTE:"Quote",ZERO:"Digit0",SLASH:"Slash",C:"KeyC",D:"KeyD",H:"KeyH",V:"KeyV",Z:"KeyZ",Y:"KeyY",R:"KeyR",S:"KeyS"},O={ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",BACKSPACE:"Backspace",ALT:"Alt",CTRL_OR_CMD:Ce?"metaKey":"ctrlKey",DELETE:"Delete",ENTER:"Enter",ESCAPE:"Escape",QUESTION_MARK:"?",SPACE:" ",TAB:"Tab",CHEVRON_LEFT:"<",CHEVRON_RIGHT:">",PERIOD:".",COMMA:",",SUBTRACT:"-",SLASH:"/",A:"a",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",L:"l",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",V:"v",X:"x",Y:"y",Z:"z",K:"k",W:"w",0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9"},Zt=new Map([[O.Z,De.Z],[O.Y,De.Y]]),Qt=e=>/^[a-z]$/.test(e.toLowerCase()),ia=(e,t)=>{if(t===e.key.toLowerCase())return!0;let n=Zt.get(t);return!!(n&&!Qt(e.key)&&e.code===n)},la=e=>e===O.ARROW_LEFT||e===O.ARROW_RIGHT||e===O.ARROW_DOWN||e===O.ARROW_UP,ca=e=>e.altKey,ua=e=>e.shiftKey,fa=e=>e.shiftKey;f();import{pointFromPair as Jt}from"@misenkashari/excalidraw-math";var ha=e=>{let t=e.map(r=>r[0]),n=e.map(r=>r[1]);return{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}},ba=(e,t,n,r)=>{let o=n.map(x=>x[e]),a=Math.max(...o),i=Math.min(...o),s=a-i,l=s===0?1:t/s,c=1/0,p=n.map(x=>{let R=x[e]*l,L=[...x];return L[e]=R,R<c&&(c=R),L});if(!r||p.length===2)return p;let g=i-c;return p.map(x=>Jt(x.map((R,L)=>L===e?R+g:R)))},ga=(e,t,n)=>n?[Math.round(e/n)*n,Math.round(t/n)*n]:[e,t];f();var He=ie(Ue(),1),Ne=class{pool;entries={};constructor(t,n){this.pool=new He.default(t,n)}all(){let t=n=>{if(n.data.result){let[r,o]=n.data.result;this.entries[r]=o}};return this.pool.addEventListener("fulfilled",t),this.pool.start().then(()=>(setTimeout(()=>{this.pool.removeEventListener("fulfilled",t)}),Object.values(this.entries)))}};f();f();f();var Be=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");f();var U=class{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}};f();import{average as z}from"@misenkashari/excalidraw-math";var ne=null,Pa=e=>{ne=e},Da=()=>{if(ne)return ne;let e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0"),o=`${e.getHours()}`.padStart(2,"0"),a=`${e.getMinutes()}`.padStart(2,"0");return`${t}-${n}-${r}-${o}${a}`},ka=e=>e.charAt(0).toUpperCase()+e.slice(1),Ua=e=>e instanceof HTMLElement&&e.className.includes("ToolIcon"),en=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,Na=e=>en(e)||e instanceof Element&&!!e.closest("label, button"),Ha=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type==="text"||e.type==="number"||e.type==="password"||e.type==="search"),tn=({fontFamily:e})=>{for(let[t,n]of Object.entries(T))if(n===e)return`${t}${Se(n).map(r=>`, ${r}`).join("")}`;return k},Ba=({fontSize:e,fontFamily:t})=>`${e}px ${tn({fontFamily:t})}`,Ga=async e=>{requestAnimationFrame(()=>requestAnimationFrame(e))},Ka=(e,t)=>{let n=0,r=null,o=(...a)=>{r=a,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...a)},t)};return o.flush=()=>{if(clearTimeout(n),r){let a=r;r=null,e(...a)}},o.cancel=()=>{r=null,clearTimeout(n)},o},Wa=(e,t)=>{let n=null,r=null,o=null,a=s=>{n=window.requestAnimationFrame(()=>{n=null,e(...s),r=null,o&&(r=o,o=null,a(r))})},i=(...s)=>{if(X()){e(...s);return}r=s,n===null?a(r):t?.trailing&&(o=s)};return i.flush=()=>{n!==null&&(cancelAnimationFrame(n),n=null),r&&(e(...o||r),r=o=null)},i.cancel=()=>{r=o=null,n!==null&&(cancelAnimationFrame(n),n=null)},i},We=e=>1-Math.pow(1-e,4),Ge=(e,t,n)=>(t-e)*We(n)+e,Ya=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:o,onStart:a,onEnd:i,onCancel:s})=>{let l=!1,c=0,p;function g(I){if(l)return;p===void 0&&(p=I,a?.());let x=Math.min(I-p,r),R=We(x/r),L={};if(Object.keys(e).forEach(P=>{let w=P,j=(t[w]-e[w])*R+e[w];L[w]=j}),n(L),x<r){let P=x/r,w={};Object.keys(e).forEach(j=>{let N=j,q=e[N],Z=t[N],H;H=o?o(q,Z,P,N):Ge(q,Z,P),H==null&&(H=Ge(q,Z,P)),w[N]=H}),n(w),c=window.requestAnimationFrame(g)}else n(t),i?.()}return c=window.requestAnimationFrame(g),()=>{s?.(),l=!0,window.cancelAnimationFrame(c)}},Va=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0,o=Array(Math.ceil(e.length/t));for(;n<e.length;)o[r++]=e.slice(n,n+=t);return o},za=e=>{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}},Xa=()=>{let e=window.getSelection();e&&e.removeAllRanges()},$a=(e,t)=>Math.abs(e-t),ja=e=>e==="selection"||e==="lasso",qa=(e,t)=>t.type==="custom"?{...e.activeTool,type:"custom",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked,fromSelection:t.fromSelection??!1},Za=()=>document.fullscreenElement?.nodeName==="HTML",Qa=()=>document.documentElement.requestFullscreen(),Ja=()=>document.exitFullscreen(),es=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:a,scrollY:i})=>{let s=(e-r)/n.value-a,l=(t-o)/n.value-i;return{x:s,y:l}},ts=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:a,scrollY:i})=>{let s=(e+a)*n.value+r,l=(t+i)*n.value+o;return{x:s,y:l}},ns=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),nn="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF",rn="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",on=new RegExp(`^[^${nn}]*[${rn}]`),rs=e=>on.test(e),os=e=>{let[t,n]=e;return{x:t,y:n}},as=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},ss=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r<e.length;)if(t(e[r],r,e))return r;return-1},is=(e,t,n=e.length-1)=>{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},ls=(e,t)=>{for(let n=0;n<e.length;n++){let r=t(e[n],n);if(r!=null)return r}},cs=e=>u(e).getAlpha()===0,we=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n},us=(e,t)=>{let n=[{value:1,symbol:"b"},{value:1e3,symbol:"k"},{value:1e6,symbol:"M"},{value:1e9,symbol:"G"}],r=/\.0+$|(\.[0-9]*[1-9])0+$/,o;for(o=n.length-1;o>0&&!(e>=n[o].value);o--);return(e/n[o].value).toFixed(t).replace(r,"$1")+n[o].symbol},fs=()=>document.querySelector('meta[name="version"]')?.content||Me,ds=()=>{let t=document.createElement("canvas").getContext("2d");if(!t)return!1;let n=12;return t.fillStyle="#f00",t.textBaseline="top",t.font="32px Arial",t.fillText("\u{1F600}",0,0),t.getImageData(n,n,1,1).data[0]!==0},ps=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;let{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n==="auto"||n==="scroll"||n==="overlay"))return t;t=t.parentElement}return document},ms=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},hs=e=>{e.preventDefault(),e.returnValue=""},bs=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),gs=()=>X()?1:Date.now(),Ts=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n=="string"?n:n.id,n),t),new Map),Es=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),_s=(e,t)=>e.reduce((n,r,o)=>(n[t?t(r):o]=r,n),{}),xs=e=>e.reduce((t,n,r)=>{let o={...n,prev:null,next:null};if(r!==0){let a=t[r-1];if(o.prev=a,a.next=o,r===e.length-1){let i=t[0];o.next=i,i.prev=o}}return t.push(o),t},[]),an=e=>Array.isArray(e)?e:e.values(),ys=e=>Array.isArray(e)?e:Array.from(an(e)),X=()=>h.MODE===Y.TEST,As=()=>h.MODE===Y.DEVELOPMENT,vs=()=>h.MODE===Y.PRODUCTION,Ss=()=>typeof process<"u"&&!0,Ms=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),Rs=(e,t)=>{let n=!1;for(let r in t){let o=t[r];if(typeof o<"u"){if(e[r]===o&&(typeof o!="object"||o===null))continue;n=!0}}return n?{...e,...t}:e},Ls=e=>{let t=typeof e;return e==null||t!=="object"&&t!=="function"},sn=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}},ws=()=>sn()==="iframe",Os=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Fs=e=>{let t=e?.querySelectorAll("button, a, input, select, textarea, div[tabindex], label[tabindex]");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},Ke=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,ln=(e,t,n,r=!1)=>{let o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return r&&console.warn("%cisShallowEqual: objects don't have same properties ->","color: #8B4000",e,t),!1;if(n&&Array.isArray(n)){for(let i of n)if(!(e[i]===t[i]||Ke(e[i],t[i])))return r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,"color: #8B4000",e[i],t[i]),!1;return!0}return o.every(i=>{let s=n?.[i],l=s?s(e[i],t[i]):e[i]===t[i]||Ke(e[i],t[i]);return!l&&r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,"color: #8B4000",e[i],t[i]),l})},Cs=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},Is=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Ps(e,t){if(!e)throw new Error(t)}var Ds=e=>{let t,n,r=function(o){let a=Object.entries(o);if(t){let s=!0;for(let[l,c]of a)if(t.get(l)!==c){s=!1;break}if(s)return n}let i=e(o);return t=new Map(a),n=i,i};return r.clear=()=>{t=void 0,n=void 0},r},ks=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Us=e=>JSON.parse(JSON.stringify(e)),Ns=(e,t)=>ln(e,t)?e:t;function Hs(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function Bs(e,t=!0){let n=e.length;if(n<4)return"";let r=e[0],o=e[1],a=e[2],i=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${o[0].toFixed(2)},${o[1].toFixed(2)} ${z(o[0],a[0]).toFixed(2)},${z(o[1],a[1]).toFixed(2)} T`;for(let s=2,l=n-1;s<l;s++)r=e[s],o=e[s+1],i+=`${z(r[0],o[0]).toFixed(2)},${z(r[1],o[1]).toFixed(2)} `;return t&&(i+="Z"),i}var Gs=e=>e.replace(/\r?\n|\r/g,`
|
|
4
|
+
`);function Ks(e){return e}var Oe=async(e,...t)=>new Promise(n=>{n(e(...t))}),Ws=(...e)=>Math.max(...e.map(t=>t?1:0))>0,Ys=e=>{try{return JSON.parse(e)}catch{return null}},Ye=e=>e.replace(/"/g,"""),Vs=e=>Array.isArray(e)?e:[e],cn=e=>Array.isArray(e),un=e=>cn(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length,zs=(e,t)=>{if(un(e)===0)return null;let n=t||(o=>o),r=null;for(let o of e){let a=n(o);if((r===null||r===a)&&a!=null)r=a;else return null}return r},Ve="excalidraw-feature-flags",re={COMPLEX_BINDINGS:!1},F=null,Xs=e=>{if(!F)try{let t=localStorage.getItem(Ve);t&&(F=JSON.parse(t)??re)}catch{}return(F||re)[e]},$s=(e,t)=>{try{F={...F||re,[e]:t},localStorage.setItem(Ve,JSON.stringify(F))}catch(n){console.error("unable to set feature flag",n)}};var ze=new U(Date.now()),Xe=0,ei=()=>Math.floor(ze.next()*2**31),ti=e=>{ze=new U(e),Xe=0},ni=()=>X()?`id${Xe++}`:Be();f();var je=ie($e(),1);var _n=e=>(e=e.trim(),e&&(0,je.sanitizeUrl)(Ye(e))),li=e=>!!(e?.includes(location.origin)||e?.startsWith("/")),ci=e=>{if(e=_n(e),e.startsWith("/"))return`${location.origin}${e}`;try{new URL(e)}catch{return"about:blank"}return e};f();var qe=class{subscribers=[];on(...t){let n=t.flat().filter(r=>typeof r=="function");return this.subscribers.push(...n),()=>this.off(n)}once(...t){let n=t.flat().filter(o=>typeof o=="function");n.push(()=>r());let r=this.on(...n);return r}off(...t){let n=t.flat();this.subscribers=this.subscribers.filter(r=>!n.includes(r))}trigger(...t){for(let n of this.subscribers)n(...t);return this}clear(){this.subscribers=[]}};f();import{isLineSegment as xn,lineSegment as C,pointFrom as _}from"@misenkashari/excalidraw-math";var bi=(e,t)=>{Ze({color:t?.color??"purple",permanent:!!t?.permanent,data:e})},oe=(e,t)=>{(xn(e)?[e]:e).forEach(r=>Ze({color:t?.color??"red",data:r,permanent:!!t?.permanent}))},yn=(e,t)=>{let n=t?.fuzzy?Math.random()*3:0,r=t?.fuzzy?Math.random()*3:0;oe(C(_(e[0]+n-10,e[1]+r-10),_(e[0]+n+10,e[1]+r+10)),{color:t?.color??"cyan",permanent:t?.permanent}),oe(C(_(e[0]+n-10,e[1]+r+10),_(e[0]+n+10,e[1]+r-10)),{color:t?.color??"cyan",permanent:t?.permanent})},gi=(e,t)=>{(ce(e)?[e]:e).forEach(n=>oe([C(_(n[0],n[1]),_(n[2],n[1])),C(_(n[2],n[1]),_(n[2],n[3])),C(_(n[2],n[3]),_(n[0],n[3])),C(_(n[0],n[3]),_(n[0],n[1]))],{color:t?.color??"green",permanent:!!t?.permanent}))},Ti=({x:e,y:t,points:n},r)=>{n.forEach(o=>yn(_(e+o[0],t+o[1]),r))},Ei=()=>{window.visualDebug?.data.push([])},_i=()=>{window.visualDebug?.data&&(window.visualDebug.data=[])},Ze=e=>{window.visualDebug?.data&&window.visualDebug.data.length===0&&(window.visualDebug.data[0]=[]),window.visualDebug?.data&&window.visualDebug.data[window.visualDebug.data.length-1].push(e)};export{Wr as ACTIVE_THRESHOLD,Lr as ALLOWED_PASTE_MIME_TYPES,Qn as APP_NAME,oo as ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO,ro as ARROW_LABEL_WIDTH_FRACTION,yo as ARROW_TYPE,Lo as BIND_MODE_TIMEOUT,no as BOUND_TEXT_PADDING,le as BinaryHeap,Sr as CANVAS_ONLY_ACTIONS,Gn as CANVAS_PALETTE_SHADE_INDEXES,mo as CANVAS_SEARCH_TAB,ye as CJK_HAND_DRAWN_FALLBACK_FONT,dr as CLASSES,De as CODES,Hn as COLORS_PER_ROW,Ar as COLOR_CHARCOAL_BLACK,Un as COLOR_OUTLINE_CONTRAST_THRESHOLD,d as COLOR_PALETTE,vr as COLOR_VOICE_CALL,yr as COLOR_WHITE,lr as CURSOR_TYPE,co as DEFAULT_ADAPTIVE_RADIUS,Yn as DEFAULT_CANVAS_BACKGROUND_PICKS,Bn as DEFAULT_CHART_COLOR_INDEX,xr as DEFAULT_COLLISION_THRESHOLD,W as DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX,zn as DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE,Wn as DEFAULT_ELEMENT_BACKGROUND_PICKS,po as DEFAULT_ELEMENT_PROPS,K as DEFAULT_ELEMENT_STROKE_COLOR_INDEX,Vn as DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,Kn as DEFAULT_ELEMENT_STROKE_PICKS,jr as DEFAULT_EXPORT_PADDING,Eo as DEFAULT_FILENAME,Tr as DEFAULT_FONT_FAMILY,gr as DEFAULT_FONT_SIZE,Mr as DEFAULT_GRID_SIZE,Rr as DEFAULT_GRID_STEP,ir as DEFAULT_LASER_COLOR,qr as DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,lo as DEFAULT_PROPORTIONAL_RADIUS,Ao as DEFAULT_REDUCED_GLOBAL_ALPHA,ho as DEFAULT_SIDEBAR,Er as DEFAULT_TEXT_ALIGN,Ht as DEFAULT_TRANSFORM_HANDLE_SPACING,zr as DEFAULT_UI_OPTIONS,Me as DEFAULT_VERSION,_r as DEFAULT_VERTICAL_ALIGN,Ro as DOUBLE_TAP_POSITION_THRESHOLD,er as DRAGGING_THRESHOLD,To as EDITOR_LS_KEYS,v as ELEMENTS_PALETTE_SHADE_INDEXES,vo as ELEMENT_LINK_KEY,io as ELEMENT_READY_TO_ERASE_OPACITY,rr as ELEMENT_SHIFT_TRANSLATE_AMOUNT,or as ELEMENT_TRANSLATE_AMOUNT,eo as ENCRYPTION_KEY_BITS,Y as ENV,Gt as EPSILON,kt as EVENT,Or as EXPORT_DATA_TYPES,wr as EXPORT_IMAGE_TYPES,$r as EXPORT_SCALES,qe as Emitter,T as FONT_FAMILY,ee as FONT_FAMILY_FALLBACKS,Ut as FONT_FAMILY_GENERIC_FALLBACKS,V as FONT_METADATA,pr as FONT_SIZES,hr as FRAME_STYLE,Io as GOOGLE_FONTS_RANGES,Gr as HYPERLINK_TOOLTIP_DELAY,Kr as IDLE_THRESHOLD,Re as IMAGE_MIME_TYPES,Cr as IMAGE_RENDER_TIMEOUT,O as KEYS,Zt as KeyCodeMap,bo as LIBRARY_DISABLED_TYPES,Yt as LIBRARY_SIDEBAR_TAB,nr as LINE_CONFIRM_THRESHOLD,Mo as LINE_POLYGON_POINT_MERGE_DISTANCE,Po as LOCAL_FONT_PROTOCOL,Zr as MAX_ALLOWED_FILE_BYTES,Nn as MAX_CUSTOM_COLORS_USED_IN_CANVAS,Xr as MAX_DECIMALS_FOR_SVG_EXPORT,Br as MAX_ZOOM,xe as MIME_TYPES,tr as MINIMUM_ARROW_SIZE,br as MIN_FONT_SIZE,xo as MIN_WIDTH_OR_HEIGHT,Hr as MIN_ZOOM,wo as MOBILE_ACTION_BUTTON_BG,ve as MONOSPACE_GENERIC_FONT,Yo as MQ_MAX_HEIGHT_LANDSCAPE,Ko as MQ_MAX_MOBILE,zo as MQ_MAX_TABLET,Wo as MQ_MAX_WIDTH_LANDSCAPE,Vo as MQ_MIN_TABLET,Xo as MQ_MIN_WIDTH_DESKTOP,$o as MQ_RIGHT_SIDEBAR_MIN_WIDTH,So as ORIG_ID,cr as POINTER_BUTTON,ur as POINTER_EVENTS,Ne as PromisePool,Le as Queue,Wt as ROUGHNESS,uo as ROUNDNESS,Ae as SANS_SERIF_GENERIC_FONT,Ur as SCROLL_TIMEOUT,sr as SHIFT_LOCKING_ANGLE,Bt as SIDE_RESIZING_THRESHOLD,_o as STATS_PANELS,Kt as STRING_MIME_TYPES,fo as STROKE_WIDTH,Jr as SVG_DOCUMENT_PREAMBLE,Qr as SVG_NS,Ir as TAP_TWICE_TIMEOUT,so as TEXT_ALIGN,Jn as TEXT_AUTOWRAP_THRESHOLD,ar as TEXT_TO_CENTER_SNAP_THRESHOLD,mr as THEME,Dr as TITLE_TIMEOUT,go as TOOL_TYPE,Pr as TOUCH_CTX_MENU_TIMEOUT,Vr as URL_HASH_KEYS,Yr as URL_QUERY_KEYS,Vt as UserIdleState,to as VERSIONS,kr as VERSION_TIMEOUT,ao as VERTICAL_ALIGN,k as WINDOWS_EMOJI_FALLBACK_FONT,fr as YOUTUBE_STATES,Nr as ZOOM_STEP,Hs as addEventListener,Qa as allowFullScreen,kn as applyDarkModeFilter,xs as arrayToList,Ts as arrayToMap,Es as arrayToMapWithIndex,_s as arrayToObject,Is as assertNever,bs as bytesToHexString,ka as capitalizeString,Vs as castArray,Va as chunk,Us as cloneJSON,Cs as composeEventHandlers,ta as createUserAgentDescriptor,Ka as debounce,_i as debugClear,Ei as debugCloseFrame,gi as debugDrawBounds,bi as debugDrawCubicBezier,oe as debugDrawLine,yn as debugDrawPoint,Ti as debugDrawPoints,ea as deriveStylesPanelMode,$a as distance,We as easeOut,Ya as easeToValuesRAF,Ye as escapeDoubleQuotes,Ja as exitFullScreen,ss as findIndex,is as findLastIndex,ms as focusNearestParent,Xn as getAllColorsSpecificShade,Da as getDateTime,Fr as getExportSource,Xs as getFeatureFlag,Se as getFontFamilyFallbacks,tn as getFontFamilyString,Ba as getFontString,Jo as getFormFactor,sn as getFrame,Nt as getGenericFontFamilyFallback,ns as getGlobalCSSVariable,ga as getGridPoint,ko as getLineHeight,ps as getNearestScrollableContainer,ha as getSizeFromPoints,S as getSpecificColorShades,Bs as getSvgPathFromStroke,gs as getUpdatedTimestamp,fs as getVersion,Do as getVerticalOffset,Ps as invariant,Ie as isAndroid,Ws as isAnyTrue,la as isArrowKey,ce as isBounds,Qo as isBrave,zt as isChrome,Ce as isDarwin,As as isDevEnv,qo as isFirefox,Za as isFullScreen,Pe as isIOS,en as isInputLike,Na as isInteractive,Qt as isLatinChar,li as isLocalLink,ks as isMemberOf,Xt as isMobileBreakpoint,Ls as isPrimitive,vs as isProdEnv,Os as isPromiseLike,rs as isRTL,cn as isReadonlyArray,ws as isRunningInIframe,Zo as isSafari,ja as isSelectionLikeTool,Ss as isServerEnv,ln as isShallowEqual,$t as isTabletBreakpoint,X as isTestEnv,Ua as isToolIcon,cs as isTransparent,jo as isWindows,Ha as isWritableElement,na as loadDesktopUIModePreference,ls as mapFind,ia as matchKey,Ds as memoize,as as muteFSAbortError,us as nFormatter,Ga as nextAnimationFrame,Gs as normalizeEOL,_n as normalizeLink,hs as preventUnload,Oe as promiseTry,Fs as queryFocusableElements,ni as randomId,ei as randomInteger,zs as reduceToCommonValue,Xa as removeSelection,ba as rescalePoints,ti as reseed,we as resolvablePromise,Dt as rgbToHex,Ys as safelyParseJSON,ts as sceneCoordsToViewportCoords,za as selectNode,Pa as setDateTimeForTests,ra as setDesktopUIMode,$s as setFeatureFlag,ua as shouldMaintainAspectRatio,ca as shouldResizeFromCenter,fa as shouldRotateWithDiscreteAngle,un as sizeOf,ds as supportsEmoji,Zn as supportsResizeObserver,Wa as throttleRAF,u as tinycolor,ys as toArray,Ks as toBrandedType,an as toIterable,ci as toValidURL,os as tupleToCoors,qa as updateActiveTool,Rs as updateObject,Ns as updateStable,es as viewportCoordsToSceneCoords,Ms as wrapEvent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExcalidrawElement, FontFamilyValues } from "@excalidraw
|
|
1
|
+
import type { ExcalidrawElement, FontFamilyValues } from "@misenkashari/excalidraw-element/types";
|
|
2
2
|
import type { AppProps, AppState } from "@excalidraw/excalidraw/types";
|
|
3
3
|
export declare const supportsResizeObserver: boolean;
|
|
4
4
|
export declare const APP_NAME = "Excalidraw";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type GlobalPoint, type LocalPoint } from "@excalidraw
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import type { NullableGridSize } from "@excalidraw/excalidraw/types";
|
|
3
3
|
export declare const getSizeFromPoints: (points: readonly (GlobalPoint | LocalPoint)[]) => {
|
|
4
4
|
width: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FontFamilyValues, FontString } from "@excalidraw
|
|
1
|
+
import type { FontFamilyValues, FontString } from "@misenkashari/excalidraw-element/types";
|
|
2
2
|
import type { ActiveTool, AppState, ToolType, UnsubscribeCallback, Zoom } from "@excalidraw/excalidraw/types";
|
|
3
3
|
import type { MaybePromise, ResolutionType } from "./utility-types";
|
|
4
4
|
import type { EVENT } from "./constants";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type GlobalPoint, type LocalPoint } from "@excalidraw
|
|
2
|
-
import type { Curve } from "@excalidraw
|
|
3
|
-
import type { LineSegment } from "@excalidraw
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "@misenkashari/excalidraw-math";
|
|
2
|
+
import type { Curve } from "@misenkashari/excalidraw-math";
|
|
3
|
+
import type { LineSegment } from "@misenkashari/excalidraw-utils";
|
|
4
4
|
import { type Bounds } from "./bounds";
|
|
5
5
|
declare global {
|
|
6
6
|
interface Window {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type ElementUpdate } from "@excalidraw
|
|
2
|
-
import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, SceneElementsMap, NonDeletedSceneElementsMap, OrderedExcalidrawElement, Ordered } from "@excalidraw
|
|
3
|
-
import type { Mutable } from "@excalidraw
|
|
1
|
+
import { type ElementUpdate } from "@misenkashari/excalidraw-element";
|
|
2
|
+
import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, SceneElementsMap, NonDeletedSceneElementsMap, OrderedExcalidrawElement, Ordered } from "@misenkashari/excalidraw-element/types";
|
|
3
|
+
import type { Mutable } from "@misenkashari/excalidraw-common/utility-types";
|
|
4
4
|
import type { AppState } from "../../excalidraw/types";
|
|
5
5
|
type SceneStateCallback = () => void;
|
|
6
6
|
type SceneStateCallbackRemover = () => void;
|
|
@@ -70,7 +70,7 @@ export declare class Scene {
|
|
|
70
70
|
getElementIndex(elementId: string): number;
|
|
71
71
|
getContainerElement: (element: (ExcalidrawElement & {
|
|
72
72
|
containerId: ExcalidrawElement["id"] | null;
|
|
73
|
-
}) | null) => import("@excalidraw
|
|
73
|
+
}) | null) => import("@misenkashari/excalidraw-element/types").ExcalidrawLinearElement | import("@misenkashari/excalidraw-element/types").ExcalidrawSelectionElement | import("@misenkashari/excalidraw-element/types").ExcalidrawRectangleElement | import("@misenkashari/excalidraw-element/types").ExcalidrawDiamondElement | import("@misenkashari/excalidraw-element/types").ExcalidrawEllipseElement | import("@misenkashari/excalidraw-element/types").ExcalidrawTriangleElement | import("@misenkashari/excalidraw-element/types").ExcalidrawHexagonElement | import("@misenkashari/excalidraw-element/types").ExcalidrawHeartElement | import("@misenkashari/excalidraw-element/types").ExcalidrawStarElement | import("@misenkashari/excalidraw-element/types").ExcalidrawEmbeddableElement | import("@misenkashari/excalidraw-element/types").ExcalidrawIframeElement | import("@misenkashari/excalidraw-element/types").ExcalidrawImageElement | import("@misenkashari/excalidraw-element/types").ExcalidrawFrameElement | import("@misenkashari/excalidraw-element/types").ExcalidrawMagicFrameElement | import("@misenkashari/excalidraw-element/types").ExcalidrawTextElement | import("@misenkashari/excalidraw-element/types").ExcalidrawFreeDrawElement | null;
|
|
74
74
|
getElementsFromId: (id: string) => ExcalidrawElement[];
|
|
75
75
|
mutateElement<TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, options?: {
|
|
76
76
|
informMutation: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type GlobalPoint } from "@excalidraw
|
|
2
|
-
import type { LineSegment, LocalPoint } from "@excalidraw
|
|
1
|
+
import { type GlobalPoint } from "@misenkashari/excalidraw-math";
|
|
2
|
+
import type { LineSegment, LocalPoint } from "@misenkashari/excalidraw-math";
|
|
3
3
|
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
4
|
-
import type { Bounds } from "@excalidraw
|
|
4
|
+
import type { Bounds } from "@misenkashari/excalidraw-common";
|
|
5
5
|
import { type Heading } from "./heading";
|
|
6
6
|
import type { Scene } from "./Scene";
|
|
7
7
|
import type { ElementUpdate } from "./mutateElement";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type Bounds } from "@excalidraw
|
|
2
|
-
import type { Degrees, GlobalPoint, LineSegment, LocalPoint } from "@excalidraw
|
|
1
|
+
import { type Bounds } from "@misenkashari/excalidraw-common";
|
|
2
|
+
import type { Degrees, GlobalPoint, LineSegment, LocalPoint } from "@misenkashari/excalidraw-math";
|
|
3
3
|
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
4
4
|
import type { Drawable, Op } from "roughjs/bin/core";
|
|
5
5
|
import type { Arrowhead, ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, NonDeleted } from "./types";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GlobalPoint, LineSegment } from "@excalidraw
|
|
1
|
+
import type { GlobalPoint, LineSegment } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import type { FrameNameBounds } from "@excalidraw/excalidraw/types";
|
|
3
3
|
import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, Ordered } from "./types";
|
|
4
4
|
export declare const shouldTestInside: (element: ExcalidrawElement) => boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ExcalidrawElement, Ordered, OrderedExcalidrawElement, SceneElementsMap } from "@excalidraw
|
|
2
|
-
import type { DTO, ValueOf } from "@excalidraw
|
|
1
|
+
import type { ExcalidrawElement, Ordered, OrderedExcalidrawElement, SceneElementsMap } from "@misenkashari/excalidraw-element/types";
|
|
2
|
+
import type { DTO, ValueOf } from "@misenkashari/excalidraw-common/utility-types";
|
|
3
3
|
import type { AppState, ObservedAppState } from "@excalidraw/excalidraw/types";
|
|
4
4
|
import { StoreSnapshot } from "./store";
|
|
5
5
|
/**
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { GlobalPoint } from "@excalidraw
|
|
1
|
+
import type { GlobalPoint } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import type { ElementsMap, ExcalidrawElement } from "./types";
|
|
3
3
|
export declare const distanceToElement: (element: ExcalidrawElement, elementsMap: ElementsMap, p: GlobalPoint) => number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AppState, NormalizedZoomValue, NullableGridSize, PointerDownState } from "@excalidraw/excalidraw/types";
|
|
2
|
-
import type { NonDeletedExcalidrawElement } from "@excalidraw
|
|
2
|
+
import type { NonDeletedExcalidrawElement } from "@misenkashari/excalidraw-element/types";
|
|
3
3
|
import type { Scene } from "./Scene";
|
|
4
4
|
export declare const dragSelectedElements: (pointerDownState: PointerDownState, _selectedElements: NonDeletedExcalidrawElement[], offset: {
|
|
5
5
|
x: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Mutable } from "@excalidraw
|
|
1
|
+
import type { Mutable } from "@misenkashari/excalidraw-common/utility-types";
|
|
2
2
|
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
3
3
|
import type { ExcalidrawElement, GroupId } from "./types";
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type GlobalPoint, type LocalPoint } from "@excalidraw
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import { type ElementUpdate } from "./mutateElement";
|
|
3
3
|
import { type ExcalidrawElbowArrowElement, type NonDeletedSceneElementsMap } from "./types";
|
|
4
4
|
import type { FixedPointBinding, FixedSegment } from "./types";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ExcalidrawProps } from "@excalidraw/excalidraw/types";
|
|
2
|
-
import type { MarkRequired } from "@excalidraw
|
|
2
|
+
import type { MarkRequired } from "@misenkashari/excalidraw-common/utility-types";
|
|
3
3
|
import type { ExcalidrawElement, ExcalidrawIframeLikeElement, IframeData } from "./types";
|
|
4
4
|
type IframeDataWithSandbox = MarkRequired<IframeData, "sandbox">;
|
|
5
5
|
export declare const createSrcDoc: (body: string) => string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AppClassProperties, AppState, StaticCanvasAppState } from "@excalidraw/excalidraw/types";
|
|
2
|
-
import type { ReadonlySetLike } from "@excalidraw
|
|
2
|
+
import type { ReadonlySetLike } from "@misenkashari/excalidraw-common/utility-types";
|
|
3
3
|
import type { ExcalidrawElementsIncludingDeleted } from "./Scene";
|
|
4
4
|
import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./types";
|
|
5
5
|
export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], origElements: readonly ExcalidrawElement[], origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "@excalidraw/excalidraw/types";
|
|
2
|
-
import type { Mutable } from "@excalidraw
|
|
2
|
+
import type { Mutable } from "@misenkashari/excalidraw-common/utility-types";
|
|
3
3
|
import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./types";
|
|
4
4
|
export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted<ExcalidrawElement>[]) => Pick<InteractiveCanvasAppState, "selectedGroupIds" | "selectedElementIds" | "editingGroupId">;
|
|
5
5
|
export declare const selectGroupsForSelectedElements: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type Bounds } from "@excalidraw
|
|
2
|
-
import type { LocalPoint, GlobalPoint, Vector } from "@excalidraw
|
|
1
|
+
import { type Bounds } from "@misenkashari/excalidraw-common";
|
|
2
|
+
import type { LocalPoint, GlobalPoint, Vector } from "@misenkashari/excalidraw-math";
|
|
3
3
|
import type { ExcalidrawBindableElement } from "./types";
|
|
4
4
|
export declare const HEADING_RIGHT: Heading;
|
|
5
5
|
export declare const HEADING_DOWN: Heading;
|
|
@@ -10,7 +10,7 @@ export declare const updateImageCache: ({ fileIds, files, imageCache, }: {
|
|
|
10
10
|
}) => Promise<{
|
|
11
11
|
imageCache: Map<FileId, {
|
|
12
12
|
image: HTMLImageElement | Promise<HTMLImageElement>;
|
|
13
|
-
mimeType: import("@excalidraw
|
|
13
|
+
mimeType: import("@misenkashari/excalidraw-common/utility-types").ValueOf<typeof import("@misenkashari/excalidraw-common").IMAGE_MIME_TYPES>;
|
|
14
14
|
}>;
|
|
15
15
|
/** includes errored files because they cache was updated nonetheless */
|
|
16
16
|
updatedFiles: Map<FileId, true>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type GlobalPoint, type LocalPoint } from "@excalidraw
|
|
2
|
-
import { type Store } from "@excalidraw
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "@misenkashari/excalidraw-math";
|
|
2
|
+
import { type Store } from "@misenkashari/excalidraw-element";
|
|
3
3
|
import type { AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties, NullableGridSize, Zoom } from "@excalidraw/excalidraw/types";
|
|
4
|
-
import type { Bounds } from "@excalidraw
|
|
4
|
+
import type { Bounds } from "@misenkashari/excalidraw-common";
|
|
5
5
|
import type { Scene } from "./Scene";
|
|
6
6
|
import type { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, ExcalidrawTextElementWithContainer, ElementsMap, NonDeletedSceneElementsMap, FixedPointBinding, ExcalidrawElbowArrowElement, PointsPositionUpdates } from "./types";
|
|
7
7
|
export declare class LinearElementEditor {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Mutable } from "@excalidraw
|
|
1
|
+
import type { Mutable } from "@misenkashari/excalidraw-common/utility-types";
|
|
2
2
|
import type { ElementsMap, ExcalidrawElement } from "./types";
|
|
3
3
|
export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "updated">;
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MarkOptional } from "@excalidraw
|
|
1
|
+
import type { MarkOptional } from "@misenkashari/excalidraw-common/utility-types";
|
|
2
2
|
import type { ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer, ExcalidrawFrameElement, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawIframeElement, ElementsMap, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, ExcalidrawLineElement } from "./types";
|
|
3
3
|
export type ElementConstructorOpts = MarkOptional<Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted" | "updated">, "width" | "height" | "angle" | "groupIds" | "frameId" | "index" | "boundElements" | "seed" | "version" | "versionNonce" | "link" | "strokeStyle" | "fillStyle" | "strokeColor" | "backgroundColor" | "roughness" | "strokeWidth" | "roundness" | "locked" | "opacity" | "customData">;
|
|
4
4
|
export declare const newElement: (opts: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type GlobalPoint } from "@excalidraw
|
|
1
|
+
import { type GlobalPoint } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure, PendingExcalidrawElements } from "@excalidraw/excalidraw/types";
|
|
3
3
|
import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "@excalidraw/excalidraw/scene/types";
|
|
4
4
|
import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawImageElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap, ElementsMap } from "./types";
|
|
@@ -22,4 +22,4 @@ export declare const DEFAULT_LINK_SIZE = 14;
|
|
|
22
22
|
export declare const elementWithCanvasCache: WeakMap<ExcalidrawElement, ExcalidrawElementWithCanvas>;
|
|
23
23
|
export declare const renderSelectionElement: (element: NonDeletedExcalidrawElement, context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState, selectionColor: InteractiveCanvasRenderConfig["selectionColor"]) => void;
|
|
24
24
|
export declare const renderElement: (element: NonDeletedExcalidrawElement, elementsMap: RenderableElementsMap, allElementsMap: NonDeletedSceneElementsMap, rc: RoughCanvas, context: CanvasRenderingContext2D, renderConfig: StaticCanvasRenderConfig, appState: StaticCanvasAppState | InteractiveCanvasAppState) => void;
|
|
25
|
-
export declare function getFreedrawOutlineAsSegments(element: ExcalidrawFreeDrawElement, points: [number, number][], elementsMap: ElementsMap): import("@excalidraw
|
|
25
|
+
export declare function getFreedrawOutlineAsSegments(element: ExcalidrawFreeDrawElement, points: [number, number][], elementsMap: ElementsMap): import("@misenkashari/excalidraw-math").LineSegment<GlobalPoint>[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LocalPoint } from "@excalidraw
|
|
1
|
+
import { type LocalPoint } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import type { PointerDownState } from "@excalidraw/excalidraw/types";
|
|
3
3
|
import type { Scene } from "./Scene";
|
|
4
4
|
import type { BoundingBox } from "./bounds";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type EditorInterface } from "@excalidraw
|
|
2
|
-
import type { GlobalPoint, LocalPoint } from "@excalidraw
|
|
1
|
+
import { type EditorInterface } from "@misenkashari/excalidraw-common";
|
|
2
|
+
import type { GlobalPoint, LocalPoint } from "@misenkashari/excalidraw-math";
|
|
3
3
|
import type { AppState, Zoom } from "@excalidraw/excalidraw/types";
|
|
4
|
-
import type { Bounds } from "@excalidraw
|
|
4
|
+
import type { Bounds } from "@misenkashari/excalidraw-common";
|
|
5
5
|
import type { MaybeTransformHandleType } from "./transformHandles";
|
|
6
6
|
import type { ExcalidrawElement, PointerType, NonDeletedExcalidrawElement, ElementsMap } from "./types";
|
|
7
7
|
export declare const resizeTest: <Point extends GlobalPoint | LocalPoint>(element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, x: number, y: number, zoom: Zoom, pointerType: PointerType, editorInterface: EditorInterface) => MaybeTransformHandleType;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type GeometricShape } from "@excalidraw
|
|
2
|
-
import { type LocalPoint } from "@excalidraw
|
|
3
|
-
import type { GlobalPoint } from "@excalidraw
|
|
1
|
+
import { type GeometricShape } from "@misenkashari/excalidraw-utils/shape";
|
|
2
|
+
import { type LocalPoint } from "@misenkashari/excalidraw-math";
|
|
3
|
+
import type { GlobalPoint } from "@misenkashari/excalidraw-math";
|
|
4
4
|
import type { AppState, EmbedsValidationStatus } from "@excalidraw/excalidraw/types";
|
|
5
5
|
import type { ElementShape, ElementShapes } from "@excalidraw/excalidraw/scene/types";
|
|
6
6
|
import type { ExcalidrawElement, ExcalidrawSelectionElement, ExcalidrawLinearElement, ExcalidrawFreeDrawElement, ElementsMap, ExcalidrawLineElement } from "./types";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Emitter } from "@excalidraw
|
|
1
|
+
import { Emitter } from "@misenkashari/excalidraw-common";
|
|
2
2
|
import type App from "@excalidraw/excalidraw/components/App";
|
|
3
|
-
import type { DTO, ValueOf } from "@excalidraw
|
|
3
|
+
import type { DTO, ValueOf } from "@misenkashari/excalidraw-common/utility-types";
|
|
4
4
|
import type { AppState, ObservedAppState } from "@excalidraw/excalidraw/types";
|
|
5
5
|
import { ElementsDelta, AppStateDelta } from "./delta";
|
|
6
6
|
import type { ApplyToOptions } from "./delta";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type Radians } from "@excalidraw
|
|
1
|
+
import { type Radians } from "@misenkashari/excalidraw-math";
|
|
2
2
|
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
3
|
-
import type { ExtractSetType } from "@excalidraw
|
|
3
|
+
import type { ExtractSetType } from "@misenkashari/excalidraw-common/utility-types";
|
|
4
4
|
import type { Scene } from "./Scene";
|
|
5
5
|
import type { MaybeTransformHandleType } from "./transformHandles";
|
|
6
6
|
import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, NonDeletedExcalidrawElement } from "./types";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MarkOptional } from "@excalidraw
|
|
1
|
+
import type { MarkOptional } from "@misenkashari/excalidraw-common/utility-types";
|
|
2
2
|
import { type ElementConstructorOpts } from "./newElement";
|
|
3
3
|
import type { ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawFrameElement, ExcalidrawFreeDrawElement, ExcalidrawGenericElement, ExcalidrawIframeLikeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawMagicFrameElement, ExcalidrawSelectionElement, ExcalidrawTextElement, FileId, FontFamilyValues, TextAlign, VerticalAlign } from "./types";
|
|
4
4
|
export type ValidLinearElement = {
|