/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (() => { var exports = {}; exports.id = "pages/index"; exports.ids = ["pages/index"]; exports.modules = { /***/ "../../node_modules/@swc/helpers/lib/_interop_require_default.js": /*!***********************************************************************!*\ !*** ../../node_modules/@swc/helpers/lib/_interop_require_default.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _interopRequireDefault;\n }\n}));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uLi8uLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanM/OTRhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/@swc/helpers/lib/_interop_require_default.js\n"); /***/ }), /***/ "../../node_modules/@swc/helpers/lib/_object_without_properties_loose.js": /*!*******************************************************************************!*\ !*** ../../node_modules/@swc/helpers/lib/_object_without_properties_loose.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _objectWithoutPropertiesLoose;\n }\n}));\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx1QkFBdUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHRsZHJhdy9kb2NzLy4uLy4uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvbGliL19vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlLmpzPzc3ZDQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgICB2YXIgdGFyZ2V0ID0ge307XG4gICAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgIHZhciBrZXksIGk7XG4gICAgZm9yKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/@swc/helpers/lib/_object_without_properties_loose.js\n"); /***/ }), /***/ "./components/ArticleDetails.tsx": /*!***************************************!*\ !*** ./components/ArticleDetails.tsx ***! \***************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ArticleDetails\": () => (/* binding */ ArticleDetails)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon */ \"./components/Icon.tsx\");\n\n\nfunction ArticleDetails({ article: { sourceUrl , date } }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"article__details\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n className: \"article__details__edit\",\n href: sourceUrl,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_1__.Icon, {\n icon: \"edit\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleDetails.tsx\",\n lineNumber: 12,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Edit this page\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleDetails.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleDetails.tsx\",\n lineNumber: 11,\n columnNumber: 4\n }, this),\n date && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"article__details__timestamp\",\n children: [\n \"Last edited on\",\n \" \",\n Intl.DateTimeFormat(\"en-gb\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n }).format(new Date(date))\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleDetails.tsx\",\n lineNumber: 16,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleDetails.tsx\",\n lineNumber: 10,\n columnNumber: 3\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL0FydGljbGVEZXRhaWxzLnRzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUM2QjtBQU10QixTQUFTQyxlQUFlLEVBQUVDLFNBQVMsRUFBRUMsVUFBUyxFQUFFQyxLQUFJLEVBQUUsR0FBdUIsRUFBRTtJQUNyRixxQkFDQyw4REFBQ0M7UUFBSUMsV0FBVTs7MEJBQ2QsOERBQUNDO2dCQUFFRCxXQUFVO2dCQUF5QkUsTUFBTUw7O2tDQUMzQyw4REFBQ0gsdUNBQUlBO3dCQUFDUyxNQUFLOzs7Ozs7a0NBQ1gsOERBQUNDO2tDQUFLOzs7Ozs7Ozs7Ozs7WUFFTk4sc0JBQ0EsOERBQUNDO2dCQUFJQyxXQUFVOztvQkFBOEI7b0JBQzdCO29CQUNkSyxLQUFLQyxjQUFjLENBQUMsU0FBUzt3QkFDN0JDLE1BQU07d0JBQ05DLE9BQU87d0JBQ1BDLEtBQUs7b0JBQ04sR0FBR0MsTUFBTSxDQUFDLElBQUlDLEtBQUtiOzs7Ozs7Ozs7Ozs7O0FBS3hCLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi9jb21wb25lbnRzL0FydGljbGVEZXRhaWxzLnRzeD9jNWI0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFydGljbGUgfSBmcm9tICdAL3R5cGVzL2NvbnRlbnQtdHlwZXMnXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi9JY29uJ1xuXG50eXBlIEFydGljbGVEZXRhaWxzUHJvcHMgPSB7XG5cdGFydGljbGU6IEFydGljbGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFydGljbGVEZXRhaWxzKHsgYXJ0aWNsZTogeyBzb3VyY2VVcmwsIGRhdGUgfSB9OiBBcnRpY2xlRGV0YWlsc1Byb3BzKSB7XG5cdHJldHVybiAoXG5cdFx0PGRpdiBjbGFzc05hbWU9XCJhcnRpY2xlX19kZXRhaWxzXCI+XG5cdFx0XHQ8YSBjbGFzc05hbWU9XCJhcnRpY2xlX19kZXRhaWxzX19lZGl0XCIgaHJlZj17c291cmNlVXJsfT5cblx0XHRcdFx0PEljb24gaWNvbj1cImVkaXRcIiAvPlxuXHRcdFx0XHQ8c3Bhbj5FZGl0IHRoaXMgcGFnZTwvc3Bhbj5cblx0XHRcdDwvYT5cblx0XHRcdHtkYXRlICYmIChcblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJhcnRpY2xlX19kZXRhaWxzX190aW1lc3RhbXBcIj5cblx0XHRcdFx0XHRMYXN0IGVkaXRlZCBvbnsnICd9XG5cdFx0XHRcdFx0e0ludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLWdiJywge1xuXHRcdFx0XHRcdFx0eWVhcjogJ251bWVyaWMnLFxuXHRcdFx0XHRcdFx0bW9udGg6ICdsb25nJyxcblx0XHRcdFx0XHRcdGRheTogJ251bWVyaWMnLFxuXHRcdFx0XHRcdH0pLmZvcm1hdChuZXcgRGF0ZShkYXRlKSl9XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KX1cblx0XHQ8L2Rpdj5cblx0KVxufVxuIl0sIm5hbWVzIjpbIkljb24iLCJBcnRpY2xlRGV0YWlscyIsImFydGljbGUiLCJzb3VyY2VVcmwiLCJkYXRlIiwiZGl2IiwiY2xhc3NOYW1lIiwiYSIsImhyZWYiLCJpY29uIiwic3BhbiIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsInllYXIiLCJtb250aCIsImRheSIsImZvcm1hdCIsIkRhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/ArticleDetails.tsx\n"); /***/ }), /***/ "./components/ArticleNavLinks.tsx": /*!****************************************!*\ !*** ./components/ArticleNavLinks.tsx ***! \****************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ArticleNavLinks\": () => (/* binding */ ArticleNavLinks)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"../../node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Icon */ \"./components/Icon.tsx\");\n\n\n\nfunction ArticleNavLinks({ links: { prev , next } }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"article__links\",\n children: [\n prev && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/${prev.sectionId}/${prev.categoryId}/${prev.id}`,\n className: \"article__links__link article__links__prev\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, {\n icon: \"arrow-left\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 17,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: prev.title\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 18,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this),\n next && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/${next.sectionId}/${next.categoryId}/${next.id}`,\n className: \"article__links__link article__links__next\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: next.title\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 26,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, {\n icon: \"arrow-right\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 27,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 22,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ArticleNavLinks.tsx\",\n lineNumber: 11,\n columnNumber: 3\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL0FydGljbGVOYXZMaW5rcy50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUM0QjtBQUNDO0FBTXRCLFNBQVNFLGdCQUFnQixFQUFFQyxPQUFPLEVBQUVDLEtBQUksRUFBRUMsS0FBSSxFQUFFLEdBQXdCLEVBQUU7SUFDaEYscUJBQ0MsOERBQUNDO1FBQUlDLFdBQVU7O1lBQ2JILHNCQUNBLDhEQUFDSixrREFBSUE7Z0JBQ0pRLE1BQU0sQ0FBQyxDQUFDLEVBQUVKLEtBQUtLLFNBQVMsQ0FBQyxDQUFDLEVBQUVMLEtBQUtNLFVBQVUsQ0FBQyxDQUFDLEVBQUVOLEtBQUtPLEVBQUUsQ0FBQyxDQUFDO2dCQUN4REosV0FBVTs7a0NBRVYsOERBQUNOLHVDQUFJQTt3QkFBQ1csTUFBSzs7Ozs7O2tDQUNYLDhEQUFDQztrQ0FBTVQsS0FBS1UsS0FBSzs7Ozs7Ozs7Ozs7O1lBR2xCVCxzQkFDQSw4REFBQ0wsa0RBQUlBO2dCQUNKUSxNQUFNLENBQUMsQ0FBQyxFQUFFSCxLQUFLSSxTQUFTLENBQUMsQ0FBQyxFQUFFSixLQUFLSyxVQUFVLENBQUMsQ0FBQyxFQUFFTCxLQUFLTSxFQUFFLENBQUMsQ0FBQztnQkFDeERKLFdBQVU7O2tDQUVWLDhEQUFDTTtrQ0FBTVIsS0FBS1MsS0FBSzs7Ozs7O2tDQUNqQiw4REFBQ2IsdUNBQUlBO3dCQUFDVyxNQUFLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLaEIsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL2NvbXBvbmVudHMvQXJ0aWNsZU5hdkxpbmtzLnRzeD9jNjRkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFydGljbGVMaW5rcyB9IGZyb20gJ0AvdHlwZXMvY29udGVudC10eXBlcydcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcbmltcG9ydCB7IEljb24gfSBmcm9tICcuL0ljb24nXG5cbnR5cGUgQXJ0aWNsZU5hdkxpbmtzUHJvcHMgPSB7XG5cdGxpbmtzOiBBcnRpY2xlTGlua3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFydGljbGVOYXZMaW5rcyh7IGxpbmtzOiB7IHByZXYsIG5leHQgfSB9OiBBcnRpY2xlTmF2TGlua3NQcm9wcykge1xuXHRyZXR1cm4gKFxuXHRcdDxkaXYgY2xhc3NOYW1lPVwiYXJ0aWNsZV9fbGlua3NcIj5cblx0XHRcdHtwcmV2ICYmIChcblx0XHRcdFx0PExpbmtcblx0XHRcdFx0XHRocmVmPXtgLyR7cHJldi5zZWN0aW9uSWR9LyR7cHJldi5jYXRlZ29yeUlkfS8ke3ByZXYuaWR9YH1cblx0XHRcdFx0XHRjbGFzc05hbWU9XCJhcnRpY2xlX19saW5rc19fbGluayBhcnRpY2xlX19saW5rc19fcHJldlwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8SWNvbiBpY29uPVwiYXJyb3ctbGVmdFwiIC8+XG5cdFx0XHRcdFx0PHNwYW4+e3ByZXYudGl0bGV9PC9zcGFuPlxuXHRcdFx0XHQ8L0xpbms+XG5cdFx0XHQpfVxuXHRcdFx0e25leHQgJiYgKFxuXHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdGhyZWY9e2AvJHtuZXh0LnNlY3Rpb25JZH0vJHtuZXh0LmNhdGVnb3J5SWR9LyR7bmV4dC5pZH1gfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cImFydGljbGVfX2xpbmtzX19saW5rIGFydGljbGVfX2xpbmtzX19uZXh0XCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxzcGFuPntuZXh0LnRpdGxlfTwvc3Bhbj5cblx0XHRcdFx0XHQ8SWNvbiBpY29uPVwiYXJyb3ctcmlnaHRcIiAvPlxuXHRcdFx0XHQ8L0xpbms+XG5cdFx0XHQpfVxuXHRcdDwvZGl2PlxuXHQpXG59XG4iXSwibmFtZXMiOlsiTGluayIsIkljb24iLCJBcnRpY2xlTmF2TGlua3MiLCJsaW5rcyIsInByZXYiLCJuZXh0IiwiZGl2IiwiY2xhc3NOYW1lIiwiaHJlZiIsInNlY3Rpb25JZCIsImNhdGVnb3J5SWQiLCJpZCIsImljb24iLCJzcGFuIiwidGl0bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/ArticleNavLinks.tsx\n"); /***/ }), /***/ "./components/Icon.tsx": /*!*****************************!*\ !*** ./components/Icon.tsx ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Icon\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction Icon({ icon , className }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `icon ${className ?? \"\"}`,\n style: {\n mask: `url(/icons/${icon}.svg) center 100% / 100% no-repeat`,\n WebkitMask: `url(/icons/${icon}.svg) center 100% / 100% no-repeat`\n }\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Icon.tsx\",\n lineNumber: 3,\n columnNumber: 3\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL0ljb24udHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxTQUFTQSxLQUFLLEVBQUVDLEtBQUksRUFBRUMsVUFBUyxFQUF3QyxFQUFFO0lBQy9FLHFCQUNDLDhEQUFDQztRQUNBRCxXQUFXLENBQUMsS0FBSyxFQUFFQSxhQUFhLEdBQUcsQ0FBQztRQUNwQ0UsT0FBTztZQUNOQyxNQUFNLENBQUMsV0FBVyxFQUFFSixLQUFLLGtDQUFrQyxDQUFDO1lBQzVESyxZQUFZLENBQUMsV0FBVyxFQUFFTCxLQUFLLGtDQUFrQyxDQUFDO1FBQ25FOzs7Ozs7QUFHSCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHRsZHJhdy9kb2NzLy4vY29tcG9uZW50cy9JY29uLnRzeD85YjhmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBJY29uKHsgaWNvbiwgY2xhc3NOYW1lIH06IHsgaWNvbjogc3RyaW5nOyBjbGFzc05hbWU/OiBzdHJpbmcgfSkge1xuXHRyZXR1cm4gKFxuXHRcdDxzcGFuXG5cdFx0XHRjbGFzc05hbWU9e2BpY29uICR7Y2xhc3NOYW1lID8/ICcnfWB9XG5cdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRtYXNrOiBgdXJsKC9pY29ucy8ke2ljb259LnN2ZykgY2VudGVyIDEwMCUgLyAxMDAlIG5vLXJlcGVhdGAsXG5cdFx0XHRcdFdlYmtpdE1hc2s6IGB1cmwoL2ljb25zLyR7aWNvbn0uc3ZnKSBjZW50ZXIgMTAwJSAvIDEwMCUgbm8tcmVwZWF0YCxcblx0XHRcdH19XG5cdFx0Lz5cblx0KVxufVxuIl0sIm5hbWVzIjpbIkljb24iLCJpY29uIiwiY2xhc3NOYW1lIiwic3BhbiIsInN0eWxlIiwibWFzayIsIldlYmtpdE1hc2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/Icon.tsx\n"); /***/ }), /***/ "./components/Mdx.tsx": /*!****************************!*\ !*** ./components/Mdx.tsx ***! \****************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Mdx\": () => (/* binding */ Mdx)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_mdx_remote__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-mdx-remote */ \"next-mdx-remote\");\n/* harmony import */ var _mdx_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mdx-components */ \"./components/mdx-components/index.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([next_mdx_remote__WEBPACK_IMPORTED_MODULE_1__]);\nnext_mdx_remote__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\nfunction Mdx({ mdxSource }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_mdx_remote__WEBPACK_IMPORTED_MODULE_1__.MDXRemote, {\n ...mdxSource,\n scope: _mdx_components__WEBPACK_IMPORTED_MODULE_2__.scope,\n components: _mdx_components__WEBPACK_IMPORTED_MODULE_2__.components\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Mdx.tsx\",\n lineNumber: 9,\n columnNumber: 9\n }, this);\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL01keC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXFFO0FBQ2pCO0FBTTdDLFNBQVNHLElBQUksRUFBRUMsVUFBUyxFQUFZLEVBQUU7SUFDNUMscUJBQU8sOERBQUNKLHNEQUFTQTtRQUFFLEdBQUdJLFNBQVM7UUFBRUYsT0FBT0Esa0RBQUtBO1FBQUVELFlBQVlBLHVEQUFVQTs7Ozs7O0FBQ3RFLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi9jb21wb25lbnRzL01keC50c3g/YWVmOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNRFhSZW1vdGUsIE1EWFJlbW90ZVNlcmlhbGl6ZVJlc3VsdCB9IGZyb20gJ25leHQtbWR4LXJlbW90ZSdcbmltcG9ydCB7IGNvbXBvbmVudHMsIHNjb3BlIH0gZnJvbSAnLi9tZHgtY29tcG9uZW50cydcblxuaW50ZXJmYWNlIE1keFByb3BzIHtcblx0bWR4U291cmNlOiBNRFhSZW1vdGVTZXJpYWxpemVSZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1keCh7IG1keFNvdXJjZSB9OiBNZHhQcm9wcykge1xuXHRyZXR1cm4gPE1EWFJlbW90ZSB7Li4ubWR4U291cmNlfSBzY29wZT17c2NvcGV9IGNvbXBvbmVudHM9e2NvbXBvbmVudHMgYXMgYW55fSAvPlxufVxuIl0sIm5hbWVzIjpbIk1EWFJlbW90ZSIsImNvbXBvbmVudHMiLCJzY29wZSIsIk1keCIsIm1keFNvdXJjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./components/Mdx.tsx\n"); /***/ }), /***/ "./components/Search.tsx": /*!*******************************!*\ !*** ./components/Search.tsx ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Search\": () => (/* binding */ Search)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"../../node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/router */ \"next/router\");\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Icon */ \"./components/Icon.tsx\");\n\n\n\n\n\nfunction Search({ activeId }) {\n const [query, setQuery] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(\"\");\n const [results, setResults] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)([]);\n const rResultsList = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null);\n const [isDisabled, setIsDisabled] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false);\n const handleChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((e)=>{\n setQuery(e.target.value);\n }, []);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const sendQuery = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(throttle(async (query)=>{\n const res = await fetch(`/api/search?q=${query}&s=${activeId}`);\n const json = await res.json();\n setResults(json.results);\n }, 150), [\n activeId\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{\n const query = rInput.current.value;\n if (query.length > 2) {\n sendQuery(query);\n } else {\n setResults([]);\n }\n }, [\n sendQuery\n ]);\n const hasQuery = query.length > 0;\n const hasResults = query.length > 0;\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{\n function handleKeyUp(e) {\n if (e.key === \"Escape\" && hasResults) {\n setResults([]);\n }\n }\n function handleMouseUp(e) {\n if (rResultsList.current && !rResultsList.current.contains(e.target)) {\n setResults([]);\n }\n }\n document.body.addEventListener(\"mouseup\", handleMouseUp);\n document.body.addEventListener(\"keyup\", handleKeyUp);\n return ()=>{\n document.body.removeEventListener(\"mouseup\", handleMouseUp);\n document.body.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, [\n hasResults\n ]);\n const rInput = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null);\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{\n setQuery(\"\");\n setResults([]);\n setIsDisabled(false);\n }, [\n router.asPath\n ]);\n const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{\n if (hasQuery && !hasResults) {\n sendQuery(rInput.current.value);\n }\n }, [\n sendQuery,\n hasQuery,\n hasResults\n ]);\n const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((e)=>{\n if (e.key === \"Enter\") {\n setIsDisabled(true);\n router.push(`/search-results?q=${rInput.current.value}`);\n }\n }, [\n router\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search__wrapper\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_4__.Icon, {\n className: \"search__icon\",\n icon: \"search\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 89,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n ref: rInput,\n type: \"text\",\n className: \"search__input\",\n placeholder: \"Search...\",\n value: query,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n autoCapitalize: \"off\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n disabled: isDisabled\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 90,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 88,\n columnNumber: 4\n }, this),\n results.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search__results__wrapper\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search__results\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ol\", {\n ref: rResultsList,\n className: \"search__results__list\",\n children: results.map((result)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: result.url,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"sidebar__article search__results__article\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n children: result.subtitle\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 112,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n children: result.title\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 113,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 111,\n columnNumber: 10\n }, this)\n }, result.id, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, this))\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 108,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 107,\n columnNumber: 6\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 106,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Search.tsx\",\n lineNumber: 87,\n columnNumber: 3\n }, this);\n}\nfunction throttle(func, limit) {\n let inThrottle;\n let lastResult;\n return function(...args) {\n if (!inThrottle) {\n inThrottle = true;\n setTimeout(()=>inThrottle = false, limit);\n lastResult = func(...args);\n }\n return lastResult;\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL1NlYXJjaC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDNEI7QUFDVztBQUN5QjtBQUNuQztBQUV0QixTQUFTTyxPQUFPLEVBQUVDLFNBQVEsRUFBK0IsRUFBRTtJQUNqRSxNQUFNLENBQUNDLE9BQU9DLFNBQVMsR0FBR0wsK0NBQVFBLENBQUM7SUFDbkMsTUFBTSxDQUFDTSxTQUFTQyxXQUFXLEdBQUdQLCtDQUFRQSxDQUFpQixFQUFFO0lBQ3pELE1BQU1RLGVBQWVULDZDQUFNQSxDQUFtQixJQUFJO0lBQ2xELE1BQU0sQ0FBQ1UsWUFBWUMsY0FBYyxHQUFHViwrQ0FBUUEsQ0FBQyxLQUFLO0lBRWxELE1BQU1XLGVBQWVkLGtEQUFXQSxDQUFDLENBQUNlLElBQTJDO1FBQzVFUCxTQUFTTyxFQUFFQyxNQUFNLENBQUNDLEtBQUs7SUFDeEIsR0FBRyxFQUFFO0lBRUwsdURBQXVEO0lBQ3ZELE1BQU1DLFlBQVlsQixrREFBV0EsQ0FDNUJtQixTQUFTLE9BQU9aLFFBQWtCO1FBQ2pDLE1BQU1hLE1BQU0sTUFBTUMsTUFBTSxDQUFDLGNBQWMsRUFBRWQsTUFBTSxHQUFHLEVBQUVELFNBQVMsQ0FBQztRQUM5RCxNQUFNZ0IsT0FBTyxNQUFNRixJQUFJRSxJQUFJO1FBQzNCWixXQUFXWSxLQUFLYixPQUFPO0lBQ3hCLEdBQUcsTUFDSDtRQUFDSDtLQUFTO0lBR1hMLGdEQUFTQSxDQUFDLElBQU07UUFDZixNQUFNTSxRQUFRZ0IsT0FBT0MsT0FBTyxDQUFFUCxLQUFLO1FBQ25DLElBQUlWLE1BQU1rQixNQUFNLEdBQUcsR0FBRztZQUNyQlAsVUFBVVg7UUFDWCxPQUFPO1lBQ05HLFdBQVcsRUFBRTtRQUNkLENBQUM7SUFDRixHQUFHO1FBQUNRO0tBQVU7SUFFZCxNQUFNUSxXQUFXbkIsTUFBTWtCLE1BQU0sR0FBRztJQUNoQyxNQUFNRSxhQUFhcEIsTUFBTWtCLE1BQU0sR0FBRztJQUVsQ3hCLGdEQUFTQSxDQUFDLElBQU07UUFDZixTQUFTMkIsWUFBWWIsQ0FBZ0IsRUFBRTtZQUN0QyxJQUFJQSxFQUFFYyxHQUFHLEtBQUssWUFBWUYsWUFBWTtnQkFDckNqQixXQUFXLEVBQUU7WUFDZCxDQUFDO1FBQ0Y7UUFFQSxTQUFTb0IsY0FBY2YsQ0FBYSxFQUFFO1lBQ3JDLElBQUlKLGFBQWFhLE9BQU8sSUFBSSxDQUFDYixhQUFhYSxPQUFPLENBQUNPLFFBQVEsQ0FBQ2hCLEVBQUVDLE1BQU0sR0FBVztnQkFDN0VOLFdBQVcsRUFBRTtZQUNkLENBQUM7UUFDRjtRQUVBc0IsU0FBU0MsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQyxXQUFXSjtRQUMxQ0UsU0FBU0MsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQyxTQUFTTjtRQUN4QyxPQUFPLElBQU07WUFDWkksU0FBU0MsSUFBSSxDQUFDRSxtQkFBbUIsQ0FBQyxXQUFXTDtZQUM3Q0UsU0FBU0MsSUFBSSxDQUFDRSxtQkFBbUIsQ0FBQyxTQUFTUDtRQUM1QztJQUNELEdBQUc7UUFBQ0Q7S0FBVztJQUVmLE1BQU1KLFNBQVNyQiw2Q0FBTUEsQ0FBbUIsSUFBSTtJQUU1QyxNQUFNa0MsU0FBU3JDLHNEQUFTQTtJQUV4QkUsZ0RBQVNBLENBQUMsSUFBTTtRQUNmTyxTQUFTO1FBQ1RFLFdBQVcsRUFBRTtRQUNiRyxjQUFjLEtBQUs7SUFDcEIsR0FBRztRQUFDdUIsT0FBT0MsTUFBTTtLQUFDO0lBRWxCLE1BQU1DLGNBQWN0QyxrREFBV0EsQ0FBQyxJQUFNO1FBQ3JDLElBQUkwQixZQUFZLENBQUNDLFlBQVk7WUFDNUJULFVBQVVLLE9BQU9DLE9BQU8sQ0FBRVAsS0FBSztRQUNoQyxDQUFDO0lBQ0YsR0FBRztRQUFDQztRQUFXUTtRQUFVQztLQUFXO0lBRXBDLE1BQU1ZLGdCQUFnQnZDLGtEQUFXQSxDQUNoQyxDQUFDZSxJQUEyQjtRQUMzQixJQUFJQSxFQUFFYyxHQUFHLEtBQUssU0FBUztZQUN0QmhCLGNBQWMsSUFBSTtZQUNsQnVCLE9BQU9JLElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFFakIsT0FBT0MsT0FBTyxDQUFFUCxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0YsR0FDQTtRQUFDbUI7S0FBTztJQUdULHFCQUNDLDhEQUFDSztRQUFJQyxXQUFVOzswQkFDZCw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUNkLDhEQUFDdEMsdUNBQUlBO3dCQUFDc0MsV0FBVTt3QkFBZUMsTUFBSzs7Ozs7O2tDQUNwQyw4REFBQ0M7d0JBQ0FDLEtBQUt0Qjt3QkFDTHVCLE1BQUs7d0JBQ0xKLFdBQVU7d0JBQ1ZLLGFBQVk7d0JBQ1o5QixPQUFPVjt3QkFDUHlDLFVBQVVsQzt3QkFDVm1DLFNBQVNYO3dCQUNUWSxXQUFXWDt3QkFDWFksZ0JBQWU7d0JBQ2ZDLGNBQWE7d0JBQ2JDLGFBQVk7d0JBQ1pDLFVBQVUxQzs7Ozs7Ozs7Ozs7O1lBR1hILFFBQVFnQixNQUFNLEdBQUcsbUJBQ2pCLDhEQUFDZ0I7Z0JBQUlDLFdBQVU7MEJBQ2QsNEVBQUNEO29CQUFJQyxXQUFVOzhCQUNkLDRFQUFDYTt3QkFBR1YsS0FBS2xDO3dCQUFjK0IsV0FBVTtrQ0FDL0JqQyxRQUFRK0MsR0FBRyxDQUFDLENBQUNDLHVCQUNiLDhEQUFDM0Qsa0RBQUlBO2dDQUFpQjRELE1BQU1ELE9BQU9FLEdBQUc7MENBQ3JDLDRFQUFDQztvQ0FBR2xCLFdBQVU7O3NEQUNiLDhEQUFDbUI7c0RBQUlKLE9BQU9LLFFBQVE7Ozs7OztzREFDcEIsOERBQUNDO3NEQUFJTixPQUFPTyxLQUFLOzs7Ozs7Ozs7Ozs7K0JBSFJQLE9BQU9RLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYTVCLENBQUM7QUFFRCxTQUFTOUMsU0FDUitDLElBQU8sRUFDUEMsS0FBYSxFQUMrQjtJQUM1QyxJQUFJQztJQUNKLElBQUlDO0lBQ0osT0FBTyxTQUFxQixHQUFHQyxJQUFXLEVBQWlCO1FBQzFELElBQUksQ0FBQ0YsWUFBWTtZQUNoQkEsYUFBYSxJQUFJO1lBQ2pCRyxXQUFXLElBQU9ILGFBQWEsS0FBSyxFQUFHRDtZQUN2Q0UsYUFBYUgsUUFBUUk7UUFDdEIsQ0FBQztRQUNELE9BQU9EO0lBQ1I7QUFDRCIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL2NvbXBvbmVudHMvU2VhcmNoLnRzeD9iOTZlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJ0AvdHlwZXMvc2VhcmNoLXR5cGVzJ1xuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJ1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAnbmV4dC9yb3V0ZXInXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi9JY29uJ1xuXG5leHBvcnQgZnVuY3Rpb24gU2VhcmNoKHsgYWN0aXZlSWQgfTogeyBhY3RpdmVJZDogc3RyaW5nIHwgbnVsbCB9KSB7XG5cdGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGUoJycpXG5cdGNvbnN0IFtyZXN1bHRzLCBzZXRSZXN1bHRzXSA9IHVzZVN0YXRlPFNlYXJjaFJlc3VsdFtdPihbXSlcblx0Y29uc3QgclJlc3VsdHNMaXN0ID0gdXNlUmVmPEhUTUxPTGlzdEVsZW1lbnQ+KG51bGwpXG5cdGNvbnN0IFtpc0Rpc2FibGVkLCBzZXRJc0Rpc2FibGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG5cdGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuXHRcdHNldFF1ZXJ5KGUudGFyZ2V0LnZhbHVlKVxuXHR9LCBbXSlcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cdGNvbnN0IHNlbmRRdWVyeSA9IHVzZUNhbGxiYWNrKFxuXHRcdHRocm90dGxlKGFzeW5jIChxdWVyeTogc3RyaW5nKSA9PiB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9zZWFyY2g/cT0ke3F1ZXJ5fSZzPSR7YWN0aXZlSWR9YClcblx0XHRcdGNvbnN0IGpzb24gPSBhd2FpdCByZXMuanNvbigpXG5cdFx0XHRzZXRSZXN1bHRzKGpzb24ucmVzdWx0cylcblx0XHR9LCAxNTApLFxuXHRcdFthY3RpdmVJZF1cblx0KVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0Y29uc3QgcXVlcnkgPSBySW5wdXQuY3VycmVudCEudmFsdWVcblx0XHRpZiAocXVlcnkubGVuZ3RoID4gMikge1xuXHRcdFx0c2VuZFF1ZXJ5KHF1ZXJ5KVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZXRSZXN1bHRzKFtdKVxuXHRcdH1cblx0fSwgW3NlbmRRdWVyeV0pXG5cblx0Y29uc3QgaGFzUXVlcnkgPSBxdWVyeS5sZW5ndGggPiAwXG5cdGNvbnN0IGhhc1Jlc3VsdHMgPSBxdWVyeS5sZW5ndGggPiAwXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRmdW5jdGlvbiBoYW5kbGVLZXlVcChlOiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0XHRpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmIGhhc1Jlc3VsdHMpIHtcblx0XHRcdFx0c2V0UmVzdWx0cyhbXSlcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmdW5jdGlvbiBoYW5kbGVNb3VzZVVwKGU6IE1vdXNlRXZlbnQpIHtcblx0XHRcdGlmIChyUmVzdWx0c0xpc3QuY3VycmVudCAmJiAhclJlc3VsdHNMaXN0LmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHtcblx0XHRcdFx0c2V0UmVzdWx0cyhbXSlcblx0XHRcdH1cblx0XHR9XG5cblx0XHRkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVNb3VzZVVwKVxuXHRcdGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVLZXlVcClcblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlTW91c2VVcClcblx0XHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVLZXlVcClcblx0XHR9XG5cdH0sIFtoYXNSZXN1bHRzXSlcblxuXHRjb25zdCBySW5wdXQgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcblxuXHRjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0c2V0UXVlcnkoJycpXG5cdFx0c2V0UmVzdWx0cyhbXSlcblx0XHRzZXRJc0Rpc2FibGVkKGZhbHNlKVxuXHR9LCBbcm91dGVyLmFzUGF0aF0pXG5cblx0Y29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG5cdFx0aWYgKGhhc1F1ZXJ5ICYmICFoYXNSZXN1bHRzKSB7XG5cdFx0XHRzZW5kUXVlcnkocklucHV0LmN1cnJlbnQhLnZhbHVlKVxuXHRcdH1cblx0fSwgW3NlbmRRdWVyeSwgaGFzUXVlcnksIGhhc1Jlc3VsdHNdKVxuXG5cdGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcblx0XHQoZTogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuXHRcdFx0aWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG5cdFx0XHRcdHNldElzRGlzYWJsZWQodHJ1ZSlcblx0XHRcdFx0cm91dGVyLnB1c2goYC9zZWFyY2gtcmVzdWx0cz9xPSR7cklucHV0LmN1cnJlbnQhLnZhbHVlfWApXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRbcm91dGVyXVxuXHQpXG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaF9fd3JhcHBlclwiPlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9XCJzZWFyY2hcIj5cblx0XHRcdFx0PEljb24gY2xhc3NOYW1lPVwic2VhcmNoX19pY29uXCIgaWNvbj1cInNlYXJjaFwiIC8+XG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdHJlZj17cklucHV0fVxuXHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRjbGFzc05hbWU9XCJzZWFyY2hfX2lucHV0XCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiXG5cdFx0XHRcdFx0dmFsdWU9e3F1ZXJ5fVxuXHRcdFx0XHRcdG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG5cdFx0XHRcdFx0b25Gb2N1cz17aGFuZGxlRm9jdXN9XG5cdFx0XHRcdFx0b25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuXHRcdFx0XHRcdGF1dG9DYXBpdGFsaXplPVwib2ZmXCJcblx0XHRcdFx0XHRhdXRvQ29tcGxldGU9XCJvZmZcIlxuXHRcdFx0XHRcdGF1dG9Db3JyZWN0PVwib2ZmXCJcblx0XHRcdFx0XHRkaXNhYmxlZD17aXNEaXNhYmxlZH1cblx0XHRcdFx0Lz5cblx0XHRcdDwvZGl2PlxuXHRcdFx0e3Jlc3VsdHMubGVuZ3RoID4gMCAmJiAoXG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwic2VhcmNoX19yZXN1bHRzX193cmFwcGVyXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJzZWFyY2hfX3Jlc3VsdHNcIj5cblx0XHRcdFx0XHRcdDxvbCByZWY9e3JSZXN1bHRzTGlzdH0gY2xhc3NOYW1lPVwic2VhcmNoX19yZXN1bHRzX19saXN0XCI+XG5cdFx0XHRcdFx0XHRcdHtyZXN1bHRzLm1hcCgocmVzdWx0KSA9PiAoXG5cdFx0XHRcdFx0XHRcdFx0PExpbmsga2V5PXtyZXN1bHQuaWR9IGhyZWY9e3Jlc3VsdC51cmx9PlxuXHRcdFx0XHRcdFx0XHRcdFx0PGxpIGNsYXNzTmFtZT1cInNpZGViYXJfX2FydGljbGUgc2VhcmNoX19yZXN1bHRzX19hcnRpY2xlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxoND57cmVzdWx0LnN1YnRpdGxlfTwvaDQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxoMz57cmVzdWx0LnRpdGxlfTwvaDM+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdDwvTGluaz5cblx0XHRcdFx0XHRcdFx0KSl9XG5cdFx0XHRcdFx0XHQ8L29sPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdCl9XG5cdFx0PC9kaXY+XG5cdClcbn1cblxuZnVuY3Rpb24gdGhyb3R0bGU8VCBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4oXG5cdGZ1bmM6IFQsXG5cdGxpbWl0OiBudW1iZXJcbik6ICguLi5hcmdzOiBQYXJhbWV0ZXJzPFQ+KSA9PiBSZXR1cm5UeXBlPFQ+IHtcblx0bGV0IGluVGhyb3R0bGU6IGJvb2xlYW5cblx0bGV0IGxhc3RSZXN1bHQ6IFJldHVyblR5cGU8VD5cblx0cmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBhbnksIC4uLmFyZ3M6IGFueVtdKTogUmV0dXJuVHlwZTxUPiB7XG5cdFx0aWYgKCFpblRocm90dGxlKSB7XG5cdFx0XHRpblRocm90dGxlID0gdHJ1ZVxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiAoaW5UaHJvdHRsZSA9IGZhbHNlKSwgbGltaXQpXG5cdFx0XHRsYXN0UmVzdWx0ID0gZnVuYyguLi5hcmdzKVxuXHRcdH1cblx0XHRyZXR1cm4gbGFzdFJlc3VsdFxuXHR9XG59XG4iXSwibmFtZXMiOlsiTGluayIsInVzZVJvdXRlciIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJJY29uIiwiU2VhcmNoIiwiYWN0aXZlSWQiLCJxdWVyeSIsInNldFF1ZXJ5IiwicmVzdWx0cyIsInNldFJlc3VsdHMiLCJyUmVzdWx0c0xpc3QiLCJpc0Rpc2FibGVkIiwic2V0SXNEaXNhYmxlZCIsImhhbmRsZUNoYW5nZSIsImUiLCJ0YXJnZXQiLCJ2YWx1ZSIsInNlbmRRdWVyeSIsInRocm90dGxlIiwicmVzIiwiZmV0Y2giLCJqc29uIiwicklucHV0IiwiY3VycmVudCIsImxlbmd0aCIsImhhc1F1ZXJ5IiwiaGFzUmVzdWx0cyIsImhhbmRsZUtleVVwIiwia2V5IiwiaGFuZGxlTW91c2VVcCIsImNvbnRhaW5zIiwiZG9jdW1lbnQiLCJib2R5IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyb3V0ZXIiLCJhc1BhdGgiLCJoYW5kbGVGb2N1cyIsImhhbmRsZUtleURvd24iLCJwdXNoIiwiZGl2IiwiY2xhc3NOYW1lIiwiaWNvbiIsImlucHV0IiwicmVmIiwidHlwZSIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJvbkZvY3VzIiwib25LZXlEb3duIiwiYXV0b0NhcGl0YWxpemUiLCJhdXRvQ29tcGxldGUiLCJhdXRvQ29ycmVjdCIsImRpc2FibGVkIiwib2wiLCJtYXAiLCJyZXN1bHQiLCJocmVmIiwidXJsIiwibGkiLCJoNCIsInN1YnRpdGxlIiwiaDMiLCJ0aXRsZSIsImlkIiwiZnVuYyIsImxpbWl0IiwiaW5UaHJvdHRsZSIsImxhc3RSZXN1bHQiLCJhcmdzIiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./components/Search.tsx\n"); /***/ }), /***/ "./components/Sidebar.tsx": /*!********************************!*\ !*** ./components/Sidebar.tsx ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Sidebar\": () => (/* binding */ Sidebar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"../../node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/router */ \"next/router\");\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Icon */ \"./components/Icon.tsx\");\n/* harmony import */ var _Search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Search */ \"./components/Search.tsx\");\n/* harmony import */ var _ThemeSwitcher__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ThemeSwitcher */ \"./components/ThemeSwitcher.tsx\");\n\n\n\n\n\n\n\nfunction Sidebar({ links , sectionId , categoryId , articleId }) {\n const [menuOpen, setMenuOpen] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false);\n const activeId = articleId ?? categoryId ?? sectionId;\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{\n setMenuOpen(false);\n }, [\n router.asPath\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar\",\n \"data-open\": menuOpen,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__buttons\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ThemeSwitcher__WEBPACK_IMPORTED_MODULE_6__.ThemeSwitcher, {}, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 32,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__buttons__socials\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://twitter.com/tldraw\",\n className: \"sidebar__button icon-button\",\n title: \"twitter\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_4__.Icon, {\n icon: \"twitter\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 39,\n columnNumber: 8\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 34,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://github.com/tldraw/tldraw\",\n className: \"sidebar__button icon-button\",\n title: \"github\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_4__.Icon, {\n icon: \"github\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 46,\n columnNumber: 8\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 41,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://discord.com/invite/SBBEVCA4PG\",\n className: \"sidebar__button icon-button\",\n title: \"discord\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_4__.Icon, {\n icon: \"discord\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 53,\n columnNumber: 8\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 48,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 33,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 31,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Search__WEBPACK_IMPORTED_MODULE_5__.Search, {\n activeId: activeId\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 57,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"sidebar__nav\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"sidebar__list sidebar__sections__list\",\n children: links.map((link)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarLink, {\n ...link\n }, link.url, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 61,\n columnNumber: 8\n }, this))\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 59,\n columnNumber: 6\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 58,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__footer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://www.tldraw.com\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__lockup\",\n style: {\n mask: `url(/lockup.svg) center 100% / 100% no-repeat`,\n WebkitMask: `url(/lockup.svg) center 100% / 100% no-repeat`\n }\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 67,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 66,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"tldraw \\xa9 2023\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 75,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 65,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__close\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n onClick: ()=>setMenuOpen(false),\n children: \"Close\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 78,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"icon-button\",\n onClick: ()=>setMenuOpen(false),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_4__.Icon, {\n icon: \"close\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 80,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 79,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 77,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 30,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"menu__button icon-button\",\n onClick: ()=>setMenuOpen(true),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_4__.Icon, {\n icon: \"menu\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 86,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 85,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true);\n}\nfunction SidebarLink(props) {\n switch(props.type){\n case \"section\":\n {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarSection, {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 95,\n columnNumber: 11\n }, this);\n }\n case \"article\":\n {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarArticle, {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 98,\n columnNumber: 11\n }, this);\n }\n case \"category\":\n {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarCategory, {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 101,\n columnNumber: 11\n }, this);\n }\n }\n}\nfunction SidebarSection({ title , url , children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"sidebar__section\",\n children: [\n title && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: url,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__link sidebar__section__title\",\n \"data-active\": false,\n children: title\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 111,\n columnNumber: 6\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 110,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"sidebar__list sidebar__section__list\",\n children: children.map((link)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarLink, {\n ...link\n }, link.url, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 118,\n columnNumber: 6\n }, this))\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 116,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 108,\n columnNumber: 3\n }, this);\n}\nfunction SidebarCategory({ title , url , children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"sidebar__category\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: url,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__link sidebar__category__title\",\n \"data-active\": false,\n children: title\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 129,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 128,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"sidebar__list sidebar__category__list\",\n children: children.map((link)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarLink, {\n ...link\n }, link.url, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 135,\n columnNumber: 6\n }, this))\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 133,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"hr\", {}, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 138,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 127,\n columnNumber: 3\n }, this);\n}\nfunction SidebarArticle({ title , url }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"sidebar__article\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: url,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar__link sidebar__article__title\",\n \"data-active\": false,\n children: title\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 147,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 146,\n columnNumber: 4\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/Sidebar.tsx\",\n lineNumber: 145,\n columnNumber: 3\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL1NpZGViYXIudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPNEI7QUFDVztBQUNJO0FBQ2Q7QUFDSTtBQUNjO0FBSXhDLFNBQVNPLFFBQVEsRUFBRUMsTUFBSyxFQUFFQyxVQUFTLEVBQUVDLFdBQVUsRUFBRUMsVUFBUyxFQUFnQixFQUFFO0lBQ2xGLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHViwrQ0FBUUEsQ0FBQyxLQUFLO0lBRTlDLE1BQU1XLFdBQVdILGFBQWFELGNBQWNEO0lBRTVDLE1BQU1NLFNBQVNkLHNEQUFTQTtJQUV4QkMsZ0RBQVNBLENBQUMsSUFBTTtRQUNmVyxZQUFZLEtBQUs7SUFDbEIsR0FBRztRQUFDRSxPQUFPQyxNQUFNO0tBQUM7SUFFbEIscUJBQ0M7OzBCQUNDLDhEQUFDQztnQkFBSUMsV0FBVTtnQkFBVUMsYUFBV1A7O2tDQUNuQyw4REFBQ0s7d0JBQUlDLFdBQVU7OzBDQUNkLDhEQUFDWix5REFBYUE7Ozs7OzBDQUNkLDhEQUFDVztnQ0FBSUMsV0FBVTs7a0RBQ2QsOERBQUNFO3dDQUNBQyxNQUFLO3dDQUNMSCxXQUFVO3dDQUNWSSxPQUFNO2tEQUVOLDRFQUFDbEIsdUNBQUlBOzRDQUFDbUIsTUFBSzs7Ozs7Ozs7Ozs7a0RBRVosOERBQUNIO3dDQUNBQyxNQUFLO3dDQUNMSCxXQUFVO3dDQUNWSSxPQUFNO2tEQUVOLDRFQUFDbEIsdUNBQUlBOzRDQUFDbUIsTUFBSzs7Ozs7Ozs7Ozs7a0RBRVosOERBQUNIO3dDQUNBQyxNQUFLO3dDQUNMSCxXQUFVO3dDQUNWSSxPQUFNO2tEQUVOLDRFQUFDbEIsdUNBQUlBOzRDQUFDbUIsTUFBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBSWQsOERBQUNsQiwyQ0FBTUE7d0JBQUNTLFVBQVVBOzs7Ozs7a0NBQ2xCLDhEQUFDVTt3QkFBSU4sV0FBVTtrQ0FDZCw0RUFBQ087NEJBQUdQLFdBQVU7c0NBQ1pWLE1BQU1rQixHQUFHLENBQUMsQ0FBQ0MscUJBQ1gsOERBQUNDO29DQUE0QixHQUFHRCxJQUFJO21DQUFsQkEsS0FBS0UsR0FBRzs7Ozs7Ozs7Ozs7Ozs7O2tDQUk3Qiw4REFBQ1o7d0JBQUlDLFdBQVU7OzBDQUNkLDhEQUFDRTtnQ0FBRUMsTUFBSzswQ0FDUCw0RUFBQ0o7b0NBQ0FDLFdBQVU7b0NBQ1ZZLE9BQU87d0NBQ05DLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQzt3Q0FDckRDLFlBQVksQ0FBQyw2Q0FBNkMsQ0FBQztvQ0FDNUQ7Ozs7Ozs7Ozs7OzBDQUdGLDhEQUFDZjswQ0FBSTs7Ozs7Ozs7Ozs7O2tDQUVOLDhEQUFDQTt3QkFBSUMsV0FBVTs7MENBQ2QsOERBQUNlO2dDQUFLQyxTQUFTLElBQU1yQixZQUFZLEtBQUs7MENBQUc7Ozs7OzswQ0FDekMsOERBQUNzQjtnQ0FBT2pCLFdBQVU7Z0NBQWNnQixTQUFTLElBQU1yQixZQUFZLEtBQUs7MENBQy9ELDRFQUFDVCx1Q0FBSUE7b0NBQUNtQixNQUFLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFLZCw4REFBQ1k7Z0JBQU9qQixXQUFVO2dCQUEyQmdCLFNBQVMsSUFBTXJCLFlBQVksSUFBSTswQkFDM0UsNEVBQUNULHVDQUFJQTtvQkFBQ21CLE1BQUs7Ozs7Ozs7Ozs7Ozs7QUFJZixDQUFDO0FBRUQsU0FBU0ssWUFBWVEsS0FBeUIsRUFBRTtJQUMvQyxPQUFRQSxNQUFNQyxJQUFJO1FBQ2pCLEtBQUs7WUFBVztnQkFDZixxQkFBTyw4REFBQ0M7b0JBQWdCLEdBQUdGLEtBQUs7Ozs7OztZQUNqQztRQUNBLEtBQUs7WUFBVztnQkFDZixxQkFBTyw4REFBQ0c7b0JBQWdCLEdBQUdILEtBQUs7Ozs7OztZQUNqQztRQUNBLEtBQUs7WUFBWTtnQkFDaEIscUJBQU8sOERBQUNJO29CQUFpQixHQUFHSixLQUFLOzs7Ozs7WUFDbEM7SUFDRDtBQUNEO0FBRUEsU0FBU0UsZUFBZSxFQUFFaEIsTUFBSyxFQUFFTyxJQUFHLEVBQUVZLFNBQVEsRUFBNkIsRUFBRTtJQUM1RSxxQkFDQyw4REFBQ0M7UUFBR3hCLFdBQVU7O1lBQ1pJLHVCQUNBLDhEQUFDdEIsa0RBQUlBO2dCQUFDcUIsTUFBTVE7MEJBQ1gsNEVBQUNaO29CQUFJQyxXQUFVO29CQUF3Q3lCLGVBQWEsS0FBSzs4QkFDdkVyQjs7Ozs7Ozs7Ozs7MEJBSUosOERBQUNHO2dCQUFHUCxXQUFVOzBCQUNadUIsU0FBU2YsR0FBRyxDQUFDLENBQUNDLHFCQUNkLDhEQUFDQzt3QkFBNEIsR0FBR0QsSUFBSTt1QkFBbEJBLEtBQUtFLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLL0I7QUFFQSxTQUFTVyxnQkFBZ0IsRUFBRWxCLE1BQUssRUFBRU8sSUFBRyxFQUFFWSxTQUFRLEVBQThCLEVBQUU7SUFDOUUscUJBQ0MsOERBQUNDO1FBQUd4QixXQUFVOzswQkFDYiw4REFBQ2xCLGtEQUFJQTtnQkFBQ3FCLE1BQU1ROzBCQUNYLDRFQUFDWjtvQkFBSUMsV0FBVTtvQkFBeUN5QixlQUFhLEtBQUs7OEJBQ3hFckI7Ozs7Ozs7Ozs7OzBCQUdILDhEQUFDRztnQkFBR1AsV0FBVTswQkFDWnVCLFNBQVNmLEdBQUcsQ0FBQyxDQUFDQyxxQkFDZCw4REFBQ0M7d0JBQTRCLEdBQUdELElBQUk7dUJBQWxCQSxLQUFLRSxHQUFHOzs7Ozs7Ozs7OzBCQUc1Qiw4REFBQ2U7Ozs7Ozs7Ozs7O0FBR0o7QUFFQSxTQUFTTCxlQUFlLEVBQUVqQixNQUFLLEVBQUVPLElBQUcsRUFBNkIsRUFBRTtJQUNsRSxxQkFDQyw4REFBQ2E7UUFBR3hCLFdBQVU7a0JBQ2IsNEVBQUNsQixrREFBSUE7WUFBQ3FCLE1BQU1RO3NCQUNYLDRFQUFDWjtnQkFBSUMsV0FBVTtnQkFBd0N5QixlQUFhLEtBQUs7MEJBQ3ZFckI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLTiIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL2NvbXBvbmVudHMvU2lkZWJhci50c3g/NmJhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRTaWRlYmFyQ29udGVudEFydGljbGVMaW5rLFxuXHRTaWRlYmFyQ29udGVudENhdGVnb3J5TGluayxcblx0U2lkZWJhckNvbnRlbnRMaW5rLFxuXHRTaWRlYmFyQ29udGVudExpc3QsXG5cdFNpZGViYXJDb250ZW50U2VjdGlvbkxpbmssXG59IGZyb20gJ0AvdHlwZXMvY29udGVudC10eXBlcydcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvcm91dGVyJ1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4vSWNvbidcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJy4vU2VhcmNoJ1xuaW1wb3J0IHsgVGhlbWVTd2l0Y2hlciB9IGZyb20gJy4vVGhlbWVTd2l0Y2hlcidcblxudHlwZSBTaWRlYmFyUHJvcHMgPSBTaWRlYmFyQ29udGVudExpc3RcblxuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXIoeyBsaW5rcywgc2VjdGlvbklkLCBjYXRlZ29yeUlkLCBhcnRpY2xlSWQgfTogU2lkZWJhclByb3BzKSB7XG5cdGNvbnN0IFttZW51T3Blbiwgc2V0TWVudU9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0Y29uc3QgYWN0aXZlSWQgPSBhcnRpY2xlSWQgPz8gY2F0ZWdvcnlJZCA/PyBzZWN0aW9uSWRcblxuXHRjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0c2V0TWVudU9wZW4oZmFsc2UpXG5cdH0sIFtyb3V0ZXIuYXNQYXRoXSlcblxuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJcIiBkYXRhLW9wZW49e21lbnVPcGVufT5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyX19idXR0b25zXCI+XG5cdFx0XHRcdFx0PFRoZW1lU3dpdGNoZXIgLz5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2J1dHRvbnNfX3NvY2lhbHNcIj5cblx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tL3RsZHJhd1wiXG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInNpZGViYXJfX2J1dHRvbiBpY29uLWJ1dHRvblwiXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwidHdpdHRlclwiXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxJY29uIGljb249XCJ0d2l0dGVyXCIgLz5cblx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHRcdDxhXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vdGxkcmF3L3RsZHJhd1wiXG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInNpZGViYXJfX2J1dHRvbiBpY29uLWJ1dHRvblwiXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiZ2l0aHViXCJcblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PEljb24gaWNvbj1cImdpdGh1YlwiIC8+XG5cdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0XHQ8YVxuXHRcdFx0XHRcdFx0XHRocmVmPVwiaHR0cHM6Ly9kaXNjb3JkLmNvbS9pbnZpdGUvU0JCRVZDQTRQR1wiXG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInNpZGViYXJfX2J1dHRvbiBpY29uLWJ1dHRvblwiXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiZGlzY29yZFwiXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxJY29uIGljb249XCJkaXNjb3JkXCIgLz5cblx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxTZWFyY2ggYWN0aXZlSWQ9e2FjdGl2ZUlkfSAvPlxuXHRcdFx0XHQ8bmF2IGNsYXNzTmFtZT1cInNpZGViYXJfX25hdlwiPlxuXHRcdFx0XHRcdDx1bCBjbGFzc05hbWU9XCJzaWRlYmFyX19saXN0IHNpZGViYXJfX3NlY3Rpb25zX19saXN0XCI+XG5cdFx0XHRcdFx0XHR7bGlua3MubWFwKChsaW5rKSA9PiAoXG5cdFx0XHRcdFx0XHRcdDxTaWRlYmFyTGluayBrZXk9e2xpbmsudXJsfSB7Li4ubGlua30gLz5cblx0XHRcdFx0XHRcdCkpfVxuXHRcdFx0XHRcdDwvdWw+XG5cdFx0XHRcdDwvbmF2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2Zvb3RlclwiPlxuXHRcdFx0XHRcdDxhIGhyZWY9XCJodHRwczovL3d3dy50bGRyYXcuY29tXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInNpZGViYXJfX2xvY2t1cFwiXG5cdFx0XHRcdFx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdFx0XHRcdFx0bWFzazogYHVybCgvbG9ja3VwLnN2ZykgY2VudGVyIDEwMCUgLyAxMDAlIG5vLXJlcGVhdGAsXG5cdFx0XHRcdFx0XHRcdFx0V2Via2l0TWFzazogYHVybCgvbG9ja3VwLnN2ZykgY2VudGVyIDEwMCUgLyAxMDAlIG5vLXJlcGVhdGAsXG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHQ8ZGl2PnRsZHJhdyDCqSAyMDIzPC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cInNpZGViYXJfX2Nsb3NlXCI+XG5cdFx0XHRcdFx0PHNwYW4gb25DbGljaz17KCkgPT4gc2V0TWVudU9wZW4oZmFsc2UpfT5DbG9zZTwvc3Bhbj5cblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzTmFtZT1cImljb24tYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0TWVudU9wZW4oZmFsc2UpfT5cblx0XHRcdFx0XHRcdDxJY29uIGljb249XCJjbG9zZVwiIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHR7LyogTWVudSAqL31cblx0XHRcdDxidXR0b24gY2xhc3NOYW1lPVwibWVudV9fYnV0dG9uIGljb24tYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0TWVudU9wZW4odHJ1ZSl9PlxuXHRcdFx0XHQ8SWNvbiBpY29uPVwibWVudVwiIC8+XG5cdFx0XHQ8L2J1dHRvbj5cblx0XHQ8Lz5cblx0KVxufVxuXG5mdW5jdGlvbiBTaWRlYmFyTGluayhwcm9wczogU2lkZWJhckNvbnRlbnRMaW5rKSB7XG5cdHN3aXRjaCAocHJvcHMudHlwZSkge1xuXHRcdGNhc2UgJ3NlY3Rpb24nOiB7XG5cdFx0XHRyZXR1cm4gPFNpZGViYXJTZWN0aW9uIHsuLi5wcm9wc30gLz5cblx0XHR9XG5cdFx0Y2FzZSAnYXJ0aWNsZSc6IHtcblx0XHRcdHJldHVybiA8U2lkZWJhckFydGljbGUgey4uLnByb3BzfSAvPlxuXHRcdH1cblx0XHRjYXNlICdjYXRlZ29yeSc6IHtcblx0XHRcdHJldHVybiA8U2lkZWJhckNhdGVnb3J5IHsuLi5wcm9wc30gLz5cblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gU2lkZWJhclNlY3Rpb24oeyB0aXRsZSwgdXJsLCBjaGlsZHJlbiB9OiBTaWRlYmFyQ29udGVudFNlY3Rpb25MaW5rKSB7XG5cdHJldHVybiAoXG5cdFx0PGxpIGNsYXNzTmFtZT1cInNpZGViYXJfX3NlY3Rpb25cIj5cblx0XHRcdHt0aXRsZSAmJiAoXG5cdFx0XHRcdDxMaW5rIGhyZWY9e3VybH0+XG5cdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyX19saW5rIHNpZGViYXJfX3NlY3Rpb25fX3RpdGxlXCIgZGF0YS1hY3RpdmU9e2ZhbHNlfT5cblx0XHRcdFx0XHRcdHt0aXRsZX1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9MaW5rPlxuXHRcdFx0KX1cblx0XHRcdDx1bCBjbGFzc05hbWU9XCJzaWRlYmFyX19saXN0IHNpZGViYXJfX3NlY3Rpb25fX2xpc3RcIj5cblx0XHRcdFx0e2NoaWxkcmVuLm1hcCgobGluaykgPT4gKFxuXHRcdFx0XHRcdDxTaWRlYmFyTGluayBrZXk9e2xpbmsudXJsfSB7Li4ubGlua30gLz5cblx0XHRcdFx0KSl9XG5cdFx0XHQ8L3VsPlxuXHRcdDwvbGk+XG5cdClcbn1cblxuZnVuY3Rpb24gU2lkZWJhckNhdGVnb3J5KHsgdGl0bGUsIHVybCwgY2hpbGRyZW4gfTogU2lkZWJhckNvbnRlbnRDYXRlZ29yeUxpbmspIHtcblx0cmV0dXJuIChcblx0XHQ8bGkgY2xhc3NOYW1lPVwic2lkZWJhcl9fY2F0ZWdvcnlcIj5cblx0XHRcdDxMaW5rIGhyZWY9e3VybH0+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhcl9fbGluayBzaWRlYmFyX19jYXRlZ29yeV9fdGl0bGVcIiBkYXRhLWFjdGl2ZT17ZmFsc2V9PlxuXHRcdFx0XHRcdHt0aXRsZX1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L0xpbms+XG5cdFx0XHQ8dWwgY2xhc3NOYW1lPVwic2lkZWJhcl9fbGlzdCBzaWRlYmFyX19jYXRlZ29yeV9fbGlzdFwiPlxuXHRcdFx0XHR7Y2hpbGRyZW4ubWFwKChsaW5rKSA9PiAoXG5cdFx0XHRcdFx0PFNpZGViYXJMaW5rIGtleT17bGluay51cmx9IHsuLi5saW5rfSAvPlxuXHRcdFx0XHQpKX1cblx0XHRcdDwvdWw+XG5cdFx0XHQ8aHIgLz5cblx0XHQ8L2xpPlxuXHQpXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJBcnRpY2xlKHsgdGl0bGUsIHVybCB9OiBTaWRlYmFyQ29udGVudEFydGljbGVMaW5rKSB7XG5cdHJldHVybiAoXG5cdFx0PGxpIGNsYXNzTmFtZT1cInNpZGViYXJfX2FydGljbGVcIj5cblx0XHRcdDxMaW5rIGhyZWY9e3VybH0+XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhcl9fbGluayBzaWRlYmFyX19hcnRpY2xlX190aXRsZVwiIGRhdGEtYWN0aXZlPXtmYWxzZX0+XG5cdFx0XHRcdFx0e3RpdGxlfVxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvTGluaz5cblx0XHQ8L2xpPlxuXHQpXG59XG4iXSwibmFtZXMiOlsiTGluayIsInVzZVJvdXRlciIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiSWNvbiIsIlNlYXJjaCIsIlRoZW1lU3dpdGNoZXIiLCJTaWRlYmFyIiwibGlua3MiLCJzZWN0aW9uSWQiLCJjYXRlZ29yeUlkIiwiYXJ0aWNsZUlkIiwibWVudU9wZW4iLCJzZXRNZW51T3BlbiIsImFjdGl2ZUlkIiwicm91dGVyIiwiYXNQYXRoIiwiZGl2IiwiY2xhc3NOYW1lIiwiZGF0YS1vcGVuIiwiYSIsImhyZWYiLCJ0aXRsZSIsImljb24iLCJuYXYiLCJ1bCIsIm1hcCIsImxpbmsiLCJTaWRlYmFyTGluayIsInVybCIsInN0eWxlIiwibWFzayIsIldlYmtpdE1hc2siLCJzcGFuIiwib25DbGljayIsImJ1dHRvbiIsInByb3BzIiwidHlwZSIsIlNpZGViYXJTZWN0aW9uIiwiU2lkZWJhckFydGljbGUiLCJTaWRlYmFyQ2F0ZWdvcnkiLCJjaGlsZHJlbiIsImxpIiwiZGF0YS1hY3RpdmUiLCJociJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./components/Sidebar.tsx\n"); /***/ }), /***/ "./components/ThemeSwitcher.tsx": /*!**************************************!*\ !*** ./components/ThemeSwitcher.tsx ***! \**************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ThemeSwitcher\": () => (/* binding */ ThemeSwitcher)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_themes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-themes */ \"next-themes\");\n/* harmony import */ var next_themes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_themes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Icon */ \"./components/Icon.tsx\");\n\n\n\nfunction ThemeSwitcher() {\n const { theme , setTheme } = (0,next_themes__WEBPACK_IMPORTED_MODULE_1__.useTheme)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"sidebar__button icon-button\",\n onClick: ()=>setTheme(theme === \"light\" ? \"dark\" : \"light\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Icon__WEBPACK_IMPORTED_MODULE_2__.Icon, {\n icon: \"light\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ThemeSwitcher.tsx\",\n lineNumber: 12,\n columnNumber: 4\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/ThemeSwitcher.tsx\",\n lineNumber: 8,\n columnNumber: 3\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL1RoZW1lU3dpdGNoZXIudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBc0M7QUFDVDtBQUV0QixTQUFTRSxnQkFBZ0I7SUFDL0IsTUFBTSxFQUFFQyxNQUFLLEVBQUVDLFNBQVEsRUFBRSxHQUFHSixxREFBUUE7SUFFcEMscUJBQ0MsOERBQUNLO1FBQ0FDLFdBQVU7UUFDVkMsU0FBUyxJQUFNSCxTQUFTRCxVQUFVLFVBQVUsU0FBUyxPQUFPO2tCQUU1RCw0RUFBQ0YsdUNBQUlBO1lBQUNPLE1BQUs7Ozs7Ozs7Ozs7O0FBR2QsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL2NvbXBvbmVudHMvVGhlbWVTd2l0Y2hlci50c3g/YTEzMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ25leHQtdGhlbWVzJ1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4vSWNvbidcblxuZXhwb3J0IGZ1bmN0aW9uIFRoZW1lU3dpdGNoZXIoKSB7XG5cdGNvbnN0IHsgdGhlbWUsIHNldFRoZW1lIH0gPSB1c2VUaGVtZSgpXG5cblx0cmV0dXJuIChcblx0XHQ8YnV0dG9uXG5cdFx0XHRjbGFzc05hbWU9XCJzaWRlYmFyX19idXR0b24gaWNvbi1idXR0b25cIlxuXHRcdFx0b25DbGljaz17KCkgPT4gc2V0VGhlbWUodGhlbWUgPT09ICdsaWdodCcgPyAnZGFyaycgOiAnbGlnaHQnKX1cblx0XHQ+XG5cdFx0XHQ8SWNvbiBpY29uPVwibGlnaHRcIiAvPlxuXHRcdDwvYnV0dG9uPlxuXHQpXG59XG4iXSwibmFtZXMiOlsidXNlVGhlbWUiLCJJY29uIiwiVGhlbWVTd2l0Y2hlciIsInRoZW1lIiwic2V0VGhlbWUiLCJidXR0b24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiaWNvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./components/ThemeSwitcher.tsx\n"); /***/ }), /***/ "./components/article-components/index.ts": /*!************************************************!*\ !*** ./components/article-components/index.ts ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL2FydGljbGUtY29tcG9uZW50cy9pbmRleC50cy5qcyIsIm1hcHBpbmdzIjoiO0FBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi9jb21wb25lbnRzL2FydGljbGUtY29tcG9uZW50cy9pbmRleC50cz83ZDliIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7fVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/article-components/index.ts\n"); /***/ }), /***/ "./components/mdx-components/api-docs.tsx": /*!************************************************!*\ !*** ./components/mdx-components/api-docs.tsx ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ParametersTable\": () => (/* binding */ ParametersTable),\n/* harmony export */ \"ParametersTableDescription\": () => (/* binding */ ParametersTableDescription),\n/* harmony export */ \"ParametersTableName\": () => (/* binding */ ParametersTableName),\n/* harmony export */ \"ParametersTableRow\": () => (/* binding */ ParametersTableRow)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction ParametersTable({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n className: \"parametersTable\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"Name\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 8,\n columnNumber: 6\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"Description\"\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 9,\n columnNumber: 6\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 7,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 6,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n children: children\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 12,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 5,\n columnNumber: 3\n }, this);\n}\nfunction ParametersTableRow({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n className: \"parametersTable-row\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this);\n}\nfunction ParametersTableName({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"parametersTable-name\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 22,\n columnNumber: 9\n }, this);\n}\nfunction ParametersTableDescription({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"parametersTable-description\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/api-docs.tsx\",\n lineNumber: 26,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL21keC1jb21wb25lbnRzL2FwaS1kb2NzLnRzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRU8sU0FBU0EsZ0JBQWdCLEVBQUVDLFNBQVEsRUFBMkIsRUFBRTtJQUN0RSxxQkFDQyw4REFBQ0M7UUFBTUMsV0FBVTs7MEJBQ2hCLDhEQUFDQzswQkFDQSw0RUFBQ0M7O3NDQUNBLDhEQUFDQztzQ0FBRzs7Ozs7O3NDQUNKLDhEQUFDQTtzQ0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBR04sOERBQUNDOzBCQUFPTjs7Ozs7Ozs7Ozs7O0FBR1gsQ0FBQztBQUVNLFNBQVNPLG1CQUFtQixFQUFFUCxTQUFRLEVBQTJCLEVBQUU7SUFDekUscUJBQU8sOERBQUNJO1FBQUdGLFdBQVU7a0JBQXVCRjs7Ozs7O0FBQzdDLENBQUM7QUFFTSxTQUFTUSxvQkFBb0IsRUFBRVIsU0FBUSxFQUEyQixFQUFFO0lBQzFFLHFCQUFPLDhEQUFDUztRQUFHUCxXQUFVO2tCQUF3QkY7Ozs7OztBQUM5QyxDQUFDO0FBRU0sU0FBU1UsMkJBQTJCLEVBQUVWLFNBQVEsRUFBMkIsRUFBRTtJQUNqRixxQkFBTyw4REFBQ1M7UUFBR1AsV0FBVTtrQkFBK0JGOzs7Ozs7QUFDckQsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL2NvbXBvbmVudHMvbWR4LWNvbXBvbmVudHMvYXBpLWRvY3MudHN4P2VhZjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5cbmV4cG9ydCBmdW5jdGlvbiBQYXJhbWV0ZXJzVGFibGUoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkge1xuXHRyZXR1cm4gKFxuXHRcdDx0YWJsZSBjbGFzc05hbWU9XCJwYXJhbWV0ZXJzVGFibGVcIj5cblx0XHRcdDx0aGVhZD5cblx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdDx0aD5OYW1lPC90aD5cblx0XHRcdFx0XHQ8dGg+RGVzY3JpcHRpb248L3RoPlxuXHRcdFx0XHQ8L3RyPlxuXHRcdFx0PC90aGVhZD5cblx0XHRcdDx0Ym9keT57Y2hpbGRyZW59PC90Ym9keT5cblx0XHQ8L3RhYmxlPlxuXHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQYXJhbWV0ZXJzVGFibGVSb3coeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkge1xuXHRyZXR1cm4gPHRyIGNsYXNzTmFtZT1cInBhcmFtZXRlcnNUYWJsZS1yb3dcIj57Y2hpbGRyZW59PC90cj5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBhcmFtZXRlcnNUYWJsZU5hbWUoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkge1xuXHRyZXR1cm4gPHRkIGNsYXNzTmFtZT1cInBhcmFtZXRlcnNUYWJsZS1uYW1lXCI+e2NoaWxkcmVufTwvdGQ+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQYXJhbWV0ZXJzVGFibGVEZXNjcmlwdGlvbih7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG5cdHJldHVybiA8dGQgY2xhc3NOYW1lPVwicGFyYW1ldGVyc1RhYmxlLWRlc2NyaXB0aW9uXCI+e2NoaWxkcmVufTwvdGQ+XG59XG4iXSwibmFtZXMiOlsiUGFyYW1ldGVyc1RhYmxlIiwiY2hpbGRyZW4iLCJ0YWJsZSIsImNsYXNzTmFtZSIsInRoZWFkIiwidHIiLCJ0aCIsInRib2R5IiwiUGFyYW1ldGVyc1RhYmxlUm93IiwiUGFyYW1ldGVyc1RhYmxlTmFtZSIsInRkIiwiUGFyYW1ldGVyc1RhYmxlRGVzY3JpcHRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/mdx-components/api-docs.tsx\n"); /***/ }), /***/ "./components/mdx-components/generic.tsx": /*!***********************************************!*\ !*** ./components/mdx-components/generic.tsx ***! \***********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"A\": () => (/* binding */ A),\n/* harmony export */ \"Blockquote\": () => (/* binding */ Blockquote),\n/* harmony export */ \"Code\": () => (/* binding */ Code),\n/* harmony export */ \"Divider\": () => (/* binding */ Divider),\n/* harmony export */ \"Footnotes\": () => (/* binding */ Footnotes),\n/* harmony export */ \"Heading1\": () => (/* binding */ Heading1),\n/* harmony export */ \"Heading2\": () => (/* binding */ Heading2),\n/* harmony export */ \"Heading3\": () => (/* binding */ Heading3),\n/* harmony export */ \"Heading4\": () => (/* binding */ Heading4),\n/* harmony export */ \"Heading5\": () => (/* binding */ Heading5),\n/* harmony export */ \"Heading6\": () => (/* binding */ Heading6),\n/* harmony export */ \"Image\": () => (/* binding */ Image),\n/* harmony export */ \"ListItem\": () => (/* binding */ ListItem),\n/* harmony export */ \"OrderedList\": () => (/* binding */ OrderedList),\n/* harmony export */ \"Paragraph\": () => (/* binding */ Paragraph),\n/* harmony export */ \"Pre\": () => (/* binding */ Pre),\n/* harmony export */ \"Small\": () => (/* binding */ Small),\n/* harmony export */ \"TD\": () => (/* binding */ TD),\n/* harmony export */ \"THead\": () => (/* binding */ THead),\n/* harmony export */ \"TR\": () => (/* binding */ TR),\n/* harmony export */ \"Table\": () => (/* binding */ Table),\n/* harmony export */ \"UnorderedList\": () => (/* binding */ UnorderedList),\n/* harmony export */ \"Video\": () => (/* binding */ Video)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* ---------------------- Lists --------------------- */ \n\nconst UnorderedList = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 6,\n columnNumber: 9\n }, undefined);\n};\nconst OrderedList = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ol\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 10,\n columnNumber: 9\n }, undefined);\n};\nconst ListItem = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 14,\n columnNumber: 9\n }, undefined);\n};\nfunction heading(heading, props) {\n const Element = ({ ...props })=>/*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1___default().createElement(heading, props);\n if (props.id) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Element, {\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: `#${props.id}`,\n children: props.children\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 25,\n columnNumber: 4\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Element, {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 31,\n columnNumber: 9\n }, this);\n}\nconst Heading1 = (props)=>{\n return heading(\"h1\", props);\n};\nconst Heading2 = (props)=>{\n return heading(\"h2\", props);\n};\nconst Heading3 = (props)=>{\n return heading(\"h3\", props);\n};\nconst Heading4 = (props)=>{\n return heading(\"h4\", props);\n};\nconst Heading5 = (props)=>{\n return heading(\"h5\", props);\n};\nconst Heading6 = (props)=>{\n return heading(\"h6\", props);\n};\nconst Paragraph = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 59,\n columnNumber: 9\n }, undefined);\n};\nconst A = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 63,\n columnNumber: 9\n }, undefined);\n};\nconst Divider = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"hr\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 67,\n columnNumber: 9\n }, undefined);\n};\nconst Blockquote = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"blockquote\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 71,\n columnNumber: 9\n }, undefined);\n};\nconst Small = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"article__small\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"small\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 77,\n columnNumber: 4\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 76,\n columnNumber: 3\n }, undefined);\n};\n/* --------------------- Tables --------------------- */ const Table = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 85,\n columnNumber: 9\n }, undefined);\n};\nconst THead = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 89,\n columnNumber: 9\n }, undefined);\n};\nconst TR = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 93,\n columnNumber: 9\n }, undefined);\n};\nconst TD = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 97,\n columnNumber: 9\n }, undefined);\n};\n/* --------------------- Media --------------------- */ const Image = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"artcle__image\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n alt: props.title,\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 105,\n columnNumber: 4\n }, undefined),\n props.caption && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"article__caption\",\n children: props.caption\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 106,\n columnNumber: 22\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 104,\n columnNumber: 3\n }, undefined);\n};\nconst Video = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"artcle__video\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"video\", {\n alt: props.title,\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 114,\n columnNumber: 4\n }, undefined),\n props.caption && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"article__caption\",\n children: props.caption\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 115,\n columnNumber: 22\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 113,\n columnNumber: 3\n }, undefined);\n};\n/* ------------------- Code Blocks ------------------ */ const Pre = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"pre\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 123,\n columnNumber: 9\n }, undefined);\n};\nconst Code = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"code\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 127,\n columnNumber: 9\n }, undefined);\n};\nconst Footnotes = (props)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ...props\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/components/mdx-components/generic.tsx\",\n lineNumber: 131,\n columnNumber: 9\n }, undefined);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL21keC1jb21wb25lbnRzL2dlbmVyaWMudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFzRDtBQUU3QjtBQUVsQixNQUFNQyxnQkFBZ0IsQ0FBQ0MsUUFBZTtJQUM1QyxxQkFBTyw4REFBQ0M7UUFBSSxHQUFHRCxLQUFLOzs7Ozs7QUFDckIsRUFBQztBQUVNLE1BQU1FLGNBQWMsQ0FBQ0YsUUFBZTtJQUMxQyxxQkFBTyw4REFBQ0c7UUFBSSxHQUFHSCxLQUFLOzs7Ozs7QUFDckIsRUFBQztBQUVNLE1BQU1JLFdBQVcsQ0FBQ0osUUFBZTtJQUN2QyxxQkFBTyw4REFBQ0s7UUFBSSxHQUFHTCxLQUFLOzs7Ozs7QUFDckIsRUFBQztBQU1ELFNBQVNNLFFBQVFBLE9BQWdCLEVBQUVOLEtBQVUsRUFBRTtJQUM5QyxNQUFNTyxVQUFVLENBQUMsRUFBRSxHQUFHUCxPQUFPLGlCQUFLRiwwREFBbUIsQ0FBQ1EsU0FBU047SUFDL0QsSUFBSUEsTUFBTVMsRUFBRSxFQUFFO1FBQ2IscUJBQ0MsOERBQUNGO1lBQVMsR0FBR1AsS0FBSztzQkFDakIsNEVBQUNVO2dCQUFFQyxNQUFNLENBQUMsQ0FBQyxFQUFFWCxNQUFNUyxFQUFFLENBQUMsQ0FBQzswQkFBR1QsTUFBTVksUUFBUTs7Ozs7Ozs7Ozs7SUFHM0MsQ0FBQztJQUVELHFCQUFPLDhEQUFDTDtRQUFTLEdBQUdQLEtBQUs7Ozs7OztBQUMxQjtBQUVPLE1BQU1hLFdBQVcsQ0FBQ2IsUUFBZTtJQUN2QyxPQUFPTSxRQUFRLE1BQU1OO0FBQ3RCLEVBQUM7QUFFTSxNQUFNYyxXQUFXLENBQUNkLFFBQWU7SUFDdkMsT0FBT00sUUFBUSxNQUFNTjtBQUN0QixFQUFDO0FBRU0sTUFBTWUsV0FBVyxDQUFDZixRQUFlO0lBQ3ZDLE9BQU9NLFFBQVEsTUFBTU47QUFDdEIsRUFBQztBQUVNLE1BQU1nQixXQUFXLENBQUNoQixRQUFlO0lBQ3ZDLE9BQU9NLFFBQVEsTUFBTU47QUFDdEIsRUFBQztBQUVNLE1BQU1pQixXQUFXLENBQUNqQixRQUFlO0lBQ3ZDLE9BQU9NLFFBQVEsTUFBTU47QUFDdEIsRUFBQztBQUVNLE1BQU1rQixXQUFXLENBQUNsQixRQUFlO0lBQ3ZDLE9BQU9NLFFBQVEsTUFBTU47QUFDdEIsRUFBQztBQUVNLE1BQU1tQixZQUFZLENBQUNuQixRQUFlO0lBQ3hDLHFCQUFPLDhEQUFDb0I7UUFBRyxHQUFHcEIsS0FBSzs7Ozs7O0FBQ3BCLEVBQUM7QUFFTSxNQUFNcUIsSUFBSSxDQUFDckIsUUFBZTtJQUNoQyxxQkFBTyw4REFBQ1U7UUFBRyxHQUFHVixLQUFLOzs7Ozs7QUFDcEIsRUFBQztBQUVNLE1BQU1zQixVQUFVLENBQUN0QixRQUFlO0lBQ3RDLHFCQUFPLDhEQUFDdUI7UUFBSSxHQUFHdkIsS0FBSzs7Ozs7O0FBQ3JCLEVBQUM7QUFFTSxNQUFNd0IsYUFBYSxDQUFDeEIsUUFBZTtJQUN6QyxxQkFBTyw4REFBQ3lCO1FBQVksR0FBR3pCLEtBQUs7Ozs7OztBQUM3QixFQUFDO0FBRU0sTUFBTTBCLFFBQVEsQ0FBQzFCLFFBQWU7SUFDcEMscUJBQ0MsOERBQUNvQjtRQUFFTyxXQUFVO2tCQUNaLDRFQUFDQztZQUFPLEdBQUc1QixLQUFLOzs7Ozs7Ozs7OztBQUduQixFQUFDO0FBRUQsc0RBQXNELEdBRS9DLE1BQU02QixRQUFRLENBQUM3QixRQUFlO0lBQ3BDLHFCQUFPLDhEQUFDOEI7UUFBTyxHQUFHOUIsS0FBSzs7Ozs7O0FBQ3hCLEVBQUM7QUFFTSxNQUFNK0IsUUFBUSxDQUFDL0IsUUFBZTtJQUNwQyxxQkFBTyw4REFBQ2dDO1FBQU8sR0FBR2hDLEtBQUs7Ozs7OztBQUN4QixFQUFDO0FBRU0sTUFBTWlDLEtBQUssQ0FBQ2pDLFFBQWU7SUFDakMscUJBQU8sOERBQUNrQztRQUFJLEdBQUdsQyxLQUFLOzs7Ozs7QUFDckIsRUFBQztBQUVNLE1BQU1tQyxLQUFLLENBQUNuQyxRQUFlO0lBQ2pDLHFCQUFPLDhEQUFDb0M7UUFBSSxHQUFHcEMsS0FBSzs7Ozs7O0FBQ3JCLEVBQUM7QUFFRCxxREFBcUQsR0FFOUMsTUFBTXFDLFFBQVEsQ0FBQ3JDLFFBQWU7SUFDcEMscUJBQ0MsOERBQUNzQztRQUFLWCxXQUFVOzswQkFDZiw4REFBQ1k7Z0JBQUlDLEtBQUt4QyxNQUFNeUMsS0FBSztnQkFBRyxHQUFHekMsS0FBSzs7Ozs7O1lBQy9CQSxNQUFNMEMsT0FBTyxrQkFBSSw4REFBQ0o7Z0JBQUtYLFdBQVU7MEJBQW9CM0IsTUFBTTBDLE9BQU87Ozs7Ozs7Ozs7OztBQUd0RSxFQUFDO0FBRU0sTUFBTUMsUUFBUSxDQUFDM0MsUUFBZTtJQUNwQyxxQkFDQyw4REFBQ3NDO1FBQUtYLFdBQVU7OzBCQUNmLDhEQUFDaUI7Z0JBQU1KLEtBQUt4QyxNQUFNeUMsS0FBSztnQkFBRyxHQUFHekMsS0FBSzs7Ozs7O1lBQ2pDQSxNQUFNMEMsT0FBTyxrQkFBSSw4REFBQ0o7Z0JBQUtYLFdBQVU7MEJBQW9CM0IsTUFBTTBDLE9BQU87Ozs7Ozs7Ozs7OztBQUd0RSxFQUFDO0FBRUQsc0RBQXNELEdBRS9DLE1BQU1HLE1BQU0sQ0FBQzdDLFFBQWU7SUFDbEMscUJBQU8sOERBQUM4QztRQUFLLEdBQUc5QyxLQUFLOzs7Ozs7QUFDdEIsRUFBQztBQUVNLE1BQU0rQyxPQUFPLENBQUMvQyxRQUFlO0lBQ25DLHFCQUFPLDhEQUFDZ0Q7UUFBTSxHQUFHaEQsS0FBSzs7Ozs7O0FBQ3ZCLEVBQUM7QUFFTSxNQUFNaUQsWUFBWSxDQUFDakQsUUFBZTtJQUN4QyxxQkFBTyw4REFBQ2tEO1FBQUssR0FBR2xELEtBQUs7Ozs7OztBQUN0QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHRsZHJhdy9kb2NzLy4vY29tcG9uZW50cy9tZHgtY29tcG9uZW50cy9nZW5lcmljLnRzeD81Mjk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGlzdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IFVub3JkZXJlZExpc3QgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gPHVsIHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGNvbnN0IE9yZGVyZWRMaXN0ID0gKHByb3BzOiBhbnkpID0+IHtcblx0cmV0dXJuIDxvbCB7Li4ucHJvcHN9IC8+XG59XG5cbmV4cG9ydCBjb25zdCBMaXN0SXRlbSA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiA8bGkgey4uLnByb3BzfSAvPlxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIFR5cG9ncmFwaHkgLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIEhlYWRpbmcgPSAnaDEnIHwgJ2gyJyB8ICdoMycgfCAnaDQnIHwgJ2g1JyB8ICdoNidcblxuZnVuY3Rpb24gaGVhZGluZyhoZWFkaW5nOiBIZWFkaW5nLCBwcm9wczogYW55KSB7XG5cdGNvbnN0IEVsZW1lbnQgPSAoeyAuLi5wcm9wcyB9KSA9PiBSZWFjdC5jcmVhdGVFbGVtZW50KGhlYWRpbmcsIHByb3BzKVxuXHRpZiAocHJvcHMuaWQpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEVsZW1lbnQgey4uLnByb3BzfT5cblx0XHRcdFx0PGEgaHJlZj17YCMke3Byb3BzLmlkfWB9Pntwcm9wcy5jaGlsZHJlbn08L2E+XG5cdFx0XHQ8L0VsZW1lbnQ+XG5cdFx0KVxuXHR9XG5cblx0cmV0dXJuIDxFbGVtZW50IHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGNvbnN0IEhlYWRpbmcxID0gKHByb3BzOiBhbnkpID0+IHtcblx0cmV0dXJuIGhlYWRpbmcoJ2gxJywgcHJvcHMpXG59XG5cbmV4cG9ydCBjb25zdCBIZWFkaW5nMiA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiBoZWFkaW5nKCdoMicsIHByb3BzKVxufVxuXG5leHBvcnQgY29uc3QgSGVhZGluZzMgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gaGVhZGluZygnaDMnLCBwcm9wcylcbn1cblxuZXhwb3J0IGNvbnN0IEhlYWRpbmc0ID0gKHByb3BzOiBhbnkpID0+IHtcblx0cmV0dXJuIGhlYWRpbmcoJ2g0JywgcHJvcHMpXG59XG5cbmV4cG9ydCBjb25zdCBIZWFkaW5nNSA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiBoZWFkaW5nKCdoNScsIHByb3BzKVxufVxuXG5leHBvcnQgY29uc3QgSGVhZGluZzYgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gaGVhZGluZygnaDYnLCBwcm9wcylcbn1cblxuZXhwb3J0IGNvbnN0IFBhcmFncmFwaCA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiA8cCB7Li4ucHJvcHN9IC8+XG59XG5cbmV4cG9ydCBjb25zdCBBID0gKHByb3BzOiBhbnkpID0+IHtcblx0cmV0dXJuIDxhIHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGNvbnN0IERpdmlkZXIgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gPGhyIHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGNvbnN0IEJsb2NrcXVvdGUgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gPGJsb2NrcXVvdGUgey4uLnByb3BzfSAvPlxufVxuXG5leHBvcnQgY29uc3QgU21hbGwgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxwIGNsYXNzTmFtZT1cImFydGljbGVfX3NtYWxsXCI+XG5cdFx0XHQ8c21hbGwgey4uLnByb3BzfSAvPlxuXHRcdDwvcD5cblx0KVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgVGFibGUgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gPHRhYmxlIHsuLi5wcm9wc30gLz5cbn1cblxuZXhwb3J0IGNvbnN0IFRIZWFkID0gKHByb3BzOiBhbnkpID0+IHtcblx0cmV0dXJuIDx0aGVhZCB7Li4ucHJvcHN9IC8+XG59XG5cbmV4cG9ydCBjb25zdCBUUiA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiA8dHIgey4uLnByb3BzfSAvPlxufVxuXG5leHBvcnQgY29uc3QgVEQgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gPHRkIHsuLi5wcm9wc30gLz5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1lZGlhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgSW1hZ2UgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzcGFuIGNsYXNzTmFtZT1cImFydGNsZV9faW1hZ2VcIj5cblx0XHRcdDxpbWcgYWx0PXtwcm9wcy50aXRsZX0gey4uLnByb3BzfSAvPlxuXHRcdFx0e3Byb3BzLmNhcHRpb24gJiYgPHNwYW4gY2xhc3NOYW1lPVwiYXJ0aWNsZV9fY2FwdGlvblwiPntwcm9wcy5jYXB0aW9ufTwvc3Bhbj59XG5cdFx0PC9zcGFuPlxuXHQpXG59XG5cbmV4cG9ydCBjb25zdCBWaWRlbyA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PHNwYW4gY2xhc3NOYW1lPVwiYXJ0Y2xlX192aWRlb1wiPlxuXHRcdFx0PHZpZGVvIGFsdD17cHJvcHMudGl0bGV9IHsuLi5wcm9wc30gLz5cblx0XHRcdHtwcm9wcy5jYXB0aW9uICYmIDxzcGFuIGNsYXNzTmFtZT1cImFydGljbGVfX2NhcHRpb25cIj57cHJvcHMuY2FwdGlvbn08L3NwYW4+fVxuXHRcdDwvc3Bhbj5cblx0KVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIENvZGUgQmxvY2tzIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgUHJlID0gKHByb3BzOiBhbnkpID0+IHtcblx0cmV0dXJuIDxwcmUgey4uLnByb3BzfSAvPlxufVxuXG5leHBvcnQgY29uc3QgQ29kZSA9IChwcm9wczogYW55KSA9PiB7XG5cdHJldHVybiA8Y29kZSB7Li4ucHJvcHN9IC8+XG59XG5cbmV4cG9ydCBjb25zdCBGb290bm90ZXMgPSAocHJvcHM6IGFueSkgPT4ge1xuXHRyZXR1cm4gPGRpdiB7Li4ucHJvcHN9IC8+XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJVbm9yZGVyZWRMaXN0IiwicHJvcHMiLCJ1bCIsIk9yZGVyZWRMaXN0Iiwib2wiLCJMaXN0SXRlbSIsImxpIiwiaGVhZGluZyIsIkVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJhIiwiaHJlZiIsImNoaWxkcmVuIiwiSGVhZGluZzEiLCJIZWFkaW5nMiIsIkhlYWRpbmczIiwiSGVhZGluZzQiLCJIZWFkaW5nNSIsIkhlYWRpbmc2IiwiUGFyYWdyYXBoIiwicCIsIkEiLCJEaXZpZGVyIiwiaHIiLCJCbG9ja3F1b3RlIiwiYmxvY2txdW90ZSIsIlNtYWxsIiwiY2xhc3NOYW1lIiwic21hbGwiLCJUYWJsZSIsInRhYmxlIiwiVEhlYWQiLCJ0aGVhZCIsIlRSIiwidHIiLCJURCIsInRkIiwiSW1hZ2UiLCJzcGFuIiwiaW1nIiwiYWx0IiwidGl0bGUiLCJjYXB0aW9uIiwiVmlkZW8iLCJ2aWRlbyIsIlByZSIsInByZSIsIkNvZGUiLCJjb2RlIiwiRm9vdG5vdGVzIiwiZGl2Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./components/mdx-components/generic.tsx\n"); /***/ }), /***/ "./components/mdx-components/index.ts": /*!********************************************!*\ !*** ./components/mdx-components/index.ts ***! \********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"components\": () => (/* binding */ components),\n/* harmony export */ \"scope\": () => (/* binding */ scope)\n/* harmony export */ });\n/* harmony import */ var _article_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../article-components */ \"./components/article-components/index.ts\");\n/* harmony import */ var _api_docs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./api-docs */ \"./components/mdx-components/api-docs.tsx\");\n/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./generic */ \"./components/mdx-components/generic.tsx\");\n\n\n\nconst scope = {};\nconst components = {\n h1: _generic__WEBPACK_IMPORTED_MODULE_2__.Heading1,\n h2: _generic__WEBPACK_IMPORTED_MODULE_2__.Heading2,\n h3: _generic__WEBPACK_IMPORTED_MODULE_2__.Heading3,\n h4: _generic__WEBPACK_IMPORTED_MODULE_2__.Heading4,\n h5: _generic__WEBPACK_IMPORTED_MODULE_2__.Heading5,\n h6: _generic__WEBPACK_IMPORTED_MODULE_2__.Heading6,\n blockquote: _generic__WEBPACK_IMPORTED_MODULE_2__.Blockquote,\n hr: _generic__WEBPACK_IMPORTED_MODULE_2__.Divider,\n a: _generic__WEBPACK_IMPORTED_MODULE_2__.A,\n p: _generic__WEBPACK_IMPORTED_MODULE_2__.Paragraph,\n table: _generic__WEBPACK_IMPORTED_MODULE_2__.Table,\n thead: _generic__WEBPACK_IMPORTED_MODULE_2__.THead,\n tr: _generic__WEBPACK_IMPORTED_MODULE_2__.TR,\n td: _generic__WEBPACK_IMPORTED_MODULE_2__.TD,\n video: _generic__WEBPACK_IMPORTED_MODULE_2__.Video,\n ol: _generic__WEBPACK_IMPORTED_MODULE_2__.OrderedList,\n ul: _generic__WEBPACK_IMPORTED_MODULE_2__.UnorderedList,\n li: _generic__WEBPACK_IMPORTED_MODULE_2__.ListItem,\n img: _generic__WEBPACK_IMPORTED_MODULE_2__.Image,\n Small: _generic__WEBPACK_IMPORTED_MODULE_2__.Small,\n Image: _generic__WEBPACK_IMPORTED_MODULE_2__.Image,\n Video: _generic__WEBPACK_IMPORTED_MODULE_2__.Video,\n ..._article_components__WEBPACK_IMPORTED_MODULE_0__,\n ..._api_docs__WEBPACK_IMPORTED_MODULE_1__\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb21wb25lbnRzL21keC1jb21wb25lbnRzL2luZGV4LnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXlEO0FBQ2Q7QUFzQnpCO0FBRVgsTUFBTXNCLFFBQVEsQ0FBQyxFQUFDO0FBRWhCLE1BQU1DLGFBQWE7SUFDekJDLElBQUluQiw4Q0FBUUE7SUFDWm9CLElBQUluQiw4Q0FBUUE7SUFDWm9CLElBQUluQiw4Q0FBUUE7SUFDWm9CLElBQUluQiw4Q0FBUUE7SUFDWm9CLElBQUluQiw4Q0FBUUE7SUFDWm9CLElBQUluQiw4Q0FBUUE7SUFDWm9CLFlBQVkzQixnREFBVUE7SUFDdEI0QixJQUFJM0IsNkNBQU9BO0lBQ1g0QixHQUFHOUIsdUNBQUNBO0lBQ0orQixHQUFHbkIsK0NBQVNBO0lBQ1pvQixPQUFPbEIsMkNBQUtBO0lBQ1ptQixPQUFPakIsMkNBQUtBO0lBQ1prQixJQUFJakIsd0NBQUVBO0lBQ05rQixJQUFJcEIsd0NBQUVBO0lBQ05xQixPQUFPakIsMkNBQUtBO0lBQ1prQixJQUFJMUIsaURBQVdBO0lBQ2YyQixJQUFJcEIsbURBQWFBO0lBQ2pCcUIsSUFBSTdCLDhDQUFRQTtJQUNaOEIsS0FBSy9CLDJDQUFLQTtJQUNWSSxPQUFPQSwyQ0FBS0E7SUFDWkosS0FBS0EsNkNBQUFBO0lBQ0xVLEtBQUtBLDZDQUFBQTtJQUNMLEdBQUdyQixnREFBZ0I7SUFDbkIsR0FBR0Msc0NBQWE7QUFDakIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL2NvbXBvbmVudHMvbWR4LWNvbXBvbmVudHMvaW5kZXgudHM/NWQyMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjdXN0b21Db21wb25lbnRzIGZyb20gJy4uL2FydGljbGUtY29tcG9uZW50cydcbmltcG9ydCAqIGFzIGFwaUNvbXBvbmVudHMgZnJvbSAnLi9hcGktZG9jcydcbmltcG9ydCB7XG5cdEEsXG5cdEJsb2NrcXVvdGUsXG5cdERpdmlkZXIsXG5cdEhlYWRpbmcxLFxuXHRIZWFkaW5nMixcblx0SGVhZGluZzMsXG5cdEhlYWRpbmc0LFxuXHRIZWFkaW5nNSxcblx0SGVhZGluZzYsXG5cdEltYWdlLFxuXHRMaXN0SXRlbSxcblx0T3JkZXJlZExpc3QsXG5cdFBhcmFncmFwaCxcblx0U21hbGwsXG5cdFRhYmxlLFxuXHRURCxcblx0VEhlYWQsXG5cdFRSLFxuXHRVbm9yZGVyZWRMaXN0LFxuXHRWaWRlbyxcbn0gZnJvbSAnLi9nZW5lcmljJ1xuXG5leHBvcnQgY29uc3Qgc2NvcGUgPSB7fVxuXG5leHBvcnQgY29uc3QgY29tcG9uZW50cyA9IHtcblx0aDE6IEhlYWRpbmcxLFxuXHRoMjogSGVhZGluZzIsXG5cdGgzOiBIZWFkaW5nMyxcblx0aDQ6IEhlYWRpbmc0LFxuXHRoNTogSGVhZGluZzUsXG5cdGg2OiBIZWFkaW5nNixcblx0YmxvY2txdW90ZTogQmxvY2txdW90ZSxcblx0aHI6IERpdmlkZXIsXG5cdGE6IEEsXG5cdHA6IFBhcmFncmFwaCxcblx0dGFibGU6IFRhYmxlLFxuXHR0aGVhZDogVEhlYWQsXG5cdHRyOiBUUixcblx0dGQ6IFRELFxuXHR2aWRlbzogVmlkZW8sXG5cdG9sOiBPcmRlcmVkTGlzdCxcblx0dWw6IFVub3JkZXJlZExpc3QsXG5cdGxpOiBMaXN0SXRlbSxcblx0aW1nOiBJbWFnZSxcblx0U21hbGw6IFNtYWxsLFxuXHRJbWFnZSxcblx0VmlkZW8sXG5cdC4uLmN1c3RvbUNvbXBvbmVudHMsXG5cdC4uLmFwaUNvbXBvbmVudHMsXG59XG4iXSwibmFtZXMiOlsiY3VzdG9tQ29tcG9uZW50cyIsImFwaUNvbXBvbmVudHMiLCJBIiwiQmxvY2txdW90ZSIsIkRpdmlkZXIiLCJIZWFkaW5nMSIsIkhlYWRpbmcyIiwiSGVhZGluZzMiLCJIZWFkaW5nNCIsIkhlYWRpbmc1IiwiSGVhZGluZzYiLCJJbWFnZSIsIkxpc3RJdGVtIiwiT3JkZXJlZExpc3QiLCJQYXJhZ3JhcGgiLCJTbWFsbCIsIlRhYmxlIiwiVEQiLCJUSGVhZCIsIlRSIiwiVW5vcmRlcmVkTGlzdCIsIlZpZGVvIiwic2NvcGUiLCJjb21wb25lbnRzIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiYmxvY2txdW90ZSIsImhyIiwiYSIsInAiLCJ0YWJsZSIsInRoZWFkIiwidHIiLCJ0ZCIsInZpZGVvIiwib2wiLCJ1bCIsImxpIiwiaW1nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./components/mdx-components/index.ts\n"); /***/ }), /***/ "./pages/index.tsx": /*!*************************!*\ !*** ./pages/index.tsx ***! \*************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ArticlePage),\n/* harmony export */ \"getStaticProps\": () => (/* binding */ getStaticProps)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_ArticleDetails__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ArticleDetails */ \"./components/ArticleDetails.tsx\");\n/* harmony import */ var _components_ArticleNavLinks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ArticleNavLinks */ \"./components/ArticleNavLinks.tsx\");\n/* harmony import */ var _components_Mdx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/Mdx */ \"./components/Mdx.tsx\");\n/* harmony import */ var _components_Sidebar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/Sidebar */ \"./components/Sidebar.tsx\");\n/* harmony import */ var _utils_content__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils/content */ \"./utils/content.ts\");\n/* harmony import */ var _utils_getSidebarContentList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils/getSidebarContentList */ \"./utils/getSidebarContentList.ts\");\n/* harmony import */ var next_themes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next-themes */ \"next-themes\");\n/* harmony import */ var next_themes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(next_themes__WEBPACK_IMPORTED_MODULE_7__);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_Mdx__WEBPACK_IMPORTED_MODULE_3__, _utils_content__WEBPACK_IMPORTED_MODULE_5__, _utils_getSidebarContentList__WEBPACK_IMPORTED_MODULE_6__]);\n([_components_Mdx__WEBPACK_IMPORTED_MODULE_3__, _utils_content__WEBPACK_IMPORTED_MODULE_5__, _utils_getSidebarContentList__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n\n\n\n\nfunction ArticlePage({ mdxSource , links , sidebar , article }) {\n const theme = (0,next_themes__WEBPACK_IMPORTED_MODULE_7__.useTheme)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"layout\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Sidebar__WEBPACK_IMPORTED_MODULE_4__.Sidebar, {\n ...sidebar\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 24,\n columnNumber: 4\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: `article ${theme.theme ?? \"light\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"lockup\",\n style: {\n mask: `url(/lockup.svg) center 100% / 100% no-repeat`,\n WebkitMask: `url(/lockup.svg) center 100% / 100% no-repeat`\n }\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Mdx__WEBPACK_IMPORTED_MODULE_3__.Mdx, {\n mdxSource: mdxSource\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 33,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ArticleDetails__WEBPACK_IMPORTED_MODULE_1__.ArticleDetails, {\n article: article\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 34,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ArticleNavLinks__WEBPACK_IMPORTED_MODULE_2__.ArticleNavLinks, {\n links: links\n }, void 0, false, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 35,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 25,\n columnNumber: 4\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/alex/tldraw/tldraw/apps/docs/pages/index.tsx\",\n lineNumber: 23,\n columnNumber: 3\n }, this);\n}\nconst sectionId = \"docs\";\nconst categoryId = \"ucg\";\nconst articleId = \"introduction\";\nconst getStaticProps = async ()=>{\n const sidebar = await (0,_utils_getSidebarContentList__WEBPACK_IMPORTED_MODULE_6__.getSidebarContentList)({\n sectionId,\n categoryId,\n articleId\n });\n const article = await (0,_utils_content__WEBPACK_IMPORTED_MODULE_5__.getArticle)(articleId);\n const links = await (0,_utils_content__WEBPACK_IMPORTED_MODULE_5__.getLinks)(articleId);\n const mdxSource = await (0,_utils_content__WEBPACK_IMPORTED_MODULE_5__.getArticleSource)(articleId);\n return {\n props: {\n article,\n sidebar,\n links,\n mdxSource\n }\n };\n};\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9pbmRleC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUE0RDtBQUNFO0FBQ3hCO0FBQ1E7QUFFMEI7QUFDSDtBQUcvQjtBQVN2QixTQUFTUyxZQUFZLEVBQUVDLFVBQVMsRUFBRUMsTUFBSyxFQUFFQyxRQUFPLEVBQUVDLFFBQU8sRUFBUyxFQUFFO0lBQ2xGLE1BQU1DLFFBQVFOLHFEQUFRQTtJQUV0QixxQkFDQyw4REFBQ087UUFBSUMsV0FBVTs7MEJBQ2QsOERBQUNiLHdEQUFPQTtnQkFBRSxHQUFHUyxPQUFPOzs7Ozs7MEJBQ3BCLDhEQUFDSztnQkFBS0QsV0FBVyxDQUFDLFFBQVEsRUFBRUYsTUFBTUEsS0FBSyxJQUFJLFFBQVEsQ0FBQzs7a0NBQ25ELDhEQUFDQzt3QkFDQUMsV0FBVTt3QkFDVkUsT0FBTzs0QkFDTkMsTUFBTSxDQUFDLDZDQUE2QyxDQUFDOzRCQUNyREMsWUFBWSxDQUFDLDZDQUE2QyxDQUFDO3dCQUM1RDs7Ozs7O2tDQUVELDhEQUFDbEIsZ0RBQUdBO3dCQUFDUSxXQUFXQTs7Ozs7O2tDQUNoQiw4REFBQ1Ysc0VBQWNBO3dCQUFDYSxTQUFTQTs7Ozs7O2tDQUN6Qiw4REFBQ1osd0VBQWVBO3dCQUFDVSxPQUFPQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTVCLENBQUM7QUFFRCxNQUFNVSxZQUFZO0FBQ2xCLE1BQU1DLGFBQWE7QUFDbkIsTUFBTUMsWUFBWTtBQUVYLE1BQU1DLGlCQUF3QyxVQUFZO0lBQ2hFLE1BQU1aLFVBQVUsTUFBTUwsbUZBQXFCQSxDQUFDO1FBQUVjO1FBQVdDO1FBQVlDO0lBQVU7SUFDL0UsTUFBTVYsVUFBVSxNQUFNVCwwREFBVUEsQ0FBQ21CO0lBQ2pDLE1BQU1aLFFBQVEsTUFBTUwsd0RBQVFBLENBQUNpQjtJQUM3QixNQUFNYixZQUFZLE1BQU1MLGdFQUFnQkEsQ0FBQ2tCO0lBRXpDLE9BQU87UUFBRUUsT0FBTztZQUFFWjtZQUFTRDtZQUFTRDtZQUFPRDtRQUFVO0lBQUU7QUFDeEQsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL3BhZ2VzL2luZGV4LnRzeD8wN2ZmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFydGljbGVEZXRhaWxzIH0gZnJvbSAnQC9jb21wb25lbnRzL0FydGljbGVEZXRhaWxzJ1xuaW1wb3J0IHsgQXJ0aWNsZU5hdkxpbmtzIH0gZnJvbSAnQC9jb21wb25lbnRzL0FydGljbGVOYXZMaW5rcydcbmltcG9ydCB7IE1keCB9IGZyb20gJ0AvY29tcG9uZW50cy9NZHgnXG5pbXBvcnQgeyBTaWRlYmFyIH0gZnJvbSAnQC9jb21wb25lbnRzL1NpZGViYXInXG5pbXBvcnQgeyBBcnRpY2xlLCBBcnRpY2xlTGlua3MsIFNpZGViYXJDb250ZW50TGlzdCB9IGZyb20gJ0AvdHlwZXMvY29udGVudC10eXBlcydcbmltcG9ydCB7IGdldEFydGljbGUsIGdldEFydGljbGVTb3VyY2UsIGdldExpbmtzIH0gZnJvbSAnQC91dGlscy9jb250ZW50J1xuaW1wb3J0IHsgZ2V0U2lkZWJhckNvbnRlbnRMaXN0IH0gZnJvbSAnQC91dGlscy9nZXRTaWRlYmFyQ29udGVudExpc3QnXG5pbXBvcnQgeyBHZXRTdGF0aWNQcm9wcyB9IGZyb20gJ25leHQnXG5pbXBvcnQgeyBNRFhSZW1vdGVTZXJpYWxpemVSZXN1bHQgfSBmcm9tICduZXh0LW1keC1yZW1vdGUnXG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ25leHQtdGhlbWVzJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuXHRhcnRpY2xlOiBBcnRpY2xlXG5cdGxpbmtzOiBBcnRpY2xlTGlua3Ncblx0c2lkZWJhcjogU2lkZWJhckNvbnRlbnRMaXN0XG5cdG1keFNvdXJjZTogTURYUmVtb3RlU2VyaWFsaXplUmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFydGljbGVQYWdlKHsgbWR4U291cmNlLCBsaW5rcywgc2lkZWJhciwgYXJ0aWNsZSB9OiBQcm9wcykge1xuXHRjb25zdCB0aGVtZSA9IHVzZVRoZW1lKClcblxuXHRyZXR1cm4gKFxuXHRcdDxkaXYgY2xhc3NOYW1lPVwibGF5b3V0XCI+XG5cdFx0XHQ8U2lkZWJhciB7Li4uc2lkZWJhcn0gLz5cblx0XHRcdDxtYWluIGNsYXNzTmFtZT17YGFydGljbGUgJHt0aGVtZS50aGVtZSA/PyAnbGlnaHQnfWB9PlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwibG9ja3VwXCJcblx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0bWFzazogYHVybCgvbG9ja3VwLnN2ZykgY2VudGVyIDEwMCUgLyAxMDAlIG5vLXJlcGVhdGAsXG5cdFx0XHRcdFx0XHRXZWJraXRNYXNrOiBgdXJsKC9sb2NrdXAuc3ZnKSBjZW50ZXIgMTAwJSAvIDEwMCUgbm8tcmVwZWF0YCxcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8TWR4IG1keFNvdXJjZT17bWR4U291cmNlfSAvPlxuXHRcdFx0XHQ8QXJ0aWNsZURldGFpbHMgYXJ0aWNsZT17YXJ0aWNsZX0gLz5cblx0XHRcdFx0PEFydGljbGVOYXZMaW5rcyBsaW5rcz17bGlua3N9IC8+XG5cdFx0XHQ8L21haW4+XG5cdFx0PC9kaXY+XG5cdClcbn1cblxuY29uc3Qgc2VjdGlvbklkID0gJ2RvY3MnXG5jb25zdCBjYXRlZ29yeUlkID0gJ3VjZydcbmNvbnN0IGFydGljbGVJZCA9ICdpbnRyb2R1Y3Rpb24nXG5cbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQcm9wczogR2V0U3RhdGljUHJvcHM8UHJvcHM+ID0gYXN5bmMgKCkgPT4ge1xuXHRjb25zdCBzaWRlYmFyID0gYXdhaXQgZ2V0U2lkZWJhckNvbnRlbnRMaXN0KHsgc2VjdGlvbklkLCBjYXRlZ29yeUlkLCBhcnRpY2xlSWQgfSlcblx0Y29uc3QgYXJ0aWNsZSA9IGF3YWl0IGdldEFydGljbGUoYXJ0aWNsZUlkKVxuXHRjb25zdCBsaW5rcyA9IGF3YWl0IGdldExpbmtzKGFydGljbGVJZClcblx0Y29uc3QgbWR4U291cmNlID0gYXdhaXQgZ2V0QXJ0aWNsZVNvdXJjZShhcnRpY2xlSWQpXG5cblx0cmV0dXJuIHsgcHJvcHM6IHsgYXJ0aWNsZSwgc2lkZWJhciwgbGlua3MsIG1keFNvdXJjZSB9IH1cbn1cbiJdLCJuYW1lcyI6WyJBcnRpY2xlRGV0YWlscyIsIkFydGljbGVOYXZMaW5rcyIsIk1keCIsIlNpZGViYXIiLCJnZXRBcnRpY2xlIiwiZ2V0QXJ0aWNsZVNvdXJjZSIsImdldExpbmtzIiwiZ2V0U2lkZWJhckNvbnRlbnRMaXN0IiwidXNlVGhlbWUiLCJBcnRpY2xlUGFnZSIsIm1keFNvdXJjZSIsImxpbmtzIiwic2lkZWJhciIsImFydGljbGUiLCJ0aGVtZSIsImRpdiIsImNsYXNzTmFtZSIsIm1haW4iLCJzdHlsZSIsIm1hc2siLCJXZWJraXRNYXNrIiwic2VjdGlvbklkIiwiY2F0ZWdvcnlJZCIsImFydGljbGVJZCIsImdldFN0YXRpY1Byb3BzIiwicHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./pages/index.tsx\n"); /***/ }), /***/ "./types/content-types.ts": /*!********************************!*\ !*** ./types/content-types.ts ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Status\": () => (/* binding */ Status)\n/* harmony export */ });\nvar Status;\n(function(Status) {\n Status[\"Draft\"] = \"draft\";\n Status[\"Published\"] = \"published\";\n})(Status || (Status = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi90eXBlcy9jb250ZW50LXR5cGVzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7SUFjTztVQUFLQSxNQUFNO0lBQU5BLE9BQ1hDLFdBQVE7SUFER0QsT0FFWEUsZUFBWTtHQUZERixXQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uL3R5cGVzL2NvbnRlbnQtdHlwZXMudHM/Yjk3YyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBJbnB1dENhdGVnb3J5ID0ge1xuXHRpZDogc3RyaW5nXG5cdHRpdGxlOiBzdHJpbmdcblx0ZGVzY3JpcHRpb246IHN0cmluZ1xuXHRncm91cHM6IEdyb3VwW11cbn1cblxuZXhwb3J0IHR5cGUgSW5wdXRTZWN0aW9uID0ge1xuXHRpZDogc3RyaW5nXG5cdHRpdGxlOiBzdHJpbmdcblx0ZGVzY3JpcHRpb246IHN0cmluZ1xuXHRjYXRlZ29yaWVzOiBJbnB1dENhdGVnb3J5W11cbn1cblxuZXhwb3J0IGVudW0gU3RhdHVzIHtcblx0RHJhZnQgPSAnZHJhZnQnLFxuXHRQdWJsaXNoZWQgPSAncHVibGlzaGVkJyxcbn1cbi8qKiBBIHRhYmxla2V5ZWQgYnkgc2x1ZyBvZiBnZW5lcmF0ZWQgbWFya2Rvd24gY29udGVudCBmb3IgZWFjaCBpdGVtICovXG5leHBvcnQgdHlwZSBNYXJrZG93bkNvbnRlbnQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG5cbi8qKiBBIHRhYmxlIGtleWVkIGJ5IHNsdWcgb2YgYXJ0aWNsZXMuICovXG5leHBvcnQgdHlwZSBBcnRpY2xlcyA9IFJlY29yZDxzdHJpbmcsIEFydGljbGU+XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvbiB7XG5cdC8qKiBUaGUgc2VjdGlvbidzIGlkICovXG5cdGlkOiBzdHJpbmdcblx0LyoqIFRoZSBzZWN0aW9uJ3MgdGl0bGUgKi9cblx0dGl0bGU6IHN0cmluZ1xuXHQvKiogQSBkZXNzY3JpcHRpb24gb2YgdGhlIHNlY3Rpb24uICovXG5cdGRlc2NyaXB0aW9uOiBzdHJpbmdcblx0LyoqIEEgdGFibGUga2V5ZWQgYnkgY2F0ZWdvcnkgb2YgZWFjaCBjYXRlZ29yeS4gKi9cblx0Y2F0ZWdvcmllczogQ2F0ZWdvcnlbXVxufVxuXG5leHBvcnQgdHlwZSBDYXRlZ29yeSA9IHtcblx0LyoqIFRoZSBjYXRlZ29yeSdzIGlkICovXG5cdGlkOiBzdHJpbmdcblx0LyoqIFRoZSBjYXRlZ29yeSdzIHRpdGxlICovXG5cdHRpdGxlOiBzdHJpbmdcblx0LyoqIEEgZGVzc2NyaXB0aW9uIG9mIHRoZSBjYXRlZ29yeS4gKi9cblx0ZGVzY3JpcHRpb246IHN0cmluZ1xuXHQvKiogQW4gb3JkZXJlZCBhcnJheSBvZiBhcnRpY2xlSWRzIHRoYXQgYmVsb25nIHRvIHRoaXMgY2F0ZWdvcnkuICovXG5cdGFydGljbGVJZHM6IHN0cmluZ1tdXG5cdGdyb3VwczogR3JvdXBbXVxufVxuXG5leHBvcnQgdHlwZSBHcm91cCA9IHtcblx0aWQ6IHN0cmluZ1xuXHR0aXRsZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcblx0bmFtZTogc3RyaW5nXG5cdGltYWdlOiBzdHJpbmdcblx0ZW1haWw6IHN0cmluZ1xuXHR0d2l0dGVyOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlIHtcblx0LyoqIFRoZSB1bmlxdWUgaWQgb3IgXCJzbHVnXCIgZm9yIHRoaXMgYXJ0aWNsZS4gKi9cblx0aWQ6IHN0cmluZ1xuXHQvKiogVGhlIGlkIG9mIHRoZSBncm91cCB0byB3aGljaCB0aGlzIGFydGljbGUgYmVsb25ncy4gKi9cblx0Z3JvdXBJZDogc3RyaW5nXG5cdC8qKiBUaGUgaW5kZXggb2YgdGhpcyBhcnRpY2xlIGluc2lkZSBvZiB0aGUgYXJ0aWNsZSdzIGdyb3VwLiAqL1xuXHRncm91cEluZGV4OiBudW1iZXJcblx0LyoqIFRoZSBpZCBvZiB0aGUgY2F0ZWdvcnkgdG8gd2hpY2ggdGhpcyBhcnRpY2xlIGJlbG9uZ3MuICovXG5cdGNhdGVnb3J5SWQ6IHN0cmluZ1xuXHQvKiogVGhlIGluZGV4IG9mIHRoaXMgYXJ0aWNsZSBpbnNpZGUgb2YgdGhlIGFydGljbGUncyBjYXRlZ29yeS4gKi9cblx0Y2F0ZWdvcnlJbmRleDogbnVtYmVyXG5cdC8qKiBUaGUgaWQgb2YgdGhlIHNlY3Rpb24gdG8gd2hpY2ggdGhpcyBhcnRpY2xlIGJlbG9uZ3MuICovXG5cdHNlY3Rpb25JZDogc3RyaW5nXG5cdC8qKiBUaGUgaW5kZXggb2YgdGhpcyBhcnRpY2xlIGluc2lkZSBvZiB0aGUgYXJ0aWNsZSdzIHNlY3Rpb24uICovXG5cdHNlY3Rpb25JbmRleDogbnVtYmVyXG5cdC8qKiBUaGUgYXJ0aWNsZSdzIGRpc3BsYXkgdGl0bGUuICovXG5cdHRpdGxlOiBzdHJpbmdcblx0LyoqIFRoZSBhcnRpY2xlJ3MgZGlzcGxheSBkZXNjcmlwdGlvbiAob3B0aW9uYWwpLiAqL1xuXHRkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbFxuXHQvKiogVGhlIGFydGljbGUncyBhdXRob3IgZGV0YWlscyAob3B0aW9uYWwpLiAqL1xuXHRhdXRob3I6IEF1dGhvciB8IG51bGxcblx0LyoqIFRoZSBhcnRpY2xlJ3MgaGVybyBpbWFnZSAob3B0aW9uYWwpLiAqL1xuXHRoZXJvOiBzdHJpbmcgfCBudWxsXG5cdC8qKiBUaGUgYXJ0aWNsZSdzIHN0YXR1cyAoZHJhZnQsIHB1Ymxpc2hlZCwgaGlkZGVuLCBldGMpICovXG5cdHN0YXR1czogU3RhdHVzXG5cdC8qKiBUaGUgZGF0ZSBvbiB3aGljaCB0aGUgYXJ0aWNsZSB3YXMgcHVibGlzaGVkIChvcHRpb25hbCkuICovXG5cdGRhdGU6IHN0cmluZyB8IG51bGxcblx0LyoqIEFuIGFycmF5IG9mIGtleXdvcmRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFydGljbGUuICovXG5cdGtleXdvcmRzOiBzdHJpbmdbXVxuXHQvKiogVGhlIFVSTCB3aGVyZSB0aGUgYXJ0aWNsZSdzIHNvdXJjZSBjYW4gYmUgZm91bmQuICovXG5cdHNvdXJjZVVybDogc3RyaW5nXG5cdC8qKiBUaGUgYXJ0aWNsZUlkIG9mIHRoZSBuZXh0IGFydGljbGUgaW4gdGhlIGNhdGVnb3J5LiAqL1xuXHRuZXh0OiBzdHJpbmcgfCBudWxsXG5cdC8qKiBUaGUgYXJ0aWNsZUlkIG9mIHRoZSBwcmV2aW91cyBhcnRpY2xlIGluIHRoZSBjYXRlZ29yeS4gKi9cblx0cHJldjogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBBcnRpY2xlTGlua3MgPSB7XG5cdHByZXY6IEFydGljbGUgfCBudWxsXG5cdG5leHQ6IEFydGljbGUgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIFNpZGViYXJDb250ZW50U2VjdGlvbkxpbmsgPSB7XG5cdHR5cGU6ICdzZWN0aW9uJ1xuXHR0aXRsZTogc3RyaW5nXG5cdHVybDogc3RyaW5nXG5cdGNoaWxkcmVuOiBTaWRlYmFyQ29udGVudExpbmtbXVxufVxuZXhwb3J0IHR5cGUgU2lkZWJhckNvbnRlbnRDYXRlZ29yeUxpbmsgPSB7XG5cdHR5cGU6ICdjYXRlZ29yeSdcblx0dGl0bGU6IHN0cmluZ1xuXHR1cmw6IHN0cmluZ1xuXHRjaGlsZHJlbjogU2lkZWJhckNvbnRlbnRMaW5rW11cbn1cbmV4cG9ydCB0eXBlIFNpZGViYXJDb250ZW50QXJ0aWNsZUxpbmsgPSB7IHR5cGU6ICdhcnRpY2xlJzsgdGl0bGU6IHN0cmluZzsgdXJsOiBzdHJpbmcgfVxuXG5leHBvcnQgdHlwZSBTaWRlYmFyQ29udGVudExpbmsgPVxuXHR8IFNpZGViYXJDb250ZW50U2VjdGlvbkxpbmtcblx0fCBTaWRlYmFyQ29udGVudENhdGVnb3J5TGlua1xuXHR8IFNpZGViYXJDb250ZW50QXJ0aWNsZUxpbmtcblxuZXhwb3J0IHR5cGUgU2lkZWJhckNvbnRlbnRMaXN0ID0ge1xuXHRzZWN0aW9uSWQ6IHN0cmluZyB8IG51bGxcblx0Y2F0ZWdvcnlJZDogc3RyaW5nIHwgbnVsbFxuXHRhcnRpY2xlSWQ6IHN0cmluZyB8IG51bGxcblx0bGlua3M6IFNpZGViYXJDb250ZW50TGlua1tdXG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlZENvbnRlbnQgPSB7IHNlY3Rpb25zOiBTZWN0aW9uW107IGNvbnRlbnQ6IE1hcmtkb3duQ29udGVudDsgYXJ0aWNsZXM6IEFydGljbGVzIH1cbiJdLCJuYW1lcyI6WyJTdGF0dXMiLCJEcmFmdCIsIlB1Ymxpc2hlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./types/content-types.ts\n"); /***/ }), /***/ "./utils/content.ts": /*!**************************!*\ !*** ./utils/content.ts ***! \**************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getAllSlugsForSection\": () => (/* binding */ getAllSlugsForSection),\n/* harmony export */ \"getArticle\": () => (/* binding */ getArticle),\n/* harmony export */ \"getArticlePathsForCategory\": () => (/* binding */ getArticlePathsForCategory),\n/* harmony export */ \"getArticlePathsForSection\": () => (/* binding */ getArticlePathsForSection),\n/* harmony export */ \"getArticleSource\": () => (/* binding */ getArticleSource),\n/* harmony export */ \"getArticles\": () => (/* binding */ getArticles),\n/* harmony export */ \"getCategories\": () => (/* binding */ getCategories),\n/* harmony export */ \"getCategory\": () => (/* binding */ getCategory),\n/* harmony export */ \"getCategoryItems\": () => (/* binding */ getCategoryItems),\n/* harmony export */ \"getCategoryPaths\": () => (/* binding */ getCategoryPaths),\n/* harmony export */ \"getContent\": () => (/* binding */ getContent),\n/* harmony export */ \"getLinks\": () => (/* binding */ getLinks),\n/* harmony export */ \"getMarkdownContent\": () => (/* binding */ getMarkdownContent),\n/* harmony export */ \"getMdxSource\": () => (/* binding */ getMdxSource),\n/* harmony export */ \"getSection\": () => (/* binding */ getSection),\n/* harmony export */ \"getSections\": () => (/* binding */ getSections)\n/* harmony export */ });\n/* harmony import */ var next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next-mdx-remote/serialize */ \"next-mdx-remote/serialize\");\n/* harmony import */ var rehype_autolink_headings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rehype-autolink-headings */ \"rehype-autolink-headings\");\n/* harmony import */ var rehype_highlight__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rehype-highlight */ \"rehype-highlight\");\n/* harmony import */ var rehype_slug_custom_id__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rehype-slug-custom-id */ \"rehype-slug-custom-id\");\n/* harmony import */ var remark_gfm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! remark-gfm */ \"remark-gfm\");\n/* harmony import */ var _components_mdx_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/mdx-components */ \"./components/mdx-components/index.ts\");\n/* harmony import */ var _types_content_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types/content-types */ \"./types/content-types.ts\");\n/* harmony import */ var _content_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../content.json */ \"./content.json\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_0__, rehype_autolink_headings__WEBPACK_IMPORTED_MODULE_1__, rehype_highlight__WEBPACK_IMPORTED_MODULE_2__, rehype_slug_custom_id__WEBPACK_IMPORTED_MODULE_3__, remark_gfm__WEBPACK_IMPORTED_MODULE_4__]);\n([next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_0__, rehype_autolink_headings__WEBPACK_IMPORTED_MODULE_1__, rehype_highlight__WEBPACK_IMPORTED_MODULE_2__, rehype_slug_custom_id__WEBPACK_IMPORTED_MODULE_3__, remark_gfm__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n\n\n\n\n // this won't be here until we've run generate-content\nasync function getMdxSource(source) {\n return (0,next_mdx_remote_serialize__WEBPACK_IMPORTED_MODULE_0__.serialize)(source, {\n scope: _components_mdx_components__WEBPACK_IMPORTED_MODULE_5__.scope,\n mdxOptions: {\n remarkPlugins: [\n remark_gfm__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n ],\n rehypePlugins: [\n rehype_highlight__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n rehype_autolink_headings__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n [\n rehype_slug_custom_id__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n {\n enableCustomId: true,\n maintainCase: false,\n removeAccents: true\n }\n ]\n ]\n }\n });\n}\nasync function getContent() {\n return _content_json__WEBPACK_IMPORTED_MODULE_7__;\n}\nasync function getMarkdownContent() {\n return (await getContent()).content;\n}\nasync function getArticles() {\n return (await getContent()).articles;\n}\nasync function getSections() {\n return (await getContent()).sections;\n}\nasync function getSection(sectionId) {\n const sections = await getSections();\n return sections.find((section)=>section.id === sectionId);\n}\nasync function getCategories(sectionId) {\n return Object.values((await getSection(sectionId)).categories);\n}\nasync function getCategory(sectionId, id) {\n return (await getSection(sectionId)).categories.find((c)=>c.id === id);\n}\nasync function getCategoryItems(sectionId, id) {\n const section = await getSection(sectionId);\n const category = section.categories.find((c)=>c.id === id);\n const articles = await getArticles();\n return category.articleIds.map((id)=>articles[id]);\n}\nasync function getArticle(articleId) {\n const article = (await getArticles())[articleId];\n if (false) {}\n return article;\n}\nasync function getArticleSource(articleId) {\n const markdown = await getMarkdownContent();\n return getMdxSource(markdown[articleId]);\n}\nasync function getLinks(articleId) {\n const article = (await getArticles())[articleId];\n if (!article) throw Error(`Could not find a article with articleId ${articleId}`);\n return {\n prev: article.prev ? await getArticle(article.prev) : null,\n next: article.next ? await getArticle(article.next) : null\n };\n}\nasync function getArticlePathsForSection(sectionId) {\n const section = await getSection(sectionId);\n return section.categories.map((category)=>({\n params: {\n sectionId,\n categoryId: category.id\n }\n }));\n}\nasync function getArticlePathsForCategory(sectionId, categoryId) {\n const section = await getSection(sectionId);\n const category = section.categories.find((c)=>c.id === categoryId);\n return category.articleIds.map((articleId)=>({\n params: {\n sectionId,\n categoryId,\n articleId\n }\n }));\n}\nasync function getCategoryPaths(sectionId) {\n const section = await getSection(sectionId);\n const results = [];\n if (section.categories) {\n for (const category of section.categories){\n // for (const articleId of category.articleIds) {\n results.push({\n params: {\n sectionId,\n categoryId: category.id\n }\n });\n // }\n }\n }\n return results;\n}\nasync function getAllSlugsForSection(sectionId) {\n const section = await getSection(sectionId);\n const results = [];\n if (section.categories) {\n for (const category of section.categories){\n for (const articleId of category.articleIds){\n results.push({\n params: {\n sectionId,\n categoryId: category.id,\n articleId\n }\n });\n }\n }\n }\n return results;\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi91dGlscy9jb250ZW50LnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxRDtBQUNRO0FBQ2Y7QUFDQTtBQUNaO0FBQ2tCO0FBQytCO0FBRTFDLENBQUMsc0RBQXNEO0FBRXpGLGVBQWVRLGFBQWFDLE1BQWMsRUFBRTtJQUNsRCxPQUFPVCxvRUFBU0EsQ0FBQ1MsUUFBUTtRQUN4QkosS0FBS0EsK0RBQUFBO1FBQ0xLLFlBQVk7WUFDWEMsZUFBZTtnQkFBQ1Asa0RBQVNBO2FBQUM7WUFDMUJRLGVBQWU7Z0JBQ2RWLHdEQUFlQTtnQkFDZkQsZ0VBQXNCQTtnQkFDdEI7b0JBQUNFLDZEQUFVQTtvQkFBRTt3QkFBRVUsZ0JBQWdCLElBQUk7d0JBQUVDLGNBQWMsS0FBSzt3QkFBRUMsZUFBZSxJQUFJO29CQUFDO2lCQUFFO2FBQ2hGO1FBQ0Y7SUFDRDtBQUNELENBQUM7QUFFTSxlQUFlQyxhQUF3QztJQUM3RCxPQUFPVCwwQ0FBV0E7QUFDbkIsQ0FBQztBQUVNLGVBQWVVLHFCQUFxQjtJQUMxQyxPQUFPLENBQUMsTUFBTUQsWUFBVyxFQUFHRSxPQUFPO0FBQ3BDLENBQUM7QUFFTSxlQUFlQyxjQUFjO0lBQ25DLE9BQU8sQ0FBQyxNQUFNSCxZQUFXLEVBQUdJLFFBQVE7QUFDckMsQ0FBQztBQUVNLGVBQWVDLGNBQWM7SUFDbkMsT0FBTyxDQUFDLE1BQU1MLFlBQVcsRUFBR00sUUFBUTtBQUNyQyxDQUFDO0FBRU0sZUFBZUMsV0FBV0MsU0FBaUIsRUFBRTtJQUNuRCxNQUFNRixXQUFXLE1BQU1EO0lBQ3ZCLE9BQU9DLFNBQVNHLElBQUksQ0FBQyxDQUFDQyxVQUFZQSxRQUFRQyxFQUFFLEtBQUtIO0FBQ2xELENBQUM7QUFFTSxlQUFlSSxjQUFjSixTQUFpQixFQUFFO0lBQ3RELE9BQU9LLE9BQU9DLE1BQU0sQ0FBQyxDQUFDLE1BQU1QLFdBQVdDLFVBQVMsRUFBR08sVUFBVTtBQUM5RCxDQUFDO0FBRU0sZUFBZUMsWUFBWVIsU0FBaUIsRUFBRUcsRUFBVSxFQUFFO0lBQ2hFLE9BQU8sQ0FBQyxNQUFNSixXQUFXQyxVQUFTLEVBQUdPLFVBQVUsQ0FBRU4sSUFBSSxDQUFDLENBQUNRLElBQU1BLEVBQUVOLEVBQUUsS0FBS0E7QUFDdkUsQ0FBQztBQUVNLGVBQWVPLGlCQUFpQlYsU0FBaUIsRUFBRUcsRUFBVSxFQUFFO0lBQ3JFLE1BQU1ELFVBQVUsTUFBTUgsV0FBV0M7SUFDakMsTUFBTVcsV0FBV1QsUUFBUUssVUFBVSxDQUFFTixJQUFJLENBQUMsQ0FBQ1EsSUFBTUEsRUFBRU4sRUFBRSxLQUFLQTtJQUMxRCxNQUFNUCxXQUFXLE1BQU1EO0lBQ3ZCLE9BQU9nQixTQUFTQyxVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDVixLQUFPUCxRQUFRLENBQUNPLEdBQUc7QUFDcEQsQ0FBQztBQUVNLGVBQWVXLFdBQVdDLFNBQWlCLEVBQUU7SUFDbkQsTUFBTUMsVUFBVSxDQUFDLE1BQU1yQixhQUFZLENBQUUsQ0FBQ29CLFVBQVU7SUFDaEQsSUFBSUUsS0FBNkUsRUFBRSxFQUVsRjtJQUNELE9BQU9EO0FBQ1IsQ0FBQztBQUVNLGVBQWVLLGlCQUFpQk4sU0FBaUIsRUFBRTtJQUN6RCxNQUFNTyxXQUFXLE1BQU03QjtJQUN2QixPQUFPVCxhQUFhc0MsUUFBUSxDQUFDUCxVQUFVO0FBQ3hDLENBQUM7QUFFTSxlQUFlUSxTQUFTUixTQUFpQixFQUFFO0lBQ2pELE1BQU1DLFVBQVUsQ0FBQyxNQUFNckIsYUFBWSxDQUFFLENBQUNvQixVQUFVO0lBQ2hELElBQUksQ0FBQ0MsU0FBUyxNQUFNSSxNQUFNLENBQUMsd0NBQXdDLEVBQUVMLFVBQVUsQ0FBQyxFQUFDO0lBQ2pGLE9BQU87UUFDTlMsTUFBTVIsUUFBUVEsSUFBSSxHQUFHLE1BQU1WLFdBQVdFLFFBQVFRLElBQUksSUFBSSxJQUFJO1FBQzFEQyxNQUFNVCxRQUFRUyxJQUFJLEdBQUcsTUFBTVgsV0FBV0UsUUFBUVMsSUFBSSxJQUFJLElBQUk7SUFDM0Q7QUFDRCxDQUFDO0FBRU0sZUFBZUMsMEJBQTBCMUIsU0FBaUIsRUFBRTtJQUNsRSxNQUFNRSxVQUFVLE1BQU1ILFdBQVdDO0lBQ2pDLE9BQU9FLFFBQVFLLFVBQVUsQ0FBQ00sR0FBRyxDQUFDLENBQUNGLFdBQWM7WUFDNUNnQixRQUFRO2dCQUFFM0I7Z0JBQVc0QixZQUFZakIsU0FBU1IsRUFBRTtZQUFDO1FBQzlDO0FBQ0QsQ0FBQztBQUVNLGVBQWUwQiwyQkFBMkI3QixTQUFpQixFQUFFNEIsVUFBa0IsRUFBRTtJQUN2RixNQUFNMUIsVUFBVSxNQUFNSCxXQUFXQztJQUNqQyxNQUFNVyxXQUFXVCxRQUFRSyxVQUFVLENBQUVOLElBQUksQ0FBQyxDQUFDUSxJQUFNQSxFQUFFTixFQUFFLEtBQUt5QjtJQUMxRCxPQUFPakIsU0FBU0MsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0UsWUFBZTtZQUM5Q1ksUUFBUTtnQkFBRTNCO2dCQUFXNEI7Z0JBQVliO1lBQVU7UUFDNUM7QUFDRCxDQUFDO0FBRU0sZUFBZWUsaUJBQWlCOUIsU0FBaUIsRUFBRTtJQUN6RCxNQUFNRSxVQUFVLE1BQU1ILFdBQVdDO0lBQ2pDLE1BQU0rQixVQUFtRSxFQUFFO0lBQzNFLElBQUk3QixRQUFRSyxVQUFVLEVBQUU7UUFDdkIsS0FBSyxNQUFNSSxZQUFZVCxRQUFRSyxVQUFVLENBQUU7WUFDMUMsaURBQWlEO1lBQ2pEd0IsUUFBUUMsSUFBSSxDQUFDO2dCQUFFTCxRQUFRO29CQUFFM0I7b0JBQVc0QixZQUFZakIsU0FBU1IsRUFBRTtnQkFBQztZQUFFO1FBQzlELElBQUk7UUFDTDtJQUNELENBQUM7SUFFRCxPQUFPNEI7QUFDUixDQUFDO0FBRU0sZUFBZUUsc0JBQXNCakMsU0FBaUIsRUFBRTtJQUM5RCxNQUFNRSxVQUFVLE1BQU1ILFdBQVdDO0lBQ2pDLE1BQU0rQixVQUFzRixFQUFFO0lBQzlGLElBQUk3QixRQUFRSyxVQUFVLEVBQUU7UUFDdkIsS0FBSyxNQUFNSSxZQUFZVCxRQUFRSyxVQUFVLENBQUU7WUFDMUMsS0FBSyxNQUFNUSxhQUFhSixTQUFTQyxVQUFVLENBQUU7Z0JBQzVDbUIsUUFBUUMsSUFBSSxDQUFDO29CQUFFTCxRQUFRO3dCQUFFM0I7d0JBQVc0QixZQUFZakIsU0FBU1IsRUFBRTt3QkFBRVk7b0JBQVU7Z0JBQUU7WUFDMUU7UUFDRDtJQUNELENBQUM7SUFFRCxPQUFPZ0I7QUFDUixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHRsZHJhdy9kb2NzLy4vdXRpbHMvY29udGVudC50cz9hYWI0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ25leHQtbWR4LXJlbW90ZS9zZXJpYWxpemUnXG5pbXBvcnQgcmVoeXBlQXV0b2xpbmtIZWFkaW5ncyBmcm9tICdyZWh5cGUtYXV0b2xpbmstaGVhZGluZ3MnXG5pbXBvcnQgcmVoeXBlSGlnaGxpZ2h0IGZyb20gJ3JlaHlwZS1oaWdobGlnaHQnXG5pbXBvcnQgcmVoeXBlU2x1ZyBmcm9tICdyZWh5cGUtc2x1Zy1jdXN0b20taWQnXG5pbXBvcnQgcmVtYXJrR2ZtIGZyb20gJ3JlbWFyay1nZm0nXG5pbXBvcnQgeyBzY29wZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWR4LWNvbXBvbmVudHMnXG5pbXBvcnQgeyBBcnRpY2xlLCBHZW5lcmF0ZWRDb250ZW50LCBTZWN0aW9uLCBTdGF0dXMgfSBmcm9tICcuLi90eXBlcy9jb250ZW50LXR5cGVzJ1xuXG5pbXBvcnQganNvbkNvbnRlbnQgZnJvbSAnLi4vY29udGVudC5qc29uJyAvLyB0aGlzIHdvbid0IGJlIGhlcmUgdW50aWwgd2UndmUgcnVuIGdlbmVyYXRlLWNvbnRlbnRcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE1keFNvdXJjZShzb3VyY2U6IHN0cmluZykge1xuXHRyZXR1cm4gc2VyaWFsaXplKHNvdXJjZSwge1xuXHRcdHNjb3BlLFxuXHRcdG1keE9wdGlvbnM6IHtcblx0XHRcdHJlbWFya1BsdWdpbnM6IFtyZW1hcmtHZm1dLFxuXHRcdFx0cmVoeXBlUGx1Z2luczogW1xuXHRcdFx0XHRyZWh5cGVIaWdobGlnaHQsXG5cdFx0XHRcdHJlaHlwZUF1dG9saW5rSGVhZGluZ3MsXG5cdFx0XHRcdFtyZWh5cGVTbHVnLCB7IGVuYWJsZUN1c3RvbUlkOiB0cnVlLCBtYWludGFpbkNhc2U6IGZhbHNlLCByZW1vdmVBY2NlbnRzOiB0cnVlIH1dLFxuXHRcdFx0XSxcblx0XHR9LFxuXHR9KVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q29udGVudCgpOiBQcm9taXNlPEdlbmVyYXRlZENvbnRlbnQ+IHtcblx0cmV0dXJuIGpzb25Db250ZW50IGFzIGFueVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWFya2Rvd25Db250ZW50KCkge1xuXHRyZXR1cm4gKGF3YWl0IGdldENvbnRlbnQoKSkuY29udGVudCBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBcnRpY2xlcygpIHtcblx0cmV0dXJuIChhd2FpdCBnZXRDb250ZW50KCkpLmFydGljbGVzIGFzIFJlY29yZDxzdHJpbmcsIEFydGljbGU+XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZWN0aW9ucygpIHtcblx0cmV0dXJuIChhd2FpdCBnZXRDb250ZW50KCkpLnNlY3Rpb25zIGFzIFNlY3Rpb25bXVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZykge1xuXHRjb25zdCBzZWN0aW9ucyA9IGF3YWl0IGdldFNlY3Rpb25zKClcblx0cmV0dXJuIHNlY3Rpb25zLmZpbmQoKHNlY3Rpb24pID0+IHNlY3Rpb24uaWQgPT09IHNlY3Rpb25JZCkhXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yaWVzKHNlY3Rpb25JZDogc3RyaW5nKSB7XG5cdHJldHVybiBPYmplY3QudmFsdWVzKChhd2FpdCBnZXRTZWN0aW9uKHNlY3Rpb25JZCkpLmNhdGVnb3JpZXMhKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q2F0ZWdvcnkoc2VjdGlvbklkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcblx0cmV0dXJuIChhd2FpdCBnZXRTZWN0aW9uKHNlY3Rpb25JZCkpLmNhdGVnb3JpZXMhLmZpbmQoKGMpID0+IGMuaWQgPT09IGlkKSFcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5SXRlbXMoc2VjdGlvbklkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcblx0Y29uc3Qgc2VjdGlvbiA9IGF3YWl0IGdldFNlY3Rpb24oc2VjdGlvbklkKVxuXHRjb25zdCBjYXRlZ29yeSA9IHNlY3Rpb24uY2F0ZWdvcmllcyEuZmluZCgoYykgPT4gYy5pZCA9PT0gaWQpIVxuXHRjb25zdCBhcnRpY2xlcyA9IGF3YWl0IGdldEFydGljbGVzKClcblx0cmV0dXJuIGNhdGVnb3J5LmFydGljbGVJZHMubWFwKChpZCkgPT4gYXJ0aWNsZXNbaWRdKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXJ0aWNsZShhcnRpY2xlSWQ6IHN0cmluZykge1xuXHRjb25zdCBhcnRpY2xlID0gKGF3YWl0IGdldEFydGljbGVzKCkpW2FydGljbGVJZF1cblx0aWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIGFydGljbGUuc3RhdHVzICE9PSBTdGF0dXMuUHVibGlzaGVkKSB7XG5cdFx0dGhyb3cgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgYXJ0aWNsZSB3aXRoIGFydGljbGVJZCAke2FydGljbGVJZH1gKVxuXHR9XG5cdHJldHVybiBhcnRpY2xlXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBcnRpY2xlU291cmNlKGFydGljbGVJZDogc3RyaW5nKSB7XG5cdGNvbnN0IG1hcmtkb3duID0gYXdhaXQgZ2V0TWFya2Rvd25Db250ZW50KClcblx0cmV0dXJuIGdldE1keFNvdXJjZShtYXJrZG93blthcnRpY2xlSWRdKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlua3MoYXJ0aWNsZUlkOiBzdHJpbmcpIHtcblx0Y29uc3QgYXJ0aWNsZSA9IChhd2FpdCBnZXRBcnRpY2xlcygpKVthcnRpY2xlSWRdXG5cdGlmICghYXJ0aWNsZSkgdGhyb3cgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgYXJ0aWNsZSB3aXRoIGFydGljbGVJZCAke2FydGljbGVJZH1gKVxuXHRyZXR1cm4ge1xuXHRcdHByZXY6IGFydGljbGUucHJldiA/IGF3YWl0IGdldEFydGljbGUoYXJ0aWNsZS5wcmV2KSA6IG51bGwsXG5cdFx0bmV4dDogYXJ0aWNsZS5uZXh0ID8gYXdhaXQgZ2V0QXJ0aWNsZShhcnRpY2xlLm5leHQpIDogbnVsbCxcblx0fVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXJ0aWNsZVBhdGhzRm9yU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZykge1xuXHRjb25zdCBzZWN0aW9uID0gYXdhaXQgZ2V0U2VjdGlvbihzZWN0aW9uSWQpXG5cdHJldHVybiBzZWN0aW9uLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gKHtcblx0XHRwYXJhbXM6IHsgc2VjdGlvbklkLCBjYXRlZ29yeUlkOiBjYXRlZ29yeS5pZCB9LFxuXHR9KSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFydGljbGVQYXRoc0ZvckNhdGVnb3J5KHNlY3Rpb25JZDogc3RyaW5nLCBjYXRlZ29yeUlkOiBzdHJpbmcpIHtcblx0Y29uc3Qgc2VjdGlvbiA9IGF3YWl0IGdldFNlY3Rpb24oc2VjdGlvbklkKVxuXHRjb25zdCBjYXRlZ29yeSA9IHNlY3Rpb24uY2F0ZWdvcmllcyEuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCkhXG5cdHJldHVybiBjYXRlZ29yeS5hcnRpY2xlSWRzLm1hcCgoYXJ0aWNsZUlkKSA9PiAoe1xuXHRcdHBhcmFtczogeyBzZWN0aW9uSWQsIGNhdGVnb3J5SWQsIGFydGljbGVJZCB9LFxuXHR9KSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5UGF0aHMoc2VjdGlvbklkOiBzdHJpbmcpIHtcblx0Y29uc3Qgc2VjdGlvbiA9IGF3YWl0IGdldFNlY3Rpb24oc2VjdGlvbklkKVxuXHRjb25zdCByZXN1bHRzOiB7IHBhcmFtczogeyBzZWN0aW9uSWQ6IHN0cmluZzsgY2F0ZWdvcnlJZDogc3RyaW5nIH0gfVtdID0gW11cblx0aWYgKHNlY3Rpb24uY2F0ZWdvcmllcykge1xuXHRcdGZvciAoY29uc3QgY2F0ZWdvcnkgb2Ygc2VjdGlvbi5jYXRlZ29yaWVzKSB7XG5cdFx0XHQvLyBmb3IgKGNvbnN0IGFydGljbGVJZCBvZiBjYXRlZ29yeS5hcnRpY2xlSWRzKSB7XG5cdFx0XHRyZXN1bHRzLnB1c2goeyBwYXJhbXM6IHsgc2VjdGlvbklkLCBjYXRlZ29yeUlkOiBjYXRlZ29yeS5pZCB9IH0pXG5cdFx0XHQvLyB9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJlc3VsdHNcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbFNsdWdzRm9yU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZykge1xuXHRjb25zdCBzZWN0aW9uID0gYXdhaXQgZ2V0U2VjdGlvbihzZWN0aW9uSWQpXG5cdGNvbnN0IHJlc3VsdHM6IHsgcGFyYW1zOiB7IHNlY3Rpb25JZDogc3RyaW5nOyBjYXRlZ29yeUlkOiBzdHJpbmc7IGFydGljbGVJZDogc3RyaW5nIH0gfVtdID0gW11cblx0aWYgKHNlY3Rpb24uY2F0ZWdvcmllcykge1xuXHRcdGZvciAoY29uc3QgY2F0ZWdvcnkgb2Ygc2VjdGlvbi5jYXRlZ29yaWVzKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGFydGljbGVJZCBvZiBjYXRlZ29yeS5hcnRpY2xlSWRzKSB7XG5cdFx0XHRcdHJlc3VsdHMucHVzaCh7IHBhcmFtczogeyBzZWN0aW9uSWQsIGNhdGVnb3J5SWQ6IGNhdGVnb3J5LmlkLCBhcnRpY2xlSWQgfSB9KVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiByZXN1bHRzXG59XG4iXSwibmFtZXMiOlsic2VyaWFsaXplIiwicmVoeXBlQXV0b2xpbmtIZWFkaW5ncyIsInJlaHlwZUhpZ2hsaWdodCIsInJlaHlwZVNsdWciLCJyZW1hcmtHZm0iLCJzY29wZSIsIlN0YXR1cyIsImpzb25Db250ZW50IiwiZ2V0TWR4U291cmNlIiwic291cmNlIiwibWR4T3B0aW9ucyIsInJlbWFya1BsdWdpbnMiLCJyZWh5cGVQbHVnaW5zIiwiZW5hYmxlQ3VzdG9tSWQiLCJtYWludGFpbkNhc2UiLCJyZW1vdmVBY2NlbnRzIiwiZ2V0Q29udGVudCIsImdldE1hcmtkb3duQ29udGVudCIsImNvbnRlbnQiLCJnZXRBcnRpY2xlcyIsImFydGljbGVzIiwiZ2V0U2VjdGlvbnMiLCJzZWN0aW9ucyIsImdldFNlY3Rpb24iLCJzZWN0aW9uSWQiLCJmaW5kIiwic2VjdGlvbiIsImlkIiwiZ2V0Q2F0ZWdvcmllcyIsIk9iamVjdCIsInZhbHVlcyIsImNhdGVnb3JpZXMiLCJnZXRDYXRlZ29yeSIsImMiLCJnZXRDYXRlZ29yeUl0ZW1zIiwiY2F0ZWdvcnkiLCJhcnRpY2xlSWRzIiwibWFwIiwiZ2V0QXJ0aWNsZSIsImFydGljbGVJZCIsImFydGljbGUiLCJwcm9jZXNzIiwic3RhdHVzIiwiUHVibGlzaGVkIiwiRXJyb3IiLCJnZXRBcnRpY2xlU291cmNlIiwibWFya2Rvd24iLCJnZXRMaW5rcyIsInByZXYiLCJuZXh0IiwiZ2V0QXJ0aWNsZVBhdGhzRm9yU2VjdGlvbiIsInBhcmFtcyIsImNhdGVnb3J5SWQiLCJnZXRBcnRpY2xlUGF0aHNGb3JDYXRlZ29yeSIsImdldENhdGVnb3J5UGF0aHMiLCJyZXN1bHRzIiwicHVzaCIsImdldEFsbFNsdWdzRm9yU2VjdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./utils/content.ts\n"); /***/ }), /***/ "./utils/getSidebarContentList.ts": /*!****************************************!*\ !*** ./utils/getSidebarContentList.ts ***! \****************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getSidebarContentList\": () => (/* binding */ getSidebarContentList)\n/* harmony export */ });\n/* harmony import */ var _content__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./content */ \"./utils/content.ts\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_content__WEBPACK_IMPORTED_MODULE_0__]);\n_content__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\nasync function getSidebarContentList({ sectionId , categoryId , articleId }) {\n const links = [];\n const articles = await (0,_content__WEBPACK_IMPORTED_MODULE_0__.getArticles)();\n for (const section of (await (0,_content__WEBPACK_IMPORTED_MODULE_0__.getSections)())){\n const children = [];\n if (section.id === \"gen\") {\n links.push({\n type: \"article\",\n title: \"API Reference\",\n url: \"/gen\"\n });\n continue;\n }\n // If the article is in the getting-started section\n // ... we place it at the top level of the sidebar\n // ... so let's simplify its URL to reflect that\n const sectionUrl = section.id === \"getting-started\" ? \"\" : `/${section.id}`;\n for (const category of section.categories){\n if (category.id === \"ucg\") {\n continue;\n } else {\n children.push({\n type: \"category\",\n title: category.title,\n url: `${sectionUrl}/${category.id}`,\n children: category.articleIds.map((articleId)=>{\n const article = articles[articleId];\n return {\n type: \"article\",\n title: article.title,\n url: `${sectionUrl}/${category.id}/${articleId}`\n };\n })\n });\n }\n }\n for (const category of section.categories){\n if (category.id === \"ucg\") {\n children.push(...category.articleIds.map((articleId)=>{\n const article = articles[articleId];\n return {\n type: \"article\",\n title: article.title,\n url: `${sectionUrl}/${articleId}`\n };\n }));\n }\n }\n links.push({\n type: \"section\",\n title: section.title,\n url: sectionUrl,\n children\n });\n }\n return {\n sectionId: sectionId ?? null,\n categoryId: categoryId ?? null,\n articleId: articleId ?? null,\n links\n };\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi91dGlscy9nZXRTaWRlYmFyQ29udGVudExpc3QudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDb0Q7QUFFN0MsZUFBZUUsc0JBQXNCLEVBQzNDQyxVQUFTLEVBQ1RDLFdBQVUsRUFDVkMsVUFBUyxFQUtULEVBQStCO0lBQy9CLE1BQU1DLFFBQThCLEVBQUU7SUFFdEMsTUFBTUMsV0FBVyxNQUFNUCxxREFBV0E7SUFFbEMsS0FBSyxNQUFNUSxXQUFXLE9BQU1QLHFEQUFXQSxFQUFDLEVBQUc7UUFDMUMsTUFBTVEsV0FBaUMsRUFBRTtRQUV6QyxJQUFJRCxRQUFRRSxFQUFFLEtBQUssT0FBTztZQUN6QkosTUFBTUssSUFBSSxDQUFDO2dCQUFFQyxNQUFNO2dCQUFXQyxPQUFPO2dCQUFpQkMsS0FBSztZQUFPO1lBQ2xFLFFBQVE7UUFDVCxDQUFDO1FBRUQsbURBQW1EO1FBQ25ELGtEQUFrRDtRQUNsRCxnREFBZ0Q7UUFDaEQsTUFBTUMsYUFBYVAsUUFBUUUsRUFBRSxLQUFLLG9CQUFvQixLQUFLLENBQUMsQ0FBQyxFQUFFRixRQUFRRSxFQUFFLENBQUMsQ0FBQztRQUUzRSxLQUFLLE1BQU1NLFlBQVlSLFFBQVFTLFVBQVUsQ0FBRTtZQUMxQyxJQUFJRCxTQUFTTixFQUFFLEtBQUssT0FBTztnQkFDMUIsUUFBUTtZQUNULE9BQU87Z0JBQ05ELFNBQVNFLElBQUksQ0FBQztvQkFDYkMsTUFBTTtvQkFDTkMsT0FBT0csU0FBU0gsS0FBSztvQkFDckJDLEtBQUssQ0FBQyxFQUFFQyxXQUFXLENBQUMsRUFBRUMsU0FBU04sRUFBRSxDQUFDLENBQUM7b0JBQ25DRCxVQUFVTyxTQUFTRSxVQUFVLENBQUNDLEdBQUcsQ0FBQyxDQUFDZCxZQUFjO3dCQUNoRCxNQUFNZSxVQUFVYixRQUFRLENBQUNGLFVBQVU7d0JBQ25DLE9BQU87NEJBQ05PLE1BQU07NEJBQ05DLE9BQU9PLFFBQVFQLEtBQUs7NEJBQ3BCQyxLQUFLLENBQUMsRUFBRUMsV0FBVyxDQUFDLEVBQUVDLFNBQVNOLEVBQUUsQ0FBQyxDQUFDLEVBQUVMLFVBQVUsQ0FBQzt3QkFDakQ7b0JBQ0Q7Z0JBQ0Q7WUFDRCxDQUFDO1FBQ0Y7UUFFQSxLQUFLLE1BQU1XLFlBQVlSLFFBQVFTLFVBQVUsQ0FBRTtZQUMxQyxJQUFJRCxTQUFTTixFQUFFLEtBQUssT0FBTztnQkFDMUJELFNBQVNFLElBQUksSUFDVEssU0FBU0UsVUFBVSxDQUFDQyxHQUFHLENBQUMsQ0FBQ2QsWUFBYztvQkFDekMsTUFBTWUsVUFBVWIsUUFBUSxDQUFDRixVQUFVO29CQUNuQyxPQUFPO3dCQUNOTyxNQUFNO3dCQUNOQyxPQUFPTyxRQUFRUCxLQUFLO3dCQUNwQkMsS0FBSyxDQUFDLEVBQUVDLFdBQVcsQ0FBQyxFQUFFVixVQUFVLENBQUM7b0JBQ2xDO2dCQUNEO1lBRUYsQ0FBQztRQUNGO1FBRUFDLE1BQU1LLElBQUksQ0FBQztZQUFFQyxNQUFNO1lBQVdDLE9BQU9MLFFBQVFLLEtBQUs7WUFBRUMsS0FBS0M7WUFBWU47UUFBUztJQUMvRTtJQUVBLE9BQU87UUFDTk4sV0FBV0EsYUFBYSxJQUFJO1FBQzVCQyxZQUFZQSxjQUFjLElBQUk7UUFDOUJDLFdBQVdBLGFBQWEsSUFBSTtRQUM1QkM7SUFDRDtBQUNELENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi91dGlscy9nZXRTaWRlYmFyQ29udGVudExpc3QudHM/MjM3NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWRlYmFyQ29udGVudExpbmssIFNpZGViYXJDb250ZW50TGlzdCB9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQtdHlwZXMnXG5pbXBvcnQgeyBnZXRBcnRpY2xlcywgZ2V0U2VjdGlvbnMgfSBmcm9tICcuL2NvbnRlbnQnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTaWRlYmFyQ29udGVudExpc3Qoe1xuXHRzZWN0aW9uSWQsXG5cdGNhdGVnb3J5SWQsXG5cdGFydGljbGVJZCxcbn06IHtcblx0c2VjdGlvbklkPzogc3RyaW5nXG5cdGNhdGVnb3J5SWQ/OiBzdHJpbmdcblx0YXJ0aWNsZUlkPzogc3RyaW5nXG59KTogUHJvbWlzZTxTaWRlYmFyQ29udGVudExpc3Q+IHtcblx0Y29uc3QgbGlua3M6IFNpZGViYXJDb250ZW50TGlua1tdID0gW11cblxuXHRjb25zdCBhcnRpY2xlcyA9IGF3YWl0IGdldEFydGljbGVzKClcblxuXHRmb3IgKGNvbnN0IHNlY3Rpb24gb2YgYXdhaXQgZ2V0U2VjdGlvbnMoKSkge1xuXHRcdGNvbnN0IGNoaWxkcmVuOiBTaWRlYmFyQ29udGVudExpbmtbXSA9IFtdXG5cblx0XHRpZiAoc2VjdGlvbi5pZCA9PT0gJ2dlbicpIHtcblx0XHRcdGxpbmtzLnB1c2goeyB0eXBlOiAnYXJ0aWNsZScsIHRpdGxlOiAnQVBJIFJlZmVyZW5jZScsIHVybDogJy9nZW4nIH0pXG5cdFx0XHRjb250aW51ZVxuXHRcdH1cblxuXHRcdC8vIElmIHRoZSBhcnRpY2xlIGlzIGluIHRoZSBnZXR0aW5nLXN0YXJ0ZWQgc2VjdGlvblxuXHRcdC8vIC4uLiB3ZSBwbGFjZSBpdCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBzaWRlYmFyXG5cdFx0Ly8gLi4uIHNvIGxldCdzIHNpbXBsaWZ5IGl0cyBVUkwgdG8gcmVmbGVjdCB0aGF0XG5cdFx0Y29uc3Qgc2VjdGlvblVybCA9IHNlY3Rpb24uaWQgPT09ICdnZXR0aW5nLXN0YXJ0ZWQnID8gJycgOiBgLyR7c2VjdGlvbi5pZH1gXG5cblx0XHRmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIHNlY3Rpb24uY2F0ZWdvcmllcykge1xuXHRcdFx0aWYgKGNhdGVnb3J5LmlkID09PSAndWNnJykge1xuXHRcdFx0XHRjb250aW51ZVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2hpbGRyZW4ucHVzaCh7XG5cdFx0XHRcdFx0dHlwZTogJ2NhdGVnb3J5Jyxcblx0XHRcdFx0XHR0aXRsZTogY2F0ZWdvcnkudGl0bGUsXG5cdFx0XHRcdFx0dXJsOiBgJHtzZWN0aW9uVXJsfS8ke2NhdGVnb3J5LmlkfWAsXG5cdFx0XHRcdFx0Y2hpbGRyZW46IGNhdGVnb3J5LmFydGljbGVJZHMubWFwKChhcnRpY2xlSWQpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGFydGljbGUgPSBhcnRpY2xlc1thcnRpY2xlSWRdXG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiAnYXJ0aWNsZScgYXMgY29uc3QsXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBhcnRpY2xlLnRpdGxlLFxuXHRcdFx0XHRcdFx0XHR1cmw6IGAke3NlY3Rpb25Vcmx9LyR7Y2F0ZWdvcnkuaWR9LyR7YXJ0aWNsZUlkfWAsXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdH0pXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCBjYXRlZ29yeSBvZiBzZWN0aW9uLmNhdGVnb3JpZXMpIHtcblx0XHRcdGlmIChjYXRlZ29yeS5pZCA9PT0gJ3VjZycpIHtcblx0XHRcdFx0Y2hpbGRyZW4ucHVzaChcblx0XHRcdFx0XHQuLi5jYXRlZ29yeS5hcnRpY2xlSWRzLm1hcCgoYXJ0aWNsZUlkKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBhcnRpY2xlID0gYXJ0aWNsZXNbYXJ0aWNsZUlkXVxuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0dHlwZTogJ2FydGljbGUnIGFzIGNvbnN0LFxuXHRcdFx0XHRcdFx0XHR0aXRsZTogYXJ0aWNsZS50aXRsZSxcblx0XHRcdFx0XHRcdFx0dXJsOiBgJHtzZWN0aW9uVXJsfS8ke2FydGljbGVJZH1gLFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdClcblx0XHRcdH1cblx0XHR9XG5cblx0XHRsaW5rcy5wdXNoKHsgdHlwZTogJ3NlY3Rpb24nLCB0aXRsZTogc2VjdGlvbi50aXRsZSwgdXJsOiBzZWN0aW9uVXJsLCBjaGlsZHJlbiB9KVxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRzZWN0aW9uSWQ6IHNlY3Rpb25JZCA/PyBudWxsLFxuXHRcdGNhdGVnb3J5SWQ6IGNhdGVnb3J5SWQgPz8gbnVsbCxcblx0XHRhcnRpY2xlSWQ6IGFydGljbGVJZCA/PyBudWxsLFxuXHRcdGxpbmtzLFxuXHR9XG59XG4iXSwibmFtZXMiOlsiZ2V0QXJ0aWNsZXMiLCJnZXRTZWN0aW9ucyIsImdldFNpZGViYXJDb250ZW50TGlzdCIsInNlY3Rpb25JZCIsImNhdGVnb3J5SWQiLCJhcnRpY2xlSWQiLCJsaW5rcyIsImFydGljbGVzIiwic2VjdGlvbiIsImNoaWxkcmVuIiwiaWQiLCJwdXNoIiwidHlwZSIsInRpdGxlIiwidXJsIiwic2VjdGlvblVybCIsImNhdGVnb3J5IiwiY2F0ZWdvcmllcyIsImFydGljbGVJZHMiLCJtYXAiLCJhcnRpY2xlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./utils/getSidebarContentList.ts\n"); /***/ }), /***/ "../../node_modules/next/dist/client/add-base-path.js": /*!************************************************************!*\ !*** ../../node_modules/next/dist/client/add-base-path.js ***! \************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addBasePath = addBasePath;\nvar _addPathPrefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"../shared/lib/router/utils/add-path-prefix\");\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"../../node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || \"\";\nfunction addBasePath(path, required) {\n if (false) {}\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash((0, _addPathPrefix).addPathPrefix(path, basePath));\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvYWRkLWJhc2UtcGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxtQkFBbUIsR0FBR0U7QUFDdEIsSUFBSUMsaUJBQWlCQyxtQkFBT0EsQ0FBQyw4RkFBNEM7QUFDekUsSUFBSUMsMEJBQTBCRCxtQkFBT0EsQ0FBQyxtR0FBNEI7QUFDbEUsTUFBTUUsV0FBV0MsTUFBa0MsSUFBSTtBQUN2RCxTQUFTTCxZQUFZUSxJQUFJLEVBQUVDLFFBQVEsRUFBRTtJQUNqQyxJQUFJSixLQUEwQyxFQUFFLEVBSS9DO0lBQ0QsT0FBTyxDQUFDLEdBQUdGLHVCQUF1QixFQUFFUSwwQkFBMEIsQ0FBQyxDQUFDLEdBQUdWLGNBQWMsRUFBRVcsYUFBYSxDQUFDSixNQUFNSjtBQUMzRztBQUVBLElBQUksQ0FBQyxPQUFPTixRQUFRZSxPQUFPLEtBQUssY0FBZSxPQUFPZixRQUFRZSxPQUFPLEtBQUssWUFBWWYsUUFBUWUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPZixRQUFRZSxPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLbEIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRZSxPQUFPLEVBQUUsY0FBYztRQUFFZCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT21CLE1BQU0sQ0FBQ2pCLFFBQVFlLE9BQU8sRUFBRWY7SUFDL0JrQixPQUFPbEIsT0FBTyxHQUFHQSxRQUFRZSxPQUFPO0FBQ2xDLENBQUMsQ0FFRCx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvYWRkLWJhc2UtcGF0aC5qcz9iNzM5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5hZGRCYXNlUGF0aCA9IGFkZEJhc2VQYXRoO1xudmFyIF9hZGRQYXRoUHJlZml4ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeFwiKTtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcbmNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJztcbmZ1bmN0aW9uIGFkZEJhc2VQYXRoKHBhdGgsIHJlcXVpcmVkKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCkge1xuICAgICAgICBpZiAoIXJlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX2FkZFBhdGhQcmVmaXgpLmFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWJhc2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJhZGRCYXNlUGF0aCIsIl9hZGRQYXRoUHJlZml4IiwicmVxdWlyZSIsIl9ub3JtYWxpemVUcmFpbGluZ1NsYXNoIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGgiLCJyZXF1aXJlZCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwiYWRkUGF0aFByZWZpeCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/add-base-path.js\n"); /***/ }), /***/ "../../node_modules/next/dist/client/add-locale.js": /*!*********************************************************!*\ !*** ../../node_modules/next/dist/client/add-locale.js ***! \*********************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addLocale = void 0;\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"../../node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = (path, ...args)=>{\n if (false) {}\n return path;\n};\nexports.addLocale = addLocale;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvYWRkLWxvY2FsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxpQkFBaUIsR0FBRyxLQUFLO0FBQ3pCLElBQUlHLDBCQUEwQkMsbUJBQU9BLENBQUMsbUdBQTRCO0FBQ2xFLE1BQU1GLFlBQVksQ0FBQ0csTUFBTSxHQUFHQyxPQUFPO0lBQy9CLElBQUlDLEtBQStCLEVBQUUsRUFFcEM7SUFDRCxPQUFPRjtBQUNYO0FBQ0FMLGlCQUFpQixHQUFHRTtBQUVwQixJQUFJLENBQUMsT0FBT0YsUUFBUVcsT0FBTyxLQUFLLGNBQWUsT0FBT1gsUUFBUVcsT0FBTyxLQUFLLFlBQVlYLFFBQVFXLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT1gsUUFBUVcsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS2QsT0FBT0MsY0FBYyxDQUFDQyxRQUFRVyxPQUFPLEVBQUUsY0FBYztRQUFFVixPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT2UsTUFBTSxDQUFDYixRQUFRVyxPQUFPLEVBQUVYO0lBQy9CYyxPQUFPZCxPQUFPLEdBQUdBLFFBQVFXLE9BQU87QUFDbEMsQ0FBQyxDQUVELHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtbG9jYWxlLmpzPzViYWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmFkZExvY2FsZSA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcbmNvbnN0IGFkZExvY2FsZSA9IChwYXRoLCAuLi5hcmdzKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUnKS5hZGRMb2NhbGUocGF0aCwgLi4uYXJncykpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn07XG5leHBvcnRzLmFkZExvY2FsZSA9IGFkZExvY2FsZTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJhZGRMb2NhbGUiLCJfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCIsInJlcXVpcmUiLCJwYXRoIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/add-locale.js\n"); /***/ }), /***/ "../../node_modules/next/dist/client/get-domain-locale.js": /*!****************************************************************!*\ !*** ../../node_modules/next/dist/client/get-domain-locale.js ***! \****************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nconst basePath = false || \"\";\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZ2V0LWRvbWFpbi1sb2NhbGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsdUJBQXVCLEdBQUdFO0FBQzFCLE1BQU1DLFdBQVdDLE1BQWtDLElBQUk7QUFDdkQsU0FBU0YsZ0JBQWdCSyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxhQUFhLEVBQUU7SUFDM0QsSUFBSU4sS0FBK0IsRUFBRSxFQVdwQyxNQUFNO1FBQ0gsT0FBTyxLQUFLO0lBQ2hCLENBQUM7QUFDTDtBQUVBLElBQUksQ0FBQyxPQUFPSixRQUFRdUIsT0FBTyxLQUFLLGNBQWUsT0FBT3ZCLFFBQVF1QixPQUFPLEtBQUssWUFBWXZCLFFBQVF1QixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU92QixRQUFRdUIsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNySzFCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUXVCLE9BQU8sRUFBRSxjQUFjO1FBQUV0QixPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBTzJCLE1BQU0sQ0FBQ3pCLFFBQVF1QixPQUFPLEVBQUV2QjtJQUMvQjBCLE9BQU8xQixPQUFPLEdBQUdBLFFBQVF1QixPQUFPO0FBQ2xDLENBQUMsQ0FFRCw2Q0FBNkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZ2V0LWRvbWFpbi1sb2NhbGUuanM/MGQwNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZ2V0RG9tYWluTG9jYWxlID0gZ2V0RG9tYWluTG9jYWxlO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gZ2V0RG9tYWluTG9jYWxlKHBhdGgsIGxvY2FsZSwgbG9jYWxlcywgZG9tYWluTG9jYWxlcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZUxvY2FsZVBhdGggPSByZXF1aXJlKCcuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCcpLm5vcm1hbGl6ZUxvY2FsZVBhdGg7XG4gICAgICAgIGNvbnN0IGRldGVjdERvbWFpbkxvY2FsZSA9IHJlcXVpcmUoJy4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnKS5kZXRlY3REb21haW5Mb2NhbGU7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGxvY2FsZSB8fCBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGgsIGxvY2FsZXMpLmRldGVjdGVkTG9jYWxlO1xuICAgICAgICBjb25zdCBkb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUoZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCB0YXJnZXQpO1xuICAgICAgICBpZiAoZG9tYWluKSB7XG4gICAgICAgICAgICBjb25zdCBwcm90byA9IGBodHRwJHtkb21haW4uaHR0cCA/ICcnIDogJ3MnfTovL2A7XG4gICAgICAgICAgICBjb25zdCBmaW5hbExvY2FsZSA9IHRhcmdldCA9PT0gZG9tYWluLmRlZmF1bHRMb2NhbGUgPyAnJyA6IGAvJHt0YXJnZXR9YDtcbiAgICAgICAgICAgIHJldHVybiBgJHtwcm90b30ke2RvbWFpbi5kb21haW59JHtiYXNlUGF0aH0ke2ZpbmFsTG9jYWxlfSR7cGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtZG9tYWluLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXREb21haW5Mb2NhbGUiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsImxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJyZXF1aXJlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwidGFyZ2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJkb21haW4iLCJ1bmRlZmluZWQiLCJwcm90byIsImh0dHAiLCJmaW5hbExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/get-domain-locale.js\n"); /***/ }), /***/ "../../node_modules/next/dist/client/link.js": /*!***************************************************!*\ !*** ../../node_modules/next/dist/client/link.js ***! \***************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\n\"use client\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"../../node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _object_without_properties_loose = (__webpack_require__(/*! @swc/helpers/lib/_object_without_properties_loose.js */ \"../../node_modules/@swc/helpers/lib/_object_without_properties_loose.js\")[\"default\"]);\nvar _react = _interop_require_default(__webpack_require__(/*! react */ \"react\"));\nvar _resolveHref = __webpack_require__(/*! ../shared/lib/router/utils/resolve-href */ \"../shared/lib/router/utils/resolve-href\");\nvar _isLocalUrl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"../shared/lib/router/utils/is-local-url\");\nvar _formatUrl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"../shared/lib/router/utils/format-url\");\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"../shared/lib/utils\");\nvar _addLocale = __webpack_require__(/*! ./add-locale */ \"../../node_modules/next/dist/client/add-locale.js\");\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"../shared/lib/router-context\");\nvar _appRouterContext = __webpack_require__(/*! ../shared/lib/app-router-context */ \"../shared/lib/app-router-context\");\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"../../node_modules/next/dist/client/use-intersection.js\");\nvar _getDomainLocale = __webpack_require__(/*! ./get-domain-locale */ \"../../node_modules/next/dist/client/get-domain-locale.js\");\nvar _addBasePath = __webpack_require__(/*! ./add-base-path */ \"../../node_modules/next/dist/client/add-base-path.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options, isAppRouter) {\n if (true) {\n return;\n }\n // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n if (!isAppRouter && !(0, _isLocalUrl).isLocalURL(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== \"undefined\" ? options.locale : \"locale\" in router ? router.locale : undefined;\n const prefetchedKey = href + \"%\" + as + \"%\" + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n Promise.resolve(router.prefetch(href, as, options)).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute(\"target\");\n return target && target !== \"_self\" || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === \"A\";\n if (isAnchorNodeName && (isModifiedEvent(e) || // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n !isAppRouter && !(0, _isLocalUrl).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n if (\"beforePopState\" in router) {\n router[replace ? \"replace\" : \"push\"](href, as, {\n shallow,\n locale,\n scroll\n });\n } else {\n router[replace ? \"replace\" : \"push\"](as || href, {\n forceOptimisticNavigation: !prefetchEnabled\n });\n }\n };\n if (isAppRouter) {\n // @ts-expect-error startTransition exists.\n _react.default.startTransition(navigate);\n } else {\n navigate();\n }\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === \"string\") {\n return urlObjOrString;\n }\n return (0, _formatUrl).formatUrl(urlObjOrString);\n}\n/**\n * React Component that enables client-side transitions between routes.\n */ const Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) {\n if (true) {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.` + ( false ? 0 : \"\"));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === \"href\") {\n if (props[key] == null || typeof props[key] !== \"string\" && typeof props[key] !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: props[key] === null ? \"null\" : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === \"as\") {\n if (props[key] && valType !== \"string\" && valType !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: valType\n });\n }\n } else if (key === \"locale\") {\n if (props[key] && valType !== \"string\") {\n throw createPropError({\n key,\n expected: \"`string`\",\n actual: valType\n });\n }\n } else if (key === \"onClick\" || key === \"onMouseEnter\" || key === \"onTouchStart\") {\n if (props[key] && valType !== \"function\") {\n throw createPropError({\n key,\n expected: \"`function`\",\n actual: valType\n });\n }\n } else if (key === \"replace\" || key === \"scroll\" || key === \"shallow\" || key === \"passHref\" || key === \"prefetch\" || key === \"legacyBehavior\") {\n if (props[key] != null && valType !== \"boolean\") {\n throw createPropError({\n key,\n expected: \"`boolean`\",\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn(\"Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated\");\n }\n }\n let children;\n const { href: hrefProp , as: asProp , children: childrenProp , prefetch: prefetchProp , passHref , replace , shallow , scroll , locale , onClick , onMouseEnter: onMouseEnterProp , onTouchStart: onTouchStartProp , legacyBehavior =true === false } = props, restProps = _object_without_properties_loose(props, [\n \"href\",\n \"as\",\n \"children\",\n \"prefetch\",\n \"passHref\",\n \"replace\",\n \"shallow\",\n \"scroll\",\n \"locale\",\n \"onClick\",\n \"onMouseEnter\",\n \"onTouchStart\",\n \"legacyBehavior\"\n ]);\n children = childrenProp;\n if (legacyBehavior && (typeof children === \"string\" || typeof children === \"number\")) {\n children = /*#__PURE__*/ _react.default.createElement(\"a\", null, children);\n }\n const prefetchEnabled = prefetchProp !== false;\n const pagesRouter = _react.default.useContext(_routerContext.RouterContext);\n const appRouter = _react.default.useContext(_appRouterContext.AppRouterContext);\n const router = pagesRouter != null ? pagesRouter : appRouter;\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n if (true) {\n if (isAppRouter && !asProp) {\n let href;\n if (typeof hrefProp === \"string\") {\n href = hrefProp;\n } else if (typeof hrefProp === \"object\" && typeof hrefProp.pathname === \"string\") {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split(\"/\").some((segment)=>segment.startsWith(\"[\") && segment.endsWith(\"]\"));\n if (hasDynamicSegment) {\n throw new Error(`Dynamic href \\`${href}\\` found in while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`);\n }\n }\n }\n }\n const { href , as } = _react.default.useMemo(()=>{\n if (!pagesRouter) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolveHref).resolveHref(pagesRouter, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolveHref).resolveHref(pagesRouter, asProp) : resolvedAs || resolvedHref\n };\n }, [\n pagesRouter,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn(`\"onClick\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`);\n }\n if (onMouseEnterProp) {\n console.warn(`\"onMouseEnter\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`);\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(`No children were passed to with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`);\n }\n throw new Error(`Multiple children were passed to with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + ( false ? 0 : \"\"));\n }\n } else {}\n } else {\n if (true) {\n var ref;\n if (((ref = children) == null ? void 0 : ref.type) === \"a\") {\n throw new Error(\"Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor\");\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === \"object\" && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useIntersection).useIntersection({\n rootMargin: \"200px\"\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === \"function\") childRef(el);\n else if (typeof childRef === \"object\") {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect(()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n }, isAppRouter);\n }, [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n pagesRouter == null ? void 0 : pagesRouter.locale,\n router,\n isAppRouter\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw new Error(`Component rendered inside next/link has to pass click event to \"onClick\" prop.`);\n }\n }\n if (!legacyBehavior && typeof onClick === \"function\") {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === \"function\") {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === \"function\") {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === \"function\") {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, isAppRouter);\n },\n onTouchStart (e) {\n if (!legacyBehavior && typeof onTouchStartProp === \"function\") {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === \"function\") {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, isAppRouter);\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils).isAbsoluteUrl(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === \"a\" && !(\"href\" in child.props)) {\n const curLocale = typeof locale !== \"undefined\" ? locale : pagesRouter == null ? void 0 : pagesRouter.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (pagesRouter == null ? void 0 : pagesRouter.isLocaleDomain) && (0, _getDomainLocale).getDomainLocale(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.locales, pagesRouter == null ? void 0 : pagesRouter.domainLocales);\n childProps.href = localeDomain || (0, _addBasePath).addBasePath((0, _addLocale).addLocale(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ _react.default.createElement(\"a\", Object.assign({}, restProps, childProps), children);\n});\nvar _default = Link;\nexports[\"default\"] = _default;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbGluay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFDYTtBQURiO0FBRUFBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtCQUFlLEdBQUcsS0FBSztBQUN2QixJQUFJRywyQkFBMkJDLHVKQUErRDtBQUM5RixJQUFJQyxtQ0FBbUNELHVLQUF1RTtBQUM5RyxJQUFJRSxTQUFTSCx5QkFBeUJDLG1CQUFPQSxDQUFDLG9CQUFPO0FBQ3JELElBQUlHLGVBQWVILG1CQUFPQSxDQUFDLHdGQUF5QztBQUNwRSxJQUFJSSxjQUFjSixtQkFBT0EsQ0FBQyx3RkFBeUM7QUFDbkUsSUFBSUssYUFBYUwsbUJBQU9BLENBQUMsb0ZBQXVDO0FBQ2hFLElBQUlNLFNBQVNOLG1CQUFPQSxDQUFDLGdEQUFxQjtBQUMxQyxJQUFJTyxhQUFhUCxtQkFBT0EsQ0FBQyx1RUFBYztBQUN2QyxJQUFJUSxpQkFBaUJSLG1CQUFPQSxDQUFDLGtFQUE4QjtBQUMzRCxJQUFJUyxvQkFBb0JULG1CQUFPQSxDQUFDLDBFQUFrQztBQUNsRSxJQUFJVSxtQkFBbUJWLG1CQUFPQSxDQUFDLG1GQUFvQjtBQUNuRCxJQUFJVyxtQkFBbUJYLG1CQUFPQSxDQUFDLHFGQUFxQjtBQUNwRCxJQUFJWSxlQUFlWixtQkFBT0EsQ0FBQyw2RUFBaUI7QUFFNUMsTUFBTWEsYUFBYSxJQUFJQztBQUN2QixTQUFTQyxTQUFTQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsRUFBRSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsRUFBRTtJQUN0RCxJQUFJLElBQWtCLEVBQWE7UUFDL0I7SUFDSixDQUFDO0lBQ0QsZ0pBQWdKO0lBQ2hKLElBQUksQ0FBQ0EsZUFBZSxDQUFDLENBQUMsR0FBR2hCLFdBQVcsRUFBRWlCLFVBQVUsQ0FBQ0osT0FBTztRQUNwRDtJQUNKLENBQUM7SUFDRCw0RUFBNEU7SUFDNUUsWUFBWTtJQUNaLElBQUksQ0FBQ0UsUUFBUUcscUJBQXFCLEVBQUU7UUFDaEMsTUFBTUMsU0FDTixPQUFPSixRQUFRSSxNQUFNLEtBQUssY0FBY0osUUFBUUksTUFBTSxHQUFHLFlBQVlQLFNBQVNBLE9BQU9PLE1BQU0sR0FBR0MsU0FBUztRQUN2RyxNQUFNQyxnQkFBZ0JSLE9BQU8sTUFBTUMsS0FBSyxNQUFNSztRQUM5QyxrRUFBa0U7UUFDbEUsSUFBSVYsV0FBV2EsR0FBRyxDQUFDRCxnQkFBZ0I7WUFDL0I7UUFDSixDQUFDO1FBQ0QsK0JBQStCO1FBQy9CWixXQUFXYyxHQUFHLENBQUNGO0lBQ25CLENBQUM7SUFDRCx1REFBdUQ7SUFDdkQsMERBQTBEO0lBQzFELHNEQUFzRDtJQUN0RCx5REFBeUQ7SUFDekRHLFFBQVFDLE9BQU8sQ0FBQ2IsT0FBT0QsUUFBUSxDQUFDRSxNQUFNQyxJQUFJQyxVQUFVVyxLQUFLLENBQUMsQ0FBQ0MsTUFBTTtRQUM3RCxJQUFJQyxJQUF5QixFQUFjO1lBQ3ZDLHFDQUFxQztZQUNyQyxNQUFNRCxJQUFJO1FBQ2QsQ0FBQztJQUNMO0FBQ0o7QUFDQSxTQUFTRSxnQkFBZ0JDLEtBQUssRUFBRTtJQUM1QixNQUFNQyxjQUFjRCxNQUFNRSxhQUFhO0lBQ3ZDLE1BQU1DLFNBQVNGLFlBQVlHLFlBQVksQ0FBQztJQUN4QyxPQUFPRCxVQUFVQSxXQUFXLFdBQVdILE1BQU1LLE9BQU8sSUFBSUwsTUFBTU0sT0FBTyxJQUFJTixNQUFNTyxRQUFRLElBQUlQLE1BQU1RLE1BQU0sSUFBSVIsTUFBTVMsV0FBVyxJQUFJVCxNQUFNUyxXQUFXLENBQUNDLEtBQUssS0FBSztBQUNoSztBQUNBLFNBQVNDLFlBQVlDLENBQUMsRUFBRTlCLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxFQUFFLEVBQUU2QixPQUFPLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFMUIsTUFBTSxFQUFFSCxXQUFXLEVBQUU4QixlQUFlLEVBQUU7SUFDdEcsTUFBTSxFQUFFQyxTQUFRLEVBQUcsR0FBR0wsRUFBRVYsYUFBYTtJQUNyQyxrREFBa0Q7SUFDbEQsTUFBTWdCLG1CQUFtQkQsU0FBU0UsV0FBVyxPQUFPO0lBQ3BELElBQUlELG9CQUFxQm5CLENBQUFBLGdCQUFnQmEsTUFBTSxnSkFBZ0o7SUFDOUwsQ0FBQzFCLGVBQWUsQ0FBQyxDQUFDLEdBQUdoQixXQUFXLEVBQUVpQixVQUFVLENBQUNKLEtBQUssR0FBSTtRQUNuRCw4Q0FBOEM7UUFDOUM7SUFDSixDQUFDO0lBQ0Q2QixFQUFFUSxjQUFjO0lBQ2hCLE1BQU1DLFdBQVcsSUFBSTtRQUNqQix3RUFBd0U7UUFDeEUsSUFBSSxvQkFBb0J2QyxRQUFRO1lBQzVCQSxNQUFNLENBQUMrQixVQUFVLFlBQVksTUFBTSxDQUFDLENBQUM5QixNQUFNQyxJQUFJO2dCQUMzQzhCO2dCQUNBekI7Z0JBQ0EwQjtZQUNKO1FBQ0osT0FBTztZQUNIakMsTUFBTSxDQUFDK0IsVUFBVSxZQUFZLE1BQU0sQ0FBQyxDQUFDN0IsTUFBTUQsTUFBTTtnQkFDN0N1QywyQkFBMkIsQ0FBQ047WUFDaEM7UUFDSixDQUFDO0lBQ0w7SUFDQSxJQUFJOUIsYUFBYTtRQUNiLDJDQUEyQztRQUMzQ2xCLE9BQU9KLE9BQU8sQ0FBQzJELGVBQWUsQ0FBQ0Y7SUFDbkMsT0FBTztRQUNIQTtJQUNKLENBQUM7QUFDTDtBQUNBLFNBQVNHLGtCQUFrQkMsY0FBYyxFQUFFO0lBQ3ZDLElBQUksT0FBT0EsbUJBQW1CLFVBQVU7UUFDcEMsT0FBT0E7SUFDWCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUd0RCxVQUFVLEVBQUV1RCxTQUFTLENBQUNEO0FBQ3JDO0FBQ0E7O0NBRUMsR0FBRyxNQUFNRSxPQUFPLFdBQVcsR0FBRzNELE9BQU9KLE9BQU8sQ0FBQ2dFLFVBQVUsQ0FBQyxTQUFTQyxjQUFjQyxLQUFLLEVBQUVDLFlBQVksRUFBRTtJQUNqRyxJQUFJakMsSUFBeUIsRUFBYztRQUN2QyxTQUFTa0MsZ0JBQWdCQyxJQUFJLEVBQUU7WUFDM0IsT0FBTyxJQUFJQyxNQUFNLENBQUMsNkJBQTZCLEVBQUVELEtBQUtFLEdBQUcsQ0FBQyxhQUFhLEVBQUVGLEtBQUtHLFFBQVEsQ0FBQywwQkFBMEIsRUFBRUgsS0FBS0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFJLE9BQWtCLEdBQWMsQ0FBa0UsR0FBRyxFQUFFO1FBQzFQO1FBQ0Esc0NBQXNDO1FBQ3RDLE1BQU1DLHFCQUFxQjtZQUN2QnZELE1BQU0sSUFBSTtRQUNkO1FBQ0EsTUFBTXdELGdCQUFnQi9FLE9BQU9nRixJQUFJLENBQUNGO1FBQ2xDQyxjQUFjRSxPQUFPLENBQUMsQ0FBQ04sTUFBTTtZQUN6QixJQUFJQSxRQUFRLFFBQVE7Z0JBQ2hCLElBQUlMLEtBQUssQ0FBQ0ssSUFBSSxJQUFJLElBQUksSUFBSSxPQUFPTCxLQUFLLENBQUNLLElBQUksS0FBSyxZQUFZLE9BQU9MLEtBQUssQ0FBQ0ssSUFBSSxLQUFLLFVBQVU7b0JBQ3hGLE1BQU1ILGdCQUFnQjt3QkFDbEJHO3dCQUNBQyxVQUFVO3dCQUNWQyxRQUFRUCxLQUFLLENBQUNLLElBQUksS0FBSyxJQUFJLEdBQUcsU0FBUyxPQUFPTCxLQUFLLENBQUNLLElBQUk7b0JBQzVELEdBQUc7Z0JBQ1AsQ0FBQztZQUNMLE9BQU87Z0JBQ0gsc0NBQXNDO2dCQUN0Qyw2REFBNkQ7Z0JBQzdELE1BQU1PLElBQUlQO1lBQ2QsQ0FBQztRQUNMO1FBQ0Esc0NBQXNDO1FBQ3RDLE1BQU1RLHFCQUFxQjtZQUN2QjNELElBQUksSUFBSTtZQUNSNkIsU0FBUyxJQUFJO1lBQ2JFLFFBQVEsSUFBSTtZQUNaRCxTQUFTLElBQUk7WUFDYjhCLFVBQVUsSUFBSTtZQUNkL0QsVUFBVSxJQUFJO1lBQ2RRLFFBQVEsSUFBSTtZQUNad0QsU0FBUyxJQUFJO1lBQ2JDLGNBQWMsSUFBSTtZQUNsQkMsY0FBYyxJQUFJO1lBQ2xCQyxnQkFBZ0IsSUFBSTtRQUN4QjtRQUNBLE1BQU1DLGdCQUFnQnpGLE9BQU9nRixJQUFJLENBQUNHO1FBQ2xDTSxjQUFjUixPQUFPLENBQUMsQ0FBQ04sTUFBTTtZQUN6QixNQUFNZSxVQUFVLE9BQU9wQixLQUFLLENBQUNLLElBQUk7WUFDakMsSUFBSUEsUUFBUSxNQUFNO2dCQUNkLElBQUlMLEtBQUssQ0FBQ0ssSUFBSSxJQUFJZSxZQUFZLFlBQVlBLFlBQVksVUFBVTtvQkFDNUQsTUFBTWxCLGdCQUFnQjt3QkFDbEJHO3dCQUNBQyxVQUFVO3dCQUNWQyxRQUFRYTtvQkFDWixHQUFHO2dCQUNQLENBQUM7WUFDTCxPQUFPLElBQUlmLFFBQVEsVUFBVTtnQkFDekIsSUFBSUwsS0FBSyxDQUFDSyxJQUFJLElBQUllLFlBQVksVUFBVTtvQkFDcEMsTUFBTWxCLGdCQUFnQjt3QkFDbEJHO3dCQUNBQyxVQUFVO3dCQUNWQyxRQUFRYTtvQkFDWixHQUFHO2dCQUNQLENBQUM7WUFDTCxPQUFPLElBQUlmLFFBQVEsYUFBYUEsUUFBUSxrQkFBa0JBLFFBQVEsZ0JBQWdCO2dCQUM5RSxJQUFJTCxLQUFLLENBQUNLLElBQUksSUFBSWUsWUFBWSxZQUFZO29CQUN0QyxNQUFNbEIsZ0JBQWdCO3dCQUNsQkc7d0JBQ0FDLFVBQVU7d0JBQ1ZDLFFBQVFhO29CQUNaLEdBQUc7Z0JBQ1AsQ0FBQztZQUNMLE9BQU8sSUFBSWYsUUFBUSxhQUFhQSxRQUFRLFlBQVlBLFFBQVEsYUFBYUEsUUFBUSxjQUFjQSxRQUFRLGNBQWNBLFFBQVEsa0JBQWtCO2dCQUMzSSxJQUFJTCxLQUFLLENBQUNLLElBQUksSUFBSSxJQUFJLElBQUllLFlBQVksV0FBVztvQkFDN0MsTUFBTWxCLGdCQUFnQjt3QkFDbEJHO3dCQUNBQyxVQUFVO3dCQUNWQyxRQUFRYTtvQkFDWixHQUFHO2dCQUNQLENBQUM7WUFDTCxPQUFPO2dCQUNILHNDQUFzQztnQkFDdEMsNkRBQTZEO2dCQUM3RCxNQUFNUixJQUFJUDtZQUNkLENBQUM7UUFDTDtRQUNBLDRGQUE0RjtRQUM1RixzREFBc0Q7UUFDdEQsTUFBTWdCLFlBQVluRixPQUFPSixPQUFPLENBQUN3RixNQUFNLENBQUMsS0FBSztRQUM3QyxJQUFJdEIsTUFBTWpELFFBQVEsSUFBSSxDQUFDc0UsVUFBVUUsT0FBTyxFQUFFO1lBQ3RDRixVQUFVRSxPQUFPLEdBQUcsSUFBSTtZQUN4QkMsUUFBUUMsSUFBSSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSUM7SUFDSixNQUFNLEVBQUV6RSxNQUFNMEUsU0FBUSxFQUFHekUsSUFBSTBFLE9BQU0sRUFBR0YsVUFBVUcsYUFBWSxFQUFHOUUsVUFBVStFLGFBQVksRUFBR2hCLFNBQVEsRUFBRy9CLFFBQU8sRUFBR0MsUUFBTyxFQUFHQyxPQUFNLEVBQUcxQixPQUFNLEVBQUd3RCxRQUFPLEVBQUdDLGNBQWNlLGlCQUFnQixFQUFHZCxjQUFjZSxpQkFBZ0IsRUFDbE5kLGdCQUFnQmxELElBQW9DLEtBQUssS0FBSyxHQUFHLEdBQUdnQyxPQUFPbUMsWUFBWWxHLGlDQUFpQytELE9BQU87UUFDM0g7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDSDtJQUNEMEIsV0FBV0c7SUFDWCxJQUFJWCxrQkFBbUIsUUFBT1EsYUFBYSxZQUFZLE9BQU9BLGFBQWEsUUFBTyxHQUFJO1FBQ2xGQSxXQUFXLFdBQVcsR0FBR3hGLE9BQU9KLE9BQU8sQ0FBQ3NHLGFBQWEsQ0FBQyxLQUFLLElBQUksRUFBRVY7SUFDckUsQ0FBQztJQUNELE1BQU14QyxrQkFBa0I0QyxpQkFBaUIsS0FBSztJQUM5QyxNQUFNTyxjQUFjbkcsT0FBT0osT0FBTyxDQUFDd0csVUFBVSxDQUFDOUYsZUFBZStGLGFBQWE7SUFDMUUsTUFBTUMsWUFBWXRHLE9BQU9KLE9BQU8sQ0FBQ3dHLFVBQVUsQ0FBQzdGLGtCQUFrQmdHLGdCQUFnQjtJQUM5RSxNQUFNekYsU0FBU3FGLGVBQWUsSUFBSSxHQUFHQSxjQUFjRyxTQUFTO0lBQzVELDBEQUEwRDtJQUMxRCxNQUFNcEYsY0FBYyxDQUFDaUY7SUFDckIsSUFBSXJFLElBQXlCLEVBQWM7UUFDdkMsSUFBSVosZUFBZSxDQUFDd0UsUUFBUTtZQUN4QixJQUFJM0U7WUFDSixJQUFJLE9BQU8wRSxhQUFhLFVBQVU7Z0JBQzlCMUUsT0FBTzBFO1lBQ1gsT0FBTyxJQUFJLE9BQU9BLGFBQWEsWUFBWSxPQUFPQSxTQUFTZSxRQUFRLEtBQUssVUFBVTtnQkFDOUV6RixPQUFPMEUsU0FBU2UsUUFBUTtZQUM1QixDQUFDO1lBQ0QsSUFBSXpGLE1BQU07Z0JBQ04sTUFBTTBGLG9CQUFvQjFGLEtBQUsyRixLQUFLLENBQUMsS0FBS0MsSUFBSSxDQUFDLENBQUNDLFVBQVVBLFFBQVFDLFVBQVUsQ0FBQyxRQUFRRCxRQUFRRSxRQUFRLENBQUM7Z0JBQ3RHLElBQUlMLG1CQUFtQjtvQkFDbkIsTUFBTSxJQUFJdkMsTUFBTSxDQUFDLGVBQWUsRUFBRW5ELEtBQUssMklBQTJJLENBQUMsRUFBRTtnQkFDekwsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sRUFBRUEsS0FBSSxFQUFHQyxHQUFFLEVBQUcsR0FBR2hCLE9BQU9KLE9BQU8sQ0FBQ21ILE9BQU8sQ0FBQyxJQUFJO1FBQzlDLElBQUksQ0FBQ1osYUFBYTtZQUNkLE1BQU1hLGVBQWV4RCxrQkFBa0JpQztZQUN2QyxPQUFPO2dCQUNIMUUsTUFBTWlHO2dCQUNOaEcsSUFBSTBFLFNBQVNsQyxrQkFBa0JrQyxVQUFVc0IsWUFBWTtZQUN6RDtRQUNKLENBQUM7UUFDRCxNQUFNLENBQUNBLGNBQWNDLFdBQVcsR0FBRyxDQUFDLEdBQUdoSCxZQUFZLEVBQUVpSCxXQUFXLENBQUNmLGFBQWFWLFVBQVUsSUFBSTtRQUM1RixPQUFPO1lBQ0gxRSxNQUFNaUc7WUFDTmhHLElBQUkwRSxTQUFTLENBQUMsR0FBR3pGLFlBQVksRUFBRWlILFdBQVcsQ0FBQ2YsYUFBYVQsVUFBVXVCLGNBQWNELFlBQVk7UUFDaEc7SUFDSixHQUFHO1FBQ0NiO1FBQ0FWO1FBQ0FDO0tBQ0g7SUFDRCxNQUFNeUIsZUFBZW5ILE9BQU9KLE9BQU8sQ0FBQ3dGLE1BQU0sQ0FBQ3JFO0lBQzNDLE1BQU1xRyxhQUFhcEgsT0FBT0osT0FBTyxDQUFDd0YsTUFBTSxDQUFDcEU7SUFDekMsb0ZBQW9GO0lBQ3BGLElBQUlxRztJQUNKLElBQUlyQyxnQkFBZ0I7UUFDaEIsSUFBSWxELElBQXlCLEVBQWU7WUFDeEMsSUFBSStDLFNBQVM7Z0JBQ1RTLFFBQVFDLElBQUksQ0FBQyxDQUFDLGtEQUFrRCxFQUFFRSxTQUFTLHNHQUFzRyxDQUFDO1lBQ3RMLENBQUM7WUFDRCxJQUFJSSxrQkFBa0I7Z0JBQ2xCUCxRQUFRQyxJQUFJLENBQUMsQ0FBQyx1REFBdUQsRUFBRUUsU0FBUywyR0FBMkcsQ0FBQztZQUNoTSxDQUFDO1lBQ0QsSUFBSTtnQkFDQTRCLFFBQVFySCxPQUFPSixPQUFPLENBQUMwSCxRQUFRLENBQUNDLElBQUksQ0FBQy9CO1lBQ3pDLEVBQUUsT0FBTzNELEtBQUs7Z0JBQ1YsSUFBSSxDQUFDMkQsVUFBVTtvQkFDWCxNQUFNLElBQUl0QixNQUFNLENBQUMscURBQXFELEVBQUV1QixTQUFTLDhFQUE4RSxDQUFDLEVBQUU7Z0JBQ3RLLENBQUM7Z0JBQ0QsTUFBTSxJQUFJdkIsTUFBTSxDQUFDLDJEQUEyRCxFQUFFdUIsU0FBUywwRkFBMEYsQ0FBQyxHQUFJLE9BQWtCLEdBQWMsQ0FBbUUsR0FBRyxFQUFFLEdBQUc7WUFDclM7UUFDSixPQUFPLEVBRU47SUFDTCxPQUFPO1FBQ0gsSUFBSTNELElBQXlCLEVBQWU7WUFDeEMsSUFBSTBGO1lBQ0osSUFBSSxDQUFDLENBQUNBLE1BQU1oQyxRQUFPLEtBQU0sSUFBSSxHQUFHLEtBQUssSUFBSWdDLElBQUlDLElBQUksTUFBTSxLQUFLO2dCQUN4RCxNQUFNLElBQUl2RCxNQUFNLG1LQUFtSztZQUN2TCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNd0QsV0FBVzFDLGlCQUFpQnFDLFNBQVMsT0FBT0EsVUFBVSxZQUFZQSxNQUFNRyxHQUFHLEdBQUd6RCxZQUFZO0lBQ2hHLE1BQU0sQ0FBQzRELG9CQUFvQkMsV0FBV0MsYUFBYSxHQUFHLENBQUMsR0FBR3JILGdCQUFnQixFQUFFc0gsZUFBZSxDQUFDO1FBQ3hGQyxZQUFZO0lBQ2hCO0lBQ0EsTUFBTUMsU0FBU2hJLE9BQU9KLE9BQU8sQ0FBQ3FJLFdBQVcsQ0FBQyxDQUFDQyxLQUFLO1FBQzVDLDRFQUE0RTtRQUM1RSxJQUFJZCxXQUFXL0IsT0FBTyxLQUFLckUsTUFBTW1HLGFBQWE5QixPQUFPLEtBQUt0RSxNQUFNO1lBQzVEOEc7WUFDQVQsV0FBVy9CLE9BQU8sR0FBR3JFO1lBQ3JCbUcsYUFBYTlCLE9BQU8sR0FBR3RFO1FBQzNCLENBQUM7UUFDRDRHLG1CQUFtQk87UUFDbkIsSUFBSVIsVUFBVTtZQUNWLElBQUksT0FBT0EsYUFBYSxZQUFZQSxTQUFTUTtpQkFDeEMsSUFBSSxPQUFPUixhQUFhLFVBQVU7Z0JBQ25DQSxTQUFTckMsT0FBTyxHQUFHNkM7WUFDdkIsQ0FBQztRQUNMLENBQUM7SUFDTCxHQUFHO1FBQ0NsSDtRQUNBMEc7UUFDQTNHO1FBQ0E4RztRQUNBRjtLQUNIO0lBQ0QsMkRBQTJEO0lBQzNEM0gsT0FBT0osT0FBTyxDQUFDdUksU0FBUyxDQUFDLElBQUk7UUFDekIsZ0hBQWdIO1FBQ2hILElBQUlyRyxJQUF5QixFQUFjO1lBQ3ZDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQ2hCLFFBQVE7WUFDVDtRQUNKLENBQUM7UUFDRCwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDOEcsYUFBYSxDQUFDNUUsaUJBQWlCO1lBQ2hDO1FBQ0osQ0FBQztRQUNELG9CQUFvQjtRQUNwQm5DLFNBQVNDLFFBQVFDLE1BQU1DLElBQUk7WUFDdkJLO1FBQ0osR0FBR0g7SUFDUCxHQUFHO1FBQ0NGO1FBQ0FEO1FBQ0E2RztRQUNBdkc7UUFDQTJCO1FBQ0FtRCxlQUFlLElBQUksR0FBRyxLQUFLLElBQUlBLFlBQVk5RSxNQUFNO1FBQ2pEUDtRQUNBSTtLQUNIO0lBQ0QsTUFBTWtILGFBQWE7UUFDZlosS0FBS1E7UUFDTG5ELFNBQVNqQyxDQUFDLEVBQUU7WUFDUixJQUFJZCxJQUF5QixFQUFjO2dCQUN2QyxJQUFJLENBQUNjLEdBQUc7b0JBQ0osTUFBTSxJQUFJc0IsTUFBTSxDQUFDLDhFQUE4RSxDQUFDLEVBQUU7Z0JBQ3RHLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxDQUFDYyxrQkFBa0IsT0FBT0gsWUFBWSxZQUFZO2dCQUNsREEsUUFBUWpDO1lBQ1osQ0FBQztZQUNELElBQUlvQyxrQkFBa0JxQyxNQUFNdkQsS0FBSyxJQUFJLE9BQU91RCxNQUFNdkQsS0FBSyxDQUFDZSxPQUFPLEtBQUssWUFBWTtnQkFDNUV3QyxNQUFNdkQsS0FBSyxDQUFDZSxPQUFPLENBQUNqQztZQUN4QixDQUFDO1lBQ0QsSUFBSSxDQUFDOUIsUUFBUTtnQkFDVDtZQUNKLENBQUM7WUFDRCxJQUFJOEIsRUFBRXlGLGdCQUFnQixFQUFFO2dCQUNwQjtZQUNKLENBQUM7WUFDRDFGLFlBQVlDLEdBQUc5QixRQUFRQyxNQUFNQyxJQUFJNkIsU0FBU0MsU0FBU0MsUUFBUTFCLFFBQVFILGFBQWE4QjtRQUNwRjtRQUNBOEIsY0FBY2xDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQ29DLGtCQUFrQixPQUFPYSxxQkFBcUIsWUFBWTtnQkFDM0RBLGlCQUFpQmpEO1lBQ3JCLENBQUM7WUFDRCxJQUFJb0Msa0JBQWtCcUMsTUFBTXZELEtBQUssSUFBSSxPQUFPdUQsTUFBTXZELEtBQUssQ0FBQ2dCLFlBQVksS0FBSyxZQUFZO2dCQUNqRnVDLE1BQU12RCxLQUFLLENBQUNnQixZQUFZLENBQUNsQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxDQUFDOUIsUUFBUTtnQkFDVDtZQUNKLENBQUM7WUFDRCxJQUFJLENBQUNrQyxtQkFBbUI5QixhQUFhO2dCQUNqQztZQUNKLENBQUM7WUFDREwsU0FBU0MsUUFBUUMsTUFBTUMsSUFBSTtnQkFDdkJLO2dCQUNBaUgsVUFBVSxJQUFJO2dCQUNkLGdHQUFnRztnQkFDaEdsSCx1QkFBdUIsSUFBSTtZQUMvQixHQUFHRjtRQUNQO1FBQ0E2RCxjQUFjbkMsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDb0Msa0JBQWtCLE9BQU9jLHFCQUFxQixZQUFZO2dCQUMzREEsaUJBQWlCbEQ7WUFDckIsQ0FBQztZQUNELElBQUlvQyxrQkFBa0JxQyxNQUFNdkQsS0FBSyxJQUFJLE9BQU91RCxNQUFNdkQsS0FBSyxDQUFDaUIsWUFBWSxLQUFLLFlBQVk7Z0JBQ2pGc0MsTUFBTXZELEtBQUssQ0FBQ2lCLFlBQVksQ0FBQ25DO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUM5QixRQUFRO2dCQUNUO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQ2tDLG1CQUFtQjlCLGFBQWE7Z0JBQ2pDO1lBQ0osQ0FBQztZQUNETCxTQUFTQyxRQUFRQyxNQUFNQyxJQUFJO2dCQUN2Qks7Z0JBQ0FpSCxVQUFVLElBQUk7Z0JBQ2QsZ0dBQWdHO2dCQUNoR2xILHVCQUF1QixJQUFJO1lBQy9CLEdBQUdGO1FBQ1A7SUFDSjtJQUNBLDZGQUE2RjtJQUM3Rix3RkFBd0Y7SUFDeEYsb0ZBQW9GO0lBQ3BGLElBQUksQ0FBQyxHQUFHZCxNQUFNLEVBQUVtSSxhQUFhLENBQUN2SCxLQUFLO1FBQy9Cb0gsV0FBV3JILElBQUksR0FBR0M7SUFDdEIsT0FBTyxJQUFJLENBQUNnRSxrQkFBa0JKLFlBQVl5QyxNQUFNSSxJQUFJLEtBQUssT0FBTyxDQUFFLFdBQVVKLE1BQU12RCxLQUFLLEdBQUc7UUFDdEYsTUFBTTBFLFlBQVksT0FBT25ILFdBQVcsY0FBY0EsU0FBUzhFLGVBQWUsSUFBSSxHQUFHLEtBQUssSUFBSUEsWUFBWTlFLE1BQU07UUFDNUcsdUVBQXVFO1FBQ3ZFLHVFQUF1RTtRQUN2RSxNQUFNb0gsZUFBZSxDQUFDdEMsZUFBZSxJQUFJLEdBQUcsS0FBSyxJQUFJQSxZQUFZdUMsY0FBYyxLQUFLLENBQUMsR0FBR2pJLGdCQUFnQixFQUFFa0ksZUFBZSxDQUFDM0gsSUFBSXdILFdBQVdyQyxlQUFlLElBQUksR0FBRyxLQUFLLElBQUlBLFlBQVl5QyxPQUFPLEVBQUV6QyxlQUFlLElBQUksR0FBRyxLQUFLLElBQUlBLFlBQVkwQyxhQUFhO1FBQ3JQVCxXQUFXckgsSUFBSSxHQUFHMEgsZ0JBQWdCLENBQUMsR0FBRy9ILFlBQVksRUFBRW9JLFdBQVcsQ0FBQyxDQUFDLEdBQUd6SSxVQUFVLEVBQUUwSSxTQUFTLENBQUMvSCxJQUFJd0gsV0FBV3JDLGVBQWUsSUFBSSxHQUFHLEtBQUssSUFBSUEsWUFBWTZDLGFBQWE7SUFDckssQ0FBQztJQUNELE9BQU9oRSxpQkFBaUIsV0FBVyxHQUFHaEYsT0FBT0osT0FBTyxDQUFDcUosWUFBWSxDQUFDNUIsT0FBT2UsY0FBYyxXQUFXLEdBQUdwSSxPQUFPSixPQUFPLENBQUNzRyxhQUFhLENBQUMsS0FBSzFHLE9BQU8wSixNQUFNLENBQUMsQ0FBQyxHQUFHakQsV0FBV21DLGFBQWE1QyxTQUFTO0FBQzlMO0FBQ0EsSUFBSTJELFdBQVd4RjtBQUNmakUsa0JBQWUsR0FBR3lKO0FBRWxCLElBQUksQ0FBQyxPQUFPekosUUFBUUUsT0FBTyxLQUFLLGNBQWUsT0FBT0YsUUFBUUUsT0FBTyxLQUFLLFlBQVlGLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT0YsUUFBUUUsT0FBTyxDQUFDd0osVUFBVSxLQUFLLGFBQWE7SUFDcks1SixPQUFPQyxjQUFjLENBQUNDLFFBQVFFLE9BQU8sRUFBRSxjQUFjO1FBQUVELE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPMEosTUFBTSxDQUFDeEosUUFBUUUsT0FBTyxFQUFFRjtJQUMvQjJKLE9BQU8zSixPQUFPLEdBQUdBLFFBQVFFLE9BQU87QUFDbEMsQ0FBQyxDQUVELGdDQUFnQyIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2MxNDciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbnZhciBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZSA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlLmpzXCIpLmRlZmF1bHQ7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3Jlc29sdmVIcmVmID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3Jlc29sdmUtaHJlZlwiKTtcbnZhciBfaXNMb2NhbFVybCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1sb2NhbC11cmxcIik7XG52YXIgX2Zvcm1hdFVybCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsXCIpO1xudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xudmFyIF9hZGRMb2NhbGUgPSByZXF1aXJlKFwiLi9hZGQtbG9jYWxlXCIpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX2FwcFJvdXRlckNvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHRcIik7XG52YXIgX3VzZUludGVyc2VjdGlvbiA9IHJlcXVpcmUoXCIuL3VzZS1pbnRlcnNlY3Rpb25cIik7XG52YXIgX2dldERvbWFpbkxvY2FsZSA9IHJlcXVpcmUoXCIuL2dldC1kb21haW4tbG9jYWxlXCIpO1xudmFyIF9hZGRCYXNlUGF0aCA9IHJlcXVpcmUoXCIuL2FkZC1iYXNlLXBhdGhcIik7XG5cbmNvbnN0IHByZWZldGNoZWQgPSBuZXcgU2V0KCk7XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zLCBpc0FwcFJvdXRlcikge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGFwcC1yb3V0ZXIgc3VwcG9ydHMgZXh0ZXJuYWwgdXJscyBvdXQgb2YgdGhlIGJveCBzbyBpdCBzaG91bGRuJ3Qgc2hvcnQtY2lyY3VpdCBoZXJlIGFzIHN1cHBvcnQgZm9yIGUuZy4gYHJlcGxhY2VgIGlzIGFkZGVkIGluIHRoZSBhcHAtcm91dGVyLlxuICAgIGlmICghaXNBcHBSb3V0ZXIgJiYgISgwLCBfaXNMb2NhbFVybCkuaXNMb2NhbFVSTChocmVmKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFdlIHNob3VsZCBvbmx5IGRlZHVwZSByZXF1ZXN0cyB3aGVuIGV4cGVyaW1lbnRhbC5vcHRpbWlzdGljQ2xpZW50Q2FjaGUgaXNcbiAgICAvLyBkaXNhYmxlZC5cbiAgICBpZiAoIW9wdGlvbnMuYnlwYXNzUHJlZmV0Y2hlZENoZWNrKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IC8vIExldCB0aGUgbGluaydzIGxvY2FsZSBwcm9wIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHJvdXRlciBsb2NhbGUuXG4gICAgICAgIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6ICdsb2NhbGUnIGluIHJvdXRlciA/IHJvdXRlci5sb2NhbGUgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHByZWZldGNoZWRLZXkgPSBocmVmICsgJyUnICsgYXMgKyAnJScgKyBsb2NhbGU7XG4gICAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZmV0Y2hlZCB0aGUga2V5LCB0aGVuIGRvbid0IHByZWZldGNoIGl0IGFnYWluIVxuICAgICAgICBpZiAocHJlZmV0Y2hlZC5oYXMocHJlZmV0Y2hlZEtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBNYXJrIHRoaXMgVVJMIGFzIHByZWZldGNoZWQuXG4gICAgICAgIHByZWZldGNoZWQuYWRkKHByZWZldGNoZWRLZXkpO1xuICAgIH1cbiAgICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgYSBwcmVmZXRjaCBlcnJvciBoZXJlIHNpbmNlIHdlIG1heSBiZVxuICAgIC8vIGxvYWRpbmcgd2l0aCBwcmlvcml0eSB3aGljaCBjYW4gcmVqZWN0IGJ1dCB3ZSBkb24ndFxuICAgIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICAgIFByb21pc2UucmVzb2x2ZShyb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpKS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgLy8gcmV0aHJvdyB0byBzaG93IGludmFsaWQgVVJMIGVycm9yc1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKTtcbiAgICByZXR1cm4gdGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJyB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyO1xufVxuZnVuY3Rpb24gbGlua0NsaWNrZWQoZSwgcm91dGVyLCBocmVmLCBhcywgcmVwbGFjZSwgc2hhbGxvdywgc2Nyb2xsLCBsb2NhbGUsIGlzQXBwUm91dGVyLCBwcmVmZXRjaEVuYWJsZWQpIHtcbiAgICBjb25zdCB7IG5vZGVOYW1lICB9ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgIC8vIGFuY2hvcnMgaW5zaWRlIGFuIHN2ZyBoYXZlIGEgbG93ZXJjYXNlIG5vZGVOYW1lXG4gICAgY29uc3QgaXNBbmNob3JOb2RlTmFtZSA9IG5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdBJztcbiAgICBpZiAoaXNBbmNob3JOb2RlTmFtZSAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8IC8vIGFwcC1yb3V0ZXIgc3VwcG9ydHMgZXh0ZXJuYWwgdXJscyBvdXQgb2YgdGhlIGJveCBzbyBpdCBzaG91bGRuJ3Qgc2hvcnQtY2lyY3VpdCBoZXJlIGFzIHN1cHBvcnQgZm9yIGUuZy4gYHJlcGxhY2VgIGlzIGFkZGVkIGluIHRoZSBhcHAtcm91dGVyLlxuICAgICghaXNBcHBSb3V0ZXIgJiYgISgwLCBfaXNMb2NhbFVybCkuaXNMb2NhbFVSTChocmVmKSkpKSB7XG4gICAgICAgIC8vIGlnbm9yZSBjbGljayBmb3IgYnJvd3NlcuKAmXMgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBuYXZpZ2F0ZSA9ICgpPT57XG4gICAgICAgIC8vIElmIHRoZSByb3V0ZXIgaXMgYW4gTmV4dFJvdXRlciBpbnN0YW5jZSBpdCB3aWxsIGhhdmUgYGJlZm9yZVBvcFN0YXRlYFxuICAgICAgICBpZiAoJ2JlZm9yZVBvcFN0YXRlJyBpbiByb3V0ZXIpIHtcbiAgICAgICAgICAgIHJvdXRlcltyZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnXShocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIHNoYWxsb3csXG4gICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIHNjcm9sbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3V0ZXJbcmVwbGFjZSA/ICdyZXBsYWNlJyA6ICdwdXNoJ10oYXMgfHwgaHJlZiwge1xuICAgICAgICAgICAgICAgIGZvcmNlT3B0aW1pc3RpY05hdmlnYXRpb246ICFwcmVmZXRjaEVuYWJsZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBpZiAoaXNBcHBSb3V0ZXIpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBzdGFydFRyYW5zaXRpb24gZXhpc3RzLlxuICAgICAgICBfcmVhY3QuZGVmYXVsdC5zdGFydFRyYW5zaXRpb24obmF2aWdhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5hdmlnYXRlKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gZm9ybWF0U3RyaW5nT3JVcmwodXJsT2JqT3JTdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHVybE9iak9yU3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdXJsT2JqT3JTdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiAoMCwgX2Zvcm1hdFVybCkuZm9ybWF0VXJsKHVybE9iak9yU3RyaW5nKTtcbn1cbi8qKlxuICogUmVhY3QgQ29tcG9uZW50IHRoYXQgZW5hYmxlcyBjbGllbnQtc2lkZSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHJvdXRlcy5cbiAqLyBjb25zdCBMaW5rID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIExpbmtDb21wb25lbnQocHJvcHMsIGZvcndhcmRlZFJlZikge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVByb3BFcnJvcihhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKGBGYWlsZWQgcHJvcCB0eXBlOiBUaGUgcHJvcCBcXGAke2FyZ3Mua2V5fVxcYCBleHBlY3RzIGEgJHthcmdzLmV4cGVjdGVkfSBpbiBcXGA8TGluaz5cXGAsIGJ1dCBnb3QgXFxgJHthcmdzLmFjdHVhbH1cXGAgaW5zdGVhZC5gICsgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gXCJcXG5PcGVuIHlvdXIgYnJvd3NlcidzIGNvbnNvbGUgdG8gdmlldyB0aGUgQ29tcG9uZW50IHN0YWNrIHRyYWNlLlwiIDogJycpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICBjb25zdCByZXF1aXJlZFByb3BzR3VhcmQgPSB7XG4gICAgICAgICAgICBocmVmOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHMgPSBPYmplY3Qua2V5cyhyZXF1aXJlZFByb3BzR3VhcmQpO1xuICAgICAgICByZXF1aXJlZFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdocmVmJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldID09IG51bGwgfHwgdHlwZW9mIHByb3BzW2tleV0gIT09ICdzdHJpbmcnICYmIHR5cGVvZiBwcm9wc1trZXldICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHByb3BzW2tleV0gPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcHJvcHNba2V5XVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICBjb25zdCBvcHRpb25hbFByb3BzR3VhcmQgPSB7XG4gICAgICAgICAgICBhczogdHJ1ZSxcbiAgICAgICAgICAgIHJlcGxhY2U6IHRydWUsXG4gICAgICAgICAgICBzY3JvbGw6IHRydWUsXG4gICAgICAgICAgICBzaGFsbG93OiB0cnVlLFxuICAgICAgICAgICAgcGFzc0hyZWY6IHRydWUsXG4gICAgICAgICAgICBwcmVmZXRjaDogdHJ1ZSxcbiAgICAgICAgICAgIGxvY2FsZTogdHJ1ZSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IHRydWUsXG4gICAgICAgICAgICBvbk1vdXNlRW50ZXI6IHRydWUsXG4gICAgICAgICAgICBvblRvdWNoU3RhcnQ6IHRydWUsXG4gICAgICAgICAgICBsZWdhY3lCZWhhdmlvcjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvcHRpb25hbFByb3BzID0gT2JqZWN0LmtleXMob3B0aW9uYWxQcm9wc0d1YXJkKTtcbiAgICAgICAgb3B0aW9uYWxQcm9wcy5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICBjb25zdCB2YWxUeXBlID0gdHlwZW9mIHByb3BzW2tleV07XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnYXMnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycgJiYgdmFsVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbG9jYWxlJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ29uQ2xpY2snIHx8IGtleSA9PT0gJ29uTW91c2VFbnRlcicgfHwga2V5ID09PSAnb25Ub3VjaFN0YXJ0Jykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGZ1bmN0aW9uYCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdyZXBsYWNlJyB8fCBrZXkgPT09ICdzY3JvbGwnIHx8IGtleSA9PT0gJ3NoYWxsb3cnIHx8IGtleSA9PT0gJ3Bhc3NIcmVmJyB8fCBrZXkgPT09ICdwcmVmZXRjaCcgfHwga2V5ID09PSAnbGVnYWN5QmVoYXZpb3InKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBjaGlsZHJlbjtcbiAgICBjb25zdCB7IGhyZWY6IGhyZWZQcm9wICwgYXM6IGFzUHJvcCAsIGNoaWxkcmVuOiBjaGlsZHJlblByb3AgLCBwcmVmZXRjaDogcHJlZmV0Y2hQcm9wICwgcGFzc0hyZWYgLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAsIG9uQ2xpY2sgLCBvbk1vdXNlRW50ZXI6IG9uTW91c2VFbnRlclByb3AgLCBvblRvdWNoU3RhcnQ6IG9uVG91Y2hTdGFydFByb3AgLCAvLyBAdHMtZXhwZWN0LWVycm9yIHRoaXMgaXMgaW5saW5lZCBhcyBhIGxpdGVyYWwgYm9vbGVhbiBub3QgYSBzdHJpbmdcbiAgICBsZWdhY3lCZWhhdmlvciA9cHJvY2Vzcy5lbnYuX19ORVhUX05FV19MSU5LX0JFSEFWSU9SID09PSBmYWxzZSAgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZShwcm9wcywgW1xuICAgICAgICBcImhyZWZcIixcbiAgICAgICAgXCJhc1wiLFxuICAgICAgICBcImNoaWxkcmVuXCIsXG4gICAgICAgIFwicHJlZmV0Y2hcIixcbiAgICAgICAgXCJwYXNzSHJlZlwiLFxuICAgICAgICBcInJlcGxhY2VcIixcbiAgICAgICAgXCJzaGFsbG93XCIsXG4gICAgICAgIFwic2Nyb2xsXCIsXG4gICAgICAgIFwibG9jYWxlXCIsXG4gICAgICAgIFwib25DbGlja1wiLFxuICAgICAgICBcIm9uTW91c2VFbnRlclwiLFxuICAgICAgICBcIm9uVG91Y2hTdGFydFwiLFxuICAgICAgICBcImxlZ2FjeUJlaGF2aW9yXCJcbiAgICBdKTtcbiAgICBjaGlsZHJlbiA9IGNoaWxkcmVuUHJvcDtcbiAgICBpZiAobGVnYWN5QmVoYXZpb3IgJiYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNoaWxkcmVuID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgY2hpbGRyZW4gPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIG51bGwsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZmV0Y2hFbmFibGVkID0gcHJlZmV0Y2hQcm9wICE9PSBmYWxzZTtcbiAgICBjb25zdCBwYWdlc1JvdXRlciA9IF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCk7XG4gICAgY29uc3QgYXBwUm91dGVyID0gX3JlYWN0LmRlZmF1bHQudXNlQ29udGV4dChfYXBwUm91dGVyQ29udGV4dC5BcHBSb3V0ZXJDb250ZXh0KTtcbiAgICBjb25zdCByb3V0ZXIgPSBwYWdlc1JvdXRlciAhPSBudWxsID8gcGFnZXNSb3V0ZXIgOiBhcHBSb3V0ZXI7XG4gICAgLy8gV2UncmUgaW4gdGhlIGFwcCBkaXJlY3RvcnkgaWYgdGhlcmUgaXMgbm8gcGFnZXMgcm91dGVyLlxuICAgIGNvbnN0IGlzQXBwUm91dGVyID0gIXBhZ2VzUm91dGVyO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChpc0FwcFJvdXRlciAmJiAhYXNQcm9wKSB7XG4gICAgICAgICAgICBsZXQgaHJlZjtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaHJlZlByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaHJlZiA9IGhyZWZQcm9wO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaHJlZlByb3AgPT09ICdvYmplY3QnICYmIHR5cGVvZiBocmVmUHJvcC5wYXRobmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBocmVmID0gaHJlZlByb3AucGF0aG5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaHJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0R5bmFtaWNTZWdtZW50ID0gaHJlZi5zcGxpdCgnLycpLnNvbWUoKHNlZ21lbnQpPT5zZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50LmVuZHNXaXRoKCddJykpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNEeW5hbWljU2VnbWVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER5bmFtaWMgaHJlZiBcXGAke2hyZWZ9XFxgIGZvdW5kIGluIDxMaW5rPiB3aGlsZSB1c2luZyB0aGUgXFxgL2FwcFxcYCByb3V0ZXIsIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9hcHAtZGlyLWR5bmFtaWMtaHJlZmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgaWYgKCFwYWdlc1JvdXRlcikge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRIcmVmID0gZm9ybWF0U3RyaW5nT3JVcmwoaHJlZlByb3ApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBocmVmOiByZXNvbHZlZEhyZWYsXG4gICAgICAgICAgICAgICAgYXM6IGFzUHJvcCA/IGZvcm1hdFN0cmluZ09yVXJsKGFzUHJvcCkgOiByZXNvbHZlZEhyZWZcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3Jlc29sdmVIcmVmKS5yZXNvbHZlSHJlZihwYWdlc1JvdXRlciwgaHJlZlByb3AsIHRydWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgYXM6IGFzUHJvcCA/ICgwLCBfcmVzb2x2ZUhyZWYpLnJlc29sdmVIcmVmKHBhZ2VzUm91dGVyLCBhc1Byb3ApIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWZcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHBhZ2VzUm91dGVyLFxuICAgICAgICBocmVmUHJvcCxcbiAgICAgICAgYXNQcm9wXG4gICAgXSk7XG4gICAgY29uc3QgcHJldmlvdXNIcmVmID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGhyZWYpO1xuICAgIGNvbnN0IHByZXZpb3VzQXMgPSBfcmVhY3QuZGVmYXVsdC51c2VSZWYoYXMpO1xuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAobGVnYWN5QmVoYXZpb3IpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAob25DbGljaykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgXCJvbkNsaWNrXCIgd2FzIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBcImxlZ2FjeUJlaGF2aW9yXCIgd2FzIHNldC4gVGhlIGxlZ2FjeSBiZWhhdmlvciByZXF1aXJlcyBvbkNsaWNrIGJlIHNldCBvbiB0aGUgY2hpbGQgb2YgbmV4dC9saW5rYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob25Nb3VzZUVudGVyUHJvcCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgXCJvbk1vdXNlRW50ZXJcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uTW91c2VFbnRlciBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IG9uZSBjaGlsZCBpcyByZXF1aXJlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW5vLWNoaWxkcmVuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTXVsdGlwbGUgY2hpbGRyZW4gd2VyZSBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICsgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgaWYgKCgocmVmID0gY2hpbGRyZW4pID09IG51bGwgPyB2b2lkIDAgOiByZWYudHlwZSkgPT09ICdhJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCA8TGluaz4gd2l0aCA8YT4gY2hpbGQuIFBsZWFzZSByZW1vdmUgPGE+IG9yIHVzZSA8TGluayBsZWdhY3lCZWhhdmlvcj4uXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1uZXctbGluay13aXRoLWV4dHJhLWFuY2hvcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNoaWxkUmVmID0gbGVnYWN5QmVoYXZpb3IgPyBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZiA6IGZvcndhcmRlZFJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGUsIHJlc2V0VmlzaWJsZV0gPSAoMCwgX3VzZUludGVyc2VjdGlvbikudXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzIwMHB4J1xuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgLy8gQmVmb3JlIHRoZSBsaW5rIGdldHRpbmcgb2JzZXJ2ZWQsIGNoZWNrIGlmIHZpc2libGUgc3RhdGUgbmVlZCB0byBiZSByZXNldFxuICAgICAgICBpZiAocHJldmlvdXNBcy5jdXJyZW50ICE9PSBhcyB8fCBwcmV2aW91c0hyZWYuY3VycmVudCAhPT0gaHJlZikge1xuICAgICAgICAgICAgcmVzZXRWaXNpYmxlKCk7XG4gICAgICAgICAgICBwcmV2aW91c0FzLmN1cnJlbnQgPSBhcztcbiAgICAgICAgICAgIHByZXZpb3VzSHJlZi5jdXJyZW50ID0gaHJlZjtcbiAgICAgICAgfVxuICAgICAgICBzZXRJbnRlcnNlY3Rpb25SZWYoZWwpO1xuICAgICAgICBpZiAoY2hpbGRSZWYpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRSZWYgPT09ICdmdW5jdGlvbicpIGNoaWxkUmVmKGVsKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBjaGlsZFJlZi5jdXJyZW50ID0gZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGFzLFxuICAgICAgICBjaGlsZFJlZixcbiAgICAgICAgaHJlZixcbiAgICAgICAgcmVzZXRWaXNpYmxlLFxuICAgICAgICBzZXRJbnRlcnNlY3Rpb25SZWZcbiAgICBdKTtcbiAgICAvLyBQcmVmZXRjaCB0aGUgVVJMIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBhbmQgaXQncyB2aXNpYmxlLlxuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAvLyBpbiBkZXYsIHdlIG9ubHkgcHJlZmV0Y2ggb24gaG92ZXIgdG8gYXZvaWQgd2FzdGluZyByZXNvdXJjZXMgYXMgdGhlIHByZWZldGNoIHdpbGwgdHJpZ2dlciBjb21waWxpbmcgdGhlIHBhZ2UuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB3ZSBkb24ndCBuZWVkIHRvIHByZWZldGNoIHRoZSBVUkwsIGRvbid0IGRvIHByZWZldGNoLlxuICAgICAgICBpZiAoIWlzVmlzaWJsZSB8fCAhcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJlZmV0Y2ggdGhlIFVSTC5cbiAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgIH0sIGlzQXBwUm91dGVyKTtcbiAgICB9LCBbXG4gICAgICAgIGFzLFxuICAgICAgICBocmVmLFxuICAgICAgICBpc1Zpc2libGUsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcHJlZmV0Y2hFbmFibGVkLFxuICAgICAgICBwYWdlc1JvdXRlciA9PSBudWxsID8gdm9pZCAwIDogcGFnZXNSb3V0ZXIubG9jYWxlLFxuICAgICAgICByb3V0ZXIsXG4gICAgICAgIGlzQXBwUm91dGVyLCBcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljayAoZSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgcmVuZGVyZWQgaW5zaWRlIG5leHQvbGluayBoYXMgdG8gcGFzcyBjbGljayBldmVudCB0byBcIm9uQ2xpY2tcIiBwcm9wLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZ2FjeUJlaGF2aW9yICYmIGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25DbGljayhlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlLCBpc0FwcFJvdXRlciwgcHJlZmV0Y2hFbmFibGVkKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25Nb3VzZUVudGVyIChlKSB7XG4gICAgICAgICAgICBpZiAoIWxlZ2FjeUJlaGF2aW9yICYmIHR5cGVvZiBvbk1vdXNlRW50ZXJQcm9wID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyUHJvcChlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZWdhY3lCZWhhdmlvciAmJiBjaGlsZC5wcm9wcyAmJiB0eXBlb2YgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXByZWZldGNoRW5hYmxlZCAmJiBpc0FwcFJvdXRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgLy8gQHNlZSB7aHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Rpc2N1c3Npb25zLzQwMjY4P3NvcnQ9dG9wI2Rpc2N1c3Npb25jb21tZW50LTM1NzI2NDJ9XG4gICAgICAgICAgICAgICAgYnlwYXNzUHJlZmV0Y2hlZENoZWNrOiB0cnVlXG4gICAgICAgICAgICB9LCBpc0FwcFJvdXRlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG9uVG91Y2hTdGFydCAoZSkge1xuICAgICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Ub3VjaFN0YXJ0UHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9uVG91Y2hTdGFydFByb3AoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVnYWN5QmVoYXZpb3IgJiYgY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydChlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFwcmVmZXRjaEVuYWJsZWQgJiYgaXNBcHBSb3V0ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlLFxuICAgICAgICAgICAgICAgIC8vIEBzZWUge2h0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9kaXNjdXNzaW9ucy80MDI2OD9zb3J0PXRvcCNkaXNjdXNzaW9uY29tbWVudC0zNTcyNjQyfVxuICAgICAgICAgICAgICAgIGJ5cGFzc1ByZWZldGNoZWRDaGVjazogdHJ1ZVxuICAgICAgICAgICAgfSwgaXNBcHBSb3V0ZXIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBJZiBjaGlsZCBpcyBhbiA8YT4gdGFnIGFuZCBkb2Vzbid0IGhhdmUgYSBocmVmIGF0dHJpYnV0ZSwgb3IgaWYgdGhlICdwYXNzSHJlZicgcHJvcGVydHkgaXNcbiAgICAvLyBkZWZpbmVkLCB3ZSBzcGVjaWZ5IHRoZSBjdXJyZW50ICdocmVmJywgc28gdGhhdCByZXBldGl0aW9uIGlzIG5vdCBuZWVkZWQgYnkgdGhlIHVzZXIuXG4gICAgLy8gSWYgdGhlIHVybCBpcyBhYnNvbHV0ZSwgd2UgY2FuIGJ5cGFzcyB0aGUgbG9naWMgdG8gcHJlcGVuZCB0aGUgZG9tYWluIGFuZCBsb2NhbGUuXG4gICAgaWYgKCgwLCBfdXRpbHMpLmlzQWJzb2x1dGVVcmwoYXMpKSB7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGFzO1xuICAgIH0gZWxzZSBpZiAoIWxlZ2FjeUJlaGF2aW9yIHx8IHBhc3NIcmVmIHx8IGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpIHtcbiAgICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBsb2NhbGUgOiBwYWdlc1JvdXRlciA9PSBudWxsID8gdm9pZCAwIDogcGFnZXNSb3V0ZXIubG9jYWxlO1xuICAgICAgICAvLyB3ZSBvbmx5IHJlbmRlciBkb21haW4gbG9jYWxlcyBpZiB3ZSBhcmUgY3VycmVudGx5IG9uIGEgZG9tYWluIGxvY2FsZVxuICAgICAgICAvLyBzbyB0aGF0IGxvY2FsZSBsaW5rcyBhcmUgc3RpbGwgdmlzaXRhYmxlIGluIGRldmVsb3BtZW50L3ByZXZpZXcgZW52c1xuICAgICAgICBjb25zdCBsb2NhbGVEb21haW4gPSAocGFnZXNSb3V0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhZ2VzUm91dGVyLmlzTG9jYWxlRG9tYWluKSAmJiAoMCwgX2dldERvbWFpbkxvY2FsZSkuZ2V0RG9tYWluTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHBhZ2VzUm91dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYWdlc1JvdXRlci5sb2NhbGVzLCBwYWdlc1JvdXRlciA9PSBudWxsID8gdm9pZCAwIDogcGFnZXNSb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX2FkZEJhc2VQYXRoKS5hZGRCYXNlUGF0aCgoMCwgX2FkZExvY2FsZSkuYWRkTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHBhZ2VzUm91dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYWdlc1JvdXRlci5kZWZhdWx0TG9jYWxlKSk7XG4gICAgfVxuICAgIHJldHVybiBsZWdhY3lCZWhhdmlvciA/IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdFByb3BzLCBjaGlsZFByb3BzKSwgY2hpbGRyZW4pO1xufSk7XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsInJlcXVpcmUiLCJfb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZSIsIl9yZWFjdCIsIl9yZXNvbHZlSHJlZiIsIl9pc0xvY2FsVXJsIiwiX2Zvcm1hdFVybCIsIl91dGlscyIsIl9hZGRMb2NhbGUiLCJfcm91dGVyQ29udGV4dCIsIl9hcHBSb3V0ZXJDb250ZXh0IiwiX3VzZUludGVyc2VjdGlvbiIsIl9nZXREb21haW5Mb2NhbGUiLCJfYWRkQmFzZVBhdGgiLCJwcmVmZXRjaGVkIiwiU2V0IiwicHJlZmV0Y2giLCJyb3V0ZXIiLCJocmVmIiwiYXMiLCJvcHRpb25zIiwiaXNBcHBSb3V0ZXIiLCJpc0xvY2FsVVJMIiwiYnlwYXNzUHJlZmV0Y2hlZENoZWNrIiwibG9jYWxlIiwidW5kZWZpbmVkIiwicHJlZmV0Y2hlZEtleSIsImhhcyIsImFkZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2F0Y2giLCJlcnIiLCJwcm9jZXNzIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJldmVudFRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJ0YXJnZXQiLCJnZXRBdHRyaWJ1dGUiLCJtZXRhS2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiYWx0S2V5IiwibmF0aXZlRXZlbnQiLCJ3aGljaCIsImxpbmtDbGlja2VkIiwiZSIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwicHJlZmV0Y2hFbmFibGVkIiwibm9kZU5hbWUiLCJpc0FuY2hvck5vZGVOYW1lIiwidG9VcHBlckNhc2UiLCJwcmV2ZW50RGVmYXVsdCIsIm5hdmlnYXRlIiwiZm9yY2VPcHRpbWlzdGljTmF2aWdhdGlvbiIsInN0YXJ0VHJhbnNpdGlvbiIsImZvcm1hdFN0cmluZ09yVXJsIiwidXJsT2JqT3JTdHJpbmciLCJmb3JtYXRVcmwiLCJMaW5rIiwiZm9yd2FyZFJlZiIsIkxpbmtDb21wb25lbnQiLCJwcm9wcyIsImZvcndhcmRlZFJlZiIsImNyZWF0ZVByb3BFcnJvciIsImFyZ3MiLCJFcnJvciIsImtleSIsImV4cGVjdGVkIiwiYWN0dWFsIiwicmVxdWlyZWRQcm9wc0d1YXJkIiwicmVxdWlyZWRQcm9wcyIsImtleXMiLCJmb3JFYWNoIiwiXyIsIm9wdGlvbmFsUHJvcHNHdWFyZCIsInBhc3NIcmVmIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uVG91Y2hTdGFydCIsImxlZ2FjeUJlaGF2aW9yIiwib3B0aW9uYWxQcm9wcyIsInZhbFR5cGUiLCJoYXNXYXJuZWQiLCJ1c2VSZWYiLCJjdXJyZW50IiwiY29uc29sZSIsIndhcm4iLCJjaGlsZHJlbiIsImhyZWZQcm9wIiwiYXNQcm9wIiwiY2hpbGRyZW5Qcm9wIiwicHJlZmV0Y2hQcm9wIiwib25Nb3VzZUVudGVyUHJvcCIsIm9uVG91Y2hTdGFydFByb3AiLCJlbnYiLCJfX05FWFRfTkVXX0xJTktfQkVIQVZJT1IiLCJyZXN0UHJvcHMiLCJjcmVhdGVFbGVtZW50IiwicGFnZXNSb3V0ZXIiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFwcFJvdXRlciIsIkFwcFJvdXRlckNvbnRleHQiLCJwYXRobmFtZSIsImhhc0R5bmFtaWNTZWdtZW50Iiwic3BsaXQiLCJzb21lIiwic2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJwcmV2aW91c0hyZWYiLCJwcmV2aW91c0FzIiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJyZWYiLCJ0eXBlIiwiY2hpbGRSZWYiLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJyZXNldFZpc2libGUiLCJ1c2VJbnRlcnNlY3Rpb24iLCJyb290TWFyZ2luIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsInVzZUVmZmVjdCIsImNoaWxkUHJvcHMiLCJkZWZhdWx0UHJldmVudGVkIiwicHJpb3JpdHkiLCJpc0Fic29sdXRlVXJsIiwiY3VyTG9jYWxlIiwibG9jYWxlRG9tYWluIiwiaXNMb2NhbGVEb21haW4iLCJnZXREb21haW5Mb2NhbGUiLCJsb2NhbGVzIiwiZG9tYWluTG9jYWxlcyIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImNsb25lRWxlbWVudCIsImFzc2lnbiIsIl9kZWZhdWx0IiwiX19lc01vZHVsZSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/link.js\n"); /***/ }), /***/ "../../node_modules/next/dist/client/normalize-trailing-slash.js": /*!***********************************************************************!*\ !*** ../../node_modules/next/dist/client/normalize-trailing-slash.js ***! \***********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathTrailingSlash = void 0;\nvar _removeTrailingSlash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"../shared/lib/router/utils/remove-trailing-slash\");\nvar _parsePath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"../shared/lib/router/utils/parse-path\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith(\"/\") || undefined) {\n return path;\n }\n const { pathname , query , hash } = (0, _parsePath).parsePath(path);\n if (false) {}\n return `${(0, _removeTrailingSlash).removeTrailingSlash(pathname)}${query}${hash}`;\n};\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtDQUFrQyxHQUFHLEtBQUs7QUFDMUMsSUFBSUcsdUJBQXVCQyxtQkFBT0EsQ0FBQywwR0FBa0Q7QUFDckYsSUFBSUMsYUFBYUQsbUJBQU9BLENBQUMsb0ZBQXVDO0FBQ2hFLE1BQU1GLDZCQUE2QixDQUFDSSxPQUFPO0lBQ3ZDLElBQUksQ0FBQ0EsS0FBS0MsVUFBVSxDQUFDLFFBQVFDLFNBQXdDLEVBQUU7UUFDbkUsT0FBT0Y7SUFDWCxDQUFDO0lBQ0QsTUFBTSxFQUFFSyxTQUFRLEVBQUdDLE1BQUssRUFBR0MsS0FBSSxFQUFHLEdBQUcsQ0FBQyxHQUFHUixVQUFVLEVBQUVTLFNBQVMsQ0FBQ1I7SUFDL0QsSUFBSUUsS0FBaUMsRUFBRSxFQVF0QztJQUNELE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBR0wsb0JBQW9CLEVBQUVjLG1CQUFtQixDQUFDTixVQUFVLEVBQUVDLE1BQU0sRUFBRUMsS0FBSyxDQUFDO0FBQ3RGO0FBQ0FiLGtDQUFrQyxHQUFHRTtBQUVyQyxJQUFJLENBQUMsT0FBT0YsUUFBUW1CLE9BQU8sS0FBSyxjQUFlLE9BQU9uQixRQUFRbUIsT0FBTyxLQUFLLFlBQVluQixRQUFRbUIsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPbkIsUUFBUW1CLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDckt0QixPQUFPQyxjQUFjLENBQUNDLFFBQVFtQixPQUFPLEVBQUUsY0FBYztRQUFFbEIsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU91QixNQUFNLENBQUNyQixRQUFRbUIsT0FBTyxFQUFFbkI7SUFDL0JzQixPQUFPdEIsT0FBTyxHQUFHQSxRQUFRbUIsT0FBTztBQUNsQyxDQUFDLENBRUQsb0RBQW9EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHRsZHJhdy9kb2NzLy4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC5qcz9lZDA1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IHZvaWQgMDtcbnZhciBfcmVtb3ZlVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIik7XG52YXIgX3BhcnNlUGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoXCIpO1xuY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSAocGF0aCk9PntcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHsgcGF0aG5hbWUgLCBxdWVyeSAsIGhhc2ggIH0gPSAoMCwgX3BhcnNlUGF0aCkucGFyc2VQYXRoKHBhdGgpO1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgICAgaWYgKC9cXC5bXi9dK1xcLz8kLy50ZXN0KHBhdGhuYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAkeygwLCBfcmVtb3ZlVHJhaWxpbmdTbGFzaCkucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YDtcbiAgICAgICAgfSBlbHNlIGlmIChwYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtxdWVyeX0ke2hhc2h9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYCR7KDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gO1xufTtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaDtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwiX3JlbW92ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3BhcnNlUGF0aCIsInBhdGgiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0giLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiZW5kc1dpdGgiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/normalize-trailing-slash.js\n"); /***/ }), /***/ "../../node_modules/next/dist/client/request-idle-callback.js": /*!********************************************************************!*\ !*** ../../node_modules/next/dist/client/request-idle-callback.js ***! \********************************************************************/ /***/ ((module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\nconst requestIdleCallback = typeof self !== \"undefined\" && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nexports.requestIdleCallback = requestIdleCallback;\nconst cancelIdleCallback = typeof self !== \"undefined\" && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nexports.cancelIdleCallback = cancelIdleCallback;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELDBCQUEwQixHQUFHQSwyQkFBMkIsR0FBRyxLQUFLO0FBQ2hFLE1BQU1HLHNCQUFzQixPQUFPQyxTQUFTLGVBQWVBLEtBQUtELG1CQUFtQixJQUFJQyxLQUFLRCxtQkFBbUIsQ0FBQ0UsSUFBSSxDQUFDQyxXQUFXLFNBQVNDLEVBQUUsRUFBRTtJQUN6SSxJQUFJQyxRQUFRQyxLQUFLQyxHQUFHO0lBQ3BCLE9BQU9OLEtBQUtPLFVBQVUsQ0FBQyxXQUFXO1FBQzlCSixHQUFHO1lBQ0NLLFlBQVksS0FBSztZQUNqQkMsZUFBZSxXQUFXO2dCQUN0QixPQUFPQyxLQUFLQyxHQUFHLENBQUMsR0FBRyxLQUFNTixDQUFBQSxLQUFLQyxHQUFHLEtBQUtGLEtBQUk7WUFDOUM7UUFDSjtJQUNKLEdBQUc7QUFDUDtBQUNBUiwyQkFBMkIsR0FBR0c7QUFDOUIsTUFBTUQscUJBQXFCLE9BQU9FLFNBQVMsZUFBZUEsS0FBS0Ysa0JBQWtCLElBQUlFLEtBQUtGLGtCQUFrQixDQUFDRyxJQUFJLENBQUNDLFdBQVcsU0FBU1UsRUFBRSxFQUFFO0lBQ3RJLE9BQU9DLGFBQWFEO0FBQ3hCO0FBQ0FoQiwwQkFBMEIsR0FBR0U7QUFFN0IsSUFBSSxDQUFDLE9BQU9GLFFBQVFrQixPQUFPLEtBQUssY0FBZSxPQUFPbEIsUUFBUWtCLE9BQU8sS0FBSyxZQUFZbEIsUUFBUWtCLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT2xCLFFBQVFrQixPQUFPLENBQUNDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLckIsT0FBT0MsY0FBYyxDQUFDQyxRQUFRa0IsT0FBTyxFQUFFLGNBQWM7UUFBRWpCLE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPc0IsTUFBTSxDQUFDcEIsUUFBUWtCLE9BQU8sRUFBRWxCO0lBQy9CcUIsT0FBT3JCLE9BQU8sR0FBR0EsUUFBUWtCLE9BQU87QUFDbEMsQ0FBQyxDQUVELGlEQUFpRCIsInNvdXJjZXMiOlsid2VicGFjazovL0B0bGRyYXcvZG9jcy8uLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanM/ZTk3MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuY2FuY2VsSWRsZUNhbGxiYWNrID0gZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gdm9pZCAwO1xuY29uc3QgcmVxdWVzdElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2sgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrLmJpbmQod2luZG93KSB8fCBmdW5jdGlvbihjYikge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgcmV0dXJuIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgY2Ioe1xuICAgICAgICAgICAgZGlkVGltZW91dDogZmFsc2UsXG4gICAgICAgICAgICB0aW1lUmVtYWluaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgNTAgLSAoRGF0ZS5ub3coKSAtIHN0YXJ0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIDEpO1xufTtcbmV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVlc3RJZGxlQ2FsbGJhY2s7XG5jb25zdCBjYW5jZWxJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2sgJiYgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpIHx8IGZ1bmN0aW9uKGlkKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dChpZCk7XG59O1xuZXhwb3J0cy5jYW5jZWxJZGxlQ2FsbGJhY2sgPSBjYW5jZWxJZGxlQ2FsbGJhY2s7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtaWRsZS1jYWxsYmFjay5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2VsZiIsImJpbmQiLCJ3aW5kb3ciLCJjYiIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsInNldFRpbWVvdXQiLCJkaWRUaW1lb3V0IiwidGltZVJlbWFpbmluZyIsIk1hdGgiLCJtYXgiLCJpZCIsImNsZWFyVGltZW91dCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/request-idle-callback.js\n"); /***/ }), /***/ "../../node_modules/next/dist/client/use-intersection.js": /*!***************************************************************!*\ !*** ../../node_modules/next/dist/client/use-intersection.js ***! \***************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"../../node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === \"function\";\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || \"\"\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id , observer , elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection({ rootRef , rootMargin , disabled }) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react).useState(false);\n const elementRef = (0, _react).useRef(null);\n const setElement = (0, _react).useCallback((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react).useEffect(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(()=>setVisible(true));\n return ()=>(0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react).useCallback(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-intersection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCx1QkFBdUIsR0FBR0U7QUFDMUIsSUFBSUMsU0FBU0MsbUJBQU9BLENBQUMsb0JBQU87QUFDNUIsSUFBSUMsdUJBQXVCRCxtQkFBT0EsQ0FBQyw2RkFBeUI7QUFDNUQsTUFBTUUsMEJBQTBCLE9BQU9DLHlCQUF5QjtBQUNoRSxNQUFNQyxZQUFZLElBQUlDO0FBQ3RCLE1BQU1DLFNBQVMsRUFBRTtBQUNqQixTQUFTQyxlQUFlQyxPQUFPLEVBQUU7SUFDN0IsTUFBTUMsS0FBSztRQUNQQyxNQUFNRixRQUFRRSxJQUFJLElBQUksSUFBSTtRQUMxQkMsUUFBUUgsUUFBUUksVUFBVSxJQUFJO0lBQ2xDO0lBQ0EsTUFBTUMsV0FBV1AsT0FBT1EsSUFBSSxDQUFDLENBQUNDLE1BQU1BLElBQUlMLElBQUksS0FBS0QsR0FBR0MsSUFBSSxJQUFJSyxJQUFJSixNQUFNLEtBQUtGLEdBQUdFLE1BQU07SUFDcEYsSUFBSUs7SUFDSixJQUFJSCxVQUFVO1FBQ1ZHLFdBQVdaLFVBQVVhLEdBQUcsQ0FBQ0o7UUFDekIsSUFBSUcsVUFBVTtZQUNWLE9BQU9BO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNRSxXQUFXLElBQUliO0lBQ3JCLE1BQU1jLFdBQVcsSUFBSWhCLHFCQUFxQixDQUFDaUIsVUFBVTtRQUNqREEsUUFBUUMsT0FBTyxDQUFDLENBQUNDLFFBQVE7WUFDckIsTUFBTUMsV0FBV0wsU0FBU0QsR0FBRyxDQUFDSyxNQUFNRSxNQUFNO1lBQzFDLE1BQU1DLFlBQVlILE1BQU1JLGNBQWMsSUFBSUosTUFBTUssaUJBQWlCLEdBQUc7WUFDcEUsSUFBSUosWUFBWUUsV0FBVztnQkFDdkJGLFNBQVNFO1lBQ2IsQ0FBQztRQUNMO0lBQ0osR0FBR2pCO0lBQ0hRLFdBQVc7UUFDUFA7UUFDQVU7UUFDQUQ7SUFDSjtJQUNBWixPQUFPc0IsSUFBSSxDQUFDbkI7SUFDWkwsVUFBVXlCLEdBQUcsQ0FBQ3BCLElBQUlPO0lBQ2xCLE9BQU9BO0FBQ1g7QUFDQSxTQUFTYyxRQUFRQyxPQUFPLEVBQUVSLFFBQVEsRUFBRWYsT0FBTyxFQUFFO0lBQ3pDLE1BQU0sRUFBRUMsR0FBRSxFQUFHVSxTQUFRLEVBQUdELFNBQVEsRUFBRyxHQUFHWCxlQUFlQztJQUNyRFUsU0FBU1csR0FBRyxDQUFDRSxTQUFTUjtJQUN0QkosU0FBU1csT0FBTyxDQUFDQztJQUNqQixPQUFPLFNBQVNDLFlBQVk7UUFDeEJkLFNBQVNlLE1BQU0sQ0FBQ0Y7UUFDaEJaLFNBQVNhLFNBQVMsQ0FBQ0Q7UUFDbkIsdURBQXVEO1FBQ3ZELElBQUliLFNBQVNnQixJQUFJLEtBQUssR0FBRztZQUNyQmYsU0FBU2dCLFVBQVU7WUFDbkIvQixVQUFVNkIsTUFBTSxDQUFDeEI7WUFDakIsTUFBTTJCLFFBQVE5QixPQUFPK0IsU0FBUyxDQUFDLENBQUN0QixNQUFNQSxJQUFJTCxJQUFJLEtBQUtELEdBQUdDLElBQUksSUFBSUssSUFBSUosTUFBTSxLQUFLRixHQUFHRSxNQUFNO1lBQ3RGLElBQUl5QixRQUFRLENBQUMsR0FBRztnQkFDWjlCLE9BQU9nQyxNQUFNLENBQUNGLE9BQU87WUFDekIsQ0FBQztRQUNMLENBQUM7SUFDTDtBQUNKO0FBQ0EsU0FBU3RDLGdCQUFnQixFQUFFeUMsUUFBTyxFQUFHM0IsV0FBVSxFQUFHNEIsU0FBUSxFQUFHLEVBQUU7SUFDM0QsTUFBTUMsYUFBYUQsWUFBWSxDQUFDdEM7SUFDaEMsTUFBTSxDQUFDd0MsU0FBU0MsV0FBVyxHQUFHLENBQUMsR0FBRzVDLE1BQU0sRUFBRTZDLFFBQVEsQ0FBQyxLQUFLO0lBQ3hELE1BQU1DLGFBQWEsQ0FBQyxHQUFHOUMsTUFBTSxFQUFFK0MsTUFBTSxDQUFDLElBQUk7SUFDMUMsTUFBTUMsYUFBYSxDQUFDLEdBQUdoRCxNQUFNLEVBQUVpRCxXQUFXLENBQUMsQ0FBQ2pCLFVBQVU7UUFDbERjLFdBQVdJLE9BQU8sR0FBR2xCO0lBQ3pCLEdBQUcsRUFBRTtJQUNKLElBQUdoQyxNQUFNLEVBQUVtRCxTQUFTLENBQUMsSUFBSTtRQUN0QixJQUFJaEQseUJBQXlCO1lBQ3pCLElBQUl1QyxjQUFjQyxTQUFTO1lBQzNCLE1BQU1YLFVBQVVjLFdBQVdJLE9BQU87WUFDbEMsSUFBSWxCLFdBQVdBLFFBQVFvQixPQUFPLEVBQUU7Z0JBQzVCLE1BQU1uQixZQUFZRixRQUFRQyxTQUFTLENBQUNOLFlBQVlBLGFBQWFrQixXQUFXbEIsWUFBWTtvQkFDaEZmLE1BQU02QixXQUFXLElBQUksR0FBRyxLQUFLLElBQUlBLFFBQVFVLE9BQU87b0JBQ2hEckM7Z0JBQ0o7Z0JBQ0EsT0FBT29CO1lBQ1gsQ0FBQztRQUNMLE9BQU87WUFDSCxJQUFJLENBQUNVLFNBQVM7Z0JBQ1YsTUFBTVUsZUFBZSxDQUFDLEdBQUduRCxvQkFBb0IsRUFBRW9ELG1CQUFtQixDQUFDLElBQUlWLFdBQVcsSUFBSTtnQkFDdEYsT0FBTyxJQUFJLENBQUMsR0FBRzFDLG9CQUFvQixFQUFFcUQsa0JBQWtCLENBQUNGO1lBQzVELENBQUM7UUFDTCxDQUFDO0lBQ0wsdURBQXVEO0lBQ3ZELEdBQUc7UUFDQ1g7UUFDQTdCO1FBQ0EyQjtRQUNBRztRQUNBRyxXQUFXSSxPQUFPO0tBQ3JCO0lBQ0QsTUFBTU0sZUFBZSxDQUFDLEdBQUd4RCxNQUFNLEVBQUVpRCxXQUFXLENBQUMsSUFBSTtRQUM3Q0wsV0FBVyxLQUFLO0lBQ3BCLEdBQUcsRUFBRTtJQUNMLE9BQU87UUFDSEk7UUFDQUw7UUFDQWE7S0FDSDtBQUNMO0FBRUEsSUFBSSxDQUFDLE9BQU8zRCxRQUFRNEQsT0FBTyxLQUFLLGNBQWUsT0FBTzVELFFBQVE0RCxPQUFPLEtBQUssWUFBWTVELFFBQVE0RCxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU81RCxRQUFRNEQsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNySy9ELE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUTRELE9BQU8sRUFBRSxjQUFjO1FBQUUzRCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT2dFLE1BQU0sQ0FBQzlELFFBQVE0RCxPQUFPLEVBQUU1RDtJQUMvQitELE9BQU8vRCxPQUFPLEdBQUdBLFFBQVE0RCxPQUFPO0FBQ2xDLENBQUMsQ0FFRCw0Q0FBNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz8zMGFiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbic7XG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwKCk7XG5jb25zdCBpZExpc3QgPSBbXTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IHtcbiAgICAgICAgcm9vdDogb3B0aW9ucy5yb290IHx8IG51bGwsXG4gICAgICAgIG1hcmdpbjogb3B0aW9ucy5yb290TWFyZ2luIHx8ICcnXG4gICAgfTtcbiAgICBjb25zdCBleGlzdGluZyA9IGlkTGlzdC5maW5kKChvYmopPT5vYmoucm9vdCA9PT0gaWQucm9vdCAmJiBvYmoubWFyZ2luID09PSBpZC5tYXJnaW4pO1xuICAgIGxldCBpbnN0YW5jZTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGV4aXN0aW5nKTtcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpPT57XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpPT57XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGVsZW1lbnRzLmdldChlbnRyeS50YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuaXNJbnRlcnNlY3RpbmcgfHwgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPiAwO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGlzVmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIG9wdGlvbnMpO1xuICAgIGluc3RhbmNlID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgb2JzZXJ2ZXIsXG4gICAgICAgIGVsZW1lbnRzXG4gICAgfTtcbiAgICBpZExpc3QucHVzaChpZCk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UpO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cbmZ1bmN0aW9uIG9ic2VydmUoZWxlbWVudCwgY2FsbGJhY2ssIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGlkICwgb2JzZXJ2ZXIgLCBlbGVtZW50cyAgfSA9IGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpO1xuICAgIGVsZW1lbnRzLnNldChlbGVtZW50LCBjYWxsYmFjayk7XG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdW5vYnNlcnZlKCkge1xuICAgICAgICBlbGVtZW50cy5kZWxldGUoZWxlbWVudCk7XG4gICAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgICAgLy8gRGVzdHJveSBvYnNlcnZlciB3aGVuIHRoZXJlJ3Mgbm90aGluZyBsZWZ0IHRvIHdhdGNoOlxuICAgICAgICBpZiAoZWxlbWVudHMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgb2JzZXJ2ZXJzLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGlkTGlzdC5maW5kSW5kZXgoKG9iaik9Pm9iai5yb290ID09PSBpZC5yb290ICYmIG9iai5tYXJnaW4gPT09IGlkLm1hcmdpbik7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGlkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHVzZUludGVyc2VjdGlvbih7IHJvb3RSZWYgLCByb290TWFyZ2luICwgZGlzYWJsZWQgIH0pIHtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gZGlzYWJsZWQgfHwgIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9ICgwLCBfcmVhY3QpLnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBlbGVtZW50UmVmID0gKDAsIF9yZWFjdCkudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNldEVsZW1lbnQgPSAoMCwgX3JlYWN0KS51c2VDYWxsYmFjaygoZWxlbWVudCk9PntcbiAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICB9LCBbXSk7XG4gICAgKDAsIF9yZWFjdCkudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgaWYgKGlzRGlzYWJsZWQgfHwgdmlzaWJsZSkgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQudGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoZWxlbWVudCwgKGlzVmlzaWJsZSk9PmlzVmlzaWJsZSAmJiBzZXRWaXNpYmxlKGlzVmlzaWJsZSksIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vdDogcm9vdFJlZiA9PSBudWxsID8gdm9pZCAwIDogcm9vdFJlZi5jdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVub2JzZXJ2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkbGVDYWxsYmFjayA9ICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VmlzaWJsZSh0cnVlKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpPT4oMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLmNhbmNlbElkbGVDYWxsYmFjayhpZGxlQ2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgcm9vdFJlZixcbiAgICAgICAgdmlzaWJsZSxcbiAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50XG4gICAgXSk7XG4gICAgY29uc3QgcmVzZXRWaXNpYmxlID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldEVsZW1lbnQsXG4gICAgICAgIHZpc2libGUsXG4gICAgICAgIHJlc2V0VmlzaWJsZVxuICAgIF07XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsIm9ic2VydmVycyIsIk1hcCIsImlkTGlzdCIsImNyZWF0ZU9ic2VydmVyIiwib3B0aW9ucyIsImlkIiwicm9vdCIsIm1hcmdpbiIsInJvb3RNYXJnaW4iLCJleGlzdGluZyIsImZpbmQiLCJvYmoiLCJpbnN0YW5jZSIsImdldCIsImVsZW1lbnRzIiwib2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImVudHJ5IiwiY2FsbGJhY2siLCJ0YXJnZXQiLCJpc1Zpc2libGUiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIiwicHVzaCIsInNldCIsIm9ic2VydmUiLCJlbGVtZW50IiwidW5vYnNlcnZlIiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJpbmRleCIsImZpbmRJbmRleCIsInNwbGljZSIsInJvb3RSZWYiLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsInVzZVN0YXRlIiwiZWxlbWVudFJlZiIsInVzZVJlZiIsInNldEVsZW1lbnQiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJ1c2VFZmZlY3QiLCJ0YWdOYW1lIiwiaWRsZUNhbGxiYWNrIiwicmVxdWVzdElkbGVDYWxsYmFjayIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlc2V0VmlzaWJsZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/next/dist/client/use-intersection.js\n"); /***/ }), /***/ "../../node_modules/next/link.js": /*!***************************************!*\ !*** ../../node_modules/next/link.js ***! \***************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"../../node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvbGluay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBOEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AdGxkcmF3L2RvY3MvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvbGluay5qcz9iYTZmIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9saW5rJylcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/next/link.js\n"); /***/ }), /***/ "next-themes": /*!******************************!*\ !*** external "next-themes" ***! \******************************/ /***/ ((module) => { "use strict"; module.exports = require("next-themes"); /***/ }), /***/ "../shared/lib/app-router-context": /*!*************************************************************!*\ !*** external "next/dist/shared/lib/app-router-context.js" ***! \*************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/app-router-context.js"); /***/ }), /***/ "../shared/lib/router-context": /*!*********************************************************!*\ !*** external "next/dist/shared/lib/router-context.js" ***! \*********************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router-context.js"); /***/ }), /***/ "../shared/lib/router/utils/add-path-prefix": /*!***********************************************************************!*\ !*** external "next/dist/shared/lib/router/utils/add-path-prefix.js" ***! \***********************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix.js"); /***/ }), /***/ "../shared/lib/router/utils/format-url": /*!******************************************************************!*\ !*** external "next/dist/shared/lib/router/utils/format-url.js" ***! \******************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router/utils/format-url.js"); /***/ }), /***/ "../shared/lib/router/utils/is-local-url": /*!********************************************************************!*\ !*** external "next/dist/shared/lib/router/utils/is-local-url.js" ***! \********************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router/utils/is-local-url.js"); /***/ }), /***/ "../shared/lib/router/utils/parse-path": /*!******************************************************************!*\ !*** external "next/dist/shared/lib/router/utils/parse-path.js" ***! \******************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router/utils/parse-path.js"); /***/ }), /***/ "../shared/lib/router/utils/remove-trailing-slash": /*!*****************************************************************************!*\ !*** external "next/dist/shared/lib/router/utils/remove-trailing-slash.js" ***! \*****************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash.js"); /***/ }), /***/ "../shared/lib/router/utils/resolve-href": /*!********************************************************************!*\ !*** external "next/dist/shared/lib/router/utils/resolve-href.js" ***! \********************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/router/utils/resolve-href.js"); /***/ }), /***/ "../shared/lib/utils": /*!************************************************!*\ !*** external "next/dist/shared/lib/utils.js" ***! \************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/shared/lib/utils.js"); /***/ }), /***/ "next/router": /*!******************************!*\ !*** external "next/router" ***! \******************************/ /***/ ((module) => { "use strict"; module.exports = require("next/router"); /***/ }), /***/ "react": /*!************************!*\ !*** external "react" ***! \************************/ /***/ ((module) => { "use strict"; module.exports = require("react"); /***/ }), /***/ "react/jsx-dev-runtime": /*!****************************************!*\ !*** external "react/jsx-dev-runtime" ***! \****************************************/ /***/ ((module) => { "use strict"; module.exports = require("react/jsx-dev-runtime"); /***/ }), /***/ "next-mdx-remote": /*!**********************************!*\ !*** external "next-mdx-remote" ***! \**********************************/ /***/ ((module) => { "use strict"; module.exports = import("next-mdx-remote");; /***/ }), /***/ "next-mdx-remote/serialize": /*!********************************************!*\ !*** external "next-mdx-remote/serialize" ***! \********************************************/ /***/ ((module) => { "use strict"; module.exports = import("next-mdx-remote/serialize");; /***/ }), /***/ "rehype-autolink-headings": /*!*******************************************!*\ !*** external "rehype-autolink-headings" ***! \*******************************************/ /***/ ((module) => { "use strict"; module.exports = import("rehype-autolink-headings");; /***/ }), /***/ "rehype-highlight": /*!***********************************!*\ !*** external "rehype-highlight" ***! \***********************************/ /***/ ((module) => { "use strict"; module.exports = import("rehype-highlight");; /***/ }), /***/ "rehype-slug-custom-id": /*!****************************************!*\ !*** external "rehype-slug-custom-id" ***! \****************************************/ /***/ ((module) => { "use strict"; module.exports = import("rehype-slug-custom-id");; /***/ }), /***/ "remark-gfm": /*!*****************************!*\ !*** external "remark-gfm" ***! \*****************************/ /***/ ((module) => { "use strict"; module.exports = import("remark-gfm");; /***/ }), /***/ "./content.json": /*!**********************!*\ !*** ./content.json ***! \**********************/ /***/ ((module) => { "use strict"; module.exports = JSON.parse('{"sections":[{"id":"getting-started","title":"","description":"","categories":[{"id":"ucg","title":"Uncategorized","description":"Articles that do not belong to a category.","groups":[],"articleIds":["introduction","installation","usage"]}]},{"id":"docs","title":"Documentation","description":"Developer documentation for tldraw.","categories":[{"id":"ucg","title":"Uncategorized","description":"Articles that do not belong to a category.","groups":[],"articleIds":["editor","shapes","tools","persistence","collaboration","user-interface","assets"]}]},{"id":"community","title":"Community","description":"Guides for contributing to tldraw\'s open source project.","categories":[{"id":"ucg","title":"Uncategorized","description":"Articles that do not belong to a category.","groups":[],"articleIds":["contributing","translations","embeds"]}]},{"id":"gen","title":"API","description":"Reference for the tldraw package\'s APIs (generated).","categories":[{"id":"ucg","title":"Uncategorized","description":"Articles that do not belong to a category.","groups":[],"articleIds":[]},{"id":"editor","title":"@tldraw/editor","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["ACCEPTED_ASSET_TYPE-var","ACCEPTED_IMG_TYPE-var","ACCEPTED_VID_TYPE-var","ArrowShape-var","ArrowShapeUtil-class","BaseBoxShapeTool-class","BaseBoxShapeUtil-class","blobAsString-function-1","BookmarkShape-var","BookmarkShapeUtil-class","Canvas-var","checkFlag-var","containBoxSize-function-1","coreShapes-var","correctSpacesToNbsp-function-1","createSessionStateSnapshotSignal-function-1","createTLStore-function-1","createTLUser-function-1","dataTransferItemAsString-function-1","dataUrlToFile-function-1","defaultEditorAssetUrls-var","defaultEmptyAs-function-1","defaultShapes-var","defaultTools-var","defineShape-function-1","downloadDataURLAsFile-function-1","DrawShape-var","DrawShapeUtil-class","Editor-class","EmbedShape-var","EmbedShapeUtil-class","ErrorBoundary-class","ErrorScreen-function-1","EVENT_NAME_MAP-var","fileToBase64-function-1","FrameShape-var","FrameShapeUtil-class","GeoShape-var","GeoShapeUtil-class","getEmbedInfo-function-1","getEmbedInfoUnsafely-function-1","getFileMetaData-function-1","getFreshUserPreferences-function-1","getImageSizeFromSrc-function-1","getIncrementedName-function-1","getMediaAssetFromFile-function-1","getResizedImageDataUrl-function-1","getRotatedBoxShadow-function-1","getSplineForLineShape-function-1","getSvgAsDataUrl-function-1","getSvgAsDataUrlSync-function-1","getSvgAsImage-function-1","getSvgAsString-function-1","getSvgPathFromStroke-function-1","getSvgPathFromStrokePoints-function-1","getTextBoundingBox-function-1","getUserPreferences-function-1","getValidHttpURLList-var","getVideoSizeFromSrc-function-1","GRID_STEPS-var","GroupShape-var","GroupShapeUtil-class","hardReset-function-1","hardResetEditor-function-1","HighlightShape-var","HighlightShapeUtil-class","HTMLContainer-function-1","HTMLContainerProps-type","ImageShape-var","ImageShapeUtil-class","INDENT-var","isAnimated-function-1","isGIF-function-1","isImage-var","isSerializable-function-1","isSvgText-var","isValidHttpURL-var","isValidUrl-function-1","LineShape-var","LineShapeUtil-class","LoadingScreen-function-1","loadSessionStateSnapshotIntoStore-function-1","loopToHtmlElement-function-1","matchEmbedUrl-function-1","matchUrl-function-1","normalizeWheel-function-1","NoteShape-var","NoteShapeUtil-class","openWindow-function-1","PlopManager-class","preventDefault-function-1","ReadonlySharedStyleMap-class","refreshPage-function-1","releasePointerCapture-function-1","RequiredKeys-type","runtime-var","setPointerCapture-function-1","setRuntimeOverrides-function-1","setUserPreferences-function-1","ShapeUtil-class","SharedStyle-type","snapToGrid-function-1","StateNode-class","SVGContainer-function-1","SVGContainerProps-type","TAB_ID-var","TextShape-var","TextShapeUtil-class","TLAnimationOptions-type","TLBaseBoxShape-type","TLBaseEventInfo-interface","TLCancelEvent-type","TLCancelEventInfo-type","TLClickEvent-type","TLClickEventInfo-type","TLCLickEventName-type","TLCommand-type","TLCommandHandler-type","TLCompleteEvent-type","TLCompleteEventInfo-type","TLContent-interface","TLCopyType-type","TldrawEditor-var","TldrawEditorProps-type","TLEditorAssetUrls-type","TLEditorComponents-interface","TLEditorOptions-interface","TLEmbedResult-type","TLEnterEventHandler-type","TLErrorBoundaryProps-interface","TLEventHandlers-interface","TLEventInfo-type","TLEventMap-interface","TLEventMapHandler-type","TLEventName-type","TLExitEventHandler-type","TLExportType-type","TLExternalContent-type","TLHistoryEntry-type","TLHistoryMark-type","TLInterruptEvent-type","TLInterruptEventInfo-type","TLKeyboardEvent-type","TLKeyboardEventInfo-type","TLKeyboardEventName-type","TLOnBeforeCreateHandler-type","TLOnBeforeUpdateHandler-type","TLOnChildrenChangeHandler-type","TLOnClickHandler-type","TLOnDoubleClickHandleHandler-type","TLOnDoubleClickHandler-type","TLOnDragHandler-type","TLOnEditEndHandler-type","TLOnHandleChangeHandler-type","TLOnResizeEndHandler-type","TLOnResizeHandler-type","TLOnResizeStartHandler-type","TLOnRotateEndHandler-type","TLOnRotateHandler-type","TLOnRotateStartHandler-type","TLOnTranslateEndHandler-type","TLOnTranslateHandler-type","TLOnTranslateStartHandler-type","TLPinchEvent-type","TLPinchEventInfo-type","TLPinchEventName-type","TLPointerEvent-type","TLPointerEventInfo-type","TLPointerEventName-type","TLPointerEventTarget-type","TLResizeHandle-type","TLResizeInfo-type","TLResizeMode-type","TLSelectionHandle-type","TLSessionStateSnapshot-interface","TLShapeInfo-type","TLShapeUtilConstructor-interface","TLShapeUtilFlag-type","TLStateNodeConstructor-interface","TLStoreEventInfo-type","TLStoreOptions-type","TLStoreWithStatus-type","TLTickEvent-type","TLUserPreferences-interface","TLWheelEvent-type","TLWheelEventInfo-type","truncateStringWithEllipsis-var","UiEvent-type","UiEventType-type","uniqueId-function-1","useContainer-function-1","useEditor-var","usePrefersReducedMotion-function-1","useTLStore-function-1","VideoShape-var","VideoShapeUtil-class","WeakMapCache-class"]},{"id":"file-format","title":"@tldraw/file-format","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["isV1File-function-1","parseTldrawJsonFile-function-1","serializeTldrawJson-function-1","serializeTldrawJsonBlob-function-1","TLDRAW_FILE_EXTENSION-var","TLDRAW_FILE_MIMETYPE-var","TldrawFile-interface","TldrawFileParseError-type"]},{"id":"primitives","title":"@tldraw/primitives","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["angleDelta-function-1","approximately-function-1","areAnglesCompatible-function-1","Box2d-class","canolicalizeRotation-function-1","clamp-function-1","clamp-function-2","clampRadians-function-1","CubicSegment2d-class","CubicSegment2dModel-interface","CubicSpline2d-class","decomposeMatrix2d-function-1","degreesToRadians-function-1","EASINGS-var","EasingType-type","EPSILON-var","flipSelectionHandleX-function-1","flipSelectionHandleY-function-1","getArcLength-function-1","getDrawLinePathData-function-1","getHeight-function-1","getMaxX-function-1","getMaxY-function-1","getMidX-function-1","getMidY-function-1","getMinX-function-1","getMinY-function-1","getPointOnCircle-function-1","getPolygonVertices-function-1","getRoundedInkyPolygonPath-function-1","getRoundedPolygonPoints-function-1","getStarBounds-var","getStroke-function-1","getStrokeOutlinePoints-function-1","getStrokePoints-function-1","getSweep-function-1","getWidth-function-1","intersectCircleCircle-function-1","intersectCirclePolygon-function-1","intersectCirclePolyline-function-1","intersectLineSegmentCircle-function-1","intersectLineSegmentLineSegment-function-1","intersectLineSegmentPolygon-function-1","intersectLineSegmentPolyline-function-1","intersectPolygonBounds-function-1","intersectPolygonPolygon-function-1","isAngleBetween-function-1","isSafeFloat-var","isSelectionCorner-function-1","lerpAngles-function-1","LineSegment2d-class","LineSegment2dModel-interface","linesIntersect-function-1","longAngleDist-function-1","MatLike-type","Matrix2d-class","Matrix2dModel-interface","MatrixInfo-interface","perimeterOfEllipse-function-1","PI-var","PI2-var","pointInBounds-function-1","pointInCircle-function-1","pointInEllipse-function-1","pointInPolygon-function-1","pointInPolyline-function-1","pointInRect-function-1","pointNearToLineSegment-function-1","pointNearToPolyline-function-1","polygonsIntersect-function-1","Polyline2d-class","radiansToDegrees-function-1","rangeIntersection-function-1","rangesOverlap-function-1","ROTATE_CORNER_TO_SELECTION_CORNER-var","RotateCorner-type","rotateSelectionHandle-function-1","SelectionCorner-type","SelectionEdge-type","SelectionHandle-type","setStrokePointRadii-function-1","shortAngleDist-function-1","simplify-function-1","simplify2-function-1","SIN-var","snapAngle-function-1","StrokeOptions-interface","StrokePoint-interface","TAU-var","toDomPrecision-function-1","toFixed-function-1","toPrecision-function-1","Vec2d-class","VecLike-type"]},{"id":"store","title":"@tldraw/store","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["AllRecords-type","assertIdType-function-1","BaseRecord-interface","CollectionDiff-type","compareRecordVersions-function-1","compareSchemas-var","ComputedCache-type","createRecordType-function-1","defineMigrations-function-1","devFreeze-function-1","getRecordVersion-function-1","HistoryEntry-type","IdOf-type","migrate-function-1","migrateRecord-function-1","Migration-type","MigrationFailureReason-enum","MigrationResult-type","Migrations-interface","RecordId-type","RecordsDiff-type","RecordType-class","RecordVersion-type","reverseRecordsDiff-function-1","SerializedSchema-interface","squashRecordDiffs-function-1","Store-class","StoreError-type","StoreListener-type","StoreSchema-class","StoreSchemaOptions-type","StoreSnapshot-type","StoreValidator-type","StoreValidators-type","UnknownRecord-type"]},{"id":"tldraw","title":"@tldraw/tldraw","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["Tldraw-function-1"]},{"id":"tlschema","title":"@tldraw/tlschema","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["ArrowShapeArrowheadEndStyle-var","ArrowShapeArrowheadStartStyle-var","arrowShapeProps-var","assetIdValidator-var","AssetRecordType-var","bookmarkShapeProps-var","Box2dModel-interface","box2dModelValidator-var","CameraRecordType-var","canvasUiColorTypeValidator-var","createAssetValidator-function-1","createPresenceStateDerivation-var","createShapeId-function-1","createShapeValidator-function-1","createTLSchema-function-1","DefaultColorStyle-var","DefaultColorThemePalette-var","DefaultDashStyle-var","DefaultFillStyle-var","DefaultFontFamilies-var","DefaultFontStyle-var","DefaultHorizontalAlignStyle-var","DefaultSizeStyle-var","DefaultVerticalAlignStyle-var","DocumentRecordType-var","drawShapeProps-var","EMBED_DEFINITIONS-var","EmbedDefinition-type","embedShapePermissionDefaults-var","embedShapeProps-var","EnumStyleProp-class","frameShapeProps-var","GeoShapeGeoStyle-var","geoShapeProps-var","getDefaultColorTheme-function-1","getDefaultTranslationLocale-function-1","highlightShapeProps-var","imageShapeProps-var","InstancePageStateRecordType-var","InstancePresenceRecordType-var","isPageId-function-1","isShape-function-1","isShapeId-function-1","LANGUAGES-var","lineShapeProps-var","LineShapeSplineStyle-var","noteShapeProps-var","PageRecordType-var","parentIdValidator-var","PointerRecordType-var","SchemaShapeInfo-type","shapeIdValidator-var","ShapeProps-type","StyleProp-class","textShapeProps-var","TL_CANVAS_UI_COLOR_TYPES-var","TLArrowShape-type","TLArrowShapeArrowheadStyle-type","TLArrowShapeProps-type","TLArrowShapeTerminal-type","TLAsset-type","TLAssetId-type","TLAssetPartial-type","TLAssetShape-type","TLBaseAsset-interface","TLBaseShape-interface","TLBookmarkAsset-type","TLBookmarkShape-type","TLCamera-interface","TLCameraId-type","TLCanvasUiColor-type","TLCursor-interface","TLCursorType-type","TLDefaultColorStyle-type","TLDefaultColorTheme-type","TLDefaultColorThemeColor-type","TLDefaultDashStyle-type","TLDefaultFillStyle-type","TLDefaultFontStyle-type","TLDefaultHorizontalAlignStyle-type","TLDefaultShape-type","TLDefaultSizeStyle-type","TLDefaultVerticalAlignStyle-type","TLDOCUMENT_ID-var","TLDocument-interface","TLDrawShape-type","TLDrawShapeSegment-type","TLEmbedShape-type","TLEmbedShapePermissions-type","TLFrameShape-type","TLGeoShape-type","TLGroupShape-type","TLHandle-interface","TLHandleType-type","TLHighlightShape-type","TLImageAsset-type","TLImageShape-type","TLImageShapeCrop-type","TLImageShapeProps-type","TLINSTANCE_ID-var","TLInstance-interface","TLInstanceId-type","TLInstancePageState-interface","TLInstancePresence-interface","TLLanguage-type","TLLineShape-type","TLNoteShape-type","TLOpacityType-type","TLPage-interface","TLPageId-type","TLParentId-type","TLPOINTER_ID-var","TLRecord-type","TLSchema-type","TLScribble-type","TLShape-type","TLShapeId-type","TLShapePartial-type","TLShapeProp-type","TLShapeProps-type","TLStore-type","TLStoreProps-type","TLStoreSchema-type","TLStoreSnapshot-type","TLTextShape-type","TLTextShapeProps-type","TLUnknownShape-type","TLVideoAsset-type","TLVideoShape-type","Vec2dModel-interface","vec2dModelValidator-var","videoShapeProps-var"]},{"id":"ui","title":"@tldraw/ui","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["BreakPointProvider-function-1","Button-var","compactMenuItems-function-1","ContextMenu-var","Dialog-namespace","DropdownMenu-namespace","findMenuItem-function-1","Icon-var","Input-var","menuCustom-function-1","menuGroup-function-1","menuItem-function-1","menuSubmenu-function-1","TldrawUi-var","TldrawUiContextProvider-function-1","TldrawUiContextProviderProps-interface","TldrawUiProps-type","TLUiActionItem-interface","TLUiActionsContextType-type","TLUiActionsMenuSchemaContextType-type","TLUiButtonProps-interface","TLUiContextMenuProps-interface","TLUiContextTTLUiMenuSchemaContextType-type","TLUiCustomMenuItem-type","TLUiDialog-interface","TLUiDialogProps-interface","TLUiDialogsContextType-type","TLUiEventContextType-type","TLUiEventHandler-type","TLUiEventSource-type","TLUiHelpMenuSchemaContextType-type","TLUiIconProps-interface","TLUiIconType-type","TLUiInputProps-interface","TLUiKeyboardShortcutsSchemaContextType-type","TLUiKeyboardShortcutsSchemaProviderProps-type","TLUiMenuChild-type","TLUiMenuGroup-type","TLUiMenuItem-type","TLUiMenuSchema-type","TLUiMenuSchemaContextType-type","TLUiMenuSchemaProviderProps-type","TLUiOverrides-interface","TLUiSubMenu-type","TLUiToast-interface","TLUiToastAction-interface","TLUiToastsContextType-type","TLUiToolbarItem-type","TLUiToolbarSchemaContextType-type","TLUiToolItem-interface","TLUiToolsContextType-type","TLUiToolsProviderProps-type","TLUiTranslation-type","TLUiTranslationContextType-type","TLUiTranslationKey-type","toolbarItem-function-1","useActions-function-1","useActionsMenuSchema-function-1","useBreakpoint-function-1","useCanRedo-function-1","useCanUndo-function-1","useContextMenuSchema-function-1","useCopyAs-function-1","useDefaultHelpers-function-1","useDialogs-function-1","useEvents-function-1","useExportAs-function-1","useHelpMenuSchema-function-1","useKeyboardShortcuts-function-1","useKeyboardShortcutsSchema-function-1","useLocalStorageState-function-1","useMenuClipboardEvents-function-1","useMenuIsOpen-function-1","useMenuSchema-function-1","useNativeClipboardEvents-function-1","useReadonly-function-1","useToasts-function-1","useToolbarSchema-function-1","useTools-function-1","useTranslation-function-1"]},{"id":"validate","title":"@tldraw/validate","description":"","groups":[{"id":"Namespace","title":"Namespaces"},{"id":"Class","title":"Classes"},{"id":"Function","title":"Functions"},{"id":"Variable","title":"Variables"},{"id":"Enum","title":"Enums"},{"id":"Interface","title":"Interfaces"},{"id":"TypeAlias","title":"TypeAliases"}],"articleIds":["T-namespace"]}]}],"content":{"installation":"\\nAt the moment the `@tldraw/tldraw` package is in alpha. We also ship a canary version which is always up to date with the main branch of tldraw [repository](https://github.com/tldraw/tldraw).\\n\\n## Alpha\\n\\nFirst, install the `@tldraw/tldraw` package using `@alpha` for the latest.\\n\\n```bash\\nyarn add @tldraw/tldraw@alpha\\n# or\\nnpm install @tldraw/tldraw@alpha\\n```\\n\\n## Canary\\n\\nTo get the very latest version, use the [latest canary release](https://www.npmjs.com/package/@tldraw/tldraw?activeTab=versions). Docs for the very latest version are also available at [canary.tldraw.dev](https://canary.tldraw.dev).\\n\\n```bash\\nyarn add @tldraw/tldraw@canary\\n# or\\nnpm install @tldraw/tldraw@canary\\n```","introduction":"\\nWelcome to the tldraw developer docs.\\n\\nHere at tldraw, we make two things: a very good multiplayer whiteboard (at [tldraw.com](https://tldraw.com)), and the [open source library](https://github.com/tldraw/tldraw) that powers it. This page provides documentation and reference for that open source library.\\n\\n```tsx \\nimport { Tldraw } from \'@tldraw/tldraw\'\\nimport \'@tldraw/tldraw/tldraw.css\'\\n\\nexport default function () {\\n\\treturn (\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t)\\n}\\n```\\n\\nYou can use the `` React component to build on top of the default tldraw experience. It\'s easy to use and easy to extend with your own [custom shapes](/docs/shapes), [custom tools](/docs/tools), and [user interface](/docs/user-interface) overrides. \\n\\nYou can also use the [Editor API](/docs/editor) to create, update, and delete shapes, control the camera, or do just about anything else.\\n\\nIf you want to go even deeper, you can use the `` component as a more minimal engine without the default tldraw shapes or user interface.\\n\\n\\nBest of all, you can easily plug tldraw into the [collaboration backend](/docs/collaboration) of your choice.\\n\\n- Want to explore the code? Visit the [GitHub repo](https://github.com/tldraw/tldraw).\\n- Want to try it out? Visit the [examples sandbox](https://stackblitz.com/github/tldraw/tldraw/tree/examples?file=src%2F1-basic%2FBasicExample.tsx).\\n\\nOtherwise, continue on to the [installation](/docs/installation) and [usage](/docs/usage) guides.\\n\\n## Community\\n\\nFound a bug or want to request a feature? Create an issue [here](https://github.com/tldraw/tldraw/issues). To connect with the team and other users, join us on our [Discord](https://discord.gg/JMbeb96jsh).\\n\\nIf you spot an issue with these docs, please use the links at the bottom of each page to suggest a change.\\n\\n## License\\n\\nOur open source libraries are licensed and distributed under Apache-2.0. \\n\\nOur plan is to keep these libraries permissively licensed while we develop a commercial offering for teams who want more from tldraw. If you\'re planning to use use tldraw in a commercial product, please reach out at [hello@tldraw.com](mailto://hello@tldraw.com).","usage":"\\nThe `` component is the easiest way to get started. To use it, create a file like this one:\\n\\n```tsx\\nimport { Tldraw } from \'@tldraw/tldraw\'\\nimport \'@tldraw/tldraw/tldraw.css\'\\n\\nexport default function () {\\n\\treturn (\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t)\\n}\\n```\\n\\n### CSS\\n\\nIn order to use the `` component, you should also import the `tldraw.css` file from the `@tldraw/tldraw` package. You can alternatively import this file inside of another CSS file using the `@import` syntax.\\n\\nYou can overwrite these files with other CSS or copy the contents into a different file and import that instead.\\n\\n### HTML\\n\\nIf you\'re using the `` component in a full-screen app, you probably also want to update your `index.html`\'s meta viewport element as shown below. \\n\\n```html\\n\\n```\\n\\nThis may not be critical to `` performing correctly, however some features (such as safe area positioning) will only work correctly if these viewport options are set.\\n\\n## Using in Next.js, Create React App, Vite, etc.\\n\\nCheck the [examples repository](https://github.com/tldraw/examples) to see examples of tldraw being used in various frameworks.\\n\\nBy the way, the `` component can\'t be server-rendered. If you\'re using the component in a server-rendered framework (such as Next.js) then you need to import it dynamically. \\n\\n## Going deeper\\n\\nThe `` component combines two lower-level components: `` and ``. If you want to have more granular control, you can use those lower-level components directly. See [this example](https://github.com/tldraw/tldraw/blob/main/apps/examples/src/5-exploded/ExplodedExample.tsx) for reference.","assets":"\\nIn order to use the `` component, the app must be able to find certain assets. These are contained in the `embed-icons`, `fonts`, `icons`, and `translations` folders. We offer a few different ways of making these assets available to your app.\\n\\n### 1. Using a public CDN\\n\\nBy default we serve these assets from a [public CDN called unpkg](https://unpkg.com/browse/@tldraw/assets@2.0.0-alpha.12/), so everything should work out of the box and is a good way to get started.\\n\\nIf you would like to customize some of the assets you can pass the customizations to our `` component. For example, to use a custom icon for the `hand` tool you can do the following:\\n\\n```javascript\\nconst assetUrls = {\\n icons: {\\n \'tool-hand\': \'./custom-tool-hand.svg\',\\n },\\n}\\n\\n\\n```\\n\\nThis will use the custom icon for the `hand` tool and the default assets for everything else.\\n\\n\\n### 2. Hosting the assets yourself\\n\\nIf you want more flexibility you can also host these assets yourself:\\n1. Download the `embed-icons`, `fonts`, `icons`, and `translations` folders from the [assets folder](https://github.com/tldraw/tldraw/tree/main/assets) of the tldraw repository.\\n2. Place the folders in your project\'s public path.\\n3. Pass `assetUrls` prop to our `` component to let the component know where the assets live. \\n\\nYou can use our `getAssetUrls` helper function from the `@tldraw/assets` package to generate these urls for you.\\n```javascript\\nimport { getAssetUrls } from \'@tldraw/assets/selfHosted\'\\n\\nconst assetUrls = getAssetUrls()\\n\\n\\n```\\n\\nWhile these files must be available, you can overwrite the individual files: for example, by placing different icons under the same name or modifying / adding translations.\\n\\nIf you use a CDN for hosting these files you can specify the base url of your assets. To recreate the above option of serving the assets from unpkg you would do the following:\\n\\n```javascript\\nconst assetUrls = getAssetUrls({\\n baseUrl: \'https://unpkg.com/@tldraw/assets@2.0.0-alpha.12/\',\\n})\\n```\\n\\n### 3. Using a bundler\\n\\nIf you\'re using a bundler like webpack or rollup, you can import the assets directly from the `@tldraw/assets` package. Here you can use `getAssetUrlsByMetaUrl` helper function:\\n```javascript\\nimport { getAssetUrlsByMetaUrl } from \'@tldraw/assets/urls\'\\n\\nconst assetUrls = getAssetUrlsByMetaUrl()\\n\\n\\n```\\n\\n### Adding custom assets\\n\\nWe have plans to offer more rich asset customizations in the future (e.g. custom cursors, custom fonts, translations for other languages etc). ","collaboration":"\\nComing soon.\\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to use yjs with the `@tldraw/tldraw` library.\\n","editor":"\\nThe `Editor` class is the main way of controlling tldraw\'s editor. You can use it to manage the editor\'s internal state, make changes to the document, or respond to changes that have occurred.\\n\\nBy design, the `Editor`\'s surface area is [very large](/gen/editor/Editor-class). Almost everything is available through it. Need to create some shapes? Use `editor.createShapes()`. Need to delete them? Use `editor.deleteShapes()`. Need a sorted array of every shape on the current page? Use `editor.sortedShapesArray`.\\n\\nThis page gives a broad idea of how the `Editor` class is organized and some of the architectural concepts involved. The full reference is available in the [Editor API](/gen/editor/Editor-class).\\n\\n## State\\n\\nThe editor holds the raw state of the document in its `store` property. Data is kept here as a table of JSON serializable records. \\n\\nFor example, the store contains a `page` record for each page in the current document, as well as an `instancePageState` record for each page that stores information about the editor\'s state for that page, and a single `instanceState` for each editor instance which stores the id of the user\'s current page.\\n\\nThe editor also exposes many _computed_ values which are derived from other records in the store. For example, `editor.selectedIds` is a computed property that will return the editor\'s current selected shape ids for its current page.\\n\\nYou can use these properties directly or you can use them in signals.\\n\\n```tsx\\nimport { track, useEditor } from \\"@tldraw/tldraw\\"\\n\\nexport const SelectedIdsCount = track(() => {\\n const editor = useEditor()\\n \\n return (\\n
{editor.selectedIds.length}
\\n )\\n})\\n```\\n\\n### Changing the state\\n\\nThe `Editor` class has many methods for updating its state. For example, you can change the current page\'s selection using `editor.setSelectedIds`. You can also use other convenience methods, such as `editor.select`, `editor.deselect`, `editor.selectAll`, or `editor.selectNone`.\\n\\n```ts\\neditor.selectNone()\\neditor.select(myShapeId, myOtherShapeId)\\neditor.selectedIds // [myShapeId, myOtherShapeId]\\n```\\n\\nEach change to the state happens within a transaction. You can batch changes into a single transaction using the `editor.batch` method. It\'s a good idea to batch wherever possible, as this reduces the overhead for persisting or distributing those changes.\\n\\n### Listening for changes\\n\\nYou can subscribe to changes using `editor.store.listen`. Each time a transaction completes, the editor will call the callback with a history entry. This entry contains information about the records that were added, changed, or deleted, as well as whether the change was caused by the user or from a remote change.\\n\\n```ts\\neditor.store.listen(entry => {\\n entry // { changes, source }\\n})\\n```\\n\\n### Remote changes\\n\\nBy default, changes to the editor\'s store are assumed to have come from the editor itself. You can use `editor.store.mergeRemoteChanges` to make changes in the store that will be emitted via `store.listen` with the `source` property as `\'remote\'`. \\n\\nIf you\'re setting up some kind of multiplayer backend, you would want to send only the `\'user\'` changes to the server and merge the changes from the server using `editor.store.mergeRemoteChanges`. (We\'ll have more information about this soon.)\\n\\n### Undo and redo\\n\\nThe history stack in tldraw contains two types of data: \\"marks\\" and \\"commands\\". Commands have their own `undo` and `redo` methods that describe how the state should change when the command is undone or redone. \\n\\nYou can call `editor.mark(id)` to add a mark to the history stack with the given `id`. \\n\\nWhen you call `editor.undo()`, the editor will undo each command until it finds either a mark or the start of the stack. When you call `editor.redo()`, the editor will redo each command until it finds either a mark or the end of the stack. \\n\\n```ts\\n// A\\neditor.mark(\\"duplicate everything\\")\\neditor.selectAll()\\neditor.duplicateShapes(editor.selectedIds)\\n// B\\n\\neditor.undo() // will return to A\\neditor.redo() // will return to B\\n```\\n\\nYou can call `editor.bail()` to undo and delete all commands in the stack until the first mark. \\n\\n```ts\\n// A\\neditor.mark(\\"duplicate everything\\")\\neditor.selectAll()\\neditor.duplicateShapes(editor.selectedIds)\\n// B\\n\\neditor.bail() // will return to A\\neditor.redo() // will do nothing \\n```\\n\\nYou can use `editor.bailToMark(id)` to undo and delete all commands and marks until you reach a mark with the given `id`.\\n\\n```ts\\n// A\\neditor.mark(\\"first\\")\\neditor.selectAll()\\n// B\\neditor.mark(\\"second\\")\\neditor.duplicateShapes(editor.selectedIds)\\n// C\\n\\neditor.bailToMark(\\"first\\") // will to A\\n```\\n\\n## Events and Tools\\n\\nThe `Editor` class receives events from the user interface via its `dispatch` method. When the `Editor` receives an event, it is first handled internally to update `editor.inputs` and other state before, and then sent into to the editor\'s state chart.\\n\\nYou shouldn\'t need to use the `dispatch` method directly, however you may write code in the state chart that responds to these events.\\n\\n### State Chart\\n\\nThe `Editor` class has a \\"state chart\\", or a tree of `StateNode` instances, that contain the logic for the editor\'s tools such as the select tool or the draw tool. User interactions such as moving the cursor will produce different changes to the state depending on which nodes are active.\\n\\nEach node be active or inactive. Each state node may also have zero or more children. When a state is active, and if the state has children, one (and only one) of its children must also be active. When a state node receives an event from its parent, it has the opportunity to handle the event before passing the event to its active child. The node can handle an event in any way: it can ignore the event, update records in the store, or run a _transition_ that changes which states nodes are active.\\n\\nWhen a user interaction is sent to the editor via its `dispatch` method, this event is sent to the editor\'s root state node (`editor.root`) and passed then down through the chart\'s active states until either it reaches a leaf node or until one of those nodes produces a transaction.\\n\\n\\"A\\n\\n### Path\\n\\nYou can get the editor\'s current \\"path\\" of active states via `editor.root.path`. In the above example, the value would be `\\"root.select.idle\\"`.\\n\\nYou can check whether a path is active via `editor.isIn`, or else check whether multiple paths are active via `editor.isInAny`. \\n\\n```ts\\neditor.store.path // \'root.select.idle\'\\n\\neditor.isIn(\'root.select\') // true\\neditor.isIn(\'root.select.idle\') // true\\neditor.isIn(\'root.select.pointing_shape\') // false\\neditor.isInAny(\'editor.select.idle\', \'editor.select.pointing_shape\') // true\\n```\\n\\nNote that the paths you pass to `isIn` or `isInAny` can be the full path or a partial of the start of the path. For example, if the full path is `root.select.idle`, then `isIn` would return true for the paths `root`, `root.select`, or `root.select.idle`.\\n\\n> If all you\'re interested in is the state below `root`, there is a convenience property, `editor.currentToolId`, that can help with the editor\'s currently selected tool.\\n\\n```tsx\\nimport { track, useEditor } from \\"@tldraw/tldraw\\"\\n\\nexport const CreatingBubbleToolUi = track(() => {\\n const editor = useEditor()\\n\\n const isSelected = editor.isIn(\'root.bubble.creating\')\\n\\n if (!editor.currentToolId === \'bubble\') return\\n \\n return (\\n
Creating Bubble
\\n )\\n})\\n```\\n\\n## Inputs\\n\\nThe editor\'s `inputs` object holds information about the user\'s current input state, including their cursor position (in page space _and_ screen space), which keys are pressed, what their multi-click state is, and whether they are dragging, pointing, pinching, and so on.\\n\\nNote that the modifier keys include a short delay after being released in order to prevent certain errors when modeling interactions. For example, when a user releases the \\"Shift\\" key, `editor.inputs.shiftKey` will remain `true` for another 100 milliseconds or so.\\n\\nThis property is stored as regular data. It is not reactive. \\n\\n## Common things to do with the editor\\n\\n### Create shapes\\n\\n```ts\\neditor.createShapes([\\n {\\n id,\\n type: \'geo\',\\n x: 0,\\n y: 0,\\n props: {\\n geo: \'rectangle\',\\n w: 100,\\n h: 100,\\n dash: \'draw\',\\n color: \'blue\',\\n size: \'m\',\\n },\\n },\\n])\\n```\\n\\n### Update shapes\\n\\n```ts\\nconst shape = editor.selectedShapes[0]\\n\\neditor.updateShapes([\\n {\\n id: shape.id, // required\\n type: shape.type, // required\\n x: 100,\\n y: 100,\\n props: {\\n w: 200,\\n },\\n },\\n])\\n```\\n\\n### Delete shapes\\n\\n```ts\\nconst shape = editor.selectedShapes[0]\\n\\neditor.deleteShapes([shape.id])\\n```\\n\\n### Get a shape by its id\\n\\n```ts\\neditor.getShapeById(myShapeId)\\n```\\n\\n### Move the camera\\n\\n```ts\\neditor.setCamera(0, 0, 1)\\n```\\n\\n---\\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to use tldraw\'s Editor API to control the editor.","persistence":"\\nComing soon.\\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to use persistence with the `@tldraw/tldraw` or `@tldraw/editor` libraries.\\n","shapes":"\\nIn tldraw, **shapes** are the things that are on the canvas. This article is about shapes: what they are, how they work, and how to create your own shapes. If you\'d prefer to see an example, see the tldraw repository\'s [examples app](https://github.com/tldraw/tldraw/tree/main/apps/examples) for examples of how to create custom shapes in tldraw.\\n\\n## Custom shapes\\n\\nLet\'s create a custom \\"card\\" shape.\\n\\n### Shape type\\n\\nIn tldraw\'s data model, each shape is represented by a JSON object. Let\'s first create a type that describes what this object will look like. \\n\\n```ts\\nimport { TLBaseShape } from \'@tldraw/tldraw\'\\n\\ntype CardShape = TLBaseShape<\\n \'card\', \\n { w: number, h: number }\\n>\\n```\\n\\nWith the `TLBaseShape` helper, we define the shape\'s `type` property (`card`) and the shape\'s `props` property (`{ w: number, h: number }`). The type can be any string but the props must be a regular [JSON-serializable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#description) JavaScript object.\\n\\nThe `TLBaseShape` helper adds the other default properties of a shape, such as `parentId`, `x`, `y`, and `rotation`.\\n\\n### Shape Util\\n\\nWhile tldraw\'s shapes themselves are simple JSON objects, we use `ShapeUtil` classes to answer questions about shapes. For example, when the editor needs to know the bounding box of our card shape, it will find a `ShapeUtil` for the `card` type and call that util\'s `bounds` method, passing in the `CardShape` object as an argument.\\n\\nLet\'s create a `ShapeUtil` class for the shape.\\n\\n```tsx\\nimport { ShapeUtil, HTMLContainer } from \'@tldraw/tldraw\'\\n\\nclass CardShapeUtil extends ShapeUtil {\\n static type = \'card\' as const\\n\\n getDefaultProps(): CardShape[\'props\'] {\\n\\t\\treturn {\\n\\t\\t\\tw: 100,\\n\\t\\t\\th: 100,\\n\\t\\t}\\n\\t}\\n\\n getBounds(shape: Shape) {\\n\\t\\treturn new Box2d(0, 0, shape.props.w, shape.props.h)\\n\\t}\\n\\n component(shape: Shape) {\\n return (\\n Hello\\n )\\n }\\n\\n indicator(shape: Shape) {\\n return (\\n \\n )\\n }\\n}\\n```\\n\\nThis is a minimal `ShapeUtil`. We\'ve given it a static property `type` that matches the type of our shape, we\'ve provided implementations for the abstract methods `getDefaultProps`, `getBounds`, `component`, and `indicator`.\\n\\nWe still have work to do on the `CardShapeUtil` class, but we\'ll come back to it later. For now, let\'s put the shape onto the canvas by passing it to the `` component.\\n\\n### Defining the shape\\n\\nBefore we pass the shape down, we need to package it up in a way using the `defineShape` function. We can then create an array of our defined shapes and pass them into the `` component\'s `shapes` prop. \\n\\n```tsx\\nimport { Tldraw } from \'@tldraw/tldraw\'\\nimport \'@tldraw/tldraw/tldraw.css\'\\n\\nconst MyCardShape = defineShape(\'card\', { util: CardShapeUtil })\\nconst MyCustomShapes = [MyCardShape]\\n\\nexport default function () {\\n\\treturn (\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t)\\n}\\n```\\n\\nThe `defineShape` function can also be used to include a tool that we can use to create this type of shape. For now, let\'s create it using the `Editor` API.\\n\\n```tsx\\nexport default function () {\\n\\treturn (\\n\\t\\t
\\n\\t\\t\\t {\\n editor.createShapes([{ type: \\"card\\" }])\\n }}/>\\n\\t\\t
\\n\\t)\\n}\\n```\\n\\nOnce the page refreshes, we should now have our custom shape on the canvas.\\n\\n## Using starter shapes\\n\\nYou can use \\"starter\\" shape utils like `BaseBoxShapeUtil` to get regular rectangular shape behavior.\\n\\n> todo\\n\\n## Flags\\n\\nYou can use flags like `hideRotateHandle` to hide different parts of the UI when the shape is selected, or else to control different behaviors of the shape.\\n\\n> todo\\n\\n## Interaction\\n\\nYou can turn on `pointer-events` to allow users to interact inside of the shape.\\n\\n> todo\\n\\n## Editing\\n\\nYou can make shapes \\"editable\\" to help decide when they\'re interactive or not.\\n\\n> todo","tools":"\\nComing soon. \\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to create custom tools in tldraw.\\n","user-interface":"\\n## Events\\n\\nThe `` component has a prop, `onUiEvent`, that the user interface will call when certain events occur.\\n\\n```tsx\\nfunction Example() {\\n function handleEvent(name, data) {\\n // do something with the event\\n }\\n\\n return (\\n \\n )\\n}\\n```\\n\\nThe `onUiEvent` callback is called with the name of the event as a string and an object with information about the event\'s source (e.g. `menu` or `context-menu`) and possibly other data specific to each event, such as the direction in an `align-shapes` event.\\n\\nNote that `onUiEvent` is only called when interacting with the user interface. It is not called when running commands manually against the app, e.g. `editor.alignShapes()` will not call `onUiEvent`.\\n\\nSee the [tldraw repository](https://github.com/tldraw/tldraw/tree/main/apps/examples) for an example of how to customize tldraw\'s user interface.\\n","contributing":"\\nInterested in contributing to the open source project? \\n\\nYou can find tldraw on GitHub at [github.com/tldraw/tldraw](https://github.com/tldraw/tldraw). You can [create an issue](https://github.com/tldraw/tldraw/issues/new/choose) and submit pull requests for our review.\\n\\nPlease see our [Contributing guide](https://github.com/tldraw/tldraw/blob/main/CONTRIBUTING.md) for more information.\\n\\nPlease also see our [Code of Conduct](https://github.com/tldraw/tldraw/blob/main/CODE_OF_CONDUCT.md) for our expectations around contributor culture.","embeds":"\\nComing soon.\\n","translations":"\\nThe tldraw user interface (in [@tldraw/ui](/docs/user-interface)) is currently translated into over thirty different languages, with twenty languages at above 70% completion. Where a key\'s translation is missing in the user\'s current language language, the default (English) translation will be used instead.\\n\\nWe manage our translations through [Lokalise](https://www.lokalise.com), a long-time tldraw sponsor. If you would like to help by translating or reviewing translations, please let us know on [Discord](https://discord.gg/sKNgCZyrrf) so that we can add you to the project.\\n","ACCEPTED_ASSET_TYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_ASSET_TYPE: string\\n```\\n\\n","ACCEPTED_IMG_TYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_IMG_TYPE: string[]\\n```\\n\\n","ACCEPTED_VID_TYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_VID_TYPE: string[]\\n```\\n\\n","AllRecords-type":"Public TypeAlias\\n\\nGet the type of all records in a record store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype AllRecords> = ExtractR>\\n```\\n\\n##### References\\n\\n[Store](/gen/store/Store-class), [ExtractR](/gen/store/~ExtractR-type), [ExtractRecordType](/gen/store/~ExtractRecordType-type)\\n\\n","ArrowShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nArrowShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLArrowShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n","ArrowShapeArrowheadEndStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nArrowShapeArrowheadEndStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow\'\\n | \'bar\'\\n | \'diamond\'\\n | \'dot\'\\n | \'inverted\'\\n | \'none\'\\n | \'pipe\'\\n | \'square\'\\n | \'triangle\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","ArrowShapeArrowheadStartStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nArrowShapeArrowheadStartStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow\'\\n | \'bar\'\\n | \'diamond\'\\n | \'dot\'\\n | \'inverted\'\\n | \'none\'\\n | \'pipe\'\\n | \'square\'\\n | \'triangle\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","ArrowShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canBind](#ArrowShapeUtil-canBind-member)\\n - [canEdit](#ArrowShapeUtil-canEdit-member)\\n - [canSnap](#ArrowShapeUtil-canSnap-member)\\n - [hideResizeHandles](#ArrowShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#ArrowShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#ArrowShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#ArrowShapeUtil-hideSelectionBoundsFg-member)\\n - [isClosed](#ArrowShapeUtil-isClosed-member)\\n - [labelBoundsCache](#ArrowShapeUtil-labelBoundsCache-member)\\n - [onDoubleClickHandle](#ArrowShapeUtil-onDoubleClickHandle-member)\\n - [onEditEnd](#ArrowShapeUtil-onEditEnd-member)\\n - [onHandleChange](#ArrowShapeUtil-onHandleChange-member)\\n - [onResize](#ArrowShapeUtil-onResize-member)\\n - [onTranslateStart](#ArrowShapeUtil-onTranslateStart-member)\\n - [type](#ArrowShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#ArrowShapeUtil-component-member-1)\\n - [getArrowInfo](#ArrowShapeUtil-getArrowInfo-member-1)\\n - [getBounds](#ArrowShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#ArrowShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#ArrowShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#ArrowShapeUtil-getDefaultProps-member-1)\\n - [getHandles](#ArrowShapeUtil-getHandles-member-1)\\n - [getLabelBounds](#ArrowShapeUtil-getLabelBounds-member-1)\\n - [getOutline](#ArrowShapeUtil-getOutline-member-1)\\n - [getOutlineWithoutLabel](#ArrowShapeUtil-getOutlineWithoutLabel-member-1)\\n - [hitTestLineSegment](#ArrowShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#ArrowShapeUtil-hitTestPoint-member-1)\\n - [indicator](#ArrowShapeUtil-indicator-member-1)\\n - [snapPoints](#ArrowShapeUtil-snapPoints-member-1)\\n - [toSvg](#ArrowShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ArrowShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#ArrowShapeUtil-canBind-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `canEdit` \\\\{#ArrowShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `canSnap` \\\\{#ArrowShapeUtil-canSnap-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanSnap: () => boolean\\n```\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#ArrowShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#ArrowShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#ArrowShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#ArrowShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `isClosed` \\\\{#ArrowShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: () => boolean\\n```\\n\\n---\\n\\n### `labelBoundsCache` \\\\{#ArrowShapeUtil-labelBoundsCache-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget labelBoundsCache(): ComputedCache\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type), [Box2d](/gen/primitives/Box2d-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onDoubleClickHandle` \\\\{#ArrowShapeUtil-onDoubleClickHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickHandle: (\\n shape: TLArrowShape,\\n handle: TLHandle\\n) => TLShapePartial | void\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#ArrowShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onHandleChange` \\\\{#ArrowShapeUtil-onHandleChange-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange: TLOnHandleChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#ArrowShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `onTranslateStart` \\\\{#ArrowShapeUtil-onTranslateStart-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateStart: TLOnTranslateStartHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `type` \\\\{#ArrowShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'arrow\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#ArrowShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getArrowInfo()` \\\\{#ArrowShapeUtil-getArrowInfo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nArrowInfo | undefined\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [ArrowInfo](/gen/editor/~ArrowInfo-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#ArrowShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#ArrowShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#ArrowShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#ArrowShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLArrowShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type)\\n\\n---\\n\\n### `getHandles()` \\\\{#ArrowShapeUtil-getHandles-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getLabelBounds()` \\\\{#ArrowShapeUtil-getLabelBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | null\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getOutline()` \\\\{#ArrowShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineWithoutLabel()` \\\\{#ArrowShapeUtil-getOutlineWithoutLabel-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#ArrowShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#ArrowShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#ArrowShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `snapPoints()` \\\\{#ArrowShapeUtil-snapPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `toSvg()` \\\\{#ArrowShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","AssetRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nAssetRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n","BaseBoxShapeTool-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [children](#BaseBoxShapeTool-children-member)\\n - [id](#BaseBoxShapeTool-id-member)\\n - [initial](#BaseBoxShapeTool-initial-member)\\n - [shapeType](#BaseBoxShapeTool-shapeType-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class BaseBoxShapeTool extends StateNode {}\\n```\\n\\n##### References\\n\\n[StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#BaseBoxShapeTool-children-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic children: () => (typeof Idle | typeof Pointing)[]\\n```\\n\\n##### References\\n\\n[Idle](/gen/editor/~Idle_4-class), [Pointing](/gen/editor/~Pointing_2-class)\\n\\n---\\n\\n### `id` \\\\{#BaseBoxShapeTool-id-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic id: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#BaseBoxShapeTool-initial-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic initial: string\\n```\\n\\n---\\n\\n### `shapeType` \\\\{#BaseBoxShapeTool-shapeType-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nabstract shapeType: TLShapeUtilConstructor\\n```\\n\\n##### References\\n\\n[TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface)\\n\\n---\\n\\n","BaseBoxShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [onResize](#BaseBoxShapeUtil-onResize-member)\\n- [Methods](#methods)\\n - [getBounds](#BaseBoxShapeUtil-getBounds-member-1)\\n - [getCenter](#BaseBoxShapeUtil-getCenter-member-1)\\n - [getOutline](#BaseBoxShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#BaseBoxShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#BaseBoxShapeUtil-hitTestPoint-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class BaseBoxShapeUtil<\\n Shape extends TLBaseBoxShape\\n> extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[TLBaseBoxShape](/gen/editor/TLBaseBoxShape-type), [ShapeUtil](/gen/editor/ShapeUtil-class)\\n\\n---\\n\\n## Properties\\n\\n### `onResize` \\\\{#BaseBoxShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)\\n\\n---\\n\\n## Methods\\n\\n### `getBounds()` \\\\{#BaseBoxShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#BaseBoxShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutline()` \\\\{#BaseBoxShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#BaseBoxShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#BaseBoxShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n","BaseRecord-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [id](#BaseRecord-id-member)\\n - [typeName](#BaseRecord-typeName-member)\\n
\\n\\nThe base record that all records must extend.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface BaseRecord<\\n TypeName extends string,\\n Id extends RecordId\\n> {}\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n## Properties\\n\\n### `id` \\\\{#BaseRecord-id-member}\\n\\nPublic Readonly PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: Id\\n```\\n\\n---\\n\\n### `typeName` \\\\{#BaseRecord-typeName-member}\\n\\nPublic Readonly PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly typeName: TypeName\\n```\\n\\n---\\n\\n","BookmarkShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nBookmarkShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLBookmarkShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n","BookmarkShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canResize](#BookmarkShapeUtil-canResize-member)\\n - [hideSelectionBoundsBg](#BookmarkShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#BookmarkShapeUtil-hideSelectionBoundsFg-member)\\n - [onBeforeCreate](#BookmarkShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#BookmarkShapeUtil-onBeforeUpdate-member)\\n - [type](#BookmarkShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#BookmarkShapeUtil-component-member-1)\\n - [getDefaultProps](#BookmarkShapeUtil-getDefaultProps-member-1)\\n - [indicator](#BookmarkShapeUtil-indicator-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass BookmarkShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canResize` \\\\{#BookmarkShapeUtil-canResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#BookmarkShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#BookmarkShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#BookmarkShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate?: TLOnBeforeCreateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeCreateHandler](/gen/editor/TLOnBeforeCreateHandler-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#BookmarkShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate?: TLOnBeforeUpdateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeUpdateHandler](/gen/editor/TLOnBeforeUpdateHandler-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n### `type` \\\\{#BookmarkShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'bookmark\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#BookmarkShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLBookmarkShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#BookmarkShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLBookmarkShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#BookmarkShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLBookmarkShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","Box2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [aspectRatio](#Box2d-aspectRatio-member)\\n - [center](#Box2d-center-member)\\n - [Collides](#Box2d-Collides-member)\\n - [Common](#Box2d-Common-member)\\n - [Contains](#Box2d-Contains-member)\\n - [ContainsPoint](#Box2d-ContainsPoint-member)\\n - [corners](#Box2d-corners-member)\\n - [h](#Box2d-h-member)\\n - [height](#Box2d-height-member)\\n - [Includes](#Box2d-Includes-member)\\n - [maxX](#Box2d-maxX-member)\\n - [maxY](#Box2d-maxY-member)\\n - [midX](#Box2d-midX-member)\\n - [midY](#Box2d-midY-member)\\n - [minX](#Box2d-minX-member)\\n - [minY](#Box2d-minY-member)\\n - [point](#Box2d-point-member)\\n - [sides](#Box2d-sides-member)\\n - [Sides](#Box2d-Sides-member)\\n - [size](#Box2d-size-member)\\n - [snapPoints](#Box2d-snapPoints-member)\\n - [w](#Box2d-w-member)\\n - [width](#Box2d-width-member)\\n - [x](#Box2d-x-member)\\n - [y](#Box2d-y-member)\\n- [Methods](#methods)\\n - [clone](#Box2d-clone-member-1)\\n - [collides](#Box2d-collides-member-1)\\n - [contains](#Box2d-contains-member-1)\\n - [containsPoint](#Box2d-containsPoint-member-1)\\n - [equals](#Box2d-equals-member-1)\\n - [Equals](#Box2d-Equals-member-1)\\n - [expand](#Box2d-expand-member-1)\\n - [Expand](#Box2d-Expand-member-1)\\n - [expandBy](#Box2d-expandBy-member-1)\\n - [ExpandBy](#Box2d-ExpandBy-member-1)\\n - [From](#Box2d-From-member-1)\\n - [FromPoints](#Box2d-FromPoints-member-1)\\n - [getHandlePoint](#Box2d-getHandlePoint-member-1)\\n - [includes](#Box2d-includes-member-1)\\n - [resize](#Box2d-resize-member-1)\\n - [Resize](#Box2d-Resize-member-1)\\n - [scale](#Box2d-scale-member-1)\\n - [set](#Box2d-set-member-1)\\n - [setTo](#Box2d-setTo-member-1)\\n - [snapToGrid](#Box2d-snapToGrid-member-1)\\n - [toFixed](#Box2d-toFixed-member-1)\\n - [toJson](#Box2d-toJson-member-1)\\n - [translate](#Box2d-translate-member-1)\\n - [union](#Box2d-union-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Box2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Box2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`w`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`h`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n---\\n\\n## Properties\\n\\n### `aspectRatio` \\\\{#Box2d-aspectRatio-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget aspectRatio(): number\\n```\\n\\n---\\n\\n### `center` \\\\{#Box2d-center-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget center(): Vec2d\\n\\nset center(v: Vec2d)\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Collides` \\\\{#Box2d-Collides-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Collides: (A: Box2d, B: Box2d) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `Common` \\\\{#Box2d-Common-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Common: (boxes: Box2d[]) => Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `Contains` \\\\{#Box2d-Contains-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Contains: (A: Box2d, B: Box2d) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `ContainsPoint` \\\\{#Box2d-ContainsPoint-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic ContainsPoint: (A: Box2d, B: number | VecLike, y?: number) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `corners` \\\\{#Box2d-corners-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget corners(): Vec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `h` \\\\{#Box2d-h-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nh: number\\n```\\n\\n---\\n\\n### `height` \\\\{#Box2d-height-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget height(): number\\n\\nset height(n: number)\\n```\\n\\n---\\n\\n### `Includes` \\\\{#Box2d-Includes-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Includes: (A: Box2d, B: Box2d) => boolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `maxX` \\\\{#Box2d-maxX-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget maxX(): number\\n```\\n\\n---\\n\\n### `maxY` \\\\{#Box2d-maxY-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget maxY(): number\\n```\\n\\n---\\n\\n### `midX` \\\\{#Box2d-midX-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget midX(): number\\n```\\n\\n---\\n\\n### `midY` \\\\{#Box2d-midY-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget midY(): number\\n```\\n\\n---\\n\\n### `minX` \\\\{#Box2d-minX-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget minX(): number\\n\\nset minX(n: number)\\n```\\n\\n---\\n\\n### `minY` \\\\{#Box2d-minY-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget minY(): number\\n\\nset minY(n: number)\\n```\\n\\n---\\n\\n### `point` \\\\{#Box2d-point-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget point(): Vec2d\\n\\nset point(val: Vec2d)\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `sides` \\\\{#Box2d-sides-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget sides(): Array<[Vec2d, Vec2d]>\\n```\\n\\n##### References\\n\\n[Array](/gen/Array-interface), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Sides` \\\\{#Box2d-Sides-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Sides: (A: Box2d, inset?: number) => Vec2d[][]\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `size` \\\\{#Box2d-size-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget size(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `snapPoints` \\\\{#Box2d-snapPoints-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget snapPoints(): Vec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `w` \\\\{#Box2d-w-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nw: number\\n```\\n\\n---\\n\\n### `width` \\\\{#Box2d-width-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nget width(): number\\n\\nset width(n: number)\\n```\\n\\n---\\n\\n### `x` \\\\{#Box2d-x-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Box2d-y-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `clone()` \\\\{#Box2d-clone-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `collides()` \\\\{#Box2d-collides-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `contains()` \\\\{#Box2d-contains-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `containsPoint()` \\\\{#Box2d-containsPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nnumber | VecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `equals()` \\\\{#Box2d-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`other`\\n\\n\\n\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `Equals()` \\\\{#Box2d-Equals-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `expand()` \\\\{#Box2d-expand-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `Expand()` \\\\{#Box2d-Expand-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `expandBy()` \\\\{#Box2d-expandBy-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `ExpandBy()` \\\\{#Box2d-ExpandBy-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `From()` \\\\{#Box2d-From-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `FromPoints()` \\\\{#Box2d-FromPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getHandlePoint()` \\\\{#Box2d-getHandlePoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionCorner | SelectionEdge\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `includes()` \\\\{#Box2d-includes-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `resize()` \\\\{#Box2d-resize-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionCorner | SelectionEdge | string\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n---\\n\\n### `Resize()` \\\\{#Box2d-Resize-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionCorner | SelectionEdge | string\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`isAspectRatioLocked`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n box: Box2d\\n scaleX: number\\n scaleY: number\\n}\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class), [SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n---\\n\\n### `scale()` \\\\{#Box2d-scale-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `set()` \\\\{#Box2d-set-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`w`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`h`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Box2d-setTo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `snapToGrid()` \\\\{#Box2d-snapToGrid-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`size`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `toFixed()` \\\\{#Box2d-toFixed-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `toJson()` \\\\{#Box2d-toJson-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nBox2dModel\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `translate()` \\\\{#Box2d-translate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `union()` \\\\{#Box2d-union-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n","Box2dModel-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [h](#Box2dModel-h-member)\\n - [w](#Box2dModel-w-member)\\n - [x](#Box2dModel-x-member)\\n - [y](#Box2dModel-y-member)\\n
\\n\\nA serializable model for 2D boxes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Box2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `h` \\\\{#Box2dModel-h-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nh: number\\n```\\n\\n---\\n\\n### `w` \\\\{#Box2dModel-w-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nw: number\\n```\\n\\n---\\n\\n### `x` \\\\{#Box2dModel-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Box2dModel-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","BreakPointProvider-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","Button-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nButton: React.ForwardRefExoticComponent<\\n TLUiButtonProps & React.RefAttributes\\n>\\n```\\n\\n##### References\\n\\n[React.ForwardRefExoticComponent](/gen/@types/react-React-ForwardRefExoticComponent-interface), [TLUiButtonProps](/gen/ui/TLUiButtonProps-interface), [React.RefAttributes](/gen/@types/react-React-RefAttributes-interface), [HTMLButtonElement](/gen/HTMLButtonElement-interface)\\n\\n","CameraRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nCameraRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n","Canvas-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nCanvas: React.MemoExoticComponent<() => JSX.Element>\\n```\\n\\n##### References\\n\\n[React.MemoExoticComponent](/gen/@types/react-React-MemoExoticComponent-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","CollectionDiff-type":"Public TypeAlias\\n\\nA diff describing the changes to a collection.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype CollectionDiff = {\\n added?: Set\\n removed?: Set\\n}\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface)\\n\\n","ComputedCache-type":"Public TypeAlias\\n\\nA record store is a collection of records of different types.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype ComputedCache = {\\n get(id: IdOf): Data | undefined\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [IdOf](/gen/store/IdOf-type)\\n\\n","ContextMenu-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nContextMenu: ({ children }: { children: any }) => JSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","CubicSegment2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [[Symbol.iterator]](#CubicSegment2d-[Symbol-iterator]-member)\\n- [Methods](#methods)\\n - [getPath](#CubicSegment2d-getPath-member-1)\\n - [getPoint](#CubicSegment2d-getPoint-member-1)\\n - [getX](#CubicSegment2d-getX-member-1)\\n - [getY](#CubicSegment2d-getY-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass CubicSegment2d extends BaseSegment2d {}\\n```\\n\\n##### References\\n\\n[BaseSegment2d](/gen/primitives/~BaseSegment2d-class), [CubicSegment2dModel](/gen/primitives/CubicSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `CubicSegment2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`d`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `[Symbol.iterator]` \\\\{#CubicSegment2d-[Symbol-iterator]-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\n[Symbol.iterator]: (\\n this: InstanceType\\n) => Generator\\n```\\n\\n##### References\\n\\n[Symbol.iterator](/gen/SymbolConstructor-iterator), [InstanceType](/gen/InstanceType-type), [CubicSegment2d](/gen/primitives/CubicSegment2d-class), [Generator](/gen/Generator-interface), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Methods\\n\\n### `getPath()` \\\\{#CubicSegment2d-getPath-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`head`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `getPoint()` \\\\{#CubicSegment2d-getPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getX()` \\\\{#CubicSegment2d-getX-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `getY()` \\\\{#CubicSegment2d-getY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n","CubicSegment2dModel-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [a](#CubicSegment2dModel-a-member)\\n - [b](#CubicSegment2dModel-b-member)\\n - [c](#CubicSegment2dModel-c-member)\\n - [d](#CubicSegment2dModel-d-member)\\n - [p](#CubicSegment2dModel-p-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface CubicSegment2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#CubicSegment2dModel-a-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\na: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `b` \\\\{#CubicSegment2dModel-b-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nb: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `c` \\\\{#CubicSegment2dModel-c-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nc: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `d` \\\\{#CubicSegment2dModel-d-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nd: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `p` \\\\{#CubicSegment2dModel-p-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\np: number\\n```\\n\\n---\\n\\n","CubicSpline2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [segments](#CubicSpline2d-segments-member)\\n- [Methods](#methods)\\n - [FromPoints](#CubicSpline2d-FromPoints-member-1)\\n - [getSegmentsFromPoints](#CubicSpline2d-getSegmentsFromPoints-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass CubicSpline2d extends BaseSpline2d {}\\n```\\n\\n##### References\\n\\n[BaseSpline2d](/gen/primitives/~BaseSpline2d-class), [CubicSegment2dModel](/gen/primitives/CubicSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `CubicSpline2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`k`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `segments` \\\\{#CubicSpline2d-segments-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nsegments: CubicSegment2d[]\\n```\\n\\n##### References\\n\\n[CubicSegment2d](/gen/primitives/CubicSegment2d-class)\\n\\n---\\n\\n## Methods\\n\\n### `FromPoints()` \\\\{#CubicSpline2d-FromPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nCubicSpline2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [CubicSpline2d](/gen/primitives/CubicSpline2d-class)\\n\\n---\\n\\n### `getSegmentsFromPoints()` \\\\{#CubicSpline2d-getSegmentsFromPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`k`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nCubicSegment2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [CubicSegment2d](/gen/primitives/CubicSegment2d-class)\\n\\n---\\n\\n","DefaultColorStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultColorStyle: import(\'./StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultColorThemePalette-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultColorThemePalette: {\\n lightMode: TLDefaultColorTheme\\n darkMode: TLDefaultColorTheme\\n}\\n```\\n\\n##### References\\n\\n[TLDefaultColorTheme](/gen/tlschema/TLDefaultColorTheme-type)\\n\\n","DefaultDashStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultDashStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultFillStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultFillStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultFontFamilies-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultFontFamilies: {\\n draw: string\\n sans: string\\n serif: string\\n mono: string\\n}\\n```\\n\\n","DefaultFontStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultFontStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultHorizontalAlignStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultHorizontalAlignStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'end-legacy\' | \'end\' | \'middle-legacy\' | \'middle\' | \'start-legacy\' | \'start\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultSizeStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultSizeStyle: import(\'./StyleProp\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","DefaultVerticalAlignStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDefaultVerticalAlignStyle: import(\'./StyleProp\').EnumStyleProp<\\n \'end\' | \'middle\' | \'start\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","Dialog-namespace":"None Namespace\\n\\n
\\n\\tTable of Contents\\n- [Methods](#methods)\\n - [Body](#Dialog-Body-function-1)\\n - [CloseButton](#Dialog-CloseButton-function-1)\\n - [Footer](#Dialog-Footer-function-1)\\n - [Header](#Dialog-Header-function-1)\\n - [Title](#Dialog-Title-function-1)\\n
\\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Methods\\n\\n### `Body` \\\\{#Dialog-Body-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children, style, }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n style?: React.CSSProperties\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[React.CSSProperties](/gen/@types/react-React-CSSProperties-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `CloseButton` \\\\{#Dialog-CloseButton-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Footer` \\\\{#Dialog-Footer-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Header` \\\\{#Dialog-Header-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Title` \\\\{#Dialog-Title-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ className, children }`\\n\\n\\n\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","DocumentRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDocumentRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n","DrawShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDrawShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLDrawShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n","DrawShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [hideResizeHandles](#DrawShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#DrawShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#DrawShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#DrawShapeUtil-hideSelectionBoundsFg-member)\\n - [isClosed](#DrawShapeUtil-isClosed-member)\\n - [onResize](#DrawShapeUtil-onResize-member)\\n - [type](#DrawShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#DrawShapeUtil-component-member-1)\\n - [expandSelectionOutlinePx](#DrawShapeUtil-expandSelectionOutlinePx-member-1)\\n - [getBounds](#DrawShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#DrawShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#DrawShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#DrawShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#DrawShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#DrawShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#DrawShapeUtil-hitTestPoint-member-1)\\n - [indicator](#DrawShapeUtil-indicator-member-1)\\n - [toSvg](#DrawShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass DrawShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `hideResizeHandles` \\\\{#DrawShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#DrawShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#DrawShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#DrawShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `isClosed` \\\\{#DrawShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: (shape: TLDrawShape) => boolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#DrawShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `type` \\\\{#DrawShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'draw\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#DrawShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `expandSelectionOutlinePx()` \\\\{#DrawShapeUtil-expandSelectionOutlinePx-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#DrawShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#DrawShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#DrawShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#DrawShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLDrawShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#DrawShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#DrawShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#DrawShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#DrawShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#DrawShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLDrawShape](/gen/tlschema/TLDrawShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","DropdownMenu-namespace":"None Namespace\\n\\n
\\n\\tTable of Contents\\n- [Methods](#methods)\\n - [CheckboxItem](#DropdownMenu-CheckboxItem-function-1)\\n - [Content](#DropdownMenu-Content-function-1)\\n - [Group](#DropdownMenu-Group-function-1)\\n - [Indicator](#DropdownMenu-Indicator-function-1)\\n - [Item](#DropdownMenu-Item-function-1)\\n - [RadioItem](#DropdownMenu-RadioItem-function-1)\\n - [Root](#DropdownMenu-Root-function-1)\\n - [Sub](#DropdownMenu-Sub-function-1)\\n - [SubContent](#DropdownMenu-SubContent-function-1)\\n - [SubTrigger](#DropdownMenu-SubTrigger-function-1)\\n - [Trigger](#DropdownMenu-Trigger-function-1)\\n
\\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Methods\\n\\n### `CheckboxItem` \\\\{#DropdownMenu-CheckboxItem-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, onSelect, ...rest }`\\n\\n\\n\\n\\n```ts\\nDropdownMenuCheckboxItemProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[DropdownMenuCheckboxItemProps](/gen/ui/DropdownMenu-DropdownMenuCheckboxItemProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Content` \\\\{#DropdownMenu-Content-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ side, align, sideOffset, alignOffset, children, }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n alignOffset?: number\\n sideOffset?: number\\n align?: \'center\' | \'end\' | \'start\'\\n side?: \'bottom\' | \'left\' | \'right\' | \'top\'\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Group` \\\\{#DropdownMenu-Group-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, size, }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n size?: \'medium\' | \'small\' | \'tiny\' | \'wide\'\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Indicator` \\\\{#DropdownMenu-Indicator-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Item` \\\\{#DropdownMenu-Item-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ noClose, ...props }`\\n\\n\\n\\n\\n```ts\\nDropdownMenuItemProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[DropdownMenuItemProps](/gen/ui/DropdownMenu-DropdownMenuItemProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `RadioItem` \\\\{#DropdownMenu-RadioItem-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, onSelect, ...rest }`\\n\\n\\n\\n\\n```ts\\nDropdownMenuCheckboxItemProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[DropdownMenuCheckboxItemProps](/gen/ui/DropdownMenu-DropdownMenuCheckboxItemProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Root` \\\\{#DropdownMenu-Root-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ id, children, modal, }`\\n\\n\\n\\n\\n```ts\\n{\\n id: string\\n children: any\\n modal?: boolean\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Sub` \\\\{#DropdownMenu-Sub-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ id, children }`\\n\\n\\n\\n\\n```ts\\n{\\n id: string\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `SubContent` \\\\{#DropdownMenu-SubContent-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ alignOffset, sideOffset, children, }`\\n\\n\\n\\n\\n```ts\\n{\\n alignOffset?: number\\n sideOffset?: number\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `SubTrigger` \\\\{#DropdownMenu-SubTrigger-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ label, \'data-testid\': testId, \'data-direction\': dataDirection, }`\\n\\n\\n\\n\\n```ts\\n{\\n label: TLUiTranslationKey\\n \'data-testid\'?: string\\n \'data-direction\'?: \'left\' | \'right\'\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `Trigger` \\\\{#DropdownMenu-Trigger-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, \'data-testid\': testId, }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n \'data-testid\'?: string\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","EASINGS-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEASINGS: {\\n readonly linear: (t: number) => number\\n readonly easeInQuad: (t: number) => number\\n readonly easeOutQuad: (t: number) => number\\n readonly easeInOutQuad: (t: number) => number\\n readonly easeInCubic: (t: number) => number\\n readonly easeOutCubic: (t: number) => number\\n readonly easeInOutCubic: (t: number) => number\\n readonly easeInQuart: (t: number) => number\\n readonly easeOutQuart: (t: number) => number\\n readonly easeInOutQuart: (t: number) => number\\n readonly easeInQuint: (t: number) => number\\n readonly easeOutQuint: (t: number) => number\\n readonly easeInOutQuint: (t: number) => number\\n readonly easeInSine: (t: number) => number\\n readonly easeOutSine: (t: number) => number\\n readonly easeInOutSine: (t: number) => number\\n readonly easeInExpo: (t: number) => number\\n readonly easeOutExpo: (t: number) => number\\n readonly easeInOutExpo: (t: number) => number\\n}\\n```\\n\\n","EMBED_DEFINITIONS-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEMBED_DEFINITIONS: readonly [\\n {\\n readonly type: \'tldraw\'\\n readonly title: \'tldraw\'\\n readonly hostnames: readonly [\\n \'beta.tldraw.com\',\\n \'lite.tldraw.com\',\\n \'www.tldraw.com\'\\n ]\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'codesandbox\'\\n readonly title: \'CodeSandbox\'\\n readonly hostnames: readonly [\'codesandbox.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'codepen\'\\n readonly title: \'Codepen\'\\n readonly hostnames: readonly [\'codepen.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'scratch\'\\n readonly title: \'Scratch\'\\n readonly hostnames: readonly [\'scratch.mit.edu\']\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: false\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'youtube\'\\n readonly title: \'YouTube\'\\n readonly hostnames: readonly [\'*.youtube.com\', \'youtube.com\', \'youtu.be\']\\n readonly width: 800\\n readonly height: 450\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly overridePermissions: {\\n readonly \'allow-presentation\': true\\n }\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'figma\'\\n readonly title: \'Figma\'\\n readonly hostnames: readonly [\'figma.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'google_maps\'\\n readonly title: \'Google Maps\'\\n readonly hostnames: readonly [\'google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'google_calendar\'\\n readonly title: \'Google Calendar\'\\n readonly hostnames: readonly [\'calendar.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly instructionLink: \'https://support.google.com/calendar/answer/41207?hl=en\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'google_slides\'\\n readonly title: \'Google Slides\'\\n readonly hostnames: readonly [\'docs.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'github_gist\'\\n readonly title: \'GitHub Gist\'\\n readonly hostnames: readonly [\'gist.github.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'replit\'\\n readonly title: \'Replit\'\\n readonly hostnames: readonly [\'replit.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'felt\'\\n readonly title: \'Felt\'\\n readonly hostnames: readonly [\'felt.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'spotify\'\\n readonly title: \'Spotify\'\\n readonly hostnames: readonly [\'open.spotify.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly minHeight: 500\\n readonly overrideOutlineRadius: 12\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'vimeo\'\\n readonly title: \'Vimeo\'\\n readonly hostnames: readonly [\'vimeo.com\', \'player.vimeo.com\']\\n readonly width: 640\\n readonly height: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'excalidraw\'\\n readonly title: \'Excalidraw\'\\n readonly hostnames: readonly [\'excalidraw.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n },\\n {\\n readonly type: \'observable\'\\n readonly title: \'Observable\'\\n readonly hostnames: readonly [\'observablehq.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: false\\n readonly backgroundColor: \'#fff\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n]\\n```\\n\\n","EPSILON-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEPSILON: number\\n```\\n\\n","EVENT_NAME_MAP-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEVENT_NAME_MAP: Record<\\n Exclude,\\n keyof TLEventHandlers\\n>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [Exclude](/gen/Exclude-type), [TLEventName](/gen/editor/TLEventName-type), [TLPinchEventName](/gen/editor/TLPinchEventName-type), [TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n","EasingType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype EasingType = keyof typeof EASINGS\\n```\\n\\n##### References\\n\\n[EASINGS](/gen/primitives/EASINGS-var)\\n\\n","Editor-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [allShapesCommonBounds](#Editor-allShapesCommonBounds-member)\\n - [animationSpeed](#Editor-animationSpeed-member)\\n - [assets](#Editor-assets-member)\\n - [brush](#Editor-brush-member)\\n - [camera](#Editor-camera-member)\\n - [cameraState](#Editor-cameraState-member)\\n - [canMoveCamera](#Editor-canMoveCamera-member)\\n - [canRedo](#Editor-canRedo-member)\\n - [canUndo](#Editor-canUndo-member)\\n - [croppingId](#Editor-croppingId-member)\\n - [currentPage](#Editor-currentPage-member)\\n - [currentPageId](#Editor-currentPageId-member)\\n - [currentPageShapeIds](#Editor-currentPageShapeIds-member)\\n - [currentToolId](#Editor-currentToolId-member)\\n - [cursor](#Editor-cursor-member)\\n - [devicePixelRatio](#Editor-devicePixelRatio-member)\\n - [disposables](#Editor-disposables-member)\\n - [documentSettings](#Editor-documentSettings-member)\\n - [editingId](#Editor-editingId-member)\\n - [editingShape](#Editor-editingShape-member)\\n - [erasingIds](#Editor-erasingIds-member)\\n - [erasingIdsSet](#Editor-erasingIdsSet-member)\\n - [externalContentManager](#Editor-externalContentManager-member)\\n - [focusLayerId](#Editor-focusLayerId-member)\\n - [focusLayerShape](#Editor-focusLayerShape-member)\\n - [getContainer](#Editor-getContainer-member)\\n - [gridSize](#Editor-gridSize-member)\\n - [hintingIds](#Editor-hintingIds-member)\\n - [history](#Editor-history-member)\\n - [hoveredId](#Editor-hoveredId-member)\\n - [hoveredShape](#Editor-hoveredShape-member)\\n - [inputs](#Editor-inputs-member)\\n - [instanceState](#Editor-instanceState-member)\\n - [isChangingStyle](#Editor-isChangingStyle-member)\\n - [isChromeForIos](#Editor-isChromeForIos-member)\\n - [isCoarsePointer](#Editor-isCoarsePointer-member)\\n - [isDarkMode](#Editor-isDarkMode-member)\\n - [isFocused](#Editor-isFocused-member)\\n - [isFocusMode](#Editor-isFocusMode-member)\\n - [isGridMode](#Editor-isGridMode-member)\\n - [isIos](#Editor-isIos-member)\\n - [isMenuOpen](#Editor-isMenuOpen-member)\\n - [isPenMode](#Editor-isPenMode-member)\\n - [isReadOnly](#Editor-isReadOnly-member)\\n - [isSafari](#Editor-isSafari-member)\\n - [isSnapMode](#Editor-isSnapMode-member)\\n - [isToolLocked](#Editor-isToolLocked-member)\\n - [locale](#Editor-locale-member)\\n - [onlySelectedShape](#Editor-onlySelectedShape-member)\\n - [openMenus](#Editor-openMenus-member)\\n - [pages](#Editor-pages-member)\\n - [pageState](#Editor-pageState-member)\\n - [renderingBounds](#Editor-renderingBounds-member)\\n - [renderingBoundsExpanded](#Editor-renderingBoundsExpanded-member)\\n - [renderingShapes](#Editor-renderingShapes-member)\\n - [root](#Editor-root-member)\\n - [scribble](#Editor-scribble-member)\\n - [selectedIds](#Editor-selectedIds-member)\\n - [selectedIdsSet](#Editor-selectedIdsSet-member)\\n - [selectedPageBounds](#Editor-selectedPageBounds-member)\\n - [selectedShapes](#Editor-selectedShapes-member)\\n - [selectionBounds](#Editor-selectionBounds-member)\\n - [selectionPageCenter](#Editor-selectionPageCenter-member)\\n - [selectionRotation](#Editor-selectionRotation-member)\\n - [shapesArray](#Editor-shapesArray-member)\\n - [shapeUtils](#Editor-shapeUtils-member)\\n - [sharedOpacity](#Editor-sharedOpacity-member)\\n - [sharedStyles](#Editor-sharedStyles-member)\\n - [snaps](#Editor-snaps-member)\\n - [sortedShapesArray](#Editor-sortedShapesArray-member)\\n - [store](#Editor-store-member)\\n - [textMeasure](#Editor-textMeasure-member)\\n - [user](#Editor-user-member)\\n - [viewportPageBounds](#Editor-viewportPageBounds-member)\\n - [viewportPageCenter](#Editor-viewportPageCenter-member)\\n - [viewportScreenBounds](#Editor-viewportScreenBounds-member)\\n - [viewportScreenCenter](#Editor-viewportScreenCenter-member)\\n - [zoomBrush](#Editor-zoomBrush-member)\\n - [zoomLevel](#Editor-zoomLevel-member)\\n- [Methods](#methods)\\n - [addOpenMenu](#Editor-addOpenMenu-member-1)\\n - [alignShapes](#Editor-alignShapes-member-1)\\n - [animateCamera](#Editor-animateCamera-member-1)\\n - [animateShapes](#Editor-animateShapes-member-1)\\n - [animateToShape](#Editor-animateToShape-member-1)\\n - [animateToUser](#Editor-animateToUser-member-1)\\n - [bail](#Editor-bail-member-1)\\n - [bailToMark](#Editor-bailToMark-member-1)\\n - [batch](#Editor-batch-member-1)\\n - [blur](#Editor-blur-member-1)\\n - [bringForward](#Editor-bringForward-member-1)\\n - [bringToFront](#Editor-bringToFront-member-1)\\n - [cancel](#Editor-cancel-member-1)\\n - [cancelDoubleClick](#Editor-cancelDoubleClick-member-1)\\n - [centerOnPoint](#Editor-centerOnPoint-member-1)\\n - [complete](#Editor-complete-member-1)\\n - [createAssets](#Editor-createAssets-member-1)\\n - [createPage](#Editor-createPage-member-1)\\n - [createShapes](#Editor-createShapes-member-1)\\n - [deleteAssets](#Editor-deleteAssets-member-1)\\n - [deleteOpenMenu](#Editor-deleteOpenMenu-member-1)\\n - [deletePage](#Editor-deletePage-member-1)\\n - [deleteShapes](#Editor-deleteShapes-member-1)\\n - [deselect](#Editor-deselect-member-1)\\n - [dispatch](#Editor-dispatch-member-1)\\n - [dispose](#Editor-dispose-member-1)\\n - [distributeShapes](#Editor-distributeShapes-member-1)\\n - [duplicatePage](#Editor-duplicatePage-member-1)\\n - [duplicateShapes](#Editor-duplicateShapes-member-1)\\n - [findAncestor](#Editor-findAncestor-member-1)\\n - [findCommonAncestor](#Editor-findCommonAncestor-member-1)\\n - [flipShapes](#Editor-flipShapes-member-1)\\n - [focus](#Editor-focus-member-1)\\n - [getAncestorPageId](#Editor-getAncestorPageId-member-1)\\n - [getAncestors](#Editor-getAncestors-member-1)\\n - [getAncestorsById](#Editor-getAncestorsById-member-1)\\n - [getArrowsBoundTo](#Editor-getArrowsBoundTo-member-1)\\n - [getAssetById](#Editor-getAssetById-member-1)\\n - [getAssetBySrc](#Editor-getAssetBySrc-member-1)\\n - [getBounds](#Editor-getBounds-member-1)\\n - [getBoundsById](#Editor-getBoundsById-member-1)\\n - [getClipPathById](#Editor-getClipPathById-member-1)\\n - [getContent](#Editor-getContent-member-1)\\n - [getDeltaInParentSpace](#Editor-getDeltaInParentSpace-member-1)\\n - [getDeltaInShapeSpace](#Editor-getDeltaInShapeSpace-member-1)\\n - [getDroppingShape](#Editor-getDroppingShape-member-1)\\n - [getHandles](#Editor-getHandles-member-1)\\n - [getHandlesById](#Editor-getHandlesById-member-1)\\n - [getHighestIndexForParent](#Editor-getHighestIndexForParent-member-1)\\n - [getMaskedPageBounds](#Editor-getMaskedPageBounds-member-1)\\n - [getMaskedPageBoundsById](#Editor-getMaskedPageBoundsById-member-1)\\n - [getOutermostSelectableShape](#Editor-getOutermostSelectableShape-member-1)\\n - [getOutline](#Editor-getOutline-member-1)\\n - [getOutlineById](#Editor-getOutlineById-member-1)\\n - [getOutlineSegments](#Editor-getOutlineSegments-member-1)\\n - [getOutlineSegmentsById](#Editor-getOutlineSegmentsById-member-1)\\n - [getPageBounds](#Editor-getPageBounds-member-1)\\n - [getPageBoundsById](#Editor-getPageBoundsById-member-1)\\n - [getPageById](#Editor-getPageById-member-1)\\n - [getPageCenter](#Editor-getPageCenter-member-1)\\n - [getPageCenterById](#Editor-getPageCenterById-member-1)\\n - [getPageCorners](#Editor-getPageCorners-member-1)\\n - [getPageInfoById](#Editor-getPageInfoById-member-1)\\n - [getPageMaskById](#Editor-getPageMaskById-member-1)\\n - [getPagePointById](#Editor-getPagePointById-member-1)\\n - [getPageRotation](#Editor-getPageRotation-member-1)\\n - [getPageRotationById](#Editor-getPageRotationById-member-1)\\n - [getPageStateByPageId](#Editor-getPageStateByPageId-member-1)\\n - [getPageTransform](#Editor-getPageTransform-member-1)\\n - [getPageTransformById](#Editor-getPageTransformById-member-1)\\n - [getParentIdForNewShapeAtPoint](#Editor-getParentIdForNewShapeAtPoint-member-1)\\n - [getParentShape](#Editor-getParentShape-member-1)\\n - [getParentsMappedToChildren](#Editor-getParentsMappedToChildren-member-1)\\n - [getParentTransform](#Editor-getParentTransform-member-1)\\n - [getPointInParentSpace](#Editor-getPointInParentSpace-member-1)\\n - [getPointInShapeSpace](#Editor-getPointInShapeSpace-member-1)\\n - [getShapeAndDescendantIds](#Editor-getShapeAndDescendantIds-member-1)\\n - [getShapeById](#Editor-getShapeById-member-1)\\n - [getShapeIdsInPage](#Editor-getShapeIdsInPage-member-1)\\n - [getShapesAtPoint](#Editor-getShapesAtPoint-member-1)\\n - [getShapeStyleIfExists](#Editor-getShapeStyleIfExists-member-1)\\n - [getShapeUtil](#Editor-getShapeUtil-member-1)\\n - [getShapeUtil](#Editor-getShapeUtil-member-2)\\n - [getSortedChildIds](#Editor-getSortedChildIds-member-1)\\n - [getStateDescendant](#Editor-getStateDescendant-member-1)\\n - [getSvg](#Editor-getSvg-member-1)\\n - [getTransform](#Editor-getTransform-member-1)\\n - [groupShapes](#Editor-groupShapes-member-1)\\n - [hasAncestor](#Editor-hasAncestor-member-1)\\n - [interrupt](#Editor-interrupt-member-1)\\n - [isIn](#Editor-isIn-member-1)\\n - [isInAny](#Editor-isInAny-member-1)\\n - [isPointInShape](#Editor-isPointInShape-member-1)\\n - [isSelected](#Editor-isSelected-member-1)\\n - [isShapeInPage](#Editor-isShapeInPage-member-1)\\n - [isShapeOfType](#Editor-isShapeOfType-member-1)\\n - [isShapeOrAncestorLocked](#Editor-isShapeOrAncestorLocked-member-1)\\n - [isWithinSelection](#Editor-isWithinSelection-member-1)\\n - [mark](#Editor-mark-member-1)\\n - [moveShapesToPage](#Editor-moveShapesToPage-member-1)\\n - [nudgeShapes](#Editor-nudgeShapes-member-1)\\n - [packShapes](#Editor-packShapes-member-1)\\n - [pageToScreen](#Editor-pageToScreen-member-1)\\n - [pan](#Editor-pan-member-1)\\n - [panZoomIntoView](#Editor-panZoomIntoView-member-1)\\n - [popFocusLayer](#Editor-popFocusLayer-member-1)\\n - [putContent](#Editor-putContent-member-1)\\n - [putExternalContent](#Editor-putExternalContent-member-1)\\n - [redo](#Editor-redo-member-1)\\n - [renamePage](#Editor-renamePage-member-1)\\n - [reorderShapes](#Editor-reorderShapes-member-1)\\n - [reparentShapesById](#Editor-reparentShapesById-member-1)\\n - [replaceStoreContentsWithRecordsForOtherDocument](#Editor-replaceStoreContentsWithRecordsForOtherDocument-member-1)\\n - [resetZoom](#Editor-resetZoom-member-1)\\n - [resizeShape](#Editor-resizeShape-member-1)\\n - [rotateShapesBy](#Editor-rotateShapesBy-member-1)\\n - [screenToPage](#Editor-screenToPage-member-1)\\n - [select](#Editor-select-member-1)\\n - [selectAll](#Editor-selectAll-member-1)\\n - [selectNone](#Editor-selectNone-member-1)\\n - [sendBackward](#Editor-sendBackward-member-1)\\n - [sendToBack](#Editor-sendToBack-member-1)\\n - [setAnimationSpeed](#Editor-setAnimationSpeed-member-1)\\n - [setBrush](#Editor-setBrush-member-1)\\n - [setCamera](#Editor-setCamera-member-1)\\n - [setCroppingId](#Editor-setCroppingId-member-1)\\n - [setCurrentPageId](#Editor-setCurrentPageId-member-1)\\n - [setCursor](#Editor-setCursor-member-1)\\n - [setDarkMode](#Editor-setDarkMode-member-1)\\n - [setDevicePixelRatio](#Editor-setDevicePixelRatio-member-1)\\n - [setEditingId](#Editor-setEditingId-member-1)\\n - [setErasingIds](#Editor-setErasingIds-member-1)\\n - [setFocusLayer](#Editor-setFocusLayer-member-1)\\n - [setFocusMode](#Editor-setFocusMode-member-1)\\n - [setGridMode](#Editor-setGridMode-member-1)\\n - [setHintingIds](#Editor-setHintingIds-member-1)\\n - [setHoveredId](#Editor-setHoveredId-member-1)\\n - [setLocale](#Editor-setLocale-member-1)\\n - [setOpacity](#Editor-setOpacity-member-1)\\n - [setPageState](#Editor-setPageState-member-1)\\n - [setPenMode](#Editor-setPenMode-member-1)\\n - [setReadOnly](#Editor-setReadOnly-member-1)\\n - [setScribble](#Editor-setScribble-member-1)\\n - [setSelectedIds](#Editor-setSelectedIds-member-1)\\n - [setSelectedTool](#Editor-setSelectedTool-member-1)\\n - [setSnapMode](#Editor-setSnapMode-member-1)\\n - [setStyle](#Editor-setStyle-member-1)\\n - [setToolLocked](#Editor-setToolLocked-member-1)\\n - [setZoomBrush](#Editor-setZoomBrush-member-1)\\n - [slideCamera](#Editor-slideCamera-member-1)\\n - [stackShapes](#Editor-stackShapes-member-1)\\n - [startFollowingUser](#Editor-startFollowingUser-member-1)\\n - [stopCameraAnimation](#Editor-stopCameraAnimation-member-1)\\n - [stopFollowingUser](#Editor-stopFollowingUser-member-1)\\n - [stretchShapes](#Editor-stretchShapes-member-1)\\n - [toggleLock](#Editor-toggleLock-member-1)\\n - [undo](#Editor-undo-member-1)\\n - [ungroupShapes](#Editor-ungroupShapes-member-1)\\n - [updateAssets](#Editor-updateAssets-member-1)\\n - [updateDocumentSettings](#Editor-updateDocumentSettings-member-1)\\n - [updateInstanceState](#Editor-updateInstanceState-member-1)\\n - [updatePage](#Editor-updatePage-member-1)\\n - [updateShapes](#Editor-updateShapes-member-1)\\n - [updateViewportScreenBounds](#Editor-updateViewportScreenBounds-member-1)\\n - [visitDescendants](#Editor-visitDescendants-member-1)\\n - [zoomIn](#Editor-zoomIn-member-1)\\n - [zoomOut](#Editor-zoomOut-member-1)\\n - [zoomToBounds](#Editor-zoomToBounds-member-1)\\n - [zoomToContent](#Editor-zoomToContent-member-1)\\n - [zoomToFit](#Editor-zoomToFit-member-1)\\n - [zoomToSelection](#Editor-zoomToSelection-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Editor extends EventEmitter {}\\n```\\n\\n##### References\\n\\n[EventEmitter](/gen/eventemitter3-EventEmitter-EventEmitter), [TLEventMap](/gen/editor/TLEventMap-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Editor` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ store, user, shapes, tools, getContainer }`\\n\\n\\n\\n\\n```ts\\nTLEditorOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[TLEditorOptions](/gen/editor/TLEditorOptions-interface)\\n\\n---\\n\\n## Properties\\n\\n### `allShapesCommonBounds` \\\\{#Editor-allShapesCommonBounds-member}\\n\\nPublic Readonly Property\\n\\nThe common bounds of all of the shapes on the page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget allShapesCommonBounds(): Box2d | null\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `animationSpeed` \\\\{#Editor-animationSpeed-member}\\n\\nPublic Readonly Property\\n\\nThe user\'s chosen animation speed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget animationSpeed(): number\\n```\\n\\n---\\n\\n### `assets` \\\\{#Editor-assets-member}\\n\\nPublic Readonly Property\\n\\nGet all assets in the editor.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget assets(): (\\n | import(\'@tldraw/tlschema\').TLBookmarkAsset\\n | TLImageAsset\\n | TLVideoAsset\\n)[]\\n```\\n\\n##### References\\n\\n[TLBookmarkAsset](/gen/tlschema/TLBookmarkAsset-type), [TLImageAsset](/gen/tlschema/TLImageAsset-type), [TLVideoAsset](/gen/tlschema/TLVideoAsset-type)\\n\\n---\\n\\n### `brush` \\\\{#Editor-brush-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s brush state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget brush(): Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `camera` \\\\{#Editor-camera-member}\\n\\nPublic Readonly Property\\n\\nThe current camera.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget camera(): import(\'@tldraw/tlschema\').TLCamera\\n```\\n\\n##### References\\n\\n[TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n---\\n\\n### `cameraState` \\\\{#Editor-cameraState-member}\\n\\nPublic Readonly Property\\n\\nWhether the camera is moving or idle.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget cameraState(): \'idle\' | \'moving\'\\n```\\n\\n---\\n\\n### `canMoveCamera` \\\\{#Editor-canMoveCamera-member}\\n\\nPublic Property\\n\\nWhether the editor\'s camera can move.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.canMoveCamera = false\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`canMove`\\n\\n\\n\\n\\nWhether the camera can move.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget canMoveCamera(): boolean\\n\\nset canMoveCamera(canMove: boolean)\\n```\\n\\n---\\n\\n### `canRedo` \\\\{#Editor-canRedo-member}\\n\\nPublic Readonly Property\\n\\nWhether the app can redo.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget canRedo(): boolean\\n```\\n\\n---\\n\\n### `canUndo` \\\\{#Editor-canUndo-member}\\n\\nPublic Readonly Property\\n\\nWhether the app can undo.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget canUndo(): boolean\\n```\\n\\n---\\n\\n### `croppingId` \\\\{#Editor-croppingId-member}\\n\\nPublic Readonly Property\\n\\nThe current cropping shape\'s id.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget croppingId(): null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `currentPage` \\\\{#Editor-currentPage-member}\\n\\nPublic Readonly Property\\n\\nThe current page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPage(): TLPage\\n```\\n\\n##### References\\n\\n[TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `currentPageId` \\\\{#Editor-currentPageId-member}\\n\\nPublic Readonly Property\\n\\nThe current page id.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPageId(): TLPageId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `currentPageShapeIds` \\\\{#Editor-currentPageShapeIds-member}\\n\\nPublic Readonly Property\\n\\nAn array of all of the shapes on the current page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPageShapeIds(): Set\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `currentToolId` \\\\{#Editor-currentToolId-member}\\n\\nPublic Readonly Property\\n\\nThe id of the current selected tool.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentToolId(): string\\n```\\n\\n---\\n\\n### `cursor` \\\\{#Editor-cursor-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s cursor state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget cursor(): TLCursor\\n```\\n\\n##### References\\n\\n[TLCursor](/gen/tlschema/TLCursor-interface)\\n\\n---\\n\\n### `devicePixelRatio` \\\\{#Editor-devicePixelRatio-member}\\n\\nPublic Readonly Property\\n\\nThe window\'s device pixel ratio.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget devicePixelRatio(): number\\n```\\n\\n---\\n\\n### `disposables` \\\\{#Editor-disposables-member}\\n\\nPublic Readonly Property\\n\\nA set of functions to call when the app is disposed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly disposables: Set<() => void>\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface)\\n\\n---\\n\\n### `documentSettings` \\\\{#Editor-documentSettings-member}\\n\\nPublic Readonly Property\\n\\nThe global document settings that apply to all users.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget documentSettings(): TLDocument\\n```\\n\\n##### References\\n\\n[TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n---\\n\\n### `editingId` \\\\{#Editor-editingId-member}\\n\\nPublic Readonly Property\\n\\nThe current editing shape\'s id.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget editingId(): null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `editingShape` \\\\{#Editor-editingShape-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget editingShape(): null | TLUnknownShape\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `erasingIds` \\\\{#Editor-erasingIds-member}\\n\\nPublic Readonly Property\\n\\nThe editor\'s current erasing ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget erasingIds(): TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `erasingIdsSet` \\\\{#Editor-erasingIdsSet-member}\\n\\nPublic Readonly Property\\n\\nA derived set containing the current erasing ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget erasingIdsSet(): Set\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `externalContentManager` \\\\{#Editor-externalContentManager-member}\\n\\nPublic Property\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nexternalContentManager: ExternalContentManager\\n```\\n\\n##### References\\n\\n[ExternalContentManager](/gen/editor/PlopManager-class)\\n\\n---\\n\\n### `focusLayerId` \\\\{#Editor-focusLayerId-member}\\n\\nPublic Readonly Property\\n\\nThe shape id of the current focus layer.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget focusLayerId(): TLPageId | TLShapeId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `focusLayerShape` \\\\{#Editor-focusLayerShape-member}\\n\\nPublic Readonly Property\\n\\nThe shape of the current focus layer.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget focusLayerShape(): TLShape | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getContainer` \\\\{#Editor-getContainer-member}\\n\\nPublic Property\\n\\nThe current HTML element containing the editor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst container = editor.getContainer()\\n```\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngetContainer: () => HTMLElement\\n```\\n\\n##### References\\n\\n[HTMLElement](/gen/HTMLElement-interface)\\n\\n---\\n\\n### `gridSize` \\\\{#Editor-gridSize-member}\\n\\nPublic Readonly Property\\n\\nThe document\'s grid size.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget gridSize(): number\\n```\\n\\n---\\n\\n### `hintingIds` \\\\{#Editor-hintingIds-member}\\n\\nPublic Readonly Property\\n\\nThe editor\'s current hinting ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget hintingIds(): TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `history` \\\\{#Editor-history-member}\\n\\nPublic Readonly Property\\n\\nA manager for the app\'s history.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly history: HistoryManager\\n```\\n\\n##### References\\n\\n[HistoryManager](/gen/editor/~HistoryManager-class)\\n\\n---\\n\\n### `hoveredId` \\\\{#Editor-hoveredId-member}\\n\\nPublic Readonly Property\\n\\nThe current hovered shape id.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget hoveredId(): null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `hoveredShape` \\\\{#Editor-hoveredShape-member}\\n\\nPublic Readonly Property\\n\\nThe current hovered shape.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget hoveredShape(): null | TLUnknownShape\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `inputs` \\\\{#Editor-inputs-member}\\n\\nPublic Property\\n\\nThe app\'s current input state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninputs: {\\n originPagePoint: Vec2d\\n originScreenPoint: Vec2d\\n previousPagePoint: Vec2d\\n previousScreenPoint: Vec2d\\n currentPagePoint: Vec2d\\n currentScreenPoint: Vec2d\\n keys: Set\\n buttons: Set\\n isPen: boolean\\n shiftKey: boolean\\n ctrlKey: boolean\\n altKey: boolean\\n isDragging: boolean\\n isPointing: boolean\\n isPinching: boolean\\n isEditing: boolean\\n isPanning: boolean\\n pointerVelocity: Vec2d\\n}\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [Set](/gen/Set-interface)\\n\\n---\\n\\n### `instanceState` \\\\{#Editor-instanceState-member}\\n\\nPublic Readonly Property\\n\\nThe current instance\'s state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget instanceState(): TLInstance\\n```\\n\\n##### References\\n\\n[TLInstance](/gen/tlschema/TLInstance-interface)\\n\\n---\\n\\n### `isChangingStyle` \\\\{#Editor-isChangingStyle-member}\\n\\nPublic Property\\n\\nWhether the user is currently changing the style of a shape. This may cause the UI to change.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isChangingStyle = true\\n```\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isChangingStyle(): boolean\\n\\nset isChangingStyle(v: boolean)\\n```\\n\\n---\\n\\n### `isChromeForIos` \\\\{#Editor-isChromeForIos-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is running on iOS.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly isChromeForIos: boolean\\n```\\n\\n---\\n\\n### `isCoarsePointer` \\\\{#Editor-isCoarsePointer-member}\\n\\nPublic Property\\n\\nWhether the user is using a \\"coarse\\" pointer, such as on a touch screen. This is automatically set by the canvas.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isCoarsePointer(): boolean\\n\\nset isCoarsePointer(v: boolean)\\n```\\n\\n---\\n\\n### `isDarkMode` \\\\{#Editor-isDarkMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the user has dark mode enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isDarkMode(): boolean\\n```\\n\\n---\\n\\n### `isFocused` \\\\{#Editor-isFocused-member}\\n\\nPublic Readonly Property\\n\\nWhether or not the editor is focused.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isFocused(): boolean\\n```\\n\\n---\\n\\n### `isFocusMode` \\\\{#Editor-isFocusMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the instance is in focus mode or not.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isFocusMode(): boolean\\n```\\n\\n---\\n\\n### `isGridMode` \\\\{#Editor-isGridMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the instance\'s grid is enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isGridMode(): boolean\\n```\\n\\n---\\n\\n### `isIos` \\\\{#Editor-isIos-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is running on iOS.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly isIos: boolean\\n```\\n\\n---\\n\\n### `isMenuOpen` \\\\{#Editor-isMenuOpen-member}\\n\\nPublic Readonly Property\\n\\nGet whether any menus are open.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isMenuOpen(): boolean\\n```\\n\\n---\\n\\n### `isPenMode` \\\\{#Editor-isPenMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is in pen mode or not.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isPenMode(): boolean\\n```\\n\\n---\\n\\n### `isReadOnly` \\\\{#Editor-isReadOnly-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is in read-only mode or not.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isReadOnly(): boolean\\n```\\n\\n---\\n\\n### `isSafari` \\\\{#Editor-isSafari-member}\\n\\nPublic Readonly Property\\n\\nWhether the editor is running in Safari.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly isSafari: boolean\\n```\\n\\n---\\n\\n### `isSnapMode` \\\\{#Editor-isSnapMode-member}\\n\\nPublic Readonly Property\\n\\nWhether the user has \\"always snap\\" mode enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isSnapMode(): boolean\\n```\\n\\n---\\n\\n### `isToolLocked` \\\\{#Editor-isToolLocked-member}\\n\\nPublic Readonly Property\\n\\nWhether the instance has \\"tool lock\\" mode enabled.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget isToolLocked(): boolean\\n```\\n\\n---\\n\\n### `locale` \\\\{#Editor-locale-member}\\n\\nPublic Readonly Property\\n\\nGet the user\'s locale.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget locale(): string\\n```\\n\\n---\\n\\n### `onlySelectedShape` \\\\{#Editor-onlySelectedShape-member}\\n\\nPublic Readonly Property\\n\\nThe app\'s only selected shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.onlySelectedShape\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget onlySelectedShape(): null | TLShape\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `openMenus` \\\\{#Editor-openMenus-member}\\n\\nPublic Readonly Property\\n\\nA set of strings representing any open menus. When menus are open, certain interactions will behave differently; for example, when a draw tool is selected and a menu is open, a pointer-down will not create a dot (because the user is probably trying to close the menu) however a pointer-down event followed by a drag will begin drawing a line (because the user is BOTH trying to close the menu AND start drawing a line).\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget openMenus(): string[]\\n```\\n\\n---\\n\\n### `pages` \\\\{#Editor-pages-member}\\n\\nPublic Readonly Property\\n\\nInfo about the project\'s current pages.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget pages(): TLPage[]\\n```\\n\\n##### References\\n\\n[TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `pageState` \\\\{#Editor-pageState-member}\\n\\nPublic Readonly Property\\n\\nThe current page state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget pageState(): TLInstancePageState\\n```\\n\\n##### References\\n\\n[TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n---\\n\\n### `renderingBounds` \\\\{#Editor-renderingBounds-member}\\n\\nPublic Readonly Property\\n\\nThe current rendering bounds in page space, used for checking which shapes are \\"on screen\\".\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget renderingBounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `renderingBoundsExpanded` \\\\{#Editor-renderingBoundsExpanded-member}\\n\\nPublic Readonly Property\\n\\nThe current rendering bounds in page space, expanded slightly. Used for determining which shapes to render and which to \\"cull\\".\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget renderingBoundsExpanded(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `renderingShapes` \\\\{#Editor-renderingShapes-member}\\n\\nPublic Readonly Property\\n\\nGet the shapes that should be displayed in the current viewport.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget renderingShapes(): {\\n id: TLShapeId\\n index: number\\n backgroundIndex: number\\n opacity: number\\n isCulled: boolean\\n isInViewport: boolean\\n maskedPageBounds: Box2d | undefined\\n}[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `root` \\\\{#Editor-root-member}\\n\\nPublic Readonly Property\\n\\nThe root state of the statechart.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly root: RootState\\n```\\n\\n##### References\\n\\n[RootState](/gen/editor/~RootState-class)\\n\\n---\\n\\n### `scribble` \\\\{#Editor-scribble-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s scribble state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget scribble(): null | TLScribble\\n```\\n\\n##### References\\n\\n[TLScribble](/gen/tlschema/TLScribble-type)\\n\\n---\\n\\n### `selectedIds` \\\\{#Editor-selectedIds-member}\\n\\nPublic Readonly Property\\n\\nThe current selected ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedIds(): TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectedIdsSet` \\\\{#Editor-selectedIdsSet-member}\\n\\nPublic Readonly Property\\n\\nThe current selected ids as a set\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedIdsSet(): ReadonlySet\\n```\\n\\n##### References\\n\\n[ReadonlySet](/gen/ReadonlySet-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectedPageBounds` \\\\{#Editor-selectedPageBounds-member}\\n\\nPublic Readonly Property\\n\\nThe current page bounds of all the selected shapes (Not the same thing as the page bounds of the selection bounding box when the selection has been rotated)\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedPageBounds(): Box2d | null\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `selectedShapes` \\\\{#Editor-selectedShapes-member}\\n\\nPublic Readonly Property\\n\\nAn array containing all of the currently selected shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.selectedShapes\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedShapes(): TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `selectionBounds` \\\\{#Editor-selectionBounds-member}\\n\\nPublic Readonly Property\\n\\nThe bounds of the selection bounding box.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectionBounds(): Box2d | undefined\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `selectionPageCenter` \\\\{#Editor-selectionPageCenter-member}\\n\\nPublic Readonly Property\\n\\nThe center of the selection bounding box.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectionPageCenter(): null | Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `selectionRotation` \\\\{#Editor-selectionRotation-member}\\n\\nPublic Readonly Property\\n\\nThe rotation of the selection bounding box.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectionRotation(): number\\n```\\n\\n---\\n\\n### `shapesArray` \\\\{#Editor-shapesArray-member}\\n\\nPublic Readonly Property\\n\\nAn array containing all of the shapes in the current page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.shapesArray\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget shapesArray(): TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `shapeUtils` \\\\{#Editor-shapeUtils-member}\\n\\nPublic Property\\n\\nA map of shape utility classes (TLShapeUtils) by shape type.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nshapeUtils: {\\n readonly [K in string]?: ShapeUtil\\n}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `sharedOpacity` \\\\{#Editor-sharedOpacity-member}\\n\\nPublic Readonly Property\\n\\nGet the currently selected shared opacity. If any shapes are selected, this returns the shared opacity of the selected shapes. Otherwise, this returns the chosen opacity for the next shape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget sharedOpacity(): SharedStyle\\n```\\n\\n##### References\\n\\n[SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `sharedStyles` \\\\{#Editor-sharedStyles-member}\\n\\nPublic Readonly Property\\n\\nA derived object containing either all current styles among the user\'s selected shapes, or else the user\'s most recent style choices that correspond to the current active state (i.e. the selected tool).\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget sharedStyles(): ReadonlySharedStyleMap\\n```\\n\\n##### References\\n\\n[ReadonlySharedStyleMap](/gen/editor/ReadonlySharedStyleMap-class)\\n\\n---\\n\\n### `snaps` \\\\{#Editor-snaps-member}\\n\\nPublic Readonly Property\\n\\nA manager for the app\'s snapping feature.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly snaps: SnapManager\\n```\\n\\n##### References\\n\\n[SnapManager](/gen/editor/~SnapManager-class)\\n\\n---\\n\\n### `sortedShapesArray` \\\\{#Editor-sortedShapesArray-member}\\n\\nPublic Readonly Property\\n\\nAn array containing all of the shapes in the current page, sorted in z-index order (accounting for nested shapes): e.g. A, B, BA, BB, C.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.sortedShapesArray\\n```\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nget sortedShapesArray(): TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `store` \\\\{#Editor-store-member}\\n\\nPublic Readonly Property\\n\\nThe editor\'s store\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly store: TLStore\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type)\\n\\n---\\n\\n### `textMeasure` \\\\{#Editor-textMeasure-member}\\n\\nPublic Readonly Property\\n\\nA helper for measuring text.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly textMeasure: TextManager\\n```\\n\\n##### References\\n\\n[TextManager](/gen/editor/~TextManager-class)\\n\\n---\\n\\n### `user` \\\\{#Editor-user-member}\\n\\nPublic Readonly Property\\n\\nA manager for the user and their preferences.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly user: UserPreferencesManager\\n```\\n\\n##### References\\n\\n[UserPreferencesManager](/gen/editor/~UserPreferencesManager-class)\\n\\n---\\n\\n### `viewportPageBounds` \\\\{#Editor-viewportPageBounds-member}\\n\\nPublic Readonly Property\\n\\nThe current viewport in page space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportPageBounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `viewportPageCenter` \\\\{#Editor-viewportPageCenter-member}\\n\\nPublic Readonly Property\\n\\nThe center of the viewport in page space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportPageCenter(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `viewportScreenBounds` \\\\{#Editor-viewportScreenBounds-member}\\n\\nPublic Readonly Property\\n\\nThe bounds of the editor\'s viewport in screen space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportScreenBounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `viewportScreenCenter` \\\\{#Editor-viewportScreenCenter-member}\\n\\nPublic Readonly Property\\n\\nThe center of the editor\'s viewport in screen space.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget viewportScreenCenter(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `zoomBrush` \\\\{#Editor-zoomBrush-member}\\n\\nPublic Readonly Property\\n\\nThe instance\'s zoom brush state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget zoomBrush(): Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `zoomLevel` \\\\{#Editor-zoomLevel-member}\\n\\nPublic Readonly Property\\n\\nThe current camera zoom level.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget zoomLevel(): number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `addOpenMenu()` \\\\{#Editor-addOpenMenu-member-1}\\n\\nPublic Method\\n\\nAdd an open menu.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.addOpenMenu(\'menu-id\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `alignShapes()` \\\\{#Editor-alignShapes-member-1}\\n\\nPublic Method\\n\\nAlign shape positions.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.alignShapes(\'left\')\\neditor.alignShapes(\'left\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n | \'bottom\'\\n | \'center-horizontal\'\\n | \'center-vertical\'\\n | \'left\'\\n | \'right\'\\n | \'top\'\\n```\\n\\nThe align operation to apply.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to align. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `animateCamera()` \\\\{#Editor-animateCamera-member-1}\\n\\nPublic Method\\n\\nAnimate the camera.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.animateCamera(0, 0)\\neditor.animateCamera(0, 0, 1)\\neditor.animateCamera(0, 0, 1, { duration: 1000, easing: (t) => t * t })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s x position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s y position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s z position. Defaults to the current zoom.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nOptions for the animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `animateShapes()` \\\\{#Editor-animateShapes-member-1}\\n\\nPublic Method\\n\\nAnimate shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.animateShapes([{ id: \'box1\', type: \'box\', x: 100, y: 100 }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partials`\\n\\n\\n\\n\\n```ts\\n(null | TLShapePartial | undefined)[]\\n```\\n\\nThe shape partials to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n duration?: number\\n ease?: (t: number) => number\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `animateToShape()` \\\\{#Editor-animateToShape-member-1}\\n\\nPublic Method\\n\\nAnimate the camera to a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapeId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `animateToUser()` \\\\{#Editor-animateToUser-member-1}\\n\\nPublic Method\\n\\nAnimate the camera to a user\'s cursor position. This also briefly show the user\'s cursor if it\'s not currently visible.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`userId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id of the user to aniamte to.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `bail()` \\\\{#Editor-bail-member-1}\\n\\nPublic Method\\n\\nClear all marks in the undo stack back to the next mark.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bail()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `bailToMark()` \\\\{#Editor-bailToMark-member-1}\\n\\nPublic Method\\n\\nClear all marks in the undo stack back to the mark with the provided mark id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bailToMark(\'creating\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `batch()` \\\\{#Editor-batch-member-1}\\n\\nPublic Method\\n\\nRun a function in a batch, which will be undone/redone as a single action.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.batch(() => {\\n editor.selectAll()\\n editor.deleteShapes()\\n editor.createShapes(myShapes)\\n editor.selectNone()\\n})\\n\\neditor.undo() // will undo all of the above\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`fn`\\n\\n\\n\\n\\n```ts\\n() => void\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `blur()` \\\\{#Editor-blur-member-1}\\n\\nPublic Method\\n\\nBlur the app, cancelling any interaction state.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.blur()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `bringForward()` \\\\{#Editor-bringForward-member-1}\\n\\nPublic Method\\n\\nBring shapes forward in the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bringForward()\\neditor.bringForward([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `bringToFront()` \\\\{#Editor-bringToFront-member-1}\\n\\nPublic Method\\n\\nBring shapes to the front of the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.bringToFront()\\neditor.bringToFront([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `cancel()` \\\\{#Editor-cancel-member-1}\\n\\nPublic Method\\n\\nDispatch a cancel event.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.cancel()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `cancelDoubleClick()` \\\\{#Editor-cancelDoubleClick-member-1}\\n\\nPublic Method\\n\\nPrevent a double click event from firing the next time the user clicks\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `centerOnPoint()` \\\\{#Editor-centerOnPoint-member-1}\\n\\nPublic Method\\n\\nCenter the camera on a point (in page space).\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.centerOnPoint(100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe x position of the point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe y position of the point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `complete()` \\\\{#Editor-complete-member-1}\\n\\nPublic Method\\n\\nDispatch a complete event.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.complete()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `createAssets()` \\\\{#Editor-createAssets-member-1}\\n\\nPublic Method\\n\\nCreate one or more assets.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.createAssets([...myAssets])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`assets`\\n\\n\\n\\n\\n```ts\\nTLAsset[]\\n```\\n\\nThe assets to create.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `createPage()` \\\\{#Editor-createPage-member-1}\\n\\nPublic Method\\n\\nCreate a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.createPage(\'New Page\')\\neditor.createPage(\'New Page\', \'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`title`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe new page\'s title.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe new page\'s id.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`belowPageIndex`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `createShapes()` \\\\{#Editor-createShapes-member-1}\\n\\nPublic Method\\n\\nCreate shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.createShapes([{ id: \'box1\', type: \'text\', props: { text: \'ok\' } }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partials`\\n\\n\\n\\n\\n```ts\\nTLShapePartial[]\\n```\\n\\nThe shape partials to create.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`select`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether to select the created shapes. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `deleteAssets()` \\\\{#Editor-deleteAssets-member-1}\\n\\nPublic Method\\n\\nDelete one or more assets.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deleteAssets([\'asset1\', \'asset2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLAssetId[]\\n```\\n\\nThe assets to delete.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n---\\n\\n### `deleteOpenMenu()` \\\\{#Editor-deleteOpenMenu-member-1}\\n\\nPublic Method\\n\\nDelete an open menu.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deleteOpenMenu(\'menu-id\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `deletePage()` \\\\{#Editor-deletePage-member-1}\\n\\nPublic Method\\n\\nDelete a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deletePage(\'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to delete.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `deleteShapes()` \\\\{#Editor-deleteShapes-member-1}\\n\\nPublic Method\\n\\nDelete shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deleteShapes()\\neditor.deleteShapes([\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to delete. Defaults to the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `deselect()` \\\\{#Editor-deselect-member-1}\\n\\nPublic Method\\n\\nRemove a shape from the existing set of selected shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.deselect(shape.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `dispatch()` \\\\{#Editor-dispatch-member-1}\\n\\nPublic Method\\n\\nDispatch an event to the editor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.dispatch(myPointerEvent)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nTLEventInfo\\n```\\n\\nThe event info.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLEventInfo](/gen/editor/TLEventInfo-type)\\n\\n---\\n\\n### `dispose()` \\\\{#Editor-dispose-member-1}\\n\\nPublic Method\\n\\nDispose the editor.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `distributeShapes()` \\\\{#Editor-distributeShapes-member-1}\\n\\nPublic Method\\n\\nDistribute shape positions.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.distributeShapes(\'left\')\\neditor.distributeShapes(\'left\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to distribute shapes horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to distribute. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `duplicatePage()` \\\\{#Editor-duplicatePage-member-1}\\n\\nPublic Method\\n\\nDuplicate a page.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to duplicate. Defaults to the current page.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`createId`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the new page. Defaults to a new id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `duplicateShapes()` \\\\{#Editor-duplicateShapes-member-1}\\n\\nPublic Method\\n\\nDuplicate shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.duplicateShapes()\\neditor.duplicateShapes([\'id1\', \'id2\'])\\neditor.duplicateShapes([\'id1\', \'id2\'], { x: 8, y: 8 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to duplicate. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`offset`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe offset (in pixels) to apply to the duplicated shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `findAncestor()` \\\\{#Editor-findAncestor-member-1}\\n\\nPublic Method\\n\\nFind the first ancestor matching the given predicate\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst ancestor = editor.findAncestor(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to check the ancestors for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`predicate`\\n\\n\\n\\n\\n```ts\\n(parent: TLShape) => boolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `findCommonAncestor()` \\\\{#Editor-findCommonAncestor-member-1}\\n\\nPublic Method\\n\\nGet the common ancestor of two or more shapes that matches a predicate.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`predicate`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n(shape: TLShape) => boolean\\n```\\n\\nThe predicate to match.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeId | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `flipShapes()` \\\\{#Editor-flipShapes-member-1}\\n\\nPublic Method\\n\\nFlip shape positions.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.flipShapes(\'horizontal\')\\neditor.flipShapes(\'horizontal\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to flip horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to flip. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `focus()` \\\\{#Editor-focus-member-1}\\n\\nPublic Method\\n\\nFocus the editor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.focus()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `getAncestorPageId()` \\\\{#Editor-getAncestorPageId-member-1}\\n\\nPublic Method\\n\\nGet the id of the containing page for a given shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page id for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPageId | undefined\\n```\\n\\n The id of the page that contains the shape, or undefined if the shape is undefined.\\n\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `getAncestors()` \\\\{#Editor-getAncestors-member-1}\\n\\nPublic Method\\n\\nGet the ancestors of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst ancestors = editor.getAncestors(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the ancestors for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`acc`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getAncestorsById()` \\\\{#Editor-getAncestorsById-member-1}\\n\\nPublic Method\\n\\nGet the ancestors of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst ancestors = editor.getAncestorsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the ancestors for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`acc`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getArrowsBoundTo()` \\\\{#Editor-getArrowsBoundTo-member-1}\\n\\nPublic Method\\n\\nGet all arrows bound to a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapeId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n arrowId: TLShapeId\\n handleId: \'end\' | \'start\'\\n}[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getAssetById()` \\\\{#Editor-getAssetById-member-1}\\n\\nPublic Method\\n\\nGet an asset by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getAssetById(\'asset1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLAssetId\\n```\\n\\nThe id of the asset.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLAsset | undefined\\n```\\n\\n##### References\\n\\n[TLAssetId](/gen/tlschema/TLAssetId-type), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `getAssetBySrc()` \\\\{#Editor-getAssetBySrc-member-1}\\n\\nPublic Method\\n\\nGet an asset by its src property.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getAssetBySource(\'https://example.com/image.png\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`src`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe source value of the asset.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n | import(\'@tldraw/tlschema\').TLBookmarkAsset\\n | TLImageAsset\\n | TLVideoAsset\\n | undefined\\n```\\n\\n##### References\\n\\n[TLBookmarkAsset](/gen/tlschema/TLBookmarkAsset-type), [TLImageAsset](/gen/tlschema/TLImageAsset-type), [TLVideoAsset](/gen/tlschema/TLVideoAsset-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#Editor-getBounds-member-1}\\n\\nPublic Method\\n\\nGet the local bounds of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getBounds(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getBoundsById()` \\\\{#Editor-getBoundsById-member-1}\\n\\nPublic Method\\n\\nGet the local bounds of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getBoundsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nT[\'id\']\\n```\\n\\nThe id of the shape to get the bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getClipPathById()` \\\\{#Editor-getClipPathById-member-1}\\n\\nPublic Method\\n\\nGet the clip path for a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst clipPath = editor.getClipPathById(shape.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring | undefined\\n```\\n\\n The clip path or undefined.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getContent()` \\\\{#Editor-getContent-member-1}\\n\\nPublic Method\\n\\nGet content that can be exported for the given shape ids.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to get content for. Defaults to the selected shape ids.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLContent | undefined\\n```\\n\\n The exported content.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLContent](/gen/editor/TLContent-interface)\\n\\n---\\n\\n### `getDeltaInParentSpace()` \\\\{#Editor-getDeltaInParentSpace-member-1}\\n\\nPublic Method\\n\\nConvert a delta in page space to a delta in the parent space of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getDeltaInParentSpace(myShape, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the delta in the parent space of.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page delta to convert.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDeltaInShapeSpace()` \\\\{#Editor-getDeltaInShapeSpace-member-1}\\n\\nPublic Method\\n\\nConvert a delta in page space to a delta in the local space of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getDeltaInShapeSpace(myShape, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the delta in the local space of.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page delta to convert.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDroppingShape()` \\\\{#Editor-getDroppingShape-member-1}\\n\\nPublic Method\\n\\nGet the shape that some shapes should be dropped on at a given point.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to find the parent for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`droppingShapes`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes that are being dropped.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLUnknownShape | undefined\\n```\\n\\n The shape to drop on.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `getHandles()` \\\\{#Editor-getHandles-member-1}\\n\\nPublic Method\\n\\nGet the handles (if any) for a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[] | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getHandlesById()` \\\\{#Editor-getHandlesById-member-1}\\n\\nPublic Method\\n\\nGet the handles (if any) for a shape by its id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nT[\'id\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[] | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getHighestIndexForParent()` \\\\{#Editor-getHighestIndexForParent-member-1}\\n\\nPublic Method\\n\\nGet the index above the highest child of a given parent.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLPageId | TLShapeId\\n```\\n\\nThe id of the parent.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n The index.\\n\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getMaskedPageBounds()` \\\\{#Editor-getMaskedPageBounds-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape, incorporating any masks. For example, if the shape were the child of a frame and was half way out of the frame, the bounds would be the half of the shape that was in the frame.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getMaskedPageBounds(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the masked bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getMaskedPageBoundsById()` \\\\{#Editor-getMaskedPageBoundsById-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape by its id, incorporating any masks. For example, if the shape were the child of a frame and was half way out of the frame, the bounds would be the half of the shape that was in the frame.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getMaskedPageBoundsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the masked page bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getOutermostSelectableShape()` \\\\{#Editor-getOutermostSelectableShape-member-1}\\n\\nPublic Method\\n\\nGet the shape that should be selected when you click on a given shape, assuming there is nothing already selected. It will not return anything higher than or including the current focus layer.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the outermost selectable shape for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`filter`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n(shape: TLShape) => boolean\\n```\\n\\nA function to filter the selectable shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape\\n```\\n\\n The outermost selectable shape.\\n\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#Editor-getOutline-member-1}\\n\\nPublic Method\\n\\nGet the local outline of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutline(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the outline for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineById()` \\\\{#Editor-getOutlineById-member-1}\\n\\nPublic Method\\n\\nGet the local outline of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutlineById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id to get the outline for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegments()` \\\\{#Editor-getOutlineSegments-member-1}\\n\\nPublic Method\\n\\nGet the local outline segments of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutlineSegments(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the outline segments for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegmentsById()` \\\\{#Editor-getOutlineSegmentsById-member-1}\\n\\nPublic Method\\n\\nGet the local outline segments of a shape by its Id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getOutlineSegmentsById(myShapeId)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageBounds()` \\\\{#Editor-getPageBounds-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageBounds(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getPageBoundsById()` \\\\{#Editor-getPageBoundsById-member-1}\\n\\nPublic Method\\n\\nGet the page (or absolute) bounds of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageBoundsById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page bounds for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d | undefined\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getPageById()` \\\\{#Editor-getPageById-member-1}\\n\\nPublic Method\\n\\nGet a page by its ID.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageById(myPage.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPage | undefined\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `getPageCenter()` \\\\{#Editor-getPageCenter-member-1}\\n\\nPublic Method\\n\\nGet the page point (or absolute point) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPagePoint(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page point for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Vec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageCenterById()` \\\\{#Editor-getPageCenterById-member-1}\\n\\nPublic Method\\n\\nGet the page point (or absolute point) of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPagePoint(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id to get the page point for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Vec2d\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageCorners()` \\\\{#Editor-getPageCorners-member-1}\\n\\nPublic Method\\n\\nGet the corners of a shape in page space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst corners = editor.getPageCorners(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the corners for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageInfoById()` \\\\{#Editor-getPageInfoById-member-1}\\n\\nPublic Method\\n\\nGet a page by its ID.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageById(myPage.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPage[\'id\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPage | undefined\\n```\\n\\n##### References\\n\\n[TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `getPageMaskById()` \\\\{#Editor-getPageMaskById-member-1}\\n\\nPublic Method\\n\\nGet the page mask for a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst pageMask = editor.getPageMaskById(shape.id)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page mask for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nundefined | VecLike[]\\n```\\n\\n The page mask for the shape.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `getPagePointById()` \\\\{#Editor-getPagePointById-member-1}\\n\\nPublic Method\\n\\nGet the page point (or absolute point) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPagePoint(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nundefined | Vec2d\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPageRotation()` \\\\{#Editor-getPageRotation-member-1}\\n\\nPublic Method\\n\\nGet the page rotation (or absolute rotation) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageRotation(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page rotation for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getPageRotationById()` \\\\{#Editor-getPageRotationById-member-1}\\n\\nPublic Method\\n\\nGet the page rotation (or absolute rotation) of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageRotationById(myShapeId)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page rotation for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getPageStateByPageId()` \\\\{#Editor-getPageStateByPageId-member-1}\\n\\nPublic Method\\n\\nGet a page state by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageStateByPageId(\'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLInstancePageState | undefined\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n---\\n\\n### `getPageTransform()` \\\\{#Editor-getPageTransform-member-1}\\n\\nPublic Method\\n\\nGet the page transform (or absolute transform) of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageTransform(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `getPageTransformById()` \\\\{#Editor-getPageTransformById-member-1}\\n\\nPublic Method\\n\\nGet the page transform (or absolute transform) of a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPageTransformById(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe if of the shape to get the page transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d | undefined\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `getParentIdForNewShapeAtPoint()` \\\\{#Editor-getParentIdForNewShapeAtPoint-member-1}\\n\\nPublic Method\\n\\nGet the id of what should be the parent of a new shape at a given point. The parent can be a page or shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to find the parent for.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapeType`\\n\\n\\n\\n\\n```ts\\nTLShape[\'type\']\\n```\\n\\nThe type of shape that will be created.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLPageId | TLShapeId\\n```\\n\\n The id of the parent.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type), [TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getParentShape()` \\\\{#Editor-getParentShape-member-1}\\n\\nPublic Method\\n\\nGet the parent shape for a given shape. Returns undefined if the shape is the direct child of the page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getParentShape(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getParentsMappedToChildren()` \\\\{#Editor-getParentsMappedToChildren-member-1}\\n\\nPublic Method\\n\\nFor a given set of ids, get a map containing the ids of their parents and the children of those parents.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getParentsMappedToChildren([\'id1\', \'id2\', \'id3\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to get the parents and children of.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMap>\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Map](/gen/Map-interface), [TLParentId](/gen/tlschema/TLParentId-type), [Set](/gen/Set-interface), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getParentTransform()` \\\\{#Editor-getParentTransform-member-1}\\n\\nPublic Method\\n\\nGet the local transform of a shape\'s parent as a matrix model.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getParentTransform(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the parent transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `getPointInParentSpace()` \\\\{#Editor-getPointInParentSpace-member-1}\\n\\nPublic Method\\n\\nConvert a delta in page space to a point in the local space of a shape. For example, if a shape\'s page point were `{ x: 100, y: 100 }`, a page point at `{ x: 110, y: 110 }` would be at `{ x: 10, y: 10 }` in the shape\'s local space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPointInShapeSpace(myShape.id, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shapeId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to get in the local space of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPointInShapeSpace()` \\\\{#Editor-getPointInShapeSpace-member-1}\\n\\nPublic Method\\n\\nConvert a point in page space to a point in the local space of a shape. For example, if a shape\'s page point were `{ x: 100, y: 100 }`, a page point at `{ x: 110, y: 110 }` would be at `{ x: 10, y: 10 }` in the shape\'s local space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getPointInShapeSpace(myShape, { x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the point in the local space of.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to get in the local space of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getShapeAndDescendantIds()` \\\\{#Editor-getShapeAndDescendantIds-member-1}\\n\\nPublic Method\\n\\nGet the shape ids of all descendants of the given shapes (including the shapes themselves).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to get descendants of.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSet\\n```\\n\\n The decscendant ids.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Set](/gen/Set-interface)\\n\\n---\\n\\n### `getShapeById()` \\\\{#Editor-getShapeById-member-1}\\n\\nPublic Method\\n\\nGet a shape by its id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getShapeById(\'box1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the shape to get.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLParentId](/gen/tlschema/TLParentId-type)\\n\\n---\\n\\n### `getShapeIdsInPage()` \\\\{#Editor-getShapeIdsInPage-member-1}\\n\\nPublic Method\\n\\nGet the ids of shapes on a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst idsOnPage1 = editor.getShapeIdsInPage(\'page1\')\\nconst idsOnPage2 = editor.getShapeIdsInPage(\'page2\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSet\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getShapesAtPoint()` \\\\{#Editor-getShapesAtPoint-member-1}\\n\\nPublic Method\\n\\nGet the shapes, if any, at a given page point.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getShapesAtPoint({ x: 100, y: 100 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `getShapeStyleIfExists()` \\\\{#Editor-getShapeStyleIfExists-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`style`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT | undefined\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `getShapeUtil()` \\\\{#Editor-getShapeUtil-member-1}\\n\\nPublic Method\\n\\nGet a shape util by its definition.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getShapeUtil(ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`util`\\n\\n\\n\\n\\n```ts\\nC\\n```\\n\\nThe shape util.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nInstanceType\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [InstanceType](/gen/InstanceType-type)\\n\\n---\\n\\n### `getShapeUtil()` \\\\{#Editor-getShapeUtil-member-2}\\n\\nPublic Method\\n\\nGet a shape util from a shape itself.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst util = editor.getShapeUtil(myShape)\\nconst util = editor.getShapeUtil(myShape)\\nconst util = editor.getShapeUtil(ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nS | TLShapePartial\\n```\\n\\nA shape or shape partial.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nShapeUtil\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type), [ShapeUtil](/gen/editor/ShapeUtil-class)\\n\\n---\\n\\n### `getSortedChildIds()` \\\\{#Editor-getSortedChildIds-member-1}\\n\\nPublic Method\\n\\nGet an array of all the children of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getSortedChildIds(\'frame1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the parent shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\n##### References\\n\\n[TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `getStateDescendant()` \\\\{#Editor-getStateDescendant-member-1}\\n\\nPublic Method\\n\\nGet a descendant by its path.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nstate.getStateDescendant(\'select\')\\nstate.getStateDescendant(\'select.brushing\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`path`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe descendant\'s path of state ids, separated by periods.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStateNode | undefined\\n```\\n\\n##### References\\n\\n[StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `getSvg()` \\\\{#Editor-getSvg-member-1}\\n\\nPublic Method\\n\\nGet an exported SVG of the given shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to export. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nPartial<{\\n scale: number\\n background: boolean\\n padding: number\\n darkMode?: boolean | undefined\\n preserveAspectRatio: React.SVGAttributes[\'preserveAspectRatio\']\\n}>\\n```\\n\\nOptions for the export.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n The SVG element.\\n\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Partial](/gen/Partial-type), [React.SVGAttributes](/gen/@types/react-React-SVGAttributes-interface), [SVGSVGElement](/gen/SVGSVGElement-interface), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `getTransform()` \\\\{#Editor-getTransform-member-1}\\n\\nPublic Method\\n\\nGet the local transform for a shape as a matrix model. This transform reflects both its translation (x, y) from from either its parent\'s top left corner, if the shape\'s parent is another shape, or else from the 0,0 of the page, if the shape\'s parent is the page; and the shape\'s rotation.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.getTransform(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the local transform for.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `groupShapes()` \\\\{#Editor-groupShapes-member-1}\\n\\nPublic Method\\n\\nGroup some shapes together.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nIds of the shapes to group. Defaults to the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`groupId`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nId of the group to create. Defaults to a new shape id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `hasAncestor()` \\\\{#Editor-hasAncestor-member-1}\\n\\nPublic Method\\n\\nReturns true if the the given shape has the given ancestor.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape | undefined\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ancestorId`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the ancestor.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `interrupt()` \\\\{#Editor-interrupt-member-1}\\n\\nPublic Method\\n\\nDispatch an interrupt event.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.interrupt()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `isIn()` \\\\{#Editor-isIn-member-1}\\n\\nPublic Method\\n\\nGet whether a certain tool (or other state node) is currently active.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isIn(\'select\')\\neditor.isIn(\'select.brushing\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`path`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe path of active states, separated by periods.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `isInAny()` \\\\{#Editor-isInAny-member-1}\\n\\nPublic Method\\n\\nGet whether the state node is in any of the given active paths.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nstate.isInAny(\'select\', \'erase\')\\nstate.isInAny(\'select.brushing\', \'erase.idle\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`paths`\\n\\n\\n\\n\\n```ts\\nstring[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `isPointInShape()` \\\\{#Editor-isPointInShape-member-1}\\n\\nPublic Method\\n\\nTest whether a point (in page space) will will a shape. This method takes into account masks, such as when a shape is the child of a frame and is partially clipped by the frame.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isPointInShape({ x: 100, y: 100 }, myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to test against.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `isSelected()` \\\\{#Editor-isSelected-member-1}\\n\\nPublic Method\\n\\nDetermine whether or not a shape is selected\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isSelected(\'id1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `isShapeInPage()` \\\\{#Editor-isShapeInPage-member-1}\\n\\nPublic Method\\n\\nGet whether the given shape is the descendant of the given page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.isShapeInPage(myShape)\\neditor.isShapeInPage(myShape, \'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to check against. Defaults to the current page.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `isShapeOfType()` \\\\{#Editor-isShapeOfType-member-1}\\n\\nPublic Method\\n\\nGet whether a shape matches the type of a TLShapeUtil.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst isArrowShape = isShapeOfType(someShape, ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLUnknownShape\\n```\\n\\nthe shape to test\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`util`\\n\\n\\n\\n\\n```ts\\n{\\n new (...args: any): ShapeUtil\\n type: string\\n}\\n```\\n\\nthe TLShapeUtil constructor to test against\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nshape is T\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [ShapeUtil](/gen/editor/ShapeUtil-class), [shape](/gen/editor/~shape)\\n\\n---\\n\\n### `isShapeOrAncestorLocked()` \\\\{#Editor-isShapeOrAncestorLocked-member-1}\\n\\nPublic Method\\n\\nCheck whether a shape or its parent is locked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `isWithinSelection()` \\\\{#Editor-isWithinSelection-member-1}\\n\\nPublic Method\\n\\nDetermine whether a not a shape is within the current selection. A shape is within the selection if it or any of its parents is selected.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `mark()` \\\\{#Editor-mark-member-1}\\n\\nPublic Method\\n\\nCreate a new \\"mark\\", or stopping point, in the undo redo history. Creating a mark will clear any redos.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.mark()\\neditor.mark(\'flip shapes\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`reason`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe reason for the mark.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`onUndo`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether to stop at the mark when undoing.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`onRedo`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether to stop at the mark when redoing.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `moveShapesToPage()` \\\\{#Editor-moveShapesToPage-member-1}\\n\\nPublic Method\\n\\nMove shapes to page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.moveShapesToPage([\'box1\', \'box2\'], \'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page where the shapes will be moved.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `nudgeShapes()` \\\\{#Editor-nudgeShapes-member-1}\\n\\nPublic Method\\n\\nMove shapes by a delta.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.nudgeShapes([\'box1\', \'box2\'], { x: 0, y: 1 })\\neditor.nudgeShapes([\'box1\', \'box2\'], { x: 0, y: 1 }, true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`direction`\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe direction in which to move the shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`major`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether this is a major nudge, e.g. a shift + arrow nudge.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `packShapes()` \\\\{#Editor-packShapes-member-1}\\n\\nPublic Method\\n\\nPack shapes into a grid centered on their current position. Based on potpack (https://github.com/mapbox/potpack)\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to pack. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`padding`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe padding to apply to the packed shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `pageToScreen()` \\\\{#Editor-pageToScreen-member-1}\\n\\nPublic Method\\n\\nConvert a point in page space to a point in screen space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.pageToScreen(100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe x coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe y coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`camera`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe camera to use. Defaults to the current camera.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n z: number\\n}\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `pan()` \\\\{#Editor-pan-member-1}\\n\\nPublic Method\\n\\nPan the camera.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.pan(100, 100)\\neditor.pan(100, 100, { duration: 1000 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe amount to pan on the x axis.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`dy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe amount to pan on the y axis.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe animation options\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `panZoomIntoView()` \\\\{#Editor-panZoomIntoView-member-1}\\n\\nPublic Method\\n\\nPan or pan/zoom the selected ids into view. This method tries to not change the zoom if possible.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to pan and zoom into view.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `popFocusLayer()` \\\\{#Editor-popFocusLayer-member-1}\\n\\nPublic Method\\n\\nExit the current focus layer, moving up to the next group if there is one.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `putContent()` \\\\{#Editor-putContent-member-1}\\n\\nPublic Method\\n\\nPlace content into the editor.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`content`\\n\\n\\n\\n\\n```ts\\nTLContent\\n```\\n\\nThe content.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n point?: VecLike\\n select?: boolean\\n preservePosition?: boolean\\n preserveIds?: boolean\\n}\\n```\\n\\nOptions for placing the content.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLContent](/gen/editor/TLContent-interface), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `putExternalContent()` \\\\{#Editor-putExternalContent-member-1}\\n\\nPublic Method\\n\\nHandle external content, such as files, urls, embeds, or plain text which has been put into the app, for example by pasting external text or dropping external images onto canvas.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nTLExternalContent\\n```\\n\\nInfo about the external content.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `redo()` \\\\{#Editor-redo-member-1}\\n\\nPublic Method\\n\\nRedo to the next mark.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.redo()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `renamePage()` \\\\{#Editor-renamePage-member-1}\\n\\nPublic Method\\n\\nRename a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.renamePage(\'page1\', \'My Page\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to rename.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe new name.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `reorderShapes()` \\\\{#Editor-reorderShapes-member-1}\\n\\nPublic Method\\n\\nReorder shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'backward\' | \'forward\' | \'toBack\' | \'toFront\'\\n```\\n\\nThe operation to perform.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to reorder.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `reparentShapesById()` \\\\{#Editor-reparentShapesById-member-1}\\n\\nPublic Method\\n\\nReparent shapes to a new parent. This operation preserves the shape\'s current page positions / rotations.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.reparentShapesById([\'box1\', \'box2\'], \'frame1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to reparent.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the new parent shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`insertIndex`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe index to insert the children.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLParentId](/gen/tlschema/TLParentId-type)\\n\\n---\\n\\n### `replaceStoreContentsWithRecordsForOtherDocument()` \\\\{#Editor-replaceStoreContentsWithRecordsForOtherDocument-member-1}\\n\\nPublic Method\\n\\nReplace the store\'s contents with the given records.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`records`\\n\\n\\n\\n\\n```ts\\nTLRecord[]\\n```\\n\\nThe records to replace the store\'s contents with.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLRecord](/gen/tlschema/TLRecord-type)\\n\\n---\\n\\n### `resetZoom()` \\\\{#Editor-resetZoom-member-1}\\n\\nPublic Method\\n\\nSet the zoom back to 100%.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.resetZoom()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `resizeShape()` \\\\{#Editor-resizeShape-member-1}\\n\\nPublic Method\\n\\nResize a shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`scale`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe scale factor to apply to the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n initialBounds?: Box2d\\n scaleOrigin?: VecLike\\n scaleAxisRotation?: number\\n initialShape?: TLShape\\n initialPageTransform?: MatLike\\n dragHandle?: TLResizeHandle\\n mode?: TLResizeMode\\n}\\n```\\n\\nAdditional options.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [VecLike](/gen/primitives/VecLike-type), [Box2d](/gen/primitives/Box2d-class), [TLShape](/gen/tlschema/TLShape-type), [MatLike](/gen/primitives/MatLike-type), [TLResizeHandle](/gen/editor/TLResizeHandle-type), [TLResizeMode](/gen/editor/TLResizeMode-type)\\n\\n---\\n\\n### `rotateShapesBy()` \\\\{#Editor-rotateShapesBy-member-1}\\n\\nPublic Method\\n\\nRotate shapes by a delta in radians.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.rotateShapesBy([\'box1\', \'box2\'], Math.PI)\\neditor.rotateShapesBy([\'box1\', \'box2\'], Math.PI / 2)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`delta`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe delta in radians to apply to the selection rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `screenToPage()` \\\\{#Editor-screenToPage-member-1}\\n\\nPublic Method\\n\\nConvert a point in screen space to a point in page space.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.screenToPage(100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe x coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe y coordinate of the point in screen space.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`camera`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe camera to use. Defaults to the current camera.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n z: number\\n}\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `select()` \\\\{#Editor-select-member-1}\\n\\nPublic Method\\n\\nSelect one or more shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.select(\'id1\')\\neditor.select(\'id1\', \'id2\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to select.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectAll()` \\\\{#Editor-selectAll-member-1}\\n\\nPublic Method\\n\\nSelect all direct children of the current page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.selectAll()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `selectNone()` \\\\{#Editor-selectNone-member-1}\\n\\nPublic Method\\n\\nClear the selection.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.selectNone()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `sendBackward()` \\\\{#Editor-sendBackward-member-1}\\n\\nPublic Method\\n\\nSend shapes backward in the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.sendBackward()\\neditor.sendBackward([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `sendToBack()` \\\\{#Editor-sendToBack-member-1}\\n\\nPublic Method\\n\\nSend shapes to the back of the page\'s object list.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.sendToBack()\\neditor.sendToBack([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move. Defaults to the ids of the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setAnimationSpeed()` \\\\{#Editor-setAnimationSpeed-member-1}\\n\\nPublic Method\\n\\nSet the user\'s chosen animation speed. Set to 0.0 to disable animations. Set to 1.0 for full speed.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`animationSpeed`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setBrush()` \\\\{#Editor-setBrush-member-1}\\n\\nPublic Method\\n\\nSet the current brush.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setBrush({ x: 0, y: 0, w: 100, h: 100 })\\neditor.setBrush() // Clears the brush\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`brush`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nBox2dModel | null\\n```\\n\\nThe brush box model to set, or null for no brush model.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `setCamera()` \\\\{#Editor-setCamera-member-1}\\n\\nPublic Method\\n\\nSet the current camera.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setCamera(0, 0)\\neditor.setCamera(0, 0, 1)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s x position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s y position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s z position. Defaults to the current zoom.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ stopFollowing }`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLViewportOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLViewportOptions](/gen/editor/~TLViewportOptions-type)\\n\\n---\\n\\n### `setCroppingId()` \\\\{#Editor-setCroppingId-member-1}\\n\\nPublic Method\\n\\nSet the current cropping shape\'s id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the shape to crop or null to clear the cropping id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setCurrentPageId()` \\\\{#Editor-setCurrentPageId-member-1}\\n\\nPublic Method\\n\\nSet the current page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setCurrentPageId(\'page1\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pageId`\\n\\n\\n\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to set as the current page.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ stopFollowing }`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLViewportOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLViewportOptions](/gen/editor/~TLViewportOptions-type)\\n\\n---\\n\\n### `setCursor()` \\\\{#Editor-setCursor-member-1}\\n\\nPublic Method\\n\\nSet the current cursor.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setCursor({ type: \'default\' })\\neditor.setCursor({ type: \'default\', rotation: Math.PI / 2, color: \'red\' })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`cursor`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\nA partial of the cursor object.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLCursor](/gen/tlschema/TLCursor-interface)\\n\\n---\\n\\n### `setDarkMode()` \\\\{#Editor-setDarkMode-member-1}\\n\\nPublic Method\\n\\nSet whether the user has dark mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isDarkMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setDevicePixelRatio()` \\\\{#Editor-setDevicePixelRatio-member-1}\\n\\nPublic Method\\n\\nSet the window\'s device pixel ratio. This should usually only be set by the Canvas component.\\n\\n\\n```ts\\neditor.setDevicePixelRatio(2)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dpr`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setEditingId()` \\\\{#Editor-setEditingId-member-1}\\n\\nPublic Method\\n\\nSet the current editing id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the shape to edit or null to clear the editing id.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setErasingIds()` \\\\{#Editor-setErasingIds-member-1}\\n\\nPublic Method\\n\\nSet the current erasing shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setErasingIds([\'box1\', \'box2\'])\\neditor.setErasingIds() // Clears the erasing set\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of shapes to set as erasing.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setFocusLayer()` \\\\{#Editor-setFocusLayer-member-1}\\n\\nPublic Method\\n\\nSet the focus layer to the given shape id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe next focus layer id or null to reset the focus layer to the page\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setFocusMode()` \\\\{#Editor-setFocusMode-member-1}\\n\\nPublic Method\\n\\nSet whether the instance is in focus mode or not.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isFocusMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setGridMode()` \\\\{#Editor-setGridMode-member-1}\\n\\nPublic Method\\n\\nSet whether the instance\'s grid is enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isGridMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setHintingIds()` \\\\{#Editor-setHintingIds-member-1}\\n\\nPublic Method\\n\\nSet the hinted shape ids.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to set as hinted.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setHoveredId()` \\\\{#Editor-setHoveredId-member-1}\\n\\nPublic Method\\n\\nSet the current hovered shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setHoveredId(\'box1\')\\neditor.setHoveredId() // Clears the hovered shape.\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the page to set as the current page\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setLocale()` \\\\{#Editor-setLocale-member-1}\\n\\nPublic Method\\n\\nUpdate the user\'s locale. This affects which translations are used when rendering UI elements.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setLocale(\'fr\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`locale`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `setOpacity()` \\\\{#Editor-setOpacity-member-1}\\n\\nPublic Method\\n\\nSet the current opacity. This will effect any selected shapes, or the next-created shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setOpacity(0.5)\\neditor.setOpacity(0.5, true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opacity`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe opacity to set. Must be a number between 0 and 1 inclusive.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the opacity change is ephemeral. Ephemeral changes don\'t get added to the undo/redo stack. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the opacity change will be squashed into the existing history entry rather than creating a new one. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setPageState()` \\\\{#Editor-setPageState-member-1}\\n\\nPublic Method\\n\\nUpdate a page state.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setPageState({ id: \'page1\', editingId: \'shape:123\' })\\neditor.setPageState({ id: \'page1\', editingId: \'shape:123\' }, true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partial`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\nThe partial of the page state object containing the changes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the command is ephemeral.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n---\\n\\n### `setPenMode()` \\\\{#Editor-setPenMode-member-1}\\n\\nPublic Method\\n\\nSet whether the editor is in pen mode or not.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isPenMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setReadOnly()` \\\\{#Editor-setReadOnly-member-1}\\n\\nPublic Method\\n\\nSet whether the editor is in read-only mode or not.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isReadOnly`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setScribble()` \\\\{#Editor-setScribble-member-1}\\n\\nPublic Method\\n\\nSet the current scribble.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setScribble(nextScribble)\\neditor.setScribble() // clears the scribble\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`scribble`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnull | TLScribble\\n```\\n\\nThe new scribble object.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLScribble](/gen/tlschema/TLScribble-type)\\n\\n---\\n\\n### `setSelectedIds()` \\\\{#Editor-setSelectedIds-member-1}\\n\\nPublic Method\\n\\nSelect one or more shapes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setSelectedIds([\'id1\'])\\neditor.setSelectedIds([\'id1\', \'id2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to select.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change should create a new history entry or combine with the previous (if the previous is the same type).\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `setSelectedTool()` \\\\{#Editor-setSelectedTool-member-1}\\n\\nPublic Method\\n\\nSet the selected tool.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setSelectedTool(\'hand\')\\neditor.setSelectedTool(\'hand\', { date: Date.now() })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id of the tool to select.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{}\\n```\\n\\nArbitrary data to pass along into the transition.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setSnapMode()` \\\\{#Editor-setSnapMode-member-1}\\n\\nPublic Method\\n\\nSet whether the user has \\"always snap\\" mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isSnapMode`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setStyle()` \\\\{#Editor-setStyle-member-1}\\n\\nPublic Method\\n\\nSet the current styles\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setProp(DefaultColorStyle, \'red\')\\neditor.setProp(DefaultColorStyle, \'red\', true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`style`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\nThe style to set.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe value to set.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the style change is ephemeral. Ephemeral changes don\'t get added to the undo/redo stack. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the style change will be squashed into the existing history entry rather than creating a new one. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `setToolLocked()` \\\\{#Editor-setToolLocked-member-1}\\n\\nPublic Method\\n\\nSet whether the instance has \\"tool lock\\" mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`isToolLocked`\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setZoomBrush()` \\\\{#Editor-setZoomBrush-member-1}\\n\\nPublic Method\\n\\nSet the current zoom brush.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.setZoomBrush({ x: 0, y: 0, w: 100, h: 100 })\\neditor.setZoomBrush() // Clears the zoom\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`zoomBrush`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nBox2dModel | null\\n```\\n\\nThe zoom box model to set, or null for no zoom model.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `slideCamera()` \\\\{#Editor-slideCamera-member-1}\\n\\nPublic Method\\n\\nSlide the camera in a certain direction.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n speed: number\\n direction: Vec2d\\n friction: number\\n speedThreshold?: number | undefined\\n}\\n```\\n\\nOptions for the slide\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis | undefined\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `stackShapes()` \\\\{#Editor-stackShapes-member-1}\\n\\nPublic Method\\n\\nStack shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.stackShapes(\'horizontal\')\\neditor.stackShapes(\'horizontal\', [\'box1\', \'box2\'])\\neditor.stackShapes(\'horizontal\', [\'box1\', \'box2\'], 20)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to stack horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to stack. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`gap`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nA specific gap to use when stacking.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `startFollowingUser()` \\\\{#Editor-startFollowingUser-member-1}\\n\\nPublic Method\\n\\nStart viewport-following a user.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`userId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id of the user to follow.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis | undefined\\n```\\n\\n---\\n\\n### `stopCameraAnimation()` \\\\{#Editor-stopCameraAnimation-member-1}\\n\\nPublic Method\\n\\nStop the current camera animation, if any.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `stopFollowingUser()` \\\\{#Editor-stopFollowingUser-member-1}\\n\\nPublic Method\\n\\nStop viewport-following a user.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `stretchShapes()` \\\\{#Editor-stretchShapes-member-1}\\n\\nPublic Method\\n\\nStretch shape sizes and positions to fill their common bounding box.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.stretchShapes(\'horizontal\')\\neditor.stretchShapes(\'horizontal\', [\'box1\', \'box2\'])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`operation`\\n\\n\\n\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to stretch shapes horizontally or vertically.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to stretch. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `toggleLock()` \\\\{#Editor-toggleLock-member-1}\\n\\nPublic Method\\n\\nToggle the lock state of one or more shapes. If there is a mix of locked and unlocked shapes, all shapes will be locked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to toggle. Defaults to selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `undo()` \\\\{#Editor-undo-member-1}\\n\\nPublic Method\\n\\nUndo to the last mark.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.undo()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nHistoryManager\\n```\\n\\n##### References\\n\\n[HistoryManager](/gen/editor/~HistoryManager-class)\\n\\n---\\n\\n### `ungroupShapes()` \\\\{#Editor-ungroupShapes-member-1}\\n\\nPublic Method\\n\\nUngroup some shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nIds of the shapes to ungroup. Defaults to the selected shapes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `updateAssets()` \\\\{#Editor-updateAssets-member-1}\\n\\nPublic Method\\n\\nUpdate one or more assets.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updateAssets([{ id: \'asset1\', name: \'New name\' }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`assets`\\n\\n\\n\\n\\n```ts\\nTLAssetPartial[]\\n```\\n\\nThe assets to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAssetPartial](/gen/tlschema/TLAssetPartial-type)\\n\\n---\\n\\n### `updateDocumentSettings()` \\\\{#Editor-updateDocumentSettings-member-1}\\n\\nPublic Method\\n\\nUpdate the global document settings that apply to all users.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`settings`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n---\\n\\n### `updateInstanceState()` \\\\{#Editor-updateInstanceState-member-1}\\n\\nPublic Method\\n\\nUpdate the instance\'s state.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partial`\\n\\n\\n\\n\\n```ts\\nPartial>\\n```\\n\\nA partial object to update the instance state with.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ephemeral`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change is ephemeral. Ephemeral changes don\'t get added to the undo/redo stack. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change will be squashed into the existing history entry rather than creating a new one. Defaults to false.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [Omit](/gen/Omit-type), [TLInstance](/gen/tlschema/TLInstance-interface)\\n\\n---\\n\\n### `updatePage()` \\\\{#Editor-updatePage-member-1}\\n\\nPublic Method\\n\\nUpdate a page.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updatePage({ id: \'page2\', name: \'Page 2\' })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partial`\\n\\n\\n\\n\\n```ts\\nRequiredKeys\\n```\\n\\nThe partial of the shape to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[RequiredKeys](/gen/editor/RequiredKeys-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `updateShapes()` \\\\{#Editor-updateShapes-member-1}\\n\\nPublic Method\\n\\nUpdate shapes using partials of each shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updateShapes([{ id: \'box1\', type: \'geo\', props: { w: 100, h: 100 } }])\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`partials`\\n\\n\\n\\n\\n```ts\\n(null | TLShapePartial | undefined)[]\\n```\\n\\nThe shape partials to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`squashing`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change is ephemeral.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `updateViewportScreenBounds()` \\\\{#Editor-updateViewportScreenBounds-member-1}\\n\\nPublic Method\\n\\nUpdate the viewport. The viewport will measure the size and screen position of its container element. This should be done whenever the container\'s position on the screen changes.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.updateViewportScreenBounds()\\neditor.updateViewportScreenBounds(true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`center`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n(optional) Whether to preserve the viewport page center as the viewport changes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `visitDescendants()` \\\\{#Editor-visitDescendants-member-1}\\n\\nPublic Method\\n\\nRun a visitor function for all descendants of a shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.visitDescendants(\'frame1\', myCallback)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`parentId`\\n\\n\\n\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the parent shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`visitor`\\n\\n\\n\\n\\n```ts\\n(id: TLShapeId) => false | void\\n```\\n\\nThe visitor function.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `zoomIn()` \\\\{#Editor-zoomIn-member-1}\\n\\nPublic Method\\n\\nZoom the camera in.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomIn()\\neditor.zoomIn(editor.viewportScreenCenter, { duration: 120 })\\neditor.zoomIn(editor.inputs.currentScreenPoint, { duration: 120 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomOut()` \\\\{#Editor-zoomOut-member-1}\\n\\nPublic Method\\n\\nZoom the camera out.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomOut()\\neditor.zoomOut(editor.viewportScreenCenter, { duration: 120 })\\neditor.zoomOut(editor.inputs.currentScreenPoint, { duration: 120 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomToBounds()` \\\\{#Editor-zoomToBounds-member-1}\\n\\nPublic Method\\n\\nZoom the camera to fit a bounding box (in page space).\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomToBounds(0, 0, 100, 100)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s x position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s y position.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`width`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s width.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`height`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s height.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`targetZoom`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe desired zoom level. Defaults to 0.1.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomToContent()` \\\\{#Editor-zoomToContent-member-1}\\n\\nPublic Method\\n\\nMove the camera to the nearest content.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `zoomToFit()` \\\\{#Editor-zoomToFit-member-1}\\n\\nPublic Method\\n\\nZoom the camera to fit the current page\'s content in the viewport.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomToFit()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n### `zoomToSelection()` \\\\{#Editor-zoomToSelection-member-1}\\n\\nPublic Method\\n\\nZoom the camera to fit the current selection in the viewport.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.zoomToSelection()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[TLAnimationOptions](/gen/editor/TLAnimationOptions-type)\\n\\n---\\n\\n","EmbedDefinition-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype EmbedDefinition = {\\n readonly type: string\\n readonly title: string\\n readonly hostnames: readonly string[]\\n readonly minWidth?: number\\n readonly minHeight?: number\\n readonly width: number\\n readonly height: number\\n readonly doesResize: boolean\\n readonly canUnmount: boolean\\n readonly isAspectRatioLocked?: boolean\\n readonly overridePermissions?: TLEmbedShapePermissions\\n readonly instructionLink?: string\\n readonly backgroundColor?: string\\n readonly overrideOutlineRadius?: number\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n}\\n```\\n\\n##### References\\n\\n[TLEmbedShapePermissions](/gen/tlschema/TLEmbedShapePermissions-type)\\n\\n","EmbedShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEmbedShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLEmbedShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n","EmbedShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canEdit](#EmbedShapeUtil-canEdit-member)\\n - [canResize](#EmbedShapeUtil-canResize-member)\\n - [canUnmount](#EmbedShapeUtil-canUnmount-member)\\n - [hideSelectionBoundsBg](#EmbedShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#EmbedShapeUtil-hideSelectionBoundsFg-member)\\n - [isAspectRatioLocked](#EmbedShapeUtil-isAspectRatioLocked-member)\\n - [onResize](#EmbedShapeUtil-onResize-member)\\n - [type](#EmbedShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#EmbedShapeUtil-component-member-1)\\n - [getDefaultProps](#EmbedShapeUtil-getDefaultProps-member-1)\\n - [indicator](#EmbedShapeUtil-indicator-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass EmbedShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#EmbedShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `canResize` \\\\{#EmbedShapeUtil-canResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: (shape: TLEmbedShape) => boolean\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `canUnmount` \\\\{#EmbedShapeUtil-canUnmount-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanUnmount: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#EmbedShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#EmbedShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#EmbedShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#EmbedShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `type` \\\\{#EmbedShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'embed\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#EmbedShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLEmbedShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#EmbedShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLEmbedShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#EmbedShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLEmbedShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLEmbedShape](/gen/tlschema/TLEmbedShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","EnumStyleProp-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [values](#EnumStyleProp-values-member)\\n
\\n\\nA `StyleProp` is a property of a shape that follows some special rules.\\n\\n\\n1. The same value can be set on lots of shapes at the same time.\\n\\n\\n2. The last used value is automatically saved and applied to new shapes.\\n\\n\\nFor example, [DefaultColorStyle](/tlschema/DefaultColorStyle-var) is a style prop used by tldraw\'s default shapes to set their color. If you try selecting several shapes on tldraw.com and changing their color, you\'ll see that the color is applied to all of them. Then, if you draw a new shape, it\'ll have the same color as the one you just set.\\n\\n\\nYou can use styles in your own shapes by either defining your own (see [StyleProp.define](/tlschema/StyleProp-define-member-1) and [StyleProp.defineEnum](/tlschema/StyleProp-defineEnum-member-1)) or using tldraw\'s default ones, like [DefaultColorStyle](/tlschema/DefaultColorStyle-var). When you define a shape, pass a `props` object describing all of your shape\'s properties, using `StyleProp`s for the ones you want to be styles. See the [custom styles example](https://github.com/tldraw/tldraw/tree/main/apps/examples/src/16-custom-styles) for more.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass EnumStyleProp extends StyleProp {}\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n## Properties\\n\\n### `values` \\\\{#EnumStyleProp-values-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly values: readonly T[]\\n```\\n\\n---\\n\\n","ErrorBoundary-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [state](#ErrorBoundary-state-member)\\n- [Methods](#methods)\\n - [componentDidCatch](#ErrorBoundary-componentDidCatch-member-1)\\n - [getDerivedStateFromError](#ErrorBoundary-getDerivedStateFromError-member-1)\\n - [render](#ErrorBoundary-render-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ErrorBoundary extends React.Component<\\n React.PropsWithRef>,\\n TLErrorBoundaryState\\n> {}\\n```\\n\\n##### References\\n\\n[React.Component](/gen/@types/react-React-Component-class), [React.PropsWithRef](/gen/@types/react-React-PropsWithRef-type), [React.PropsWithChildren](/gen/@types/react-React-PropsWithChildren-type), [TLErrorBoundaryProps](/gen/editor/TLErrorBoundaryProps-interface), [TLErrorBoundaryState](/gen/editor/~TLErrorBoundaryState-type)\\n\\n---\\n\\n## Properties\\n\\n### `state` \\\\{#ErrorBoundary-state-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nstate: TLErrorBoundaryState\\n```\\n\\n##### References\\n\\n[TLErrorBoundaryState](/gen/editor/~TLErrorBoundaryState-type)\\n\\n---\\n\\n## Methods\\n\\n### `componentDidCatch()` \\\\{#ErrorBoundary-componentDidCatch-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`error`\\n\\n\\n\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `getDerivedStateFromError()` \\\\{#ErrorBoundary-getDerivedStateFromError-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`error`\\n\\n\\n\\n\\n```ts\\nError\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n error: Error\\n}\\n```\\n\\n##### References\\n\\n[Error](/gen/Error-interface)\\n\\n---\\n\\n### `render()` \\\\{#ErrorBoundary-render-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n | boolean\\n | JSX.Element\\n | null\\n | number\\n | React.ReactFragment\\n | string\\n | undefined\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface), [React.ReactFragment](/gen/@types/react-React-ReactFragment-type)\\n\\n---\\n\\n","ErrorScreen-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","FrameShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nFrameShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLFrameShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n","FrameShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canBind](#FrameShapeUtil-canBind-member)\\n - [canDropShapes](#FrameShapeUtil-canDropShapes-member)\\n - [canEdit](#FrameShapeUtil-canEdit-member)\\n - [canReceiveNewChildrenOfType](#FrameShapeUtil-canReceiveNewChildrenOfType-member)\\n - [onDragShapesOut](#FrameShapeUtil-onDragShapesOut-member)\\n - [onDragShapesOver](#FrameShapeUtil-onDragShapesOver-member)\\n - [onResizeEnd](#FrameShapeUtil-onResizeEnd-member)\\n - [type](#FrameShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#FrameShapeUtil-component-member-1)\\n - [getDefaultProps](#FrameShapeUtil-getDefaultProps-member-1)\\n - [indicator](#FrameShapeUtil-indicator-member-1)\\n - [providesBackgroundForChildren](#FrameShapeUtil-providesBackgroundForChildren-member-1)\\n - [toSvg](#FrameShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass FrameShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#FrameShapeUtil-canBind-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `canDropShapes` \\\\{#FrameShapeUtil-canDropShapes-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanDropShapes: (shape: TLFrameShape, _shapes: TLShape[]) => boolean\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `canEdit` \\\\{#FrameShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `canReceiveNewChildrenOfType` \\\\{#FrameShapeUtil-canReceiveNewChildrenOfType-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanReceiveNewChildrenOfType: (\\n shape: TLShape,\\n _type: TLShape[\'type\']\\n) => boolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `onDragShapesOut` \\\\{#FrameShapeUtil-onDragShapesOut-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOut: (_shape: TLFrameShape, shapes: TLShape[]) => void\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `onDragShapesOver` \\\\{#FrameShapeUtil-onDragShapesOver-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOver: (\\n frame: TLFrameShape,\\n shapes: TLShape[]\\n) => {\\n shouldHint: boolean\\n}\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `onResizeEnd` \\\\{#FrameShapeUtil-onResizeEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeEnd: TLOnResizeEndHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeEndHandler](/gen/editor/TLOnResizeEndHandler-type), [TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n---\\n\\n### `type` \\\\{#FrameShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'frame\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#FrameShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#FrameShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLFrameShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#FrameShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `providesBackgroundForChildren()` \\\\{#FrameShapeUtil-providesBackgroundForChildren-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `toSvg()` \\\\{#FrameShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise | SVGElement\\n```\\n\\n##### References\\n\\n[TLFrameShape](/gen/tlschema/TLFrameShape-type), [Promise](/gen/Promise-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n","GRID_STEPS-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGRID_STEPS: {\\n min: number\\n mid: number\\n step: number\\n}[]\\n```\\n\\n","GeoShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGeoShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLGeoShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n","GeoShapeGeoStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGeoShapeGeoStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","GeoShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canEdit](#GeoShapeUtil-canEdit-member)\\n - [onBeforeCreate](#GeoShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#GeoShapeUtil-onBeforeUpdate-member)\\n - [onDoubleClick](#GeoShapeUtil-onDoubleClick-member)\\n - [onEditEnd](#GeoShapeUtil-onEditEnd-member)\\n - [onResize](#GeoShapeUtil-onResize-member)\\n - [type](#GeoShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#GeoShapeUtil-component-member-1)\\n - [getBounds](#GeoShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#GeoShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#GeoShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#GeoShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#GeoShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#GeoShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#GeoShapeUtil-hitTestPoint-member-1)\\n - [indicator](#GeoShapeUtil-indicator-member-1)\\n - [toSvg](#GeoShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass GeoShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#GeoShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#GeoShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate: (shape: TLGeoShape) =>\\n | {\\n props: {\\n growY: number\\n geo:\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n labelColor:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n fill: \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n dash: \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n w: number\\n h: number\\n text: string\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#GeoShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate: (\\n prev: TLGeoShape,\\n next: TLGeoShape\\n) =>\\n | {\\n props: {\\n growY: number\\n geo:\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n labelColor:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n fill: \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n dash: \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n w: number\\n h: number\\n text: string\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#GeoShapeUtil-onDoubleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick: (shape: TLGeoShape) =>\\n | {\\n props: {\\n geo: \'check-box\'\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | {\\n props: {\\n geo: \'rectangle\'\\n }\\n type: \'geo\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#GeoShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#GeoShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n### `type` \\\\{#GeoShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'geo\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#GeoShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#GeoShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#GeoShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#GeoShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#GeoShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLGeoShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#GeoShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#GeoShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#GeoShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#GeoShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#GeoShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGElement\\n```\\n\\n##### References\\n\\n[TLGeoShape](/gen/tlschema/TLGeoShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n","GroupShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nGroupShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLGroupShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n","GroupShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canBind](#GroupShapeUtil-canBind-member)\\n - [hideSelectionBoundsBg](#GroupShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#GroupShapeUtil-hideSelectionBoundsFg-member)\\n - [onChildrenChange](#GroupShapeUtil-onChildrenChange-member)\\n - [type](#GroupShapeUtil-type-member)\\n - [type](#GroupShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#GroupShapeUtil-component-member-1)\\n - [getBounds](#GroupShapeUtil-getBounds-member-1)\\n - [getCenter](#GroupShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#GroupShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#GroupShapeUtil-getOutline-member-1)\\n - [indicator](#GroupShapeUtil-indicator-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass GroupShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#GroupShapeUtil-canBind-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#GroupShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#GroupShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onChildrenChange` \\\\{#GroupShapeUtil-onChildrenChange-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonChildrenChange: TLOnChildrenChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnChildrenChangeHandler](/gen/editor/TLOnChildrenChangeHandler-type), [TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n---\\n\\n### `type` \\\\{#GroupShapeUtil-type-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ntype: \'group\'\\n```\\n\\n---\\n\\n### `type` \\\\{#GroupShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'group\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#GroupShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#GroupShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#GroupShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#GroupShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLGroupShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#GroupShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#GroupShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLGroupShape](/gen/tlschema/TLGroupShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n","HTMLContainer-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, className, ...rest }`\\n\\n\\n\\n\\n```ts\\nHTMLContainerProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[HTMLContainerProps](/gen/editor/HTMLContainerProps-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","HTMLContainerProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype HTMLContainerProps = React.HTMLAttributes\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [HTMLDivElement](/gen/HTMLDivElement-interface)\\n\\n","HighlightShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nHighlightShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLHighlightShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n","HighlightShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [hideResizeHandles](#HighlightShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#HighlightShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#HighlightShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#HighlightShapeUtil-hideSelectionBoundsFg-member)\\n - [onResize](#HighlightShapeUtil-onResize-member)\\n - [type](#HighlightShapeUtil-type-member)\\n- [Methods](#methods)\\n - [backgroundComponent](#HighlightShapeUtil-backgroundComponent-member-1)\\n - [component](#HighlightShapeUtil-component-member-1)\\n - [expandSelectionOutlinePx](#HighlightShapeUtil-expandSelectionOutlinePx-member-1)\\n - [getBounds](#HighlightShapeUtil-getBounds-member-1)\\n - [getCenter](#HighlightShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#HighlightShapeUtil-getDefaultProps-member-1)\\n - [getOutline](#HighlightShapeUtil-getOutline-member-1)\\n - [hitTestLineSegment](#HighlightShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#HighlightShapeUtil-hitTestPoint-member-1)\\n - [indicator](#HighlightShapeUtil-indicator-member-1)\\n - [toBackgroundSvg](#HighlightShapeUtil-toBackgroundSvg-member-1)\\n - [toSvg](#HighlightShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass HighlightShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `hideResizeHandles` \\\\{#HighlightShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#HighlightShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#HighlightShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#HighlightShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: (shape: TLHighlightShape) => boolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#HighlightShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `type` \\\\{#HighlightShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'highlight\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `backgroundComponent()` \\\\{#HighlightShapeUtil-backgroundComponent-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `component()` \\\\{#HighlightShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `expandSelectionOutlinePx()` \\\\{#HighlightShapeUtil-expandSelectionOutlinePx-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `getBounds()` \\\\{#HighlightShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#HighlightShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#HighlightShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLHighlightShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#HighlightShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#HighlightShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#HighlightShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#HighlightShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toBackgroundSvg()` \\\\{#HighlightShapeUtil-toBackgroundSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGPathElement\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [SVGPathElement](/gen/SVGPathElement-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#HighlightShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGPathElement\\n```\\n\\n##### References\\n\\n[TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [SVGPathElement](/gen/SVGPathElement-interface)\\n\\n---\\n\\n","HistoryEntry-type":"Public TypeAlias\\n\\nAn entry containing changes that originated either by user actions or remote changes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype HistoryEntry = {\\n changes: RecordsDiff\\n source: ChangeSource\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [RecordsDiff](/gen/store/RecordsDiff-type), [ChangeSource](/gen/store/~ChangeSource-type)\\n\\n","INDENT-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nINDENT = \' \'\\n```\\n\\n","Icon-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nIcon: import(\'react\').NamedExoticComponent\\n```\\n\\n##### References\\n\\n[NamedExoticComponent](/gen/@types/react-React-NamedExoticComponent-interface), [TLUiIconProps](/gen/ui/TLUiIconProps-interface)\\n\\n","IdOf-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype IdOf = R[\'id\']\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","ImageShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nImageShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLImageShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n","ImageShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canCrop](#ImageShapeUtil-canCrop-member)\\n - [isAspectRatioLocked](#ImageShapeUtil-isAspectRatioLocked-member)\\n - [onDoubleClick](#ImageShapeUtil-onDoubleClick-member)\\n - [onDoubleClickEdge](#ImageShapeUtil-onDoubleClickEdge-member)\\n - [type](#ImageShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#ImageShapeUtil-component-member-1)\\n - [getDefaultProps](#ImageShapeUtil-getDefaultProps-member-1)\\n - [indicator](#ImageShapeUtil-indicator-member-1)\\n - [toSvg](#ImageShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ImageShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canCrop` \\\\{#ImageShapeUtil-canCrop-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanCrop: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#ImageShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: () => boolean\\n```\\n\\n---\\n\\n### `onDoubleClick` \\\\{#ImageShapeUtil-onDoubleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick: (shape: TLImageShape) => void\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n### `onDoubleClickEdge` \\\\{#ImageShapeUtil-onDoubleClickEdge-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge: TLOnDoubleClickHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type), [TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n### `type` \\\\{#ImageShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'image\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#ImageShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#ImageShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLImageShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#ImageShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | null\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#ImageShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[TLImageShape](/gen/tlschema/TLImageShape-type), [Promise](/gen/Promise-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","Input-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInput: React.ForwardRefExoticComponent<\\n TLUiInputProps & React.RefAttributes\\n>\\n```\\n\\n##### References\\n\\n[React.ForwardRefExoticComponent](/gen/@types/react-React-ForwardRefExoticComponent-interface), [TLUiInputProps](/gen/ui/TLUiInputProps-interface), [React.RefAttributes](/gen/@types/react-React-RefAttributes-interface), [HTMLInputElement](/gen/HTMLInputElement-interface)\\n\\n","InstancePageStateRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInstancePageStateRecordType: import(\'@tldraw/store\').RecordType<\\n TLInstancePageState,\\n \'pageId\'\\n>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface)\\n\\n","InstancePresenceRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInstancePresenceRecordType: import(\'@tldraw/store\').RecordType<\\n TLInstancePresence,\\n \'currentPageId\' | \'userId\' | \'userName\'\\n>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLInstancePresence](/gen/tlschema/TLInstancePresence-interface)\\n\\n","LANGUAGES-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nLANGUAGES: readonly [\\n {\\n readonly locale: \'ar\'\\n readonly label: \'عربي\'\\n },\\n {\\n readonly locale: \'ca\'\\n readonly label: \'Català\'\\n },\\n {\\n readonly locale: \'da\'\\n readonly label: \'Danish\'\\n },\\n {\\n readonly locale: \'de\'\\n readonly label: \'Deutsch\'\\n },\\n {\\n readonly locale: \'en\'\\n readonly label: \'English\'\\n },\\n {\\n readonly locale: \'es\'\\n readonly label: \'Español\'\\n },\\n {\\n readonly locale: \'fa\'\\n readonly label: \'فارسی\'\\n },\\n {\\n readonly locale: \'fi\'\\n readonly label: \'Suomi\'\\n },\\n {\\n readonly locale: \'fr\'\\n readonly label: \'Français\'\\n },\\n {\\n readonly locale: \'gl\'\\n readonly label: \'Galego\'\\n },\\n {\\n readonly locale: \'he\'\\n readonly label: \'עברית\'\\n },\\n {\\n readonly locale: \'it\'\\n readonly label: \'Italiano\'\\n },\\n {\\n readonly locale: \'ja\'\\n readonly label: \'日本語\'\\n },\\n {\\n readonly locale: \'ko-kr\'\\n readonly label: \'한국어\'\\n },\\n {\\n readonly locale: \'ku\'\\n readonly label: \'کوردی\'\\n },\\n {\\n readonly locale: \'hi-in\'\\n readonly label: \'हिन्दी\'\\n },\\n {\\n readonly locale: \'hu\'\\n readonly label: \'Magyar\'\\n },\\n {\\n readonly locale: \'my\'\\n readonly label: \'မြန်မာစာ\'\\n },\\n {\\n readonly locale: \'ne\'\\n readonly label: \'नेपाली\'\\n },\\n {\\n readonly locale: \'no\'\\n readonly label: \'Norwegian\'\\n },\\n {\\n readonly locale: \'pl\'\\n readonly label: \'Polski\'\\n },\\n {\\n readonly locale: \'pt-br\'\\n readonly label: \'Português - Brasil\'\\n },\\n {\\n readonly locale: \'pt-pt\'\\n readonly label: \'Português - Europeu\'\\n },\\n {\\n readonly locale: \'ro\'\\n readonly label: \'Română\'\\n },\\n {\\n readonly locale: \'ru\'\\n readonly label: \'Russian\'\\n },\\n {\\n readonly locale: \'sv\'\\n readonly label: \'Svenska\'\\n },\\n {\\n readonly locale: \'te\'\\n readonly label: \'తెలుగు\'\\n },\\n {\\n readonly locale: \'th\'\\n readonly label: \'ภาษาไทย\'\\n },\\n {\\n readonly locale: \'tr\'\\n readonly label: \'Türkçe\'\\n },\\n {\\n readonly locale: \'uk\'\\n readonly label: \'Ukrainian\'\\n },\\n {\\n readonly locale: \'vi\'\\n readonly label: \'Tiếng Việt\'\\n },\\n {\\n readonly locale: \'zh-cn\'\\n readonly label: \'Chinese - Simplified\'\\n },\\n {\\n readonly locale: \'zh-tw\'\\n readonly label: \'繁體中文 (台灣)\'\\n }\\n]\\n```\\n\\n","LineSegment2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [a](#LineSegment2d-a-member)\\n - [angle](#LineSegment2d-angle-member)\\n - [b](#LineSegment2d-b-member)\\n - [bounds](#LineSegment2d-bounds-member)\\n - [length](#LineSegment2d-length-member)\\n - [tangent](#LineSegment2d-tangent-member)\\n- [Methods](#methods)\\n - [Angle](#LineSegment2d-Angle-member-1)\\n - [getClosestPointTo](#LineSegment2d-getClosestPointTo-member-1)\\n - [getNormal](#LineSegment2d-getNormal-member-1)\\n - [getPath](#LineSegment2d-getPath-member-1)\\n - [getPoint](#LineSegment2d-getPoint-member-1)\\n - [getX](#LineSegment2d-getX-member-1)\\n - [getY](#LineSegment2d-getY-member-1)\\n - [Length](#LineSegment2d-Length-member-1)\\n - [Tangent](#LineSegment2d-Tangent-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass LineSegment2d extends BaseSegment2d {}\\n```\\n\\n##### References\\n\\n[BaseSegment2d](/gen/primitives/~BaseSegment2d-class), [LineSegment2dModel](/gen/primitives/LineSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `LineSegment2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#LineSegment2d-a-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\na: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `angle` \\\\{#LineSegment2d-angle-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget angle(): number\\n```\\n\\n---\\n\\n### `b` \\\\{#LineSegment2d-b-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nb: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `bounds` \\\\{#LineSegment2d-bounds-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget bounds(): Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `length` \\\\{#LineSegment2d-length-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget length(): number\\n```\\n\\n---\\n\\n### `tangent` \\\\{#LineSegment2d-tangent-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget tangent(): Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n## Methods\\n\\n### `Angle()` \\\\{#LineSegment2d-Angle-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n### `getClosestPointTo()` \\\\{#LineSegment2d-getClosestPointTo-member-1}\\n\\nPublic Method\\n\\nGet the closest point on the segment to an arbitrary point.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe arbitrary point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n point: Vec2d\\n distance: number\\n}\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getNormal()` \\\\{#LineSegment2d-getNormal-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getPath()` \\\\{#LineSegment2d-getPath-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`head`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `getPoint()` \\\\{#LineSegment2d-getPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getX()` \\\\{#LineSegment2d-getX-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `getY()` \\\\{#LineSegment2d-getY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `Length()` \\\\{#LineSegment2d-Length-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n### `Tangent()` \\\\{#LineSegment2d-Tangent-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n","LineSegment2dModel-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [a](#LineSegment2dModel-a-member)\\n - [b](#LineSegment2dModel-b-member)\\n - [p](#LineSegment2dModel-p-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface LineSegment2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#LineSegment2dModel-a-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\na: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `b` \\\\{#LineSegment2dModel-b-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nb: VecLike\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `p` \\\\{#LineSegment2dModel-p-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\np: number\\n```\\n\\n---\\n\\n","LineShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nLineShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLLineShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n","LineShapeSplineStyle-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nLineShapeSplineStyle: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'cubic\' | \'line\'\\n>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n","LineShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [hideResizeHandles](#LineShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#LineShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#LineShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#LineShapeUtil-hideSelectionBoundsFg-member)\\n - [isClosed](#LineShapeUtil-isClosed-member)\\n - [onHandleChange](#LineShapeUtil-onHandleChange-member)\\n - [onResize](#LineShapeUtil-onResize-member)\\n - [type](#LineShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#LineShapeUtil-component-member-1)\\n - [getBounds](#LineShapeUtil-getBounds-member-1)\\n - [getDefaultProps](#LineShapeUtil-getDefaultProps-member-1)\\n - [getHandles](#LineShapeUtil-getHandles-member-1)\\n - [getOutline](#LineShapeUtil-getOutline-member-1)\\n - [getOutlineSegments](#LineShapeUtil-getOutlineSegments-member-1)\\n - [hitTestLineSegment](#LineShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#LineShapeUtil-hitTestPoint-member-1)\\n - [indicator](#LineShapeUtil-indicator-member-1)\\n - [toSvg](#LineShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass LineShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `hideResizeHandles` \\\\{#LineShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: () => boolean\\n```\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#LineShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#LineShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#LineShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `isClosed` \\\\{#LineShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: () => boolean\\n```\\n\\n---\\n\\n### `onHandleChange` \\\\{#LineShapeUtil-onHandleChange-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange: TLOnHandleChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#LineShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n### `type` \\\\{#LineShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'line\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#LineShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element | undefined\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#LineShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nimport(\'@tldraw/primitives\').Box2d\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#LineShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLLineShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type)\\n\\n---\\n\\n### `getHandles()` \\\\{#LineShapeUtil-getHandles-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[]\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getOutline()` \\\\{#LineShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegments()` \\\\{#LineShapeUtil-getOutlineSegments-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#LineShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#LineShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#LineShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#LineShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","LoadingScreen-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children }`\\n\\n\\n\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","MatLike-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype MatLike = Matrix2d | Matrix2dModel\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n","Matrix2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [a](#Matrix2d-a-member)\\n - [b](#Matrix2d-b-member)\\n - [c](#Matrix2d-c-member)\\n - [d](#Matrix2d-d-member)\\n - [e](#Matrix2d-e-member)\\n - [f](#Matrix2d-f-member)\\n - [Scale](#Matrix2d-Scale-member)\\n- [Methods](#methods)\\n - [Absolute](#Matrix2d-Absolute-member-1)\\n - [applyToBounds](#Matrix2d-applyToBounds-member-1)\\n - [applyToPoint](#Matrix2d-applyToPoint-member-1)\\n - [applyToPoint](#Matrix2d-applyToPoint-member-1)\\n - [applyToPoints](#Matrix2d-applyToPoints-member-1)\\n - [applyToPoints](#Matrix2d-applyToPoints-member-1)\\n - [applyToXY](#Matrix2d-applyToXY-member-1)\\n - [clone](#Matrix2d-clone-member-1)\\n - [Compose](#Matrix2d-Compose-member-1)\\n - [decompose](#Matrix2d-decompose-member-1)\\n - [Decompose](#Matrix2d-Decompose-member-1)\\n - [decomposed](#Matrix2d-decomposed-member-1)\\n - [equals](#Matrix2d-equals-member-1)\\n - [From](#Matrix2d-From-member-1)\\n - [identity](#Matrix2d-identity-member-1)\\n - [Identity](#Matrix2d-Identity-member-1)\\n - [Inverse](#Matrix2d-Inverse-member-1)\\n - [invert](#Matrix2d-invert-member-1)\\n - [multiply](#Matrix2d-multiply-member-1)\\n - [Multiply](#Matrix2d-Multiply-member-1)\\n - [rotate](#Matrix2d-rotate-member-1)\\n - [Rotate](#Matrix2d-Rotate-member-1)\\n - [scale](#Matrix2d-scale-member-1)\\n - [setTo](#Matrix2d-setTo-member-1)\\n - [Smooth](#Matrix2d-Smooth-member-1)\\n - [toCssString](#Matrix2d-toCssString-member-1)\\n - [toCssString](#Matrix2d-toCssString-member-1)\\n - [translate](#Matrix2d-translate-member-1)\\n - [Translate](#Matrix2d-Translate-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Matrix2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Matrix2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`d`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`e`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`f`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#Matrix2d-a-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\na: number\\n```\\n\\n---\\n\\n### `b` \\\\{#Matrix2d-b-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nb: number\\n```\\n\\n---\\n\\n### `c` \\\\{#Matrix2d-c-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nc: number\\n```\\n\\n---\\n\\n### `d` \\\\{#Matrix2d-d-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nd: number\\n```\\n\\n---\\n\\n### `e` \\\\{#Matrix2d-e-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ne: number\\n```\\n\\n---\\n\\n### `f` \\\\{#Matrix2d-f-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nf: number\\n```\\n\\n---\\n\\n### `Scale` \\\\{#Matrix2d-Scale-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic Scale: {\\n (x: number, y: number): Matrix2dModel\\n (x: number, y: number, cx: number, cy: number): Matrix2dModel\\n}\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n## Methods\\n\\n### `Absolute()` \\\\{#Matrix2d-Absolute-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `applyToBounds()` \\\\{#Matrix2d-applyToBounds-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`box`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `applyToPoint()` \\\\{#Matrix2d-applyToPoint-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToPoint()` \\\\{#Matrix2d-applyToPoint-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToPoints()` \\\\{#Matrix2d-applyToPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToPoints()` \\\\{#Matrix2d-applyToPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `applyToXY()` \\\\{#Matrix2d-applyToXY-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber[]\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n---\\n\\n### `clone()` \\\\{#Matrix2d-clone-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Compose()` \\\\{#Matrix2d-Compose-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`matrices`\\n\\n\\n\\n\\n```ts\\nMatLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `decompose()` \\\\{#Matrix2d-decompose-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrixInfo\\n```\\n\\n##### References\\n\\n[MatrixInfo](/gen/primitives/MatrixInfo-interface)\\n\\n---\\n\\n### `Decompose()` \\\\{#Matrix2d-Decompose-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrixInfo\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [MatrixInfo](/gen/primitives/MatrixInfo-interface)\\n\\n---\\n\\n### `decomposed()` \\\\{#Matrix2d-decomposed-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrixInfo\\n```\\n\\n##### References\\n\\n[MatrixInfo](/gen/primitives/MatrixInfo-interface)\\n\\n---\\n\\n### `equals()` \\\\{#Matrix2d-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatrix2d | Matrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `From()` \\\\{#Matrix2d-From-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type), [Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `identity()` \\\\{#Matrix2d-identity-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Identity()` \\\\{#Matrix2d-Identity-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Inverse()` \\\\{#Matrix2d-Inverse-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `invert()` \\\\{#Matrix2d-invert-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `multiply()` \\\\{#Matrix2d-multiply-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatrix2d | Matrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class), [Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `Multiply()` \\\\{#Matrix2d-Multiply-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m1`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`m2`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `rotate()` \\\\{#Matrix2d-rotate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cx`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cy`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Rotate()` \\\\{#Matrix2d-Rotate-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cx`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cy`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `scale()` \\\\{#Matrix2d-scale-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Matrix2d-setTo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`model`\\n\\n\\n\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[Matrix2dModel](/gen/primitives/Matrix2dModel-interface)\\n\\n---\\n\\n### `Smooth()` \\\\{#Matrix2d-Smooth-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`precision`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatLike\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n---\\n\\n### `toCssString()` \\\\{#Matrix2d-toCssString-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `toCssString()` \\\\{#Matrix2d-toCssString-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n---\\n\\n### `translate()` \\\\{#Matrix2d-translate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n### `Translate()` \\\\{#Matrix2d-Translate-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMatrix2d\\n```\\n\\n##### References\\n\\n[Matrix2d](/gen/primitives/Matrix2d-class)\\n\\n---\\n\\n","Matrix2dModel-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [a](#Matrix2dModel-a-member)\\n - [b](#Matrix2dModel-b-member)\\n - [c](#Matrix2dModel-c-member)\\n - [d](#Matrix2dModel-d-member)\\n - [e](#Matrix2dModel-e-member)\\n - [f](#Matrix2dModel-f-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Matrix2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#Matrix2dModel-a-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\na: number\\n```\\n\\n---\\n\\n### `b` \\\\{#Matrix2dModel-b-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nb: number\\n```\\n\\n---\\n\\n### `c` \\\\{#Matrix2dModel-c-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nc: number\\n```\\n\\n---\\n\\n### `d` \\\\{#Matrix2dModel-d-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nd: number\\n```\\n\\n---\\n\\n### `e` \\\\{#Matrix2dModel-e-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ne: number\\n```\\n\\n---\\n\\n### `f` \\\\{#Matrix2dModel-f-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nf: number\\n```\\n\\n---\\n\\n","MatrixInfo-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [rotation](#MatrixInfo-rotation-member)\\n - [scaleX](#MatrixInfo-scaleX-member)\\n - [scaleY](#MatrixInfo-scaleY-member)\\n - [x](#MatrixInfo-x-member)\\n - [y](#MatrixInfo-y-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface MatrixInfo {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `rotation` \\\\{#MatrixInfo-rotation-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `scaleX` \\\\{#MatrixInfo-scaleX-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscaleX: number\\n```\\n\\n---\\n\\n### `scaleY` \\\\{#MatrixInfo-scaleY-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscaleY: number\\n```\\n\\n---\\n\\n### `x` \\\\{#MatrixInfo-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#MatrixInfo-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","Migration-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype Migration = {\\n up: (oldState: Before) => After\\n down: (newState: After) => Before\\n}\\n```\\n\\n","MigrationFailureReason-enum":"Public Enum\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nenum MigrationFailureReason {}\\n```\\n\\n","MigrationResult-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype MigrationResult =\\n | {\\n type: \'error\'\\n reason: MigrationFailureReason\\n }\\n | {\\n type: \'success\'\\n value: T\\n }\\n```\\n\\n##### References\\n\\n[MigrationFailureReason](/gen/store/MigrationFailureReason-enum)\\n\\n","Migrations-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [subTypeKey](#Migrations-subTypeKey-member)\\n - [subTypeMigrations](#Migrations-subTypeMigrations-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Migrations extends BaseMigrationsInfo {}\\n```\\n\\n##### References\\n\\n[BaseMigrationsInfo](/gen/store/~BaseMigrationsInfo-interface)\\n\\n---\\n\\n## Properties\\n\\n### `subTypeKey` \\\\{#Migrations-subTypeKey-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nsubTypeKey?: string\\n```\\n\\n---\\n\\n### `subTypeMigrations` \\\\{#Migrations-subTypeMigrations-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nsubTypeMigrations?: Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [BaseMigrationsInfo](/gen/store/~BaseMigrationsInfo-interface)\\n\\n---\\n\\n","NoteShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nNoteShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLNoteShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n","NoteShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canEdit](#NoteShapeUtil-canEdit-member)\\n - [hideResizeHandles](#NoteShapeUtil-hideResizeHandles-member)\\n - [hideSelectionBoundsBg](#NoteShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#NoteShapeUtil-hideSelectionBoundsFg-member)\\n - [onBeforeCreate](#NoteShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#NoteShapeUtil-onBeforeUpdate-member)\\n - [onEditEnd](#NoteShapeUtil-onEditEnd-member)\\n - [type](#NoteShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#NoteShapeUtil-component-member-1)\\n - [getBounds](#NoteShapeUtil-getBounds-member-1)\\n - [getCenter](#NoteShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#NoteShapeUtil-getDefaultProps-member-1)\\n - [getHeight](#NoteShapeUtil-getHeight-member-1)\\n - [getOutline](#NoteShapeUtil-getOutline-member-1)\\n - [indicator](#NoteShapeUtil-indicator-member-1)\\n - [toSvg](#NoteShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass NoteShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#NoteShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#NoteShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#NoteShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#NoteShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#NoteShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate: (next: TLNoteShape) =>\\n | {\\n props: {\\n growY: number\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n text: string\\n }\\n type: \'note\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#NoteShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate: (\\n prev: TLNoteShape,\\n next: TLNoteShape\\n) =>\\n | {\\n props: {\\n growY: number\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n verticalAlign: \'end\' | \'middle\' | \'start\'\\n url: string\\n text: string\\n }\\n type: \'note\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#NoteShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n### `type` \\\\{#NoteShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'note\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#NoteShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#NoteShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCenter()` \\\\{#NoteShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#NoteShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLNoteShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n### `getHeight()` \\\\{#NoteShapeUtil-getHeight-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#NoteShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#NoteShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#NoteShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLNoteShape](/gen/tlschema/TLNoteShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","PI-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPI: number\\n```\\n\\n","PI2-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPI2: number\\n```\\n\\n","PageRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPageRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n","PlopManager-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [editor](#PlopManager-editor-member)\\n - [handleContent](#PlopManager-handleContent-member)\\n - [handleUrl](#PlopManager-handleUrl-member)\\n- [Methods](#methods)\\n - [createAssetFromFile](#PlopManager-createAssetFromFile-member-1)\\n - [createAssetFromUrl](#PlopManager-createAssetFromUrl-member-1)\\n - [createShapesForAssets](#PlopManager-createShapesForAssets-member-1)\\n - [handleEmbed](#PlopManager-handleEmbed-member-1)\\n - [handleFiles](#PlopManager-handleFiles-member-1)\\n - [handleSvgText](#PlopManager-handleSvgText-member-1)\\n - [handleText](#PlopManager-handleText-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ExternalContentManager {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `ExternalContentManager` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n## Properties\\n\\n### `editor` \\\\{#PlopManager-editor-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\neditor: Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n### `handleContent` \\\\{#PlopManager-handleContent-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nhandleContent: (info: TLExternalContent) => Promise\\n```\\n\\n##### References\\n\\n[TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleUrl` \\\\{#PlopManager-handleUrl-member}\\n\\nPublic Property\\n\\nHandle urls from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleUrl = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\nThe info object describing the external content.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhandleUrl: (\\n editor: Editor,\\n {\\n point,\\n url,\\n }: Extract<\\n TLExternalContent,\\n {\\n type: \'url\'\\n }\\n >\\n) => Promise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n## Methods\\n\\n### `createAssetFromFile()` \\\\{#PlopManager-createAssetFromFile-member-1}\\n\\nPublic Method\\n\\nOverride this method to change how assets are created from files.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`file`\\n\\n\\n\\n\\n```ts\\nFile\\n```\\n\\nThe file to create the asset from.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [File](/gen/File-interface), [Promise](/gen/Promise-interface), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `createAssetFromUrl()` \\\\{#PlopManager-createAssetFromUrl-member-1}\\n\\nPublic Method\\n\\nOverride me to change the way assets are created from urls.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe url to create the asset from\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Promise](/gen/Promise-interface), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `createShapesForAssets()` \\\\{#PlopManager-createShapesForAssets-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`assets`\\n\\n\\n\\n\\n```ts\\nTLAsset[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`position`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [TLAsset](/gen/tlschema/TLAsset-type), [VecLike](/gen/primitives/VecLike-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleEmbed()` \\\\{#PlopManager-handleEmbed-member-1}\\n\\nPublic Method\\n\\nHandle embed info from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleEmbed = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, url, embed }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'embed\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleFiles()` \\\\{#PlopManager-handleFiles-member-1}\\n\\nPublic Method\\n\\nHandle files from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleFiles = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, files }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'files\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleSvgText()` \\\\{#PlopManager-handleSvgText-member-1}\\n\\nPublic Method\\n\\nHandle svg text from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleSvgText = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, text }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'svg-text\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleText()` \\\\{#PlopManager-handleText-member-1}\\n\\nPublic Method\\n\\nHandle plain text from an external source. Feeling lucky? Overwrite this at runtime to change the way this type of external content is handled.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\neditor.this.handleText = myCustomMethod\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`{ point, text }`\\n\\n\\n\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'text\'\\n }\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [Extract](/gen/Extract-type), [TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n","PointerRecordType-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPointerRecordType: import(\'@tldraw/store\').RecordType\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLPointer](/gen/tlschema/~TLPointer-interface)\\n\\n","Polyline2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [segments](#Polyline2d-segments-member)\\n- [Methods](#methods)\\n - [FromPoints](#Polyline2d-FromPoints-member-1)\\n - [getSegmentsFromPoints](#Polyline2d-getSegmentsFromPoints-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Polyline2d extends BaseSpline2d {}\\n```\\n\\n##### References\\n\\n[BaseSpline2d](/gen/primitives/~BaseSpline2d-class), [LineSegment2dModel](/gen/primitives/LineSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Polyline2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`k`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `segments` \\\\{#Polyline2d-segments-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nsegments: LineSegment2d[]\\n```\\n\\n##### References\\n\\n[LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n## Methods\\n\\n### `FromPoints()` \\\\{#Polyline2d-FromPoints-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPolyline2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Polyline2d](/gen/primitives/Polyline2d-class)\\n\\n---\\n\\n### `getSegmentsFromPoints()` \\\\{#Polyline2d-getSegmentsFromPoints-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`p`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nLineSegment2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [LineSegment2d](/gen/primitives/LineSegment2d-class)\\n\\n---\\n\\n","ROTATE_CORNER_TO_SELECTION_CORNER-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nROTATE_CORNER_TO_SELECTION_CORNER: {\\n readonly top_left_rotate: \'top_left\'\\n readonly top_right_rotate: \'top_right\'\\n readonly bottom_right_rotate: \'bottom_right\'\\n readonly bottom_left_rotate: \'bottom_left\'\\n readonly mobile_rotate: \'top_left\'\\n}\\n```\\n\\n","ReadonlySharedStyleMap-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [map](#ReadonlySharedStyleMap-map-member)\\n - [size](#ReadonlySharedStyleMap-size-member)\\n- [Methods](#methods)\\n - [[Symbol.iterator]](#ReadonlySharedStyleMap-[Symbol-iterator]-member-1)\\n - [entries](#ReadonlySharedStyleMap-entries-member-1)\\n - [equals](#ReadonlySharedStyleMap-equals-member-1)\\n - [get](#ReadonlySharedStyleMap-get-member-1)\\n - [getAsKnownValue](#ReadonlySharedStyleMap-getAsKnownValue-member-1)\\n - [keys](#ReadonlySharedStyleMap-keys-member-1)\\n - [values](#ReadonlySharedStyleMap-values-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ReadonlySharedStyleMap {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `ReadonlySharedStyleMap` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`entries`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nIterable<\\n [StyleProp, SharedStyle]\\n>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Iterable](/gen/Iterable-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n## Properties\\n\\n### `map` \\\\{#ReadonlySharedStyleMap-map-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nprotected map: Map, SharedStyle>\\n```\\n\\n##### References\\n\\n[Map](/gen/Map-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `size` \\\\{#ReadonlySharedStyleMap-size-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget size(): number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `[Symbol.iterator]()` \\\\{#ReadonlySharedStyleMap-[Symbol-iterator]-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<[StyleProp, SharedStyle]>\\n```\\n\\n##### References\\n\\n[Symbol.iterator](/gen/SymbolConstructor-iterator), [IterableIterator](/gen/IterableIterator-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `entries()` \\\\{#ReadonlySharedStyleMap-entries-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<[StyleProp, SharedStyle]>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `equals()` \\\\{#ReadonlySharedStyleMap-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`other`\\n\\n\\n\\n\\n```ts\\nReadonlySharedStyleMap\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[ReadonlySharedStyleMap](/gen/editor/ReadonlySharedStyleMap-class)\\n\\n---\\n\\n### `get()` \\\\{#ReadonlySharedStyleMap-get-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prop`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSharedStyle | undefined\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `getAsKnownValue()` \\\\{#ReadonlySharedStyleMap-getAsKnownValue-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prop`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT | undefined\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `keys()` \\\\{#ReadonlySharedStyleMap-keys-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `values()` \\\\{#ReadonlySharedStyleMap-values-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n","RecordId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordId = string & {\\n __type__: R\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","RecordType-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [createDefaultProperties](#RecordType-createDefaultProperties-member)\\n - [isInstance](#RecordType-isInstance-member)\\n - [migrations](#RecordType-migrations-member)\\n - [scope](#RecordType-scope-member)\\n - [typeName](#RecordType-typeName-member)\\n - [validator](#RecordType-validator-member)\\n- [Methods](#methods)\\n - [clone](#RecordType-clone-member-1)\\n - [create](#RecordType-create-member-1)\\n - [createCustomId](#RecordType-createCustomId-member-1)\\n - [createId](#RecordType-createId-member-1)\\n - [isId](#RecordType-isId-member-1)\\n - [parseId](#RecordType-parseId-member-1)\\n - [validate](#RecordType-validate-member-1)\\n - [withDefaultProperties](#RecordType-withDefaultProperties-member-1)\\n
\\n\\nA record type is a type that can be stored in a record store. It is created with `createRecordType`.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass RecordType<\\n R extends UnknownRecord,\\n RequiredProperties extends keyof Omit\\n> {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Omit](/gen/Omit-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `RecordType` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`typeName`\\n\\n\\n\\n\\n```ts\\nR[\'typeName\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\n{\\n readonly createDefaultProperties: () => Exclude<\\n OmitMeta,\\n RequiredProperties\\n >\\n readonly migrations: Migrations\\n readonly validator?:\\n | {\\n validate: (r: unknown) => R\\n }\\n | StoreValidator\\n readonly scope?: RecordScope\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type), [OmitMeta](/gen/store/~OmitMeta-type), [Migrations](/gen/store/Migrations-interface), [StoreValidator](/gen/store/StoreValidator-type), [RecordScope](/gen/store/~RecordScope-type)\\n\\n---\\n\\n## Properties\\n\\n### `createDefaultProperties` \\\\{#RecordType-createDefaultProperties-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly createDefaultProperties: () => Exclude<\\n OmitMeta,\\n RequiredProperties\\n>\\n```\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type), [OmitMeta](/gen/store/~OmitMeta-type)\\n\\n---\\n\\n### `isInstance` \\\\{#RecordType-isInstance-member}\\n\\nPublic Property\\n\\nCheck whether a record is an instance of this record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst result = recordType.isInstance(someRecord)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\nThe record to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisInstance: (record?: UnknownRecord) => record is R\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [record](/gen/store/~record)\\n\\n---\\n\\n### `migrations` \\\\{#RecordType-migrations-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly migrations: Migrations\\n```\\n\\n##### References\\n\\n[Migrations](/gen/store/Migrations-interface)\\n\\n---\\n\\n### `scope` \\\\{#RecordType-scope-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly scope: RecordScope\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type)\\n\\n---\\n\\n### `typeName` \\\\{#RecordType-typeName-member}\\n\\nPublic Readonly Property\\n\\nThe unique type associated with this record.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly typeName: R[\'typeName\']\\n```\\n\\n---\\n\\n### `validator` \\\\{#RecordType-validator-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly validator:\\n | {\\n validate: (r: unknown) => R\\n }\\n | StoreValidator\\n```\\n\\n##### References\\n\\n[StoreValidator](/gen/store/StoreValidator-type)\\n\\n---\\n\\n## Methods\\n\\n### `clone()` \\\\{#RecordType-clone-member-1}\\n\\nPublic Method\\n\\nClone a record of this type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nR\\n```\\n\\nThe record to clone.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n The cloned record.\\n\\n\\n---\\n\\n### `create()` \\\\{#RecordType-create-member-1}\\n\\nPublic Method\\n\\nCreate a new record of this type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`properties`\\n\\n\\n\\n\\n```ts\\nPick &\\n Omit, RequiredProperties>\\n```\\n\\nThe properties of the record.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n The new record.\\n\\n\\n##### References\\n\\n[Pick](/gen/Pick-type), [Omit](/gen/Omit-type), [Partial](/gen/Partial-type)\\n\\n---\\n\\n### `createCustomId()` \\\\{#RecordType-createCustomId-member-1}\\n\\nPublic Method\\n\\nCreate a new ID for this record type based on the given ID.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst id = recordType.createCustomId(\'myId\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe ID to base the new ID on.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nIdOf\\n```\\n\\n The new ID.\\n\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `createId()` \\\\{#RecordType-createId-member-1}\\n\\nPublic Method\\n\\nCreate a new ID for this record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst id = recordType.createId()\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`customUniquePart`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nIdOf\\n```\\n\\n The new ID.\\n\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `isId()` \\\\{#RecordType-isId-member-1}\\n\\nPublic Method\\n\\nCheck whether an id is an id of this type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst result = recordType.isIn(\'someId\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe id to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nid is IdOf\\n```\\n\\n Whether the id is an id of this type.\\n\\n\\n##### References\\n\\n[id](/gen/store/~id), [IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `parseId()` \\\\{#RecordType-parseId-member-1}\\n\\nPublic Method\\n\\nTakes an id like `user:123` and returns the part after the colon `123`\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nIdOf\\n```\\n\\nThe id\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `validate()` \\\\{#RecordType-validate-member-1}\\n\\nPublic Method\\n\\nCheck that the passed in record passes the validations for this type. Returns its input correctly typed if it does, but throws an error otherwise.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n---\\n\\n### `withDefaultProperties()` \\\\{#RecordType-withDefaultProperties-member-1}\\n\\nPublic Method\\n\\nCreate a new RecordType that has the same type name as this RecordType and includes the given default properties.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst authorType = createRecordType(\'author\', () => ({ living: true }))\\nconst deadAuthorType = authorType.withDefaultProperties({ living: false })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`createDefaultProperties`\\n\\n\\n\\n\\n```ts\\n() => DefaultProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordType>\\n```\\n\\n The new RecordType.\\n\\n\\n##### References\\n\\n[Omit](/gen/Omit-type), [Partial](/gen/Partial-type), [RecordType](/gen/store/RecordType-class), [Exclude](/gen/Exclude-type)\\n\\n---\\n\\n","RecordVersion-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordVersion = {\\n rootVersion: number\\n subTypeVersion?: number\\n}\\n```\\n\\n","RecordsDiff-type":"Public TypeAlias\\n\\nA diff describing the changes to a record.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordsDiff = {\\n added: Record, R>\\n updated: Record, [from: R, to: R]>\\n removed: Record, R>\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Record](/gen/Record-type), [IdOf](/gen/store/IdOf-type)\\n\\n","RequiredKeys-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RequiredKeys = Pick & Partial\\n```\\n\\n##### References\\n\\n[Pick](/gen/Pick-type), [Partial](/gen/Partial-type)\\n\\n","RotateCorner-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RotateCorner =\\n | \'bottom_left_rotate\'\\n | \'bottom_right_rotate\'\\n | \'mobile_rotate\'\\n | \'top_left_rotate\'\\n | \'top_right_rotate\'\\n```\\n\\n","SIN-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nSIN: (x: number) => number\\n```\\n\\n","SVGContainer-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ children, className, ...rest }`\\n\\n\\n\\n\\n```ts\\nSVGContainerProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[SVGContainerProps](/gen/editor/SVGContainerProps-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","SVGContainerProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SVGContainerProps = React.HTMLAttributes\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n","SchemaShapeInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SchemaShapeInfo = {\\n migrations?: Migrations\\n props?: Record<\\n string,\\n {\\n validate: (prop: any) => any\\n }\\n >\\n}\\n```\\n\\n##### References\\n\\n[Migrations](/gen/store/Migrations-interface), [Record](/gen/Record-type)\\n\\n","SelectionCorner-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionCorner = \'bottom_left\' | \'bottom_right\' | \'top_left\' | \'top_right\'\\n```\\n\\n","SelectionEdge-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionEdge = \'bottom\' | \'left\' | \'right\' | \'top\'\\n```\\n\\n","SelectionHandle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionHandle = SelectionCorner | SelectionEdge\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n","SerializedSchema-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [recordVersions](#SerializedSchema-recordVersions-member)\\n - [schemaVersion](#SerializedSchema-schemaVersion-member)\\n - [storeVersion](#SerializedSchema-storeVersion-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface SerializedSchema {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `recordVersions` \\\\{#SerializedSchema-recordVersions-member}\\n\\nPublic PropertySignature\\n\\nRecord versions are the versions for each record type. e.g. adding a new field to a record\\n\\n\\n##### Signature\\n\\n\\n```ts\\nrecordVersions: Record<\\n string,\\n | {\\n version: number\\n subTypeVersions: Record\\n subTypeKey: string\\n }\\n | {\\n version: number\\n }\\n>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type)\\n\\n---\\n\\n### `schemaVersion` \\\\{#SerializedSchema-schemaVersion-member}\\n\\nPublic PropertySignature\\n\\nSchema version is the version for this type you\'re looking at right now\\n\\n\\n##### Signature\\n\\n\\n```ts\\nschemaVersion: number\\n```\\n\\n---\\n\\n### `storeVersion` \\\\{#SerializedSchema-storeVersion-member}\\n\\nPublic PropertySignature\\n\\nStore version is the version for the structure of the store. e.g. higher level structure like removing or renaming a record type.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstoreVersion: number\\n```\\n\\n---\\n\\n","ShapeProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype ShapeProps> = {\\n [K in keyof Shape[\'props\']]: T.Validatable\\n}\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [T.Validatable](/gen/validate/Validatable-type)\\n\\n","ShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canBind](#ShapeUtil-canBind-member)\\n - [canCrop](#ShapeUtil-canCrop-member)\\n - [canEdit](#ShapeUtil-canEdit-member)\\n - [canResize](#ShapeUtil-canResize-member)\\n - [canScroll](#ShapeUtil-canScroll-member)\\n - [canSnap](#ShapeUtil-canSnap-member)\\n - [canUnmount](#ShapeUtil-canUnmount-member)\\n - [editor](#ShapeUtil-editor-member)\\n - [hideResizeHandles](#ShapeUtil-hideResizeHandles-member)\\n - [hideRotateHandle](#ShapeUtil-hideRotateHandle-member)\\n - [hideSelectionBoundsBg](#ShapeUtil-hideSelectionBoundsBg-member)\\n - [hideSelectionBoundsFg](#ShapeUtil-hideSelectionBoundsFg-member)\\n - [isAspectRatioLocked](#ShapeUtil-isAspectRatioLocked-member)\\n - [isClosed](#ShapeUtil-isClosed-member)\\n - [onBeforeCreate](#ShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#ShapeUtil-onBeforeUpdate-member)\\n - [onChildrenChange](#ShapeUtil-onChildrenChange-member)\\n - [onClick](#ShapeUtil-onClick-member)\\n - [onDoubleClick](#ShapeUtil-onDoubleClick-member)\\n - [onDoubleClickEdge](#ShapeUtil-onDoubleClickEdge-member)\\n - [onDoubleClickHandle](#ShapeUtil-onDoubleClickHandle-member)\\n - [onDragShapesOut](#ShapeUtil-onDragShapesOut-member)\\n - [onDragShapesOver](#ShapeUtil-onDragShapesOver-member)\\n - [onDropShapesOver](#ShapeUtil-onDropShapesOver-member)\\n - [onEditEnd](#ShapeUtil-onEditEnd-member)\\n - [onHandleChange](#ShapeUtil-onHandleChange-member)\\n - [onResize](#ShapeUtil-onResize-member)\\n - [onResizeEnd](#ShapeUtil-onResizeEnd-member)\\n - [onResizeStart](#ShapeUtil-onResizeStart-member)\\n - [onRotate](#ShapeUtil-onRotate-member)\\n - [onRotateEnd](#ShapeUtil-onRotateEnd-member)\\n - [onRotateStart](#ShapeUtil-onRotateStart-member)\\n - [onTranslate](#ShapeUtil-onTranslate-member)\\n - [onTranslateEnd](#ShapeUtil-onTranslateEnd-member)\\n - [onTranslateStart](#ShapeUtil-onTranslateStart-member)\\n - [styleProps](#ShapeUtil-styleProps-member)\\n - [type](#ShapeUtil-type-member)\\n - [type](#ShapeUtil-type-member)\\n- [Methods](#methods)\\n - [canDropShapes](#ShapeUtil-canDropShapes-member-1)\\n - [canReceiveNewChildrenOfType](#ShapeUtil-canReceiveNewChildrenOfType-member-1)\\n - [center](#ShapeUtil-center-member-1)\\n - [component](#ShapeUtil-component-member-1)\\n - [getBounds](#ShapeUtil-getBounds-member-1)\\n - [getCanvasSvgDefs](#ShapeUtil-getCanvasSvgDefs-member-1)\\n - [getCenter](#ShapeUtil-getCenter-member-1)\\n - [getDefaultProps](#ShapeUtil-getDefaultProps-member-1)\\n - [getHandles](#ShapeUtil-getHandles-member-1)\\n - [getOutline](#ShapeUtil-getOutline-member-1)\\n - [getOutlineSegments](#ShapeUtil-getOutlineSegments-member-1)\\n - [hitTestLineSegment](#ShapeUtil-hitTestLineSegment-member-1)\\n - [hitTestPoint](#ShapeUtil-hitTestPoint-member-1)\\n - [indicator](#ShapeUtil-indicator-member-1)\\n - [setStyleInPartial](#ShapeUtil-setStyleInPartial-member-1)\\n - [snapPoints](#ShapeUtil-snapPoints-member-1)\\n - [toBackgroundSvg](#ShapeUtil-toBackgroundSvg-member-1)\\n - [toSvg](#ShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class ShapeUtil {}\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `ShapeUtil` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nShape[\'type\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`styleProps`\\n\\n\\n\\n\\n```ts\\nReadonlyMap, string>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [ReadonlyMap](/gen/ReadonlyMap-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#ShapeUtil-canBind-member}\\n\\nPublic Property\\n\\nWhether the shape can be bound to by an arrow.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`_otherShape`\\n\\n\\n\\n\\nThe other shape attempting to bind to this shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: (_shape: Shape, _otherShape?: K | undefined) => boolean\\n```\\n\\n---\\n\\n### `canCrop` \\\\{#ShapeUtil-canCrop-member}\\n\\nPublic Property\\n\\nWhether the shape can be cropped.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanCrop: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canEdit` \\\\{#ShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\nWhether the shape can be double clicked to edit.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canResize` \\\\{#ShapeUtil-canResize-member}\\n\\nPublic Property\\n\\nWhether the shape can be resized.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canScroll` \\\\{#ShapeUtil-canScroll-member}\\n\\nPublic Property\\n\\nWhether the shape can be scrolled while editing.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanScroll: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canSnap` \\\\{#ShapeUtil-canSnap-member}\\n\\nPublic Property\\n\\nWhether the shape can be snapped to by another shape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanSnap: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canUnmount` \\\\{#ShapeUtil-canUnmount-member}\\n\\nPublic Property\\n\\nWhether the shape should unmount when not visible in the editor. Consider keeping this to false if the shape\'s `component` has local state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanUnmount: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `editor` \\\\{#ShapeUtil-editor-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\neditor: Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#ShapeUtil-hideResizeHandles-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its resize handles when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#ShapeUtil-hideRotateHandle-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its resize handles when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#ShapeUtil-hideSelectionBoundsBg-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its selection bounds background when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#ShapeUtil-hideSelectionBoundsFg-member}\\n\\nPublic Property\\n\\nWhether the shape should hide its selection bounds foreground when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#ShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\nWhether the shape\'s aspect ratio is locked.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `isClosed` \\\\{#ShapeUtil-isClosed-member}\\n\\nPublic Property\\n\\nWhether the shape\'s outline is closed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#ShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\nA callback called just before a shape is created. This method provides a last chance to modify the created shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nonBeforeCreate = (next) => {\\n return { ...next, x: next.x + 1 }\\n}\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\nThe next shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate?: TLOnBeforeCreateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeCreateHandler](/gen/editor/TLOnBeforeCreateHandler-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#ShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\nA callback called just before a shape is updated. This method provides a last chance to modify the updated shape.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nonBeforeUpdate = (prev, next) => {\\n if (prev.x === next.x) {\\n return { ...next, x: next.x + 1 }\\n }\\n}\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe previous shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\nThe next shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate?: TLOnBeforeUpdateHandler\\n```\\n\\n##### References\\n\\n[TLOnBeforeUpdateHandler](/gen/editor/TLOnBeforeUpdateHandler-type)\\n\\n---\\n\\n### `onChildrenChange` \\\\{#ShapeUtil-onChildrenChange-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s children change.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonChildrenChange?: TLOnChildrenChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnChildrenChangeHandler](/gen/editor/TLOnChildrenChangeHandler-type)\\n\\n---\\n\\n### `onClick` \\\\{#ShapeUtil-onClick-member}\\n\\nPublic Property\\n\\nA callback called when a shape is clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonClick?: TLOnClickHandler\\n```\\n\\n##### References\\n\\n[TLOnClickHandler](/gen/editor/TLOnClickHandler-type)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#ShapeUtil-onDoubleClick-member}\\n\\nPublic Property\\n\\nA callback called when a shape is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick?: TLOnDoubleClickHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type)\\n\\n---\\n\\n### `onDoubleClickEdge` \\\\{#ShapeUtil-onDoubleClickEdge-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s edge is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge?: TLOnDoubleClickHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type)\\n\\n---\\n\\n### `onDoubleClickHandle` \\\\{#ShapeUtil-onDoubleClickHandle-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s handle is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\nThe handle that is double-clicked.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickHandle?: TLOnDoubleClickHandleHandler\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandleHandler](/gen/editor/TLOnDoubleClickHandleHandler-type)\\n\\n---\\n\\n### `onDragShapesOut` \\\\{#ShapeUtil-onDragShapesOut-member}\\n\\nPublic Property\\n\\nA callback called when some other shapes are dragged out of this one.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\nThe shapes that are being dragged out.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOut?: TLOnDragHandler\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onDragShapesOver` \\\\{#ShapeUtil-onDragShapesOver-member}\\n\\nPublic Property\\n\\nA callback called when some other shapes are dragged over this one.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nonDragShapesOver = (shape, shapes) => {\\n return { shouldHint: true }\\n}\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\nThe shapes that are being dragged over this one.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOver?: TLOnDragHandler<\\n Shape,\\n {\\n shouldHint: boolean\\n }\\n>\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onDropShapesOver` \\\\{#ShapeUtil-onDropShapesOver-member}\\n\\nPublic Property\\n\\nA callback called when some other shapes are dropped over this one.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\nThe shapes that are being dropped over this one.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonDropShapesOver?: TLOnDragHandler\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#ShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes being editing.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd?: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type)\\n\\n---\\n\\n### `onHandleChange` \\\\{#ShapeUtil-onHandleChange-member}\\n\\nPublic Property\\n\\nA callback called when a shape\'s handle changes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\nAn object containing the handle and whether the handle is \'precise\' or not.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange?: TLOnHandleChangeHandler\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type)\\n\\n---\\n\\n### `onResize` \\\\{#ShapeUtil-onResize-member}\\n\\nPublic Property\\n\\nA callback called when a shape changes from a resize.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\nInfo about the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonResize?: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)\\n\\n---\\n\\n### `onResizeEnd` \\\\{#ShapeUtil-onResizeEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes resizing.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeEnd?: TLOnResizeEndHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeEndHandler](/gen/editor/TLOnResizeEndHandler-type)\\n\\n---\\n\\n### `onResizeStart` \\\\{#ShapeUtil-onResizeStart-member}\\n\\nPublic Property\\n\\nA callback called when a shape starts being resized.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeStart?: TLOnResizeStartHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeStartHandler](/gen/editor/TLOnResizeStartHandler-type)\\n\\n---\\n\\n### `onRotate` \\\\{#ShapeUtil-onRotate-member}\\n\\nPublic Property\\n\\nA callback called when a shape changes from a rotation.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonRotate?: TLOnRotateHandler\\n```\\n\\n##### References\\n\\n[TLOnRotateHandler](/gen/editor/TLOnRotateHandler-type)\\n\\n---\\n\\n### `onRotateEnd` \\\\{#ShapeUtil-onRotateEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes rotating.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonRotateEnd?: TLOnRotateEndHandler\\n```\\n\\n##### References\\n\\n[TLOnRotateEndHandler](/gen/editor/TLOnRotateEndHandler-type)\\n\\n---\\n\\n### `onRotateStart` \\\\{#ShapeUtil-onRotateStart-member}\\n\\nPublic Property\\n\\nA callback called when a shape starts being rotated.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonRotateStart?: TLOnRotateStartHandler\\n```\\n\\n##### References\\n\\n[TLOnRotateStartHandler](/gen/editor/TLOnRotateStartHandler-type)\\n\\n---\\n\\n### `onTranslate` \\\\{#ShapeUtil-onTranslate-member}\\n\\nPublic Property\\n\\nA callback called when a shape changes from a translation.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the translation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslate?: TLOnTranslateHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateHandler](/gen/editor/TLOnTranslateHandler-type)\\n\\n---\\n\\n### `onTranslateEnd` \\\\{#ShapeUtil-onTranslateEnd-member}\\n\\nPublic Property\\n\\nA callback called when a shape finishes translating.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`initial`\\n\\n\\n\\n\\nThe shape at the start of the translation.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`current`\\n\\n\\n\\n\\nThe current shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateEnd?: TLOnTranslateEndHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateEndHandler](/gen/editor/TLOnTranslateEndHandler-type)\\n\\n---\\n\\n### `onTranslateStart` \\\\{#ShapeUtil-onTranslateStart-member}\\n\\nPublic Property\\n\\nA callback called when a shape starts being translated.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateStart?: TLOnTranslateStartHandler\\n```\\n\\n##### References\\n\\n[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type)\\n\\n---\\n\\n### `styleProps` \\\\{#ShapeUtil-styleProps-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly styleProps: ReadonlyMap, string>\\n```\\n\\n##### References\\n\\n[ReadonlyMap](/gen/ReadonlyMap-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `type` \\\\{#ShapeUtil-type-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly type: Shape[\'type\']\\n```\\n\\n---\\n\\n### `type` \\\\{#ShapeUtil-type-member}\\n\\nPublic Static Property\\n\\nThe type of the shape util, which should match the shape\'s type.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: string\\n```\\n\\n---\\n\\n## Methods\\n\\n### `canDropShapes()` \\\\{#ShapeUtil-canDropShapes-member-1}\\n\\nPublic Method\\n\\nGet whether the shape can receive children of a given type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape type.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`shapes`\\n\\n\\n\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes that are being dropped.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `canReceiveNewChildrenOfType()` \\\\{#ShapeUtil-canReceiveNewChildrenOfType-member-1}\\n\\nPublic Method\\n\\nGet whether the shape can receive children of a given type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nTLShape[\'type\']\\n```\\n\\nThe shape type.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n### `center()` \\\\{#ShapeUtil-center-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s cached center.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `component()` \\\\{#ShapeUtil-component-member-1}\\n\\nPublic Method\\n\\nGet a JSX element for the shape (as an HTML element).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nany\\n```\\n\\n---\\n\\n### `getBounds()` \\\\{#ShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\nGet the (not cached) bounds for the shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getCanvasSvgDefs()` \\\\{#ShapeUtil-getCanvasSvgDefs-member-1}\\n\\nPublic Method\\n\\nReturn elements to be added to the \\\\ section of the canvases SVG context. This can be used to define SVG content (e.g. patterns & masks) that can be referred to by ID from svg elements returned by `component`.\\n\\n\\nEach def should have a unique `key`. If multiple defs from different shapes all have the same key, only one will be used.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeUtilCanvasSvgDef[]\\n```\\n\\n##### References\\n\\n[TLShapeUtilCanvasSvgDef](/gen/editor/~TLShapeUtilCanvasSvgDef-interface)\\n\\n---\\n\\n### `getCenter()` \\\\{#ShapeUtil-getCenter-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s (not cached) center.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#ShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\nGet the default props for a shape.\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nShape[\'props\']\\n```\\n\\n---\\n\\n### `getHandles()` \\\\{#ShapeUtil-getHandles-member-1}\\n\\nPublic Method\\n\\nGet an array of handle models for the shape. This is an optional method.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nutil.getHandles?.(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLHandle[]\\n```\\n\\n##### References\\n\\n[TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n---\\n\\n### `getOutline()` \\\\{#ShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s (not cached) outline.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `getOutlineSegments()` \\\\{#ShapeUtil-getOutlineSegments-member-1}\\n\\nPublic Method\\n\\nGet an array of outline segments for the shape. For most shapes, this will be a single segment that includes the entire outline. For shapes with handles, this might be segments of the outline between each handle.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nutil.getOutlineSegments(myShape)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[][]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `hitTestLineSegment()` \\\\{#ShapeUtil-hitTestLineSegment-member-1}\\n\\nPublic Method\\n\\nGet whether a point intersects the shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe line segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe line segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Whether the line segment intersects the shape.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `hitTestPoint()` \\\\{#ShapeUtil-hitTestPoint-member-1}\\n\\nPublic Method\\n\\nGet whether a point intersects the shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Whether the point intersects the shape.\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `indicator()` \\\\{#ShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\nGet JSX describing the shape\'s indicator (as an SVG element).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nany\\n```\\n\\n---\\n\\n### `setStyleInPartial()` \\\\{#ShapeUtil-setStyleInPartial-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`style`\\n\\n\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLShapePartial\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapePartial\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n---\\n\\n### `snapPoints()` \\\\{#ShapeUtil-snapPoints-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s snap points.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `toBackgroundSvg()` \\\\{#ShapeUtil-toBackgroundSvg-member-1}\\n\\nPublic Method\\n\\nGet the shape\'s background layer as an SVG object.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\nctx - The export context for the SVG - used for adding e.g. \\\\s\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Promise | SVGElement\\n```\\n\\n An SVG element.\\n\\n\\n##### References\\n\\n[SvgExportContext](/gen/editor/~SvgExportContext-interface), [Promise](/gen/Promise-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#ShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\nGet the shape as an SVG object.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\nThe export context for the SVG - used for adding e.g. \\\\s\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise | SVGElement\\n```\\n\\n An SVG element.\\n\\n\\n##### References\\n\\n[SvgExportContext](/gen/editor/~SvgExportContext-interface), [Promise](/gen/Promise-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n---\\n\\n","SharedStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SharedStyle =\\n | {\\n readonly type: \'mixed\'\\n }\\n | {\\n readonly type: \'shared\'\\n readonly value: T\\n }\\n```\\n\\n","StateNode-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [children](#StateNode-children-member)\\n - [children](#StateNode-children-member)\\n - [current](#StateNode-current-member)\\n - [editor](#StateNode-editor-member)\\n - [id](#StateNode-id-member)\\n - [id](#StateNode-id-member)\\n - [initial](#StateNode-initial-member)\\n - [initial](#StateNode-initial-member)\\n - [isActive](#StateNode-isActive-member)\\n - [onCancel](#StateNode-onCancel-member)\\n - [onComplete](#StateNode-onComplete-member)\\n - [onDoubleClick](#StateNode-onDoubleClick-member)\\n - [onEnter](#StateNode-onEnter-member)\\n - [onExit](#StateNode-onExit-member)\\n - [onInterrupt](#StateNode-onInterrupt-member)\\n - [onKeyDown](#StateNode-onKeyDown-member)\\n - [onKeyRepeat](#StateNode-onKeyRepeat-member)\\n - [onKeyUp](#StateNode-onKeyUp-member)\\n - [onMiddleClick](#StateNode-onMiddleClick-member)\\n - [onPointerDown](#StateNode-onPointerDown-member)\\n - [onPointerEnter](#StateNode-onPointerEnter-member)\\n - [onPointerLeave](#StateNode-onPointerLeave-member)\\n - [onPointerMove](#StateNode-onPointerMove-member)\\n - [onPointerUp](#StateNode-onPointerUp-member)\\n - [onQuadrupleClick](#StateNode-onQuadrupleClick-member)\\n - [onRightClick](#StateNode-onRightClick-member)\\n - [onTripleClick](#StateNode-onTripleClick-member)\\n - [onWheel](#StateNode-onWheel-member)\\n - [parent](#StateNode-parent-member)\\n - [path](#StateNode-path-member)\\n - [shapeType](#StateNode-shapeType-member)\\n - [type](#StateNode-type-member)\\n- [Methods](#methods)\\n - [enter](#StateNode-enter-member-1)\\n - [exit](#StateNode-exit-member-1)\\n - [handleEvent](#StateNode-handleEvent-member-1)\\n - [transition](#StateNode-transition-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class StateNode implements Partial {}\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `StateNode` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`parent`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStateNode\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#StateNode-children-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `children` \\\\{#StateNode-children-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic children?: () => TLStateNodeConstructor[]\\n```\\n\\n##### References\\n\\n[TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface)\\n\\n---\\n\\n### `current` \\\\{#StateNode-current-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncurrent: Atom\\n```\\n\\n##### References\\n\\n[Atom](/gen/state/Atom-interface), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `editor` \\\\{#StateNode-editor-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\neditor: Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n### `id` \\\\{#StateNode-id-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `id` \\\\{#StateNode-id-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic id: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#StateNode-initial-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ninitial?: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#StateNode-initial-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic initial?: string\\n```\\n\\n---\\n\\n### `isActive` \\\\{#StateNode-isActive-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisActive: boolean\\n```\\n\\n---\\n\\n### `onCancel` \\\\{#StateNode-onCancel-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonCancel?: TLEventHandlers[\'onCancel\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onComplete` \\\\{#StateNode-onComplete-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonComplete?: TLEventHandlers[\'onComplete\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#StateNode-onDoubleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick?: TLEventHandlers[\'onDoubleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onEnter` \\\\{#StateNode-onEnter-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEnter?: TLEnterEventHandler\\n```\\n\\n##### References\\n\\n[TLEnterEventHandler](/gen/editor/TLEnterEventHandler-type)\\n\\n---\\n\\n### `onExit` \\\\{#StateNode-onExit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonExit?: TLExitEventHandler\\n```\\n\\n##### References\\n\\n[TLExitEventHandler](/gen/editor/TLExitEventHandler-type)\\n\\n---\\n\\n### `onInterrupt` \\\\{#StateNode-onInterrupt-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonInterrupt?: TLEventHandlers[\'onInterrupt\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onKeyDown` \\\\{#StateNode-onKeyDown-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyDown?: TLEventHandlers[\'onKeyDown\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onKeyRepeat` \\\\{#StateNode-onKeyRepeat-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyRepeat?: TLEventHandlers[\'onKeyRepeat\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onKeyUp` \\\\{#StateNode-onKeyUp-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyUp?: TLEventHandlers[\'onKeyUp\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onMiddleClick` \\\\{#StateNode-onMiddleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonMiddleClick?: TLEventHandlers[\'onMiddleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerDown` \\\\{#StateNode-onPointerDown-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerDown?: TLEventHandlers[\'onPointerDown\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerEnter` \\\\{#StateNode-onPointerEnter-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerEnter?: TLEventHandlers[\'onPointerEnter\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerLeave` \\\\{#StateNode-onPointerLeave-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerLeave?: TLEventHandlers[\'onPointerLeave\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerMove` \\\\{#StateNode-onPointerMove-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerMove?: TLEventHandlers[\'onPointerMove\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onPointerUp` \\\\{#StateNode-onPointerUp-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerUp?: TLEventHandlers[\'onPointerUp\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onQuadrupleClick` \\\\{#StateNode-onQuadrupleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonQuadrupleClick?: TLEventHandlers[\'onQuadrupleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onRightClick` \\\\{#StateNode-onRightClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonRightClick?: TLEventHandlers[\'onRightClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onTripleClick` \\\\{#StateNode-onTripleClick-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonTripleClick?: TLEventHandlers[\'onTripleClick\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `onWheel` \\\\{#StateNode-onWheel-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonWheel?: TLEventHandlers[\'onWheel\']\\n```\\n\\n##### References\\n\\n[TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `parent` \\\\{#StateNode-parent-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nparent: StateNode\\n```\\n\\n##### References\\n\\n[StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `path` \\\\{#StateNode-path-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\npath: Computed\\n```\\n\\n##### References\\n\\n[Computed](/gen/state/Computed-interface)\\n\\n---\\n\\n### `shapeType` \\\\{#StateNode-shapeType-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nshapeType?: TLShapeUtilConstructor>\\n```\\n\\n##### References\\n\\n[TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface), [TLBaseShape](/gen/tlschema/TLBaseShape-interface)\\n\\n---\\n\\n### `type` \\\\{#StateNode-type-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ntype: TLStateNodeType\\n```\\n\\n##### References\\n\\n[TLStateNodeType](/gen/editor/~TLStateNodeType-type)\\n\\n---\\n\\n## Methods\\n\\n### `enter()` \\\\{#StateNode-enter-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`from`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `exit()` \\\\{#StateNode-exit-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`from`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `handleEvent()` \\\\{#StateNode-handleEvent-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nExclude\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type), [TLEventInfo](/gen/editor/TLEventInfo-type), [TLPinchEventInfo](/gen/editor/TLPinchEventInfo-type)\\n\\n---\\n\\n### `transition()` \\\\{#StateNode-transition-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`info`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n","Store-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [allRecords](#Store-allRecords-member)\\n - [clear](#Store-clear-member)\\n - [createComputedCache](#Store-createComputedCache-member)\\n - [createSelectedComputedCache](#Store-createSelectedComputedCache-member)\\n - [get](#Store-get-member)\\n - [has](#Store-has-member)\\n - [history](#Store-history-member)\\n - [id](#Store-id-member)\\n - [listen](#Store-listen-member)\\n - [mergeRemoteChanges](#Store-mergeRemoteChanges-member)\\n - [onAfterChange](#Store-onAfterChange-member)\\n - [onAfterCreate](#Store-onAfterCreate-member)\\n - [onAfterDelete](#Store-onAfterDelete-member)\\n - [onBeforeDelete](#Store-onBeforeDelete-member)\\n - [props](#Store-props-member)\\n - [put](#Store-put-member)\\n - [query](#Store-query-member)\\n - [remove](#Store-remove-member)\\n - [schema](#Store-schema-member)\\n - [scopedTypes](#Store-scopedTypes-member)\\n - [serialize](#Store-serialize-member)\\n - [unsafeGetWithoutCapture](#Store-unsafeGetWithoutCapture-member)\\n - [update](#Store-update-member)\\n- [Methods](#methods)\\n - [_flushHistory](#Store-_flushHistory-member-1)\\n - [applyDiff](#Store-applyDiff-member-1)\\n - [extractingChanges](#Store-extractingChanges-member-1)\\n - [filterChangesByScope](#Store-filterChangesByScope-member-1)\\n - [getSnapshot](#Store-getSnapshot-member-1)\\n - [loadSnapshot](#Store-loadSnapshot-member-1)\\n - [validate](#Store-validate-member-1)\\n
\\n\\nA store of records.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Store {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Store` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\n{\\n initialData?: StoreSnapshot\\n schema: StoreSchema\\n props: Props\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n## Properties\\n\\n### `allRecords` \\\\{#Store-allRecords-member}\\n\\nPublic Property\\n\\nGet an array of all values in the store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nallRecords: () => R[]\\n```\\n\\n---\\n\\n### `clear` \\\\{#Store-clear-member}\\n\\nPublic Property\\n\\nRemoves all records from the store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclear: () => void\\n```\\n\\n---\\n\\n### `createComputedCache` \\\\{#Store-createComputedCache-member}\\n\\nPublic Property\\n\\nCreate a computed cache.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\nThe name of the derivation cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`derive`\\n\\n\\n\\n\\nA function used to derive the value of the cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncreateComputedCache: (\\n name: string,\\n derive: (record: V) => T | undefined\\n) => ComputedCache\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type)\\n\\n---\\n\\n### `createSelectedComputedCache` \\\\{#Store-createSelectedComputedCache-member}\\n\\nPublic Property\\n\\nCreate a computed cache from a selector\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\nThe name of the derivation cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`selector`\\n\\n\\n\\n\\nA function that returns a subset of the original shape\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`derive`\\n\\n\\n\\n\\nA function used to derive the value of the cache.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncreateSelectedComputedCache: (\\n name: string,\\n selector: (record: V) => T | undefined,\\n derive: (input: T) => J | undefined\\n) => ComputedCache\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type)\\n\\n---\\n\\n### `get` \\\\{#Store-get-member}\\n\\nPublic Property\\n\\nGet the value of a store record by its id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to get.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget: >(id: K) => RecFromId | undefined\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type), [RecFromId](/gen/store/~RecFromId-type)\\n\\n---\\n\\n### `has` \\\\{#Store-has-member}\\n\\nPublic Property\\n\\nGet whether the record store has a id.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhas: >(id: K) => boolean\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `history` \\\\{#Store-history-member}\\n\\nPublic Readonly Property\\n\\nAn atom containing the store\'s history.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly history: Atom>\\n```\\n\\n##### References\\n\\n[Atom](/gen/state/Atom-interface), [RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `id` \\\\{#Store-id-member}\\n\\nPublic Readonly Property\\n\\nThe random id of the store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: string\\n```\\n\\n---\\n\\n### `listen` \\\\{#Store-listen-member}\\n\\nPublic Property\\n\\nAdd a new listener to the store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`onHistory`\\n\\n\\n\\n\\nThe listener to call when the store updates.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`filters`\\n\\n\\n\\n\\nFilters to apply to the listener.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nlisten: (\\n onHistory: StoreListener,\\n filters?: Partial\\n) => () => void\\n```\\n\\n##### References\\n\\n[StoreListener](/gen/store/StoreListener-type), [Partial](/gen/Partial-type), [StoreListenerFilters](/gen/store/~StoreListenerFilters-type)\\n\\n---\\n\\n### `mergeRemoteChanges` \\\\{#Store-mergeRemoteChanges-member}\\n\\nPublic Property\\n\\nMerge changes from a remote source without triggering listeners.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`fn`\\n\\n\\n\\n\\nA function that merges the external changes.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nmergeRemoteChanges: (fn: () => void) => void\\n```\\n\\n---\\n\\n### `onAfterChange` \\\\{#Store-onAfterChange-member}\\n\\nPublic Property\\n\\nA callback fired after each record\'s change.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe previous value, if any.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`next`\\n\\n\\n\\n\\nThe next value.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterChange?: (prev: R, next: R) => void\\n```\\n\\n---\\n\\n### `onAfterCreate` \\\\{#Store-onAfterCreate-member}\\n\\nPublic Property\\n\\nA callback fired after a record is created. Use this to perform related updates to other records in the store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\nThe record to be created\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterCreate?: (record: R) => void\\n```\\n\\n---\\n\\n### `onAfterDelete` \\\\{#Store-onAfterDelete-member}\\n\\nPublic Property\\n\\nA callback fired after a record is deleted.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe record that will be deleted.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterDelete?: (prev: R) => void\\n```\\n\\n---\\n\\n### `onBeforeDelete` \\\\{#Store-onBeforeDelete-member}\\n\\nPublic Property\\n\\nA callback fired before a record is deleted.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`prev`\\n\\n\\n\\n\\nThe record that will be deleted.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeDelete?: (prev: R) => void\\n```\\n\\n---\\n\\n### `props` \\\\{#Store-props-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly props: Props\\n```\\n\\n---\\n\\n### `put` \\\\{#Store-put-member}\\n\\nPublic Property\\n\\nAdd some records to the store. It\'s an error if they already exist.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`records`\\n\\n\\n\\n\\nThe records to add.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nput: (records: R[], phaseOverride?: \'initialize\') => void\\n```\\n\\n---\\n\\n### `query` \\\\{#Store-query-member}\\n\\nPublic Readonly Property\\n\\nA StoreQueries instance for this store.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly query: StoreQueries\\n```\\n\\n##### References\\n\\n[StoreQueries](/gen/store/~StoreQueries-class)\\n\\n---\\n\\n### `remove` \\\\{#Store-remove-member}\\n\\nPublic Property\\n\\nRemove some records from the store via their ids.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`ids`\\n\\n\\n\\n\\nThe ids of the records to remove.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nremove: (ids: IdOf[]) => void\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `schema` \\\\{#Store-schema-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly schema: StoreSchema\\n```\\n\\n##### References\\n\\n[StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n### `scopedTypes` \\\\{#Store-scopedTypes-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly scopedTypes: {\\n readonly [K in RecordScope]: ReadonlySet\\n}\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type), [ReadonlySet](/gen/ReadonlySet-interface)\\n\\n---\\n\\n### `serialize` \\\\{#Store-serialize-member}\\n\\nPublic Property\\n\\nCreates a JSON payload from the record store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`scope`\\n\\n\\n\\n\\nThe scope of records to serialize. Defaults to \'document\'.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nserialize: (scope?: \'all\' | RecordScope) => StoreSnapshot\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type), [StoreSnapshot](/gen/store/StoreSnapshot-type)\\n\\n---\\n\\n### `unsafeGetWithoutCapture` \\\\{#Store-unsafeGetWithoutCapture-member}\\n\\nPublic Property\\n\\nGet the value of a store record by its id without updating its epoch.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to get.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunsafeGetWithoutCapture: >(\\n id: K\\n) => RecFromId | undefined\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type), [RecFromId](/gen/store/~RecFromId-type)\\n\\n---\\n\\n### `update` \\\\{#Store-update-member}\\n\\nPublic Property\\n\\nUpdate a record. To update multiple records at once, use the `update` method of the `TypedStore` class.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\nThe id of the record to update.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`updater`\\n\\n\\n\\n\\nA function that updates the record.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nupdate: >(\\n id: K,\\n updater: (record: RecFromId) => RecFromId\\n) => void\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type), [RecFromId](/gen/store/~RecFromId-type)\\n\\n---\\n\\n## Methods\\n\\n### `_flushHistory()` \\\\{#Store-_flushHistory-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `applyDiff()` \\\\{#Store-applyDiff-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`diff`\\n\\n\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`runCallbacks`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `extractingChanges()` \\\\{#Store-extractingChanges-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`fn`\\n\\n\\n\\n\\n```ts\\n() => void\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `filterChangesByScope()` \\\\{#Store-filterChangesByScope-member-1}\\n\\nPublic Method\\n\\nFilters out non-document changes from a diff. Returns null if there are no changes left.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`change`\\n\\n\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\nthe records diff\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`scope`\\n\\n\\n\\n\\n```ts\\nRecordScope\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n added: { [K in IdOf]: R }\\n updated: { [K_1 in IdOf]: [from: R, to: R] }\\n removed: { [K in IdOf]: R }\\n} | null\\n```\\n\\n\\n\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type), [RecordScope](/gen/store/~RecordScope-type), [IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `getSnapshot()` \\\\{#Store-getSnapshot-member-1}\\n\\nPublic Method\\n\\nGet a serialized snapshot of the store and its schema.\\n\\n\\n```ts\\nconst snapshot = store.getSnapshot()\\nstore.loadSnapshot(snapshot)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`scope`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n\'all\' | RecordScope\\n```\\n\\nThe scope of records to serialize. Defaults to \'document\'.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n store: StoreSnapshot\\n schema: SerializedSchema\\n}\\n```\\n\\n##### References\\n\\n[RecordScope](/gen/store/~RecordScope-type), [StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `loadSnapshot()` \\\\{#Store-loadSnapshot-member-1}\\n\\nPublic Method\\n\\nLoad a serialized snapshot.\\n\\n\\n```ts\\nconst snapshot = store.getSnapshot()\\nstore.loadSnapshot(snapshot)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`snapshot`\\n\\n\\n\\n\\n```ts\\n{\\n store: StoreSnapshot\\n schema: SerializedSchema\\n}\\n```\\n\\nThe snapshot to load.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `validate()` \\\\{#Store-validate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`phase`\\n\\n\\n\\n\\n```ts\\n | \'createRecord\'\\n | \'initialize\'\\n | \'tests\'\\n | \'updateRecord\'\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n","StoreError-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreError = {\\n error: Error\\n phase: \'createRecord\' | \'initialize\' | \'tests\' | \'updateRecord\'\\n recordBefore?: unknown\\n recordAfter: unknown\\n isExistingValidationIssue: boolean\\n}\\n```\\n\\n##### References\\n\\n[Error](/gen/Error-interface)\\n\\n","StoreListener-type":"Public TypeAlias\\n\\nA function that will be called when the history changes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreListener = (entry: HistoryEntry) => void\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [HistoryEntry](/gen/store/HistoryEntry-type)\\n\\n","StoreSchema-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [currentStoreVersion](#StoreSchema-currentStoreVersion-member)\\n - [types](#StoreSchema-types-member)\\n- [Methods](#methods)\\n - [create](#StoreSchema-create-member-1)\\n - [migratePersistedRecord](#StoreSchema-migratePersistedRecord-member-1)\\n - [migrateStoreSnapshot](#StoreSchema-migrateStoreSnapshot-member-1)\\n - [serialize](#StoreSchema-serialize-member-1)\\n - [serializeEarliestVersion](#StoreSchema-serializeEarliestVersion-member-1)\\n - [validateRecord](#StoreSchema-validateRecord-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass StoreSchema {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n## Properties\\n\\n### `currentStoreVersion` \\\\{#StoreSchema-currentStoreVersion-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget currentStoreVersion(): number\\n```\\n\\n---\\n\\n### `types` \\\\{#StoreSchema-types-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly types: {\\n [Record in R as Record[\'typeName\']]: RecordType\\n}\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class)\\n\\n---\\n\\n## Methods\\n\\n### `create()` \\\\{#StoreSchema-create-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`types`\\n\\n\\n\\n\\n```ts\\n{\\n [TypeName in R[\'typeName\']]: {\\n createId: any\\n }\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStoreSchemaOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStoreSchema\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [StoreSchemaOptions](/gen/store/StoreSchemaOptions-type), [StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n### `migratePersistedRecord()` \\\\{#StoreSchema-migratePersistedRecord-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nR\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`persistedSchema`\\n\\n\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`direction`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n\'down\' | \'up\'\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n---\\n\\n### `migrateStoreSnapshot()` \\\\{#StoreSchema-migrateStoreSnapshot-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`storeSnapshot`\\n\\n\\n\\n\\n```ts\\nStoreSnapshot\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`persistedSchema`\\n\\n\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult>\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n---\\n\\n### `serialize()` \\\\{#StoreSchema-serialize-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `serializeEarliestVersion()` \\\\{#StoreSchema-serializeEarliestVersion-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `validateRecord()` \\\\{#StoreSchema-validateRecord-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`store`\\n\\n\\n\\n\\n```ts\\nStore\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nR\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`phase`\\n\\n\\n\\n\\n```ts\\n | \'createRecord\'\\n | \'initialize\'\\n | \'tests\'\\n | \'updateRecord\'\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`recordBefore`\\n\\n\\n\\n\\n```ts\\nnull | R\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n##### References\\n\\n[Store](/gen/store/Store-class)\\n\\n---\\n\\n","StoreSchemaOptions-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreSchemaOptions = {\\n snapshotMigrations?: Migrations\\n onValidationFailure?: (data: {\\n error: unknown\\n store: Store\\n record: R\\n phase: \'createRecord\' | \'initialize\' | \'tests\' | \'updateRecord\'\\n recordBefore: null | R\\n }) => R\\n createIntegrityChecker?: (store: Store) => void\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Migrations](/gen/store/Migrations-interface), [Store](/gen/store/Store-class)\\n\\n","StoreSnapshot-type":"Public TypeAlias\\n\\nA serialized snapshot of the record store\'s values.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreSnapshot = Record, R>\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Record](/gen/Record-type), [IdOf](/gen/store/IdOf-type)\\n\\n","StoreValidator-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreValidator = {\\n validate: (record: unknown) => R\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","StoreValidators-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreValidators = {\\n [K in R[\'typeName\']]: StoreValidator<\\n Extract<\\n R,\\n {\\n typeName: K\\n }\\n >\\n >\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [StoreValidator](/gen/store/StoreValidator-type), [Extract](/gen/Extract-type)\\n\\n","StrokeOptions-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [easing](#StrokeOptions-easing-member)\\n - [end](#StrokeOptions-end-member)\\n - [last](#StrokeOptions-last-member)\\n - [simulatePressure](#StrokeOptions-simulatePressure-member)\\n - [size](#StrokeOptions-size-member)\\n - [smoothing](#StrokeOptions-smoothing-member)\\n - [start](#StrokeOptions-start-member)\\n - [streamline](#StrokeOptions-streamline-member)\\n - [thinning](#StrokeOptions-thinning-member)\\n
\\n\\nThe options object for `getStroke` or `getStrokePoints`.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface StrokeOptions {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `easing` \\\\{#StrokeOptions-easing-member}\\n\\nPublic PropertySignature\\n\\nAn easing function to apply to each point\'s pressure.\\n\\n\\n##### Signature\\n\\n\\n```ts\\neasing?: (pressure: number) => number\\n```\\n\\n---\\n\\n### `end` \\\\{#StrokeOptions-end-member}\\n\\nPublic PropertySignature\\n\\nCap, taper and easing for the end of the line.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nend?: {\\n cap?: boolean\\n taper?: boolean | number\\n easing?: (distance: number) => number\\n}\\n```\\n\\n---\\n\\n### `last` \\\\{#StrokeOptions-last-member}\\n\\nPublic PropertySignature\\n\\nWhether to handle the points as a completed stroke.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nlast?: boolean\\n```\\n\\n---\\n\\n### `simulatePressure` \\\\{#StrokeOptions-simulatePressure-member}\\n\\nPublic PropertySignature\\n\\nWhether to simulate pressure based on velocity.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nsimulatePressure?: boolean\\n```\\n\\n---\\n\\n### `size` \\\\{#StrokeOptions-size-member}\\n\\nPublic PropertySignature\\n\\nThe base size (diameter) of the stroke.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nsize?: number\\n```\\n\\n---\\n\\n### `smoothing` \\\\{#StrokeOptions-smoothing-member}\\n\\nPublic PropertySignature\\n\\nHow much to soften the stroke\'s edges.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nsmoothing?: number\\n```\\n\\n---\\n\\n### `start` \\\\{#StrokeOptions-start-member}\\n\\nPublic PropertySignature\\n\\nCap, taper and easing for the start of the line.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstart?: {\\n cap?: boolean\\n taper?: boolean | number\\n easing?: (distance: number) => number\\n}\\n```\\n\\n---\\n\\n### `streamline` \\\\{#StrokeOptions-streamline-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nstreamline?: number\\n```\\n\\n---\\n\\n### `thinning` \\\\{#StrokeOptions-thinning-member}\\n\\nPublic PropertySignature\\n\\nThe effect of pressure on the stroke\'s size.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nthinning?: number\\n```\\n\\n---\\n\\n","StrokePoint-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [distance](#StrokePoint-distance-member)\\n - [input](#StrokePoint-input-member)\\n - [point](#StrokePoint-point-member)\\n - [pressure](#StrokePoint-pressure-member)\\n - [radius](#StrokePoint-radius-member)\\n - [runningLength](#StrokePoint-runningLength-member)\\n - [vector](#StrokePoint-vector-member)\\n
\\n\\nThe points returned by `getStrokePoints`, and the input for `getStrokeOutlinePoints`\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface StrokePoint {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `distance` \\\\{#StrokePoint-distance-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ndistance: number\\n```\\n\\n---\\n\\n### `input` \\\\{#StrokePoint-input-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ninput: Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `point` \\\\{#StrokePoint-point-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\npoint: Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `pressure` \\\\{#StrokePoint-pressure-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\npressure: number\\n```\\n\\n---\\n\\n### `radius` \\\\{#StrokePoint-radius-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nradius: number\\n```\\n\\n---\\n\\n### `runningLength` \\\\{#StrokePoint-runningLength-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrunningLength: number\\n```\\n\\n---\\n\\n### `vector` \\\\{#StrokePoint-vector-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nvector: Vec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n","StyleProp-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [defaultValue](#StyleProp-defaultValue-member)\\n - [id](#StyleProp-id-member)\\n - [type](#StyleProp-type-member)\\n- [Methods](#methods)\\n - [define](#StyleProp-define-member-1)\\n - [defineEnum](#StyleProp-defineEnum-member-1)\\n - [validate](#StyleProp-validate-member-1)\\n
\\n\\nA `StyleProp` is a property of a shape that follows some special rules.\\n\\n\\n1. The same value can be set on lots of shapes at the same time.\\n\\n\\n2. The last used value is automatically saved and applied to new shapes.\\n\\n\\nFor example, [DefaultColorStyle](/tlschema/DefaultColorStyle-var) is a style prop used by tldraw\'s default shapes to set their color. If you try selecting several shapes on tldraw.com and changing their color, you\'ll see that the color is applied to all of them. Then, if you draw a new shape, it\'ll have the same color as the one you just set.\\n\\n\\nYou can use styles in your own shapes by either defining your own (see [StyleProp.define](/tlschema/StyleProp-define-member-1) and [StyleProp.defineEnum](/tlschema/StyleProp-defineEnum-member-1)) or using tldraw\'s default ones, like [DefaultColorStyle](/tlschema/DefaultColorStyle-var). When you define a shape, pass a `props` object describing all of your shape\'s properties, using `StyleProp`s for the ones you want to be styles. See the [custom styles example](https://github.com/tldraw/tldraw/tree/main/apps/examples/src/16-custom-styles) for more.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass StyleProp implements T.Validatable {}\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `StyleProp` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`defaultValue`\\n\\n\\n\\n\\n```ts\\nType\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nT.Validatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n## Properties\\n\\n### `defaultValue` \\\\{#StyleProp-defaultValue-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly defaultValue: Type\\n```\\n\\n---\\n\\n### `id` \\\\{#StyleProp-id-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: string\\n```\\n\\n---\\n\\n### `type` \\\\{#StyleProp-type-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly type: T.Validatable\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n## Methods\\n\\n### `define()` \\\\{#StyleProp-define-member-1}\\n\\nPublic Static Method\\n\\nDefine a new [StyleProp](/tlschema/StyleProp-class).\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nimport { StyleProp } from \'@tldraw/tlschema\'\\nimport { T } from \'@tldraw/validate\'\\n\\nconst MyLineWidthProp = StyleProp.define(\'myApp:lineWidth\', {\\n defaultValue: 1,\\n type: T.number,\\n})\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`uniqueId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nEach StyleProp must have a unique ID. We recommend you prefix this with your app/library name.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n\\n\\n\\n```ts\\n{\\n defaultValue: Type\\n type?: T.Validatable\\n}\\n```\\n\\n- `defaultValue`: The default value for this style prop.\\n\\n\\n- `type`: Optionally, describe what type of data you expect for this style prop.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStyleProp\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n### `defineEnum()` \\\\{#StyleProp-defineEnum-member-1}\\n\\nPublic Static Method\\n\\nDefine a new [StyleProp](/tlschema/StyleProp-class) as a list of possible values.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nimport { StyleProp } from \'@tldraw/tlschema\'\\n\\nconst MySizeProp = StyleProp.defineEnum(\'myApp:size\', {\\n defaultValue: \'medium\',\\n values: [\'small\', \'medium\', \'large\'],\\n})\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`uniqueId`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nEach StyleProp must have a unique ID. We recommend you prefix this with your app/library name.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n\\n\\n\\n```ts\\n{\\n defaultValue: Values[number]\\n values: Values\\n}\\n```\\n\\n- `defaultValue`: The default value for this style prop.\\n\\n\\n- `values`: An array of possible values of this style prop.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nEnumStyleProp\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n---\\n\\n### `validate()` \\\\{#StyleProp-validate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nType\\n```\\n\\n---\\n\\n","T-namespace":"None Namespace\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [any](#T-any-var)\\n - [array](#T-array-var)\\n - [bigint](#T-bigint-var)\\n - [boolean](#T-boolean-var)\\n - [integer](#T-integer-var)\\n - [nonZeroInteger](#T-nonZeroInteger-var)\\n - [nonZeroNumber](#T-nonZeroNumber-var)\\n - [number](#T-number-var)\\n - [positiveInteger](#T-positiveInteger-var)\\n - [positiveNumber](#T-positiveNumber-var)\\n - [string](#T-string-var)\\n - [unknown](#T-unknown-var)\\n - [unknownObject](#T-unknownObject-var)\\n- [Methods](#methods)\\n - [arrayOf](#T-arrayOf-function-1)\\n - [dict](#T-dict-function-1)\\n - [literal](#T-literal-function-1)\\n - [literalEnum](#T-literalEnum-function-1)\\n - [model](#T-model-function-1)\\n - [nullable](#T-nullable-function-1)\\n - [object](#T-object-function-1)\\n - [optional](#T-optional-function-1)\\n - [setEnum](#T-setEnum-function-1)\\n - [union](#T-union-function-1)\\n
\\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Properties\\n\\n### `any` \\\\{#T-any-var}\\n\\nPublic Readonly Variable\\n\\nValidation that accepts any value. Generally this should be avoided, but you can use it as an escape hatch if you want to work without validations for e.g. a prototype.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nany: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `array` \\\\{#T-array-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is an array. To check the contents of the array, use T.arrayOf.\\n\\n\\n##### Signature\\n\\n\\n```ts\\narray: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `bigint` \\\\{#T-bigint-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is a bigint.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbigint: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `boolean` \\\\{#T-boolean-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is boolean.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nboolean: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `integer` \\\\{#T-integer-var}\\n\\nPublic Readonly Variable\\n\\nFails if number is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninteger: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nonZeroInteger` \\\\{#T-nonZeroInteger-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\<= 0 and is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnonZeroInteger: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nonZeroNumber` \\\\{#T-nonZeroNumber-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\<= 0\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnonZeroNumber: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `number` \\\\{#T-number-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is a finite non-NaN number.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnumber: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `positiveInteger` \\\\{#T-positiveInteger-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\< 0 and is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\npositiveInteger: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `positiveNumber` \\\\{#T-positiveNumber-var}\\n\\nPublic Readonly Variable\\n\\nFails if value \\\\< 0\\n\\n\\n##### Signature\\n\\n\\n```ts\\npositiveNumber: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `string` \\\\{#T-string-var}\\n\\nPublic Readonly Variable\\n\\nValidates that a value is a string.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstring: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `unknown` \\\\{#T-unknown-var}\\n\\nPublic Readonly Variable\\n\\nValidation that accepts any value. Useful as a starting point for building your own custom validations.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunknown: Validator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `unknownObject` \\\\{#T-unknownObject-var}\\n\\nPublic Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunknownObject: Validator>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class), [Record](/gen/Record-type)\\n\\n---\\n\\n## Methods\\n\\n### `arrayOf` \\\\{#T-arrayOf-function-1}\\n\\nPublic Function\\n\\nValidates that a value is an array whose contents matches the passed-in validator.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`itemValidator`\\n\\n\\n\\n\\n```ts\\nValidatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nArrayOfValidator\\n```\\n\\n##### References\\n\\n[Validatable](/gen/validate/T-Validatable-type), [ArrayOfValidator](/gen/validate/T-ArrayOfValidator-class)\\n\\n---\\n\\n### `dict` \\\\{#T-dict-function-1}\\n\\nPublic Function\\n\\nValidation that an option is a dict with particular keys and values.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`keyValidator`\\n\\n\\n\\n\\n```ts\\nValidatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`valueValidator`\\n\\n\\n\\n\\n```ts\\nValidatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nDictValidator\\n```\\n\\n##### References\\n\\n[Validatable](/gen/validate/T-Validatable-type), [DictValidator](/gen/validate/T-DictValidator-class)\\n\\n---\\n\\n### `literal` \\\\{#T-literal-function-1}\\n\\nPublic Function\\n\\nValidates that a value matches another that was passed in.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst trueValidator = T.literal(true)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`expectedValue`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nValidator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `literalEnum` \\\\{#T-literalEnum-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`values`\\n\\n\\n\\n\\n```ts\\nValues\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nValidator\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `model` \\\\{#T-model-function-1}\\n\\nPublic Function\\n\\nA named object with an ID. Errors will be reported as being part of the object with the given name.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`validator`\\n\\n\\n\\n\\n```ts\\nValidatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nValidator\\n```\\n\\n##### References\\n\\n[Validatable](/gen/validate/T-Validatable-type), [Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nullable` \\\\{#T-nullable-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`validator`\\n\\n\\n\\n\\n```ts\\nValidatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nValidator\\n```\\n\\n##### References\\n\\n[Validatable](/gen/validate/T-Validatable-type), [Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `object` \\\\{#T-object-function-1}\\n\\nPublic Function\\n\\nValidate an object has a particular shape.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\n{\\n readonly [K in keyof Shape]: Validatable\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nObjectValidator\\n```\\n\\n##### References\\n\\n[Validatable](/gen/validate/T-Validatable-type), [ObjectValidator](/gen/validate/T-ObjectValidator-class)\\n\\n---\\n\\n### `optional` \\\\{#T-optional-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`validator`\\n\\n\\n\\n\\n```ts\\nValidatable\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nValidator\\n```\\n\\n##### References\\n\\n[Validatable](/gen/validate/T-Validatable-type), [Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `setEnum` \\\\{#T-setEnum-function-1}\\n\\nPublic Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`values`\\n\\n\\n\\n\\n```ts\\nReadonlySet\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nValidator\\n```\\n\\n##### References\\n\\n[ReadonlySet](/gen/ReadonlySet-interface), [Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `union` \\\\{#T-union-function-1}\\n\\nPublic Function\\n\\nValidate a union of several object types. Each object must have a property matching `key` which should be a unique string.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst catValidator = T.object({ kind: T.value(\'cat\'), meow: T.boolean })\\nconst dogValidator = T.object({ kind: T.value(\'dog\'), bark: T.boolean })\\nconst animalValidator = T.union(\'kind\', {\\n cat: catValidator,\\n dog: dogValidator,\\n})\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`key`\\n\\n\\n\\n\\n```ts\\nKey\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\nConfig\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nUnionValidator\\n```\\n\\n##### References\\n\\n[UnionValidatorConfig](/gen/validate/~UnionValidatorConfig-type), [UnionValidator](/gen/validate/T-UnionValidator-class)\\n\\n---\\n\\n","TAB_ID-var":"Public Readonly Variable\\n\\nA string that is unique per browser tab\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTAB_ID: string\\n```\\n\\n","TAU-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTAU: number\\n```\\n\\n","TLAnimationOptions-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAnimationOptions = Partial<{\\n duration: number\\n easing: typeof EASINGS.easeInOutCubic\\n}>\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [EASINGS.easeInOutCubic](/gen/primitives/__type-easeInOutCubic-member)\\n\\n","TLArrowShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShape = TLBaseShape<\'arrow\', TLArrowShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLArrowShapeProps](/gen/tlschema/TLArrowShapeProps-type)\\n\\n","TLArrowShapeArrowheadStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShapeArrowheadStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [ArrowShapeArrowheadStartStyle](/gen/tlschema/ArrowShapeArrowheadStartStyle-var)\\n\\n","TLArrowShapeProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShapeProps = ShapePropsType\\n```\\n\\n##### References\\n\\n[ShapePropsType](/gen/tlschema/~ShapePropsType-type), [arrowShapeProps](/gen/tlschema/arrowShapeProps-var)\\n\\n","TLArrowShapeTerminal-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShapeTerminal = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [ArrowShapeTerminal](/gen/tlschema/~ArrowShapeTerminal-var)\\n\\n","TLAsset-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAsset = TLBookmarkAsset | TLImageAsset | TLVideoAsset\\n```\\n\\n##### References\\n\\n[TLBookmarkAsset](/gen/tlschema/TLBookmarkAsset-type), [TLImageAsset](/gen/tlschema/TLImageAsset-type), [TLVideoAsset](/gen/tlschema/TLVideoAsset-type)\\n\\n","TLAssetId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAssetId = RecordId>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLBaseAsset](/gen/tlschema/TLBaseAsset-interface)\\n\\n","TLAssetPartial-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAssetPartial = T extends T\\n ? {\\n id: TLAssetId\\n type: T[\'type\']\\n props?: Partial\\n } & Partial>\\n : never\\n```\\n\\n##### References\\n\\n[TLAsset](/gen/tlschema/TLAsset-type), [TLAssetId](/gen/tlschema/TLAssetId-type), [Partial](/gen/Partial-type), [Omit](/gen/Omit-type)\\n\\n","TLAssetShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAssetShape = Extract<\\n TLShape,\\n {\\n props: {\\n assetId: TLAssetId\\n }\\n }\\n>\\n```\\n\\n##### References\\n\\n[Extract](/gen/Extract-type), [TLShape](/gen/tlschema/TLShape-type), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n","TLBaseAsset-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [props](#TLBaseAsset-props-member)\\n - [type](#TLBaseAsset-type-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLBaseAsset\\n extends BaseRecord<\'asset\', TLAssetId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n---\\n\\n## Properties\\n\\n### `props` \\\\{#TLBaseAsset-props-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nprops: Props\\n```\\n\\n---\\n\\n### `type` \\\\{#TLBaseAsset-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: Type\\n```\\n\\n---\\n\\n","TLBaseBoxShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLBaseBoxShape = TLBaseShape<\\n string,\\n {\\n w: number\\n h: number\\n }\\n>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface)\\n\\n","TLBaseEventInfo-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [altKey](#TLBaseEventInfo-altKey-member)\\n - [ctrlKey](#TLBaseEventInfo-ctrlKey-member)\\n - [shiftKey](#TLBaseEventInfo-shiftKey-member)\\n - [type](#TLBaseEventInfo-type-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLBaseEventInfo {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `altKey` \\\\{#TLBaseEventInfo-altKey-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\naltKey: boolean\\n```\\n\\n---\\n\\n### `ctrlKey` \\\\{#TLBaseEventInfo-ctrlKey-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nctrlKey: boolean\\n```\\n\\n---\\n\\n### `shiftKey` \\\\{#TLBaseEventInfo-shiftKey-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nshiftKey: boolean\\n```\\n\\n---\\n\\n### `type` \\\\{#TLBaseEventInfo-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: UiEventType\\n```\\n\\n##### References\\n\\n[UiEventType](/gen/editor/UiEventType-type)\\n\\n---\\n\\n","TLBaseShape-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [index](#TLBaseShape-index-member)\\n - [isLocked](#TLBaseShape-isLocked-member)\\n - [opacity](#TLBaseShape-opacity-member)\\n - [parentId](#TLBaseShape-parentId-member)\\n - [props](#TLBaseShape-props-member)\\n - [rotation](#TLBaseShape-rotation-member)\\n - [type](#TLBaseShape-type-member)\\n - [x](#TLBaseShape-x-member)\\n - [y](#TLBaseShape-y-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLBaseShape\\n extends BaseRecord<\'shape\', TLShapeId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n## Properties\\n\\n### `index` \\\\{#TLBaseShape-index-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nindex: string\\n```\\n\\n---\\n\\n### `isLocked` \\\\{#TLBaseShape-isLocked-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisLocked: boolean\\n```\\n\\n---\\n\\n### `opacity` \\\\{#TLBaseShape-opacity-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nopacity: TLOpacityType\\n```\\n\\n##### References\\n\\n[TLOpacityType](/gen/tlschema/TLOpacityType-type)\\n\\n---\\n\\n### `parentId` \\\\{#TLBaseShape-parentId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nparentId: TLParentId\\n```\\n\\n##### References\\n\\n[TLParentId](/gen/tlschema/TLParentId-type)\\n\\n---\\n\\n### `props` \\\\{#TLBaseShape-props-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nprops: Props\\n```\\n\\n---\\n\\n### `rotation` \\\\{#TLBaseShape-rotation-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `type` \\\\{#TLBaseShape-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: Type\\n```\\n\\n---\\n\\n### `x` \\\\{#TLBaseShape-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#TLBaseShape-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","TLBookmarkAsset-type":"Public TypeAlias\\n\\nAn asset used for URL bookmarks, used by the TLBookmarkShape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLBookmarkAsset = TLBaseAsset<\\n \'bookmark\',\\n {\\n title: string\\n description: string\\n image: string\\n src: null | string\\n }\\n>\\n```\\n\\n##### References\\n\\n[TLBaseAsset](/gen/tlschema/TLBaseAsset-interface)\\n\\n","TLBookmarkShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLBookmarkShape = TLBaseShape<\'bookmark\', TLBookmarkShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLBookmarkShapeProps](/gen/tlschema/~TLBookmarkShapeProps-type)\\n\\n","TLCLickEventName-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCLickEventName = \'double_click\' | \'quadruple_click\' | \'triple_click\'\\n```\\n\\n","TLCamera-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [x](#TLCamera-x-member)\\n - [y](#TLCamera-y-member)\\n - [z](#TLCamera-z-member)\\n
\\n\\nA camera record.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLCamera extends BaseRecord<\'camera\', TLCameraId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLCameraId](/gen/tlschema/TLCameraId-type)\\n\\n---\\n\\n## Properties\\n\\n### `x` \\\\{#TLCamera-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#TLCamera-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n### `z` \\\\{#TLCamera-z-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nz: number\\n```\\n\\n---\\n\\n","TLCameraId-type":"Public TypeAlias\\n\\nThe id of a camera record.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCameraId = RecordId\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n","TLCancelEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCancelEvent = (info: TLCancelEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLCancelEventInfo](/gen/editor/TLCancelEventInfo-type)\\n\\n","TLCancelEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCancelEventInfo = {\\n type: \'misc\'\\n name: \'cancel\'\\n}\\n```\\n\\n","TLCanvasUiColor-type":"Public TypeAlias\\n\\nA type for the colors used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCanvasUiColor = SetValue\\n```\\n\\n##### References\\n\\n[SetValue](/gen/tlschema/~SetValue-type), [TL_CANVAS_UI_COLOR_TYPES](/gen/tlschema/TL_CANVAS_UI_COLOR_TYPES-var)\\n\\n","TLClickEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLClickEvent = (info: TLClickEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLClickEventInfo](/gen/editor/TLClickEventInfo-type)\\n\\n","TLClickEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLClickEventInfo = TLBaseEventInfo & {\\n type: \'click\'\\n name: TLCLickEventName\\n point: VecLike\\n pointerId: number\\n button: number\\n phase: \'down\' | \'settle\' | \'up\'\\n} & TLPointerEventTarget\\n```\\n\\n##### References\\n\\n[TLBaseEventInfo](/gen/editor/TLBaseEventInfo-interface), [TLCLickEventName](/gen/editor/TLCLickEventName-type), [VecLike](/gen/primitives/VecLike-type), [TLPointerEventTarget](/gen/editor/TLPointerEventTarget-type)\\n\\n","TLCommand-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCommand = {\\n type: \'command\'\\n id: string\\n data: Data\\n name: Name\\n preservesRedoStack?: boolean\\n}\\n```\\n\\n","TLCommandHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCommandHandler = {\\n do: (data: Data) => void\\n undo: (data: Data) => void\\n redo?: (data: Data) => void\\n squash?: (prevData: Data, nextData: Data) => Data\\n}\\n```\\n\\n","TLCompleteEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCompleteEvent = (info: TLCompleteEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLCompleteEventInfo](/gen/editor/TLCompleteEventInfo-type)\\n\\n","TLCompleteEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCompleteEventInfo = {\\n type: \'misc\'\\n name: \'complete\'\\n}\\n```\\n\\n","TLContent-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [assets](#TLContent-assets-member)\\n - [rootShapeIds](#TLContent-rootShapeIds-member)\\n - [schema](#TLContent-schema-member)\\n - [shapes](#TLContent-shapes-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLContent {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `assets` \\\\{#TLContent-assets-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nassets: TLAsset[]\\n```\\n\\n##### References\\n\\n[TLAsset](/gen/tlschema/TLAsset-type)\\n\\n---\\n\\n### `rootShapeIds` \\\\{#TLContent-rootShapeIds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrootShapeIds: TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `schema` \\\\{#TLContent-schema-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nschema: SerializedSchema\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `shapes` \\\\{#TLContent-shapes-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nshapes: TLShape[]\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n---\\n\\n","TLCopyType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCopyType = \'jpeg\' | \'json\' | \'png\' | \'svg\'\\n```\\n\\n","TLCursor-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [color](#TLCursor-color-member)\\n - [rotation](#TLCursor-rotation-member)\\n - [type](#TLCursor-type-member)\\n
\\n\\nA cursor used by tldraw.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLCursor {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `color` \\\\{#TLCursor-color-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncolor: TLCanvasUiColor\\n```\\n\\n##### References\\n\\n[TLCanvasUiColor](/gen/tlschema/TLCanvasUiColor-type)\\n\\n---\\n\\n### `rotation` \\\\{#TLCursor-rotation-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `type` \\\\{#TLCursor-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: TLCursorType\\n```\\n\\n##### References\\n\\n[TLCursorType](/gen/tlschema/TLCursorType-type)\\n\\n---\\n\\n","TLCursorType-type":"Public TypeAlias\\n\\nA type for the cursor types used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCursorType = SetValue\\n```\\n\\n##### References\\n\\n[SetValue](/gen/tlschema/~SetValue-type), [TL_CURSOR_TYPES](/gen/tlschema/~TL_CURSOR_TYPES-var)\\n\\n","TLDOCUMENT_ID-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLDOCUMENT_ID: RecordId\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n","TLDRAW_FILE_EXTENSION-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLDRAW_FILE_EXTENSION: \'.tldr\'\\n```\\n\\n","TLDRAW_FILE_MIMETYPE-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLDRAW_FILE_MIMETYPE: \'application/vnd.tldraw+json\'\\n```\\n\\n","TLDefaultColorStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultColorStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultColorStyle](/gen/tlschema/DefaultColorStyle-var)\\n\\n","TLDefaultColorTheme-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultColorTheme = Expand<\\n {\\n text: string\\n background: string\\n solid: string\\n } & Record<(typeof colors)[number], TLDefaultColorThemeColor>\\n>\\n```\\n\\n##### References\\n\\n[Expand](/gen/utils/Expand-type), [Record](/gen/Record-type), [colors](/gen/tlschema/~colors-var), [TLDefaultColorThemeColor](/gen/tlschema/TLDefaultColorThemeColor-type)\\n\\n","TLDefaultColorThemeColor-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultColorThemeColor = {\\n solid: string\\n semi: string\\n pattern: string\\n highlight: {\\n srgb: string\\n p3: string\\n }\\n}\\n```\\n\\n","TLDefaultDashStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultDashStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultDashStyle](/gen/tlschema/DefaultDashStyle-var)\\n\\n","TLDefaultFillStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultFillStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultFillStyle](/gen/tlschema/DefaultFillStyle-var)\\n\\n","TLDefaultFontStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultFontStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultFontStyle](/gen/tlschema/DefaultFontStyle-var)\\n\\n","TLDefaultHorizontalAlignStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultHorizontalAlignStyle = T.TypeOf<\\n typeof DefaultHorizontalAlignStyle\\n>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultHorizontalAlignStyle](/gen/tlschema/DefaultHorizontalAlignStyle-var)\\n\\n","TLDefaultShape-type":"Public TypeAlias\\n\\nThe default set of shapes that are available in the editor.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultShape =\\n | TLArrowShape\\n | TLBookmarkShape\\n | TLDrawShape\\n | TLEmbedShape\\n | TLFrameShape\\n | TLGeoShape\\n | TLGroupShape\\n | TLHighlightShape\\n | TLImageShape\\n | TLLineShape\\n | TLNoteShape\\n | TLTextShape\\n | TLVideoShape\\n```\\n\\n##### References\\n\\n[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [TLDrawShape](/gen/tlschema/TLDrawShape-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type), [TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLGroupShape](/gen/tlschema/TLGroupShape-type), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [TLImageShape](/gen/tlschema/TLImageShape-type), [TLLineShape](/gen/tlschema/TLLineShape-type), [TLNoteShape](/gen/tlschema/TLNoteShape-type), [TLTextShape](/gen/tlschema/TLTextShape-type), [TLVideoShape](/gen/tlschema/TLVideoShape-type)\\n\\n","TLDefaultSizeStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultSizeStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultSizeStyle](/gen/tlschema/DefaultSizeStyle-var)\\n\\n","TLDefaultVerticalAlignStyle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultVerticalAlignStyle = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultVerticalAlignStyle](/gen/tlschema/DefaultVerticalAlignStyle-var)\\n\\n","TLDocument-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [gridSize](#TLDocument-gridSize-member)\\n - [name](#TLDocument-name-member)\\n
\\n\\nTLDocument\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLDocument extends BaseRecord<\'document\', RecordId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [RecordId](/gen/store/RecordId-type), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n---\\n\\n## Properties\\n\\n### `gridSize` \\\\{#TLDocument-gridSize-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ngridSize: number\\n```\\n\\n---\\n\\n### `name` \\\\{#TLDocument-name-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nname: string\\n```\\n\\n---\\n\\n","TLDrawShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDrawShape = TLBaseShape<\'draw\', TLDrawShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLDrawShapeProps](/gen/tlschema/~TLDrawShapeProps-type)\\n\\n","TLDrawShapeSegment-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDrawShapeSegment = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DrawShapeSegment](/gen/tlschema/~DrawShapeSegment-var)\\n\\n","TLEditorAssetUrls-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEditorAssetUrls = {\\n fonts: {\\n monospace: string\\n serif: string\\n sansSerif: string\\n draw: string\\n }\\n}\\n```\\n\\n","TLEditorComponents-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [Background](#TLEditorComponents-Background-member)\\n - [Brush](#TLEditorComponents-Brush-member)\\n - [CollaboratorBrush](#TLEditorComponents-CollaboratorBrush-member)\\n - [CollaboratorCursor](#TLEditorComponents-CollaboratorCursor-member)\\n - [CollaboratorHint](#TLEditorComponents-CollaboratorHint-member)\\n - [CollaboratorScribble](#TLEditorComponents-CollaboratorScribble-member)\\n - [CollaboratorShapeIndicator](#TLEditorComponents-CollaboratorShapeIndicator-member)\\n - [Cursor](#TLEditorComponents-Cursor-member)\\n - [ErrorFallback](#TLEditorComponents-ErrorFallback-member)\\n - [Grid](#TLEditorComponents-Grid-member)\\n - [Handle](#TLEditorComponents-Handle-member)\\n - [Scribble](#TLEditorComponents-Scribble-member)\\n - [ShapeErrorFallback](#TLEditorComponents-ShapeErrorFallback-member)\\n - [ShapeIndicatorErrorFallback](#TLEditorComponents-ShapeIndicatorErrorFallback-member)\\n - [SnapLine](#TLEditorComponents-SnapLine-member)\\n - [Spinner](#TLEditorComponents-Spinner-member)\\n - [SvgDefs](#TLEditorComponents-SvgDefs-member)\\n - [ZoomBrush](#TLEditorComponents-ZoomBrush-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLEditorComponents {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `Background` \\\\{#TLEditorComponents-Background-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nBackground: null | TLBackgroundComponent\\n```\\n\\n##### References\\n\\n[TLBackgroundComponent](/gen/editor/~TLBackgroundComponent-type)\\n\\n---\\n\\n### `Brush` \\\\{#TLEditorComponents-Brush-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nBrush: null | TLBrushComponent\\n```\\n\\n##### References\\n\\n[TLBrushComponent](/gen/editor/~TLBrushComponent-type)\\n\\n---\\n\\n### `CollaboratorBrush` \\\\{#TLEditorComponents-CollaboratorBrush-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nCollaboratorBrush: null | TLBrushComponent\\n```\\n\\n##### References\\n\\n[TLBrushComponent](/gen/editor/~TLBrushComponent-type)\\n\\n---\\n\\n### `CollaboratorCursor` \\\\{#TLEditorComponents-CollaboratorCursor-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nCollaboratorCursor: null | TLCursorComponent\\n```\\n\\n##### References\\n\\n[TLCursorComponent](/gen/editor/~TLCursorComponent-type)\\n\\n---\\n\\n### `CollaboratorHint` \\\\{#TLEditorComponents-CollaboratorHint-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nCollaboratorHint: null | TLCollaboratorHintComponent\\n```\\n\\n##### References\\n\\n[TLCollaboratorHintComponent](/gen/editor/~TLCollaboratorHintComponent-type)\\n\\n---\\n\\n### `CollaboratorScribble` \\\\{#TLEditorComponents-CollaboratorScribble-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nCollaboratorScribble: null | TLScribbleComponent\\n```\\n\\n##### References\\n\\n[TLScribbleComponent](/gen/editor/~TLScribbleComponent-type)\\n\\n---\\n\\n### `CollaboratorShapeIndicator` \\\\{#TLEditorComponents-CollaboratorShapeIndicator-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nCollaboratorShapeIndicator: null | TLShapeIndicatorComponent\\n```\\n\\n##### References\\n\\n[TLShapeIndicatorComponent](/gen/editor/~TLShapeIndicatorComponent-type)\\n\\n---\\n\\n### `Cursor` \\\\{#TLEditorComponents-Cursor-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nCursor: null | TLCursorComponent\\n```\\n\\n##### References\\n\\n[TLCursorComponent](/gen/editor/~TLCursorComponent-type)\\n\\n---\\n\\n### `ErrorFallback` \\\\{#TLEditorComponents-ErrorFallback-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nErrorFallback: TLErrorFallbackComponent\\n```\\n\\n##### References\\n\\n[TLErrorFallbackComponent](/gen/editor/~TLErrorFallbackComponent-type)\\n\\n---\\n\\n### `Grid` \\\\{#TLEditorComponents-Grid-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nGrid: null | TLGridComponent\\n```\\n\\n##### References\\n\\n[TLGridComponent](/gen/editor/~TLGridComponent-type)\\n\\n---\\n\\n### `Handle` \\\\{#TLEditorComponents-Handle-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nHandle: null | TLHandleComponent\\n```\\n\\n##### References\\n\\n[TLHandleComponent](/gen/editor/~TLHandleComponent-type)\\n\\n---\\n\\n### `Scribble` \\\\{#TLEditorComponents-Scribble-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nScribble: null | TLScribbleComponent\\n```\\n\\n##### References\\n\\n[TLScribbleComponent](/gen/editor/~TLScribbleComponent-type)\\n\\n---\\n\\n### `ShapeErrorFallback` \\\\{#TLEditorComponents-ShapeErrorFallback-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nShapeErrorFallback: TLShapeErrorFallbackComponent\\n```\\n\\n##### References\\n\\n[TLShapeErrorFallbackComponent](/gen/editor/~TLShapeErrorFallbackComponent-type)\\n\\n---\\n\\n### `ShapeIndicatorErrorFallback` \\\\{#TLEditorComponents-ShapeIndicatorErrorFallback-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nShapeIndicatorErrorFallback: TLShapeIndicatorErrorFallbackComponent\\n```\\n\\n##### References\\n\\n[TLShapeIndicatorErrorFallbackComponent](/gen/editor/~TLShapeIndicatorErrorFallback-type)\\n\\n---\\n\\n### `SnapLine` \\\\{#TLEditorComponents-SnapLine-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nSnapLine: null | TLSnapLineComponent\\n```\\n\\n##### References\\n\\n[TLSnapLineComponent](/gen/editor/~TLSnapLineComponent-type)\\n\\n---\\n\\n### `Spinner` \\\\{#TLEditorComponents-Spinner-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nSpinner: null | TLSpinnerComponent\\n```\\n\\n##### References\\n\\n[TLSpinnerComponent](/gen/editor/~TLSpinnerComponent-type)\\n\\n---\\n\\n### `SvgDefs` \\\\{#TLEditorComponents-SvgDefs-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nSvgDefs: null | TLSvgDefsComponent\\n```\\n\\n##### References\\n\\n[TLSvgDefsComponent](/gen/editor/~TLSvgDefsComponent-type)\\n\\n---\\n\\n### `ZoomBrush` \\\\{#TLEditorComponents-ZoomBrush-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nZoomBrush: null | TLBrushComponent\\n```\\n\\n##### References\\n\\n[TLBrushComponent](/gen/editor/~TLBrushComponent-type)\\n\\n---\\n\\n","TLEditorOptions-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [getContainer](#TLEditorOptions-getContainer-member)\\n - [shapes](#TLEditorOptions-shapes-member)\\n - [store](#TLEditorOptions-store-member)\\n - [tools](#TLEditorOptions-tools-member)\\n - [user](#TLEditorOptions-user-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLEditorOptions {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `getContainer` \\\\{#TLEditorOptions-getContainer-member}\\n\\nPublic PropertySignature\\n\\nShould return a containing html element which has all the styles applied to the editor. If not given, the body element will be used.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngetContainer: () => HTMLElement\\n```\\n\\n##### References\\n\\n[HTMLElement](/gen/HTMLElement-interface)\\n\\n---\\n\\n### `shapes` \\\\{#TLEditorOptions-shapes-member}\\n\\nPublic PropertySignature\\n\\nAn array of shapes to use in the editor. These will be used to create and manage shapes in the editor.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nshapes: readonly AnyTLShapeInfo[]\\n```\\n\\n##### References\\n\\n[AnyTLShapeInfo](/gen/editor/~AnyTLShapeInfo-type)\\n\\n---\\n\\n### `store` \\\\{#TLEditorOptions-store-member}\\n\\nPublic PropertySignature\\n\\nThe Store instance to use for keeping the app\'s data. This may be prepopulated, e.g. by loading from a server or database.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstore: TLStore\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type)\\n\\n---\\n\\n### `tools` \\\\{#TLEditorOptions-tools-member}\\n\\nPublic PropertySignature\\n\\nAn array of tools to use in the editor. These will be used to handle events and manage user interactions in the editor.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntools: readonly TLStateNodeConstructor[]\\n```\\n\\n##### References\\n\\n[TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface)\\n\\n---\\n\\n### `user` \\\\{#TLEditorOptions-user-member}\\n\\nPublic PropertySignature\\n\\nA user defined externally to replace the default user.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nuser?: TLUser\\n```\\n\\n##### References\\n\\n[TLUser](/gen/editor/~TLUser-interface)\\n\\n---\\n\\n","TLEmbedResult-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEmbedResult =\\n | {\\n definition: EmbedDefinition\\n url: string\\n embedUrl: string\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[EmbedDefinition](/gen/tlschema/EmbedDefinition-type)\\n\\n","TLEmbedShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEmbedShape = TLBaseShape<\'embed\', TLEmbedShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLEmbedShapeProps](/gen/tlschema/~TLEmbedShapeProps-type)\\n\\n","TLEmbedShapePermissions-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEmbedShapePermissions = {\\n [K in keyof typeof embedShapePermissionDefaults]?: boolean\\n}\\n```\\n\\n##### References\\n\\n[embedShapePermissionDefaults](/gen/tlschema/embedShapePermissionDefaults-var)\\n\\n","TLEnterEventHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEnterEventHandler = (info: any, from: string) => void\\n```\\n\\n","TLErrorBoundaryProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [children](#TLErrorBoundaryProps-children-member)\\n - [fallback](#TLErrorBoundaryProps-fallback-member)\\n - [onError](#TLErrorBoundaryProps-onError-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLErrorBoundaryProps {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#TLErrorBoundaryProps-children-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchildren: React.ReactNode\\n```\\n\\n##### References\\n\\n[React.ReactNode](/gen/@types/react-React-ReactNode-type)\\n\\n---\\n\\n### `fallback` \\\\{#TLErrorBoundaryProps-fallback-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nfallback: (props: { error: unknown }) => any\\n```\\n\\n---\\n\\n### `onError` \\\\{#TLErrorBoundaryProps-onError-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonError?: ((error: unknown) => void) | null\\n```\\n\\n---\\n\\n","TLEventHandlers-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [onCancel](#TLEventHandlers-onCancel-member)\\n - [onComplete](#TLEventHandlers-onComplete-member)\\n - [onDoubleClick](#TLEventHandlers-onDoubleClick-member)\\n - [onInterrupt](#TLEventHandlers-onInterrupt-member)\\n - [onKeyDown](#TLEventHandlers-onKeyDown-member)\\n - [onKeyRepeat](#TLEventHandlers-onKeyRepeat-member)\\n - [onKeyUp](#TLEventHandlers-onKeyUp-member)\\n - [onMiddleClick](#TLEventHandlers-onMiddleClick-member)\\n - [onPointerDown](#TLEventHandlers-onPointerDown-member)\\n - [onPointerEnter](#TLEventHandlers-onPointerEnter-member)\\n - [onPointerLeave](#TLEventHandlers-onPointerLeave-member)\\n - [onPointerMove](#TLEventHandlers-onPointerMove-member)\\n - [onPointerUp](#TLEventHandlers-onPointerUp-member)\\n - [onQuadrupleClick](#TLEventHandlers-onQuadrupleClick-member)\\n - [onRightClick](#TLEventHandlers-onRightClick-member)\\n - [onTripleClick](#TLEventHandlers-onTripleClick-member)\\n - [onWheel](#TLEventHandlers-onWheel-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLEventHandlers {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `onCancel` \\\\{#TLEventHandlers-onCancel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonCancel: TLCancelEvent\\n```\\n\\n##### References\\n\\n[TLCancelEvent](/gen/editor/TLCancelEvent-type)\\n\\n---\\n\\n### `onComplete` \\\\{#TLEventHandlers-onComplete-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonComplete: TLCompleteEvent\\n```\\n\\n##### References\\n\\n[TLCompleteEvent](/gen/editor/TLCompleteEvent-type)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#TLEventHandlers-onDoubleClick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick: TLClickEvent\\n```\\n\\n##### References\\n\\n[TLClickEvent](/gen/editor/TLClickEvent-type)\\n\\n---\\n\\n### `onInterrupt` \\\\{#TLEventHandlers-onInterrupt-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonInterrupt: TLInterruptEvent\\n```\\n\\n##### References\\n\\n[TLInterruptEvent](/gen/editor/TLInterruptEvent-type)\\n\\n---\\n\\n### `onKeyDown` \\\\{#TLEventHandlers-onKeyDown-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyDown: TLKeyboardEvent\\n```\\n\\n##### References\\n\\n[TLKeyboardEvent](/gen/editor/TLKeyboardEvent-type)\\n\\n---\\n\\n### `onKeyRepeat` \\\\{#TLEventHandlers-onKeyRepeat-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyRepeat: TLKeyboardEvent\\n```\\n\\n##### References\\n\\n[TLKeyboardEvent](/gen/editor/TLKeyboardEvent-type)\\n\\n---\\n\\n### `onKeyUp` \\\\{#TLEventHandlers-onKeyUp-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonKeyUp: TLKeyboardEvent\\n```\\n\\n##### References\\n\\n[TLKeyboardEvent](/gen/editor/TLKeyboardEvent-type)\\n\\n---\\n\\n### `onMiddleClick` \\\\{#TLEventHandlers-onMiddleClick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonMiddleClick: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onPointerDown` \\\\{#TLEventHandlers-onPointerDown-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerDown: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onPointerEnter` \\\\{#TLEventHandlers-onPointerEnter-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerEnter: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onPointerLeave` \\\\{#TLEventHandlers-onPointerLeave-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerLeave: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onPointerMove` \\\\{#TLEventHandlers-onPointerMove-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerMove: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onPointerUp` \\\\{#TLEventHandlers-onPointerUp-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonPointerUp: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onQuadrupleClick` \\\\{#TLEventHandlers-onQuadrupleClick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonQuadrupleClick: TLClickEvent\\n```\\n\\n##### References\\n\\n[TLClickEvent](/gen/editor/TLClickEvent-type)\\n\\n---\\n\\n### `onRightClick` \\\\{#TLEventHandlers-onRightClick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonRightClick: TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n---\\n\\n### `onTripleClick` \\\\{#TLEventHandlers-onTripleClick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonTripleClick: TLClickEvent\\n```\\n\\n##### References\\n\\n[TLClickEvent](/gen/editor/TLClickEvent-type)\\n\\n---\\n\\n### `onWheel` \\\\{#TLEventHandlers-onWheel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonWheel: TLWheelEvent\\n```\\n\\n##### References\\n\\n[TLWheelEvent](/gen/editor/TLWheelEvent-type)\\n\\n---\\n\\n","TLEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEventInfo =\\n | TLCancelEventInfo\\n | TLClickEventInfo\\n | TLCompleteEventInfo\\n | TLInterruptEventInfo\\n | TLKeyboardEventInfo\\n | TLPinchEventInfo\\n | TLPointerEventInfo\\n | TLWheelEventInfo\\n```\\n\\n##### References\\n\\n[TLCancelEventInfo](/gen/editor/TLCancelEventInfo-type), [TLClickEventInfo](/gen/editor/TLClickEventInfo-type), [TLCompleteEventInfo](/gen/editor/TLCompleteEventInfo-type), [TLInterruptEventInfo](/gen/editor/TLInterruptEventInfo-type), [TLKeyboardEventInfo](/gen/editor/TLKeyboardEventInfo-type), [TLPinchEventInfo](/gen/editor/TLPinchEventInfo-type), [TLPointerEventInfo](/gen/editor/TLPointerEventInfo-type), [TLWheelEventInfo](/gen/editor/TLWheelEventInfo-type)\\n\\n","TLEventMap-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [\\"change-history\\"](#TLEventMap-\\"change-history\\"-member)\\n - [\\"mark-history\\"](#TLEventMap-\\"mark-history\\"-member)\\n - [\\"max-shapes\\"](#TLEventMap-\\"max-shapes\\"-member)\\n - [\\"stop-camera-animation\\"](#TLEventMap-\\"stop-camera-animation\\"-member)\\n - [\\"stop-following\\"](#TLEventMap-\\"stop-following\\"-member)\\n - [change](#TLEventMap-change-member)\\n - [crash](#TLEventMap-crash-member)\\n - [event](#TLEventMap-event-member)\\n - [frame](#TLEventMap-frame-member)\\n - [mount](#TLEventMap-mount-member)\\n - [tick](#TLEventMap-tick-member)\\n - [update](#TLEventMap-update-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLEventMap {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `\\"change-history\\"` \\\\{#TLEventMap-\\"change-history\\"-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\n\'change-history\': [\\n | {\\n reason: \'bail\'\\n markId?: string\\n }\\n | {\\n reason: \'push\' | \'redo\' | \'undo\'\\n }\\n]\\n```\\n\\n---\\n\\n### `\\"mark-history\\"` \\\\{#TLEventMap-\\"mark-history\\"-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\n\'mark-history\': [\\n {\\n id: string\\n }\\n]\\n```\\n\\n---\\n\\n### `\\"max-shapes\\"` \\\\{#TLEventMap-\\"max-shapes\\"-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\n\'max-shapes\': [\\n {\\n name: string\\n pageId: TLPageId\\n count: number\\n }\\n]\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `\\"stop-camera-animation\\"` \\\\{#TLEventMap-\\"stop-camera-animation\\"-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\n\'stop-camera-animation\': []\\n```\\n\\n---\\n\\n### `\\"stop-following\\"` \\\\{#TLEventMap-\\"stop-following\\"-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\n\'stop-following\': []\\n```\\n\\n---\\n\\n### `change` \\\\{#TLEventMap-change-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchange: [HistoryEntry]\\n```\\n\\n##### References\\n\\n[HistoryEntry](/gen/store/HistoryEntry-type), [TLRecord](/gen/tlschema/TLRecord-type)\\n\\n---\\n\\n### `crash` \\\\{#TLEventMap-crash-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncrash: [\\n {\\n error: unknown\\n }\\n]\\n```\\n\\n---\\n\\n### `event` \\\\{#TLEventMap-event-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nevent: [TLEventInfo]\\n```\\n\\n##### References\\n\\n[TLEventInfo](/gen/editor/TLEventInfo-type)\\n\\n---\\n\\n### `frame` \\\\{#TLEventMap-frame-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nframe: [number]\\n```\\n\\n---\\n\\n### `mount` \\\\{#TLEventMap-mount-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nmount: []\\n```\\n\\n---\\n\\n### `tick` \\\\{#TLEventMap-tick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntick: [number]\\n```\\n\\n---\\n\\n### `update` \\\\{#TLEventMap-update-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nupdate: []\\n```\\n\\n---\\n\\n","TLEventMapHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEventMapHandler = (\\n ...args: TLEventMap[T]\\n) => void\\n```\\n\\n##### References\\n\\n[TLEventMap](/gen/editor/TLEventMap-interface)\\n\\n","TLEventName-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEventName =\\n | \'cancel\'\\n | \'complete\'\\n | \'interrupt\'\\n | \'wheel\'\\n | TLCLickEventName\\n | TLKeyboardEventName\\n | TLPinchEventName\\n | TLPointerEventName\\n```\\n\\n##### References\\n\\n[TLCLickEventName](/gen/editor/TLCLickEventName-type), [TLKeyboardEventName](/gen/editor/TLKeyboardEventName-type), [TLPinchEventName](/gen/editor/TLPinchEventName-type), [TLPointerEventName](/gen/editor/TLPointerEventName-type)\\n\\n","TLExitEventHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLExitEventHandler = (info: any, to: string) => void\\n```\\n\\n","TLExportType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLExportType = \'jpeg\' | \'json\' | \'png\' | \'svg\' | \'webp\'\\n```\\n\\n","TLExternalContent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLExternalContent =\\n | {\\n type: \'embed\'\\n url: string\\n point?: VecLike\\n embed: EmbedDefinition\\n }\\n | {\\n type: \'files\'\\n files: File[]\\n point?: VecLike\\n ignoreParent: boolean\\n }\\n | {\\n type: \'svg-text\'\\n text: string\\n point?: VecLike\\n }\\n | {\\n type: \'text\'\\n point?: VecLike\\n text: string\\n }\\n | {\\n type: \'url\'\\n url: string\\n point?: VecLike\\n }\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [EmbedDefinition](/gen/tlschema/EmbedDefinition-type), [File](/gen/File-interface)\\n\\n","TLFrameShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLFrameShape = TLBaseShape<\'frame\', TLFrameShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLFrameShapeProps](/gen/tlschema/~TLFrameShapeProps-type)\\n\\n","TLGeoShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLGeoShape = TLBaseShape<\'geo\', TLGeoShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLGeoShapeProps](/gen/tlschema/~TLGeoShapeProps-type)\\n\\n","TLGroupShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLGroupShape = TLBaseShape<\'group\', TLGroupShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLGroupShapeProps](/gen/tlschema/~TLGroupShapeProps-type)\\n\\n","TLHandle-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canBind](#TLHandle-canBind-member)\\n - [id](#TLHandle-id-member)\\n - [index](#TLHandle-index-member)\\n - [type](#TLHandle-type-member)\\n - [x](#TLHandle-x-member)\\n - [y](#TLHandle-y-member)\\n
\\n\\nA base interface for a shape\'s handles.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLHandle {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `canBind` \\\\{#TLHandle-canBind-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind?: boolean\\n```\\n\\n---\\n\\n### `id` \\\\{#TLHandle-id-member}\\n\\nPublic PropertySignature\\n\\nA unique identifier for the handle.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `index` \\\\{#TLHandle-index-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nindex: string\\n```\\n\\n---\\n\\n### `type` \\\\{#TLHandle-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: TLHandleType\\n```\\n\\n##### References\\n\\n[TLHandleType](/gen/tlschema/TLHandleType-type)\\n\\n---\\n\\n### `x` \\\\{#TLHandle-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#TLHandle-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","TLHandleType-type":"Public TypeAlias\\n\\nA type for the handle types used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLHandleType = SetValue\\n```\\n\\n##### References\\n\\n[SetValue](/gen/tlschema/~SetValue-type), [TL_HANDLE_TYPES](/gen/tlschema/~TL_HANDLE_TYPES-var)\\n\\n","TLHighlightShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLHighlightShape = TLBaseShape<\'highlight\', TLHighlightShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLHighlightShapeProps](/gen/tlschema/~TLHighlightShapeProps-type)\\n\\n","TLHistoryEntry-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLHistoryEntry = TLCommand | TLHistoryMark\\n```\\n\\n##### References\\n\\n[TLCommand](/gen/editor/TLCommand-type), [TLHistoryMark](/gen/editor/TLHistoryMark-type)\\n\\n","TLHistoryMark-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLHistoryMark = {\\n type: \'STOP\'\\n id: string\\n onUndo: boolean\\n onRedo: boolean\\n}\\n```\\n\\n","TLINSTANCE_ID-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLINSTANCE_ID: TLInstanceId\\n```\\n\\n##### References\\n\\n[TLInstanceId](/gen/tlschema/TLInstanceId-type)\\n\\n","TLImageAsset-type":"Public TypeAlias\\n\\nAn asset for images such as PNGs and JPEGs, used by the TLImageShape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLImageAsset = TLBaseAsset<\\n \'image\',\\n {\\n w: number\\n h: number\\n name: string\\n isAnimated: boolean\\n mimeType: null | string\\n src: null | string\\n }\\n>\\n```\\n\\n##### References\\n\\n[TLBaseAsset](/gen/tlschema/TLBaseAsset-interface)\\n\\n","TLImageShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLImageShape = TLBaseShape<\'image\', TLImageShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLImageShapeProps](/gen/tlschema/TLImageShapeProps-type)\\n\\n","TLImageShapeCrop-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLImageShapeCrop = T.TypeOf\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [ImageShapeCrop](/gen/tlschema/~ImageShapeCrop-var)\\n\\n","TLImageShapeProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLImageShapeProps = ShapePropsType\\n```\\n\\n##### References\\n\\n[ShapePropsType](/gen/tlschema/~ShapePropsType-type), [imageShapeProps](/gen/tlschema/imageShapeProps-var)\\n\\n","TLInstance-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [brush](#TLInstance-brush-member)\\n - [chatMessage](#TLInstance-chatMessage-member)\\n - [currentPageId](#TLInstance-currentPageId-member)\\n - [cursor](#TLInstance-cursor-member)\\n - [exportBackground](#TLInstance-exportBackground-member)\\n - [followingUserId](#TLInstance-followingUserId-member)\\n - [highlightedUserIds](#TLInstance-highlightedUserIds-member)\\n - [isChatting](#TLInstance-isChatting-member)\\n - [isDebugMode](#TLInstance-isDebugMode-member)\\n - [isFocusMode](#TLInstance-isFocusMode-member)\\n - [isGridMode](#TLInstance-isGridMode-member)\\n - [isPenMode](#TLInstance-isPenMode-member)\\n - [isToolLocked](#TLInstance-isToolLocked-member)\\n - [opacityForNextShape](#TLInstance-opacityForNextShape-member)\\n - [screenBounds](#TLInstance-screenBounds-member)\\n - [scribble](#TLInstance-scribble-member)\\n - [stylesForNextShape](#TLInstance-stylesForNextShape-member)\\n - [zoomBrush](#TLInstance-zoomBrush-member)\\n
\\n\\nTLInstance\\n\\n\\nState that is particular to a single browser tab\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLInstance extends BaseRecord<\'instance\', TLInstanceId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLInstanceId](/gen/tlschema/TLInstanceId-type)\\n\\n---\\n\\n## Properties\\n\\n### `brush` \\\\{#TLInstance-brush-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nbrush: Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `chatMessage` \\\\{#TLInstance-chatMessage-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchatMessage: string\\n```\\n\\n---\\n\\n### `currentPageId` \\\\{#TLInstance-currentPageId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncurrentPageId: TLPageId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `cursor` \\\\{#TLInstance-cursor-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncursor: TLCursor\\n```\\n\\n##### References\\n\\n[TLCursor](/gen/tlschema/TLCursor-interface)\\n\\n---\\n\\n### `exportBackground` \\\\{#TLInstance-exportBackground-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nexportBackground: boolean\\n```\\n\\n---\\n\\n### `followingUserId` \\\\{#TLInstance-followingUserId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nfollowingUserId: null | string\\n```\\n\\n---\\n\\n### `highlightedUserIds` \\\\{#TLInstance-highlightedUserIds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nhighlightedUserIds: string[]\\n```\\n\\n---\\n\\n### `isChatting` \\\\{#TLInstance-isChatting-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisChatting: boolean\\n```\\n\\n---\\n\\n### `isDebugMode` \\\\{#TLInstance-isDebugMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisDebugMode: boolean\\n```\\n\\n---\\n\\n### `isFocusMode` \\\\{#TLInstance-isFocusMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisFocusMode: boolean\\n```\\n\\n---\\n\\n### `isGridMode` \\\\{#TLInstance-isGridMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisGridMode: boolean\\n```\\n\\n---\\n\\n### `isPenMode` \\\\{#TLInstance-isPenMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisPenMode: boolean\\n```\\n\\n---\\n\\n### `isToolLocked` \\\\{#TLInstance-isToolLocked-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisToolLocked: boolean\\n```\\n\\n---\\n\\n### `opacityForNextShape` \\\\{#TLInstance-opacityForNextShape-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nopacityForNextShape: TLOpacityType\\n```\\n\\n##### References\\n\\n[TLOpacityType](/gen/tlschema/TLOpacityType-type)\\n\\n---\\n\\n### `screenBounds` \\\\{#TLInstance-screenBounds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscreenBounds: Box2dModel\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `scribble` \\\\{#TLInstance-scribble-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscribble: null | TLScribble\\n```\\n\\n##### References\\n\\n[TLScribble](/gen/tlschema/TLScribble-type)\\n\\n---\\n\\n### `stylesForNextShape` \\\\{#TLInstance-stylesForNextShape-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nstylesForNextShape: Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type)\\n\\n---\\n\\n### `zoomBrush` \\\\{#TLInstance-zoomBrush-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nzoomBrush: Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n","TLInstanceId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLInstanceId = RecordId\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLInstance](/gen/tlschema/TLInstance-interface)\\n\\n","TLInstancePageState-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [croppingId](#TLInstancePageState-croppingId-member)\\n - [editingId](#TLInstancePageState-editingId-member)\\n - [erasingIds](#TLInstancePageState-erasingIds-member)\\n - [focusLayerId](#TLInstancePageState-focusLayerId-member)\\n - [hintingIds](#TLInstancePageState-hintingIds-member)\\n - [hoveredId](#TLInstancePageState-hoveredId-member)\\n - [pageId](#TLInstancePageState-pageId-member)\\n - [selectedIds](#TLInstancePageState-selectedIds-member)\\n
\\n\\nTLInstancePageState\\n\\n\\nState that is unique to a particular page of the document in a particular browser tab\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLInstancePageState\\n extends BaseRecord<\'instance_page_state\', TLInstancePageStateId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLInstancePageStateId](/gen/tlschema/~TLInstancePageStateId-type)\\n\\n---\\n\\n## Properties\\n\\n### `croppingId` \\\\{#TLInstancePageState-croppingId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncroppingId: null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `editingId` \\\\{#TLInstancePageState-editingId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\neditingId: null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `erasingIds` \\\\{#TLInstancePageState-erasingIds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nerasingIds: TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `focusLayerId` \\\\{#TLInstancePageState-focusLayerId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nfocusLayerId: null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `hintingIds` \\\\{#TLInstancePageState-hintingIds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nhintingIds: TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `hoveredId` \\\\{#TLInstancePageState-hoveredId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nhoveredId: null | TLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `pageId` \\\\{#TLInstancePageState-pageId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\npageId: RecordId\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n---\\n\\n### `selectedIds` \\\\{#TLInstancePageState-selectedIds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nselectedIds: TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n","TLInstancePresence-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [brush](#TLInstancePresence-brush-member)\\n - [camera](#TLInstancePresence-camera-member)\\n - [chatMessage](#TLInstancePresence-chatMessage-member)\\n - [color](#TLInstancePresence-color-member)\\n - [currentPageId](#TLInstancePresence-currentPageId-member)\\n - [cursor](#TLInstancePresence-cursor-member)\\n - [followingUserId](#TLInstancePresence-followingUserId-member)\\n - [lastActivityTimestamp](#TLInstancePresence-lastActivityTimestamp-member)\\n - [screenBounds](#TLInstancePresence-screenBounds-member)\\n - [scribble](#TLInstancePresence-scribble-member)\\n - [selectedIds](#TLInstancePresence-selectedIds-member)\\n - [userId](#TLInstancePresence-userId-member)\\n - [userName](#TLInstancePresence-userName-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLInstancePresence\\n extends BaseRecord<\'instance_presence\', TLInstancePresenceID> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLInstancePresenceID](/gen/tlschema/~TLInstancePresenceID-type)\\n\\n---\\n\\n## Properties\\n\\n### `brush` \\\\{#TLInstancePresence-brush-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nbrush: Box2dModel | null\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `camera` \\\\{#TLInstancePresence-camera-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncamera: {\\n x: number\\n y: number\\n z: number\\n}\\n```\\n\\n---\\n\\n### `chatMessage` \\\\{#TLInstancePresence-chatMessage-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchatMessage: string\\n```\\n\\n---\\n\\n### `color` \\\\{#TLInstancePresence-color-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncolor: string\\n```\\n\\n---\\n\\n### `currentPageId` \\\\{#TLInstancePresence-currentPageId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncurrentPageId: TLPageId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `cursor` \\\\{#TLInstancePresence-cursor-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncursor: {\\n x: number\\n y: number\\n type: TLCursor[\'type\']\\n rotation: number\\n}\\n```\\n\\n##### References\\n\\n[TLCursor](/gen/tlschema/TLCursor-interface)\\n\\n---\\n\\n### `followingUserId` \\\\{#TLInstancePresence-followingUserId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nfollowingUserId: null | string\\n```\\n\\n---\\n\\n### `lastActivityTimestamp` \\\\{#TLInstancePresence-lastActivityTimestamp-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlastActivityTimestamp: number\\n```\\n\\n---\\n\\n### `screenBounds` \\\\{#TLInstancePresence-screenBounds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscreenBounds: Box2dModel\\n```\\n\\n##### References\\n\\n[Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n---\\n\\n### `scribble` \\\\{#TLInstancePresence-scribble-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nscribble: null | TLScribble\\n```\\n\\n##### References\\n\\n[TLScribble](/gen/tlschema/TLScribble-type)\\n\\n---\\n\\n### `selectedIds` \\\\{#TLInstancePresence-selectedIds-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nselectedIds: TLShapeId[]\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `userId` \\\\{#TLInstancePresence-userId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nuserId: string\\n```\\n\\n---\\n\\n### `userName` \\\\{#TLInstancePresence-userName-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nuserName: string\\n```\\n\\n---\\n\\n","TLInterruptEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLInterruptEvent = (info: TLInterruptEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLInterruptEventInfo](/gen/editor/TLInterruptEventInfo-type)\\n\\n","TLInterruptEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLInterruptEventInfo = {\\n type: \'misc\'\\n name: \'interrupt\'\\n}\\n```\\n\\n","TLKeyboardEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLKeyboardEvent = (info: TLKeyboardEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLKeyboardEventInfo](/gen/editor/TLKeyboardEventInfo-type)\\n\\n","TLKeyboardEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLKeyboardEventInfo = TLBaseEventInfo & {\\n type: \'keyboard\'\\n name: TLKeyboardEventName\\n key: string\\n code: string\\n}\\n```\\n\\n##### References\\n\\n[TLBaseEventInfo](/gen/editor/TLBaseEventInfo-interface), [TLKeyboardEventName](/gen/editor/TLKeyboardEventName-type)\\n\\n","TLKeyboardEventName-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLKeyboardEventName = \'key_down\' | \'key_repeat\' | \'key_up\'\\n```\\n\\n","TLLanguage-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLLanguage = (typeof LANGUAGES)[number]\\n```\\n\\n##### References\\n\\n[LANGUAGES](/gen/tlschema/LANGUAGES-var)\\n\\n","TLLineShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLLineShape = TLBaseShape<\'line\', TLLineShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLLineShapeProps](/gen/tlschema/~TLLineShapeProps-type)\\n\\n","TLNoteShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLNoteShape = TLBaseShape<\'note\', TLNoteShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLNoteShapeProps](/gen/tlschema/~TLNoteShapeProps-type)\\n\\n","TLOnBeforeCreateHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnBeforeCreateHandler = (next: T) => T | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnBeforeUpdateHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnBeforeUpdateHandler = (prev: T, next: T) => T | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnChildrenChangeHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnChildrenChangeHandler = (\\n shape: T\\n) => TLShapePartial[] | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnClickHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnClickHandler = (\\n shape: T\\n) => TLShapePartial | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnDoubleClickHandleHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnDoubleClickHandleHandler = (\\n shape: T,\\n handle: TLHandle\\n) => TLShapePartial | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnDoubleClickHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnDoubleClickHandler = (\\n shape: T\\n) => TLShapePartial | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnDragHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnDragHandler = (\\n shape: T,\\n shapes: TLShape[]\\n) => R\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnEditEndHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnEditEndHandler = (shape: T) => void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnHandleChangeHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnHandleChangeHandler = (\\n shape: T,\\n info: {\\n handle: TLHandle\\n isPrecise: boolean\\n }\\n) => TLShapePartial | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnResizeEndHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnResizeEndHandler = TLEventChangeHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnResizeHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnResizeHandler = (\\n shape: T,\\n info: TLResizeInfo\\n) => Omit, \'id\' | \'type\'> | undefined | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLResizeInfo](/gen/editor/TLResizeInfo-type), [Omit](/gen/Omit-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnResizeStartHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnResizeStartHandler = TLEventStartHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventStartHandler](/gen/editor/~TLEventStartHandler-type)\\n\\n","TLOnRotateEndHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnRotateEndHandler = TLEventChangeHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnRotateHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnRotateHandler = TLEventChangeHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnRotateStartHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnRotateStartHandler = TLEventStartHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventStartHandler](/gen/editor/~TLEventStartHandler-type)\\n\\n","TLOnTranslateEndHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnTranslateEndHandler = TLEventChangeHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnTranslateHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnTranslateHandler = TLEventChangeHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnTranslateStartHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnTranslateStartHandler = TLEventStartHandler\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventStartHandler](/gen/editor/~TLEventStartHandler-type)\\n\\n","TLOpacityType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOpacityType = number\\n```\\n\\n","TLPOINTER_ID-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLPOINTER_ID: TLPointerId\\n```\\n\\n##### References\\n\\n[TLPointerId](/gen/tlschema/~TLPointerId-type)\\n\\n","TLPage-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [index](#TLPage-index-member)\\n - [name](#TLPage-name-member)\\n
\\n\\nTLPage\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLPage extends BaseRecord<\'page\', TLPageId> {}\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n## Properties\\n\\n### `index` \\\\{#TLPage-index-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nindex: string\\n```\\n\\n---\\n\\n### `name` \\\\{#TLPage-name-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nname: string\\n```\\n\\n---\\n\\n","TLPageId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPageId = RecordId\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n","TLParentId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLParentId = TLPageId | TLShapeId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n","TLPinchEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPinchEvent = (info: TLPinchEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLPinchEventInfo](/gen/editor/TLPinchEventInfo-type)\\n\\n","TLPinchEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPinchEventInfo = TLBaseEventInfo & {\\n type: \'pinch\'\\n name: TLPinchEventName\\n point: Vec2dModel\\n delta: Vec2dModel\\n}\\n```\\n\\n##### References\\n\\n[TLBaseEventInfo](/gen/editor/TLBaseEventInfo-interface), [TLPinchEventName](/gen/editor/TLPinchEventName-type), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n","TLPinchEventName-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPinchEventName = \'pinch_end\' | \'pinch_start\' | \'pinch\'\\n```\\n\\n","TLPointerEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPointerEvent = (info: TLPointerEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLPointerEventInfo](/gen/editor/TLPointerEventInfo-type)\\n\\n","TLPointerEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPointerEventInfo = TLBaseEventInfo & {\\n type: \'pointer\'\\n name: TLPointerEventName\\n point: VecLike\\n pointerId: number\\n button: number\\n isPen: boolean\\n} & TLPointerEventTarget\\n```\\n\\n##### References\\n\\n[TLBaseEventInfo](/gen/editor/TLBaseEventInfo-interface), [TLPointerEventName](/gen/editor/TLPointerEventName-type), [VecLike](/gen/primitives/VecLike-type), [TLPointerEventTarget](/gen/editor/TLPointerEventTarget-type)\\n\\n","TLPointerEventName-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPointerEventName =\\n | \'middle_click\'\\n | \'pointer_down\'\\n | \'pointer_enter\'\\n | \'pointer_leave\'\\n | \'pointer_move\'\\n | \'pointer_up\'\\n | \'right_click\'\\n```\\n\\n","TLPointerEventTarget-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPointerEventTarget =\\n | {\\n target: \'canvas\'\\n shape?: undefined\\n }\\n | {\\n target: \'handle\'\\n shape: TLShape\\n handle: TLHandle\\n }\\n | {\\n target: \'selection\'\\n handle?: TLSelectionHandle\\n shape?: undefined\\n }\\n | {\\n target: \'shape\'\\n shape: TLShape\\n }\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLSelectionHandle](/gen/editor/TLSelectionHandle-type)\\n\\n","TLRecord-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLRecord =\\n | TLAsset\\n | TLCamera\\n | TLDocument\\n | TLInstance\\n | TLInstancePageState\\n | TLInstancePresence\\n | TLPage\\n | TLPointer\\n | TLShape\\n```\\n\\n##### References\\n\\n[TLAsset](/gen/tlschema/TLAsset-type), [TLCamera](/gen/tlschema/TLCamera-interface), [TLDocument](/gen/tlschema/TLDocument-interface), [TLInstance](/gen/tlschema/TLInstance-interface), [TLInstancePageState](/gen/tlschema/TLInstancePageState-interface), [TLInstancePresence](/gen/tlschema/TLInstancePresence-interface), [TLPage](/gen/tlschema/TLPage-interface), [TLPointer](/gen/tlschema/~TLPointer-interface), [TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLResizeHandle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLResizeHandle = SelectionCorner | SelectionEdge\\n```\\n\\n##### References\\n\\n[SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n","TLResizeInfo-type":"Public TypeAlias\\n\\nInfo about a resize.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`newPoint`\\n\\n\\n\\n\\nThe new local position of the shape.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\nThe handle being dragged.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`mode`\\n\\n\\n\\n\\nThe type of resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`scaleX`\\n\\n\\n\\n\\nThe scale in the x-axis.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`scaleY`\\n\\n\\n\\n\\nThe scale in the y-axis.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`initialBounds`\\n\\n\\n\\n\\nThe bounds of the shape at the start of the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`initialShape`\\n\\n\\n\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLResizeInfo = {\\n newPoint: Vec2d\\n handle: TLResizeHandle\\n mode: TLResizeMode\\n scaleX: number\\n scaleY: number\\n initialBounds: Box2d\\n initialShape: T\\n}\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [Vec2d](/gen/primitives/Vec2d-class), [TLResizeHandle](/gen/editor/TLResizeHandle-type), [TLResizeMode](/gen/editor/TLResizeMode-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n","TLResizeMode-type":"Public TypeAlias\\n\\nThe type of resize.\\n\\n\\n\'scale_shape\' - The shape is being scaled, usually as part of a larger selection.\\n\\n\\n\'resize_bounds\' - The user is directly manipulating an individual shape\'s bounds using a resize handle. It is up to shape util implementers to decide how they want to handle the two situations.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLResizeMode = \'resize_bounds\' | \'scale_shape\'\\n```\\n\\n","TLSchema-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLSchema = StoreSchema\\n```\\n\\n##### References\\n\\n[StoreSchema](/gen/store/StoreSchema-class), [TLRecord](/gen/tlschema/TLRecord-type), [TLStoreProps](/gen/tlschema/TLStoreProps-type)\\n\\n","TLScribble-type":"Public TypeAlias\\n\\nA type for the scribble used by tldraw.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLScribble = {\\n points: Vec2dModel[]\\n size: number\\n color: TLCanvasUiColor\\n opacity: number\\n state: SetValue\\n delay: number\\n}\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface), [TLCanvasUiColor](/gen/tlschema/TLCanvasUiColor-type), [SetValue](/gen/tlschema/~SetValue-type), [TL_SCRIBBLE_STATES](/gen/tlschema/~TL_SCRIBBLE_STATES-var)\\n\\n","TLSelectionHandle-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLSelectionHandle = RotateCorner | SelectionCorner | SelectionEdge\\n```\\n\\n##### References\\n\\n[RotateCorner](/gen/primitives/RotateCorner-type), [SelectionCorner](/gen/primitives/SelectionCorner-type), [SelectionEdge](/gen/primitives/SelectionEdge-type)\\n\\n","TLSessionStateSnapshot-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [currentPageId](#TLSessionStateSnapshot-currentPageId-member)\\n - [exportBackground](#TLSessionStateSnapshot-exportBackground-member)\\n - [isDebugMode](#TLSessionStateSnapshot-isDebugMode-member)\\n - [isFocusMode](#TLSessionStateSnapshot-isFocusMode-member)\\n - [isGridMode](#TLSessionStateSnapshot-isGridMode-member)\\n - [isToolLocked](#TLSessionStateSnapshot-isToolLocked-member)\\n - [pageStates](#TLSessionStateSnapshot-pageStates-member)\\n - [version](#TLSessionStateSnapshot-version-member)\\n
\\n\\nThe state of the editor instance, not including any document state.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLSessionStateSnapshot {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `currentPageId` \\\\{#TLSessionStateSnapshot-currentPageId-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncurrentPageId: TLPageId\\n```\\n\\n##### References\\n\\n[TLPageId](/gen/tlschema/TLPageId-type)\\n\\n---\\n\\n### `exportBackground` \\\\{#TLSessionStateSnapshot-exportBackground-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nexportBackground: boolean\\n```\\n\\n---\\n\\n### `isDebugMode` \\\\{#TLSessionStateSnapshot-isDebugMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisDebugMode: boolean\\n```\\n\\n---\\n\\n### `isFocusMode` \\\\{#TLSessionStateSnapshot-isFocusMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisFocusMode: boolean\\n```\\n\\n---\\n\\n### `isGridMode` \\\\{#TLSessionStateSnapshot-isGridMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisGridMode: boolean\\n```\\n\\n---\\n\\n### `isToolLocked` \\\\{#TLSessionStateSnapshot-isToolLocked-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisToolLocked: boolean\\n```\\n\\n---\\n\\n### `pageStates` \\\\{#TLSessionStateSnapshot-pageStates-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\npageStates: Array<{\\n pageId: TLPageId\\n camera: {\\n x: number\\n y: number\\n z: number\\n }\\n selectedIds: TLShapeId[]\\n focusLayerId: null | TLShapeId\\n}>\\n```\\n\\n##### References\\n\\n[Array](/gen/Array-interface), [TLPageId](/gen/tlschema/TLPageId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `version` \\\\{#TLSessionStateSnapshot-version-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nversion: number\\n```\\n\\n---\\n\\n","TLShape-type":"Public TypeAlias\\n\\nThe set of all shapes that are available in the editor, including unknown shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShape = TLDefaultShape | TLUnknownShape\\n```\\n\\n##### References\\n\\n[TLDefaultShape](/gen/tlschema/TLDefaultShape-type), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n","TLShapeId-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeId = RecordId\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n","TLShapeInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeInfo = {\\n type: T[\'type\']\\n util: TLShapeUtilConstructor\\n props?: ShapeProps\\n migrations?: Migrations\\n tool?: TLStateNodeConstructor\\n}\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface), [ShapeProps](/gen/tlschema/ShapeProps-type), [Migrations](/gen/store/Migrations-interface), [TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface)\\n\\n","TLShapePartial-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapePartial = T extends T\\n ? {\\n id: TLShapeId\\n type: T[\'type\']\\n props?: Partial\\n } & Partial>\\n : never\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapeId](/gen/tlschema/TLShapeId-type), [Partial](/gen/Partial-type), [Omit](/gen/Omit-type)\\n\\n","TLShapeProp-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeProp = keyof TLShapeProps\\n```\\n\\n##### References\\n\\n[TLShapeProps](/gen/tlschema/TLShapeProps-type)\\n\\n","TLShapeProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeProps = Identity>\\n```\\n\\n##### References\\n\\n[Identity](/gen/tlschema/~Identity-type), [UnionToIntersection](/gen/tlschema/~UnionToIntersection-type), [TLDefaultShape](/gen/tlschema/TLDefaultShape-type)\\n\\n","TLShapeUtilConstructor-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [type](#TLShapeUtilConstructor-type-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLShapeUtilConstructor<\\n T extends TLUnknownShape,\\n U extends ShapeUtil = ShapeUtil\\n> {}\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [ShapeUtil](/gen/editor/ShapeUtil-class)\\n\\n---\\n\\n### `(new)` \\\\{#TLShapeUtilConstructor-new-1}\\n\\nPublic ConstructSignature\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nT[\'type\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`styleProps`\\n\\n\\n\\n\\n```ts\\nReadonlyMap, string>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nU\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [ReadonlyMap](/gen/ReadonlyMap-interface), [StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n## Properties\\n\\n### `type` \\\\{#TLShapeUtilConstructor-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: T[\'type\']\\n```\\n\\n---\\n\\n","TLShapeUtilFlag-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeUtilFlag = (shape: T) => boolean\\n```\\n\\n","TLStateNodeConstructor-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [children](#TLStateNodeConstructor-children-member)\\n - [id](#TLStateNodeConstructor-id-member)\\n - [initial](#TLStateNodeConstructor-initial-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLStateNodeConstructor {}\\n```\\n\\n---\\n\\n### `(new)` \\\\{#TLStateNodeConstructor-new-1}\\n\\nPublic ConstructSignature\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`editor`\\n\\n\\n\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`parent`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStateNode\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStateNode\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#TLStateNodeConstructor-children-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: () => TLStateNodeConstructor[]\\n```\\n\\n##### References\\n\\n[TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface)\\n\\n---\\n\\n### `id` \\\\{#TLStateNodeConstructor-id-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#TLStateNodeConstructor-initial-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ninitial?: string\\n```\\n\\n---\\n\\n","TLStore-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStore = Store\\n```\\n\\n##### References\\n\\n[Store](/gen/store/Store-class), [TLRecord](/gen/tlschema/TLRecord-type), [TLStoreProps](/gen/tlschema/TLStoreProps-type)\\n\\n","TLStoreEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreEventInfo = HistoryEntry\\n```\\n\\n##### References\\n\\n[HistoryEntry](/gen/store/HistoryEntry-type), [TLRecord](/gen/tlschema/TLRecord-type)\\n\\n","TLStoreOptions-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreOptions = {\\n initialData?: StoreSnapshot\\n defaultName?: string\\n} & (\\n | {\\n schema: StoreSchema\\n }\\n | {\\n shapes: readonly AnyTLShapeInfo[]\\n }\\n)\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [TLRecord](/gen/tlschema/TLRecord-type), [StoreSchema](/gen/store/StoreSchema-class), [TLStoreProps](/gen/tlschema/TLStoreProps-type), [AnyTLShapeInfo](/gen/editor/~AnyTLShapeInfo-type)\\n\\n","TLStoreProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreProps = {\\n defaultName: string\\n}\\n```\\n\\n","TLStoreSchema-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreSchema = StoreSchema\\n```\\n\\n##### References\\n\\n[StoreSchema](/gen/store/StoreSchema-class), [TLRecord](/gen/tlschema/TLRecord-type), [TLStoreProps](/gen/tlschema/TLStoreProps-type)\\n\\n","TLStoreSnapshot-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreSnapshot = StoreSnapshot\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [TLRecord](/gen/tlschema/TLRecord-type)\\n\\n","TLStoreWithStatus-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreWithStatus =\\n | {\\n readonly status: \'error\'\\n readonly store?: undefined\\n readonly error: Error\\n }\\n | {\\n readonly status: \'loading\'\\n readonly store?: undefined\\n readonly error?: undefined\\n }\\n | {\\n readonly status: \'not-synced\'\\n readonly store: TLStore\\n readonly error?: undefined\\n }\\n | {\\n readonly status: \'synced-local\'\\n readonly store: TLStore\\n readonly error?: undefined\\n }\\n | {\\n readonly status: \'synced-remote\'\\n readonly connectionStatus: \'offline\' | \'online\'\\n readonly store: TLStore\\n readonly error?: undefined\\n }\\n```\\n\\n##### References\\n\\n[Error](/gen/Error-interface), [TLStore](/gen/tlschema/TLStore-type)\\n\\n","TLTextShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLTextShape = TLBaseShape<\'text\', TLTextShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLTextShapeProps](/gen/tlschema/TLTextShapeProps-type)\\n\\n","TLTextShapeProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLTextShapeProps = ShapePropsType\\n```\\n\\n##### References\\n\\n[ShapePropsType](/gen/tlschema/~ShapePropsType-type), [textShapeProps](/gen/tlschema/textShapeProps-var)\\n\\n","TLTickEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLTickEvent = (elapsed: number) => void\\n```\\n\\n","TLUiActionItem-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [checkbox](#TLUiActionItem-checkbox-member)\\n - [contextMenuLabel](#TLUiActionItem-contextMenuLabel-member)\\n - [icon](#TLUiActionItem-icon-member)\\n - [id](#TLUiActionItem-id-member)\\n - [kbd](#TLUiActionItem-kbd-member)\\n - [label](#TLUiActionItem-label-member)\\n - [menuLabel](#TLUiActionItem-menuLabel-member)\\n - [onSelect](#TLUiActionItem-onSelect-member)\\n - [readonlyOk](#TLUiActionItem-readonlyOk-member)\\n - [shortcutsLabel](#TLUiActionItem-shortcutsLabel-member)\\n - [title](#TLUiActionItem-title-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiActionItem {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `checkbox` \\\\{#TLUiActionItem-checkbox-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncheckbox?: boolean\\n```\\n\\n---\\n\\n### `contextMenuLabel` \\\\{#TLUiActionItem-contextMenuLabel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncontextMenuLabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `icon` \\\\{#TLUiActionItem-icon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nicon?: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `id` \\\\{#TLUiActionItem-id-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `kbd` \\\\{#TLUiActionItem-kbd-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nkbd?: string\\n```\\n\\n---\\n\\n### `label` \\\\{#TLUiActionItem-label-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `menuLabel` \\\\{#TLUiActionItem-menuLabel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nmenuLabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `onSelect` \\\\{#TLUiActionItem-onSelect-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonSelect: (source: TLUiEventSource) => Promise | void\\n```\\n\\n##### References\\n\\n[TLUiEventSource](/gen/ui/TLUiEventSource-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `readonlyOk` \\\\{#TLUiActionItem-readonlyOk-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nreadonlyOk: boolean\\n```\\n\\n---\\n\\n### `shortcutsLabel` \\\\{#TLUiActionItem-shortcutsLabel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nshortcutsLabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `title` \\\\{#TLUiActionItem-title-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntitle?: string\\n```\\n\\n---\\n\\n","TLUiActionsContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiActionsContextType = Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [TLUiActionItem](/gen/ui/TLUiActionItem-interface)\\n\\n","TLUiActionsMenuSchemaContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiActionsMenuSchemaContextType = TLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","TLUiButtonProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [disabled](#TLUiButtonProps-disabled-member)\\n - [icon](#TLUiButtonProps-icon-member)\\n - [iconLeft](#TLUiButtonProps-iconLeft-member)\\n - [invertIcon](#TLUiButtonProps-invertIcon-member)\\n - [isChecked](#TLUiButtonProps-isChecked-member)\\n - [kbd](#TLUiButtonProps-kbd-member)\\n - [label](#TLUiButtonProps-label-member)\\n - [loading](#TLUiButtonProps-loading-member)\\n - [smallIcon](#TLUiButtonProps-smallIcon-member)\\n - [spinner](#TLUiButtonProps-spinner-member)\\n - [type](#TLUiButtonProps-type-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiButtonProps extends React.HTMLAttributes {}\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [HTMLButtonElement](/gen/HTMLButtonElement-interface)\\n\\n---\\n\\n## Properties\\n\\n### `disabled` \\\\{#TLUiButtonProps-disabled-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ndisabled?: boolean\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiButtonProps-icon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nicon?: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `iconLeft` \\\\{#TLUiButtonProps-iconLeft-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\niconLeft?: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `invertIcon` \\\\{#TLUiButtonProps-invertIcon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ninvertIcon?: boolean\\n```\\n\\n---\\n\\n### `isChecked` \\\\{#TLUiButtonProps-isChecked-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisChecked?: boolean\\n```\\n\\n---\\n\\n### `kbd` \\\\{#TLUiButtonProps-kbd-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nkbd?: string\\n```\\n\\n---\\n\\n### `label` \\\\{#TLUiButtonProps-label-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `loading` \\\\{#TLUiButtonProps-loading-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nloading?: boolean\\n```\\n\\n---\\n\\n### `smallIcon` \\\\{#TLUiButtonProps-smallIcon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nsmallIcon?: boolean\\n```\\n\\n---\\n\\n### `spinner` \\\\{#TLUiButtonProps-spinner-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nspinner?: boolean\\n```\\n\\n---\\n\\n### `type` \\\\{#TLUiButtonProps-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype?: \'danger\' | \'normal\' | \'primary\'\\n```\\n\\n---\\n\\n","TLUiContextMenuProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [children](#TLUiContextMenuProps-children-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiContextMenuProps {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#TLUiContextMenuProps-children-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchildren: any\\n```\\n\\n---\\n\\n","TLUiContextTTLUiMenuSchemaContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiContextTTLUiMenuSchemaContextType = TLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","TLUiCustomMenuItem-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiCustomMenuItem = {\\n id: string\\n type: \'custom\'\\n disabled: boolean\\n readonlyOk: boolean\\n}\\n```\\n\\n","TLUiDialog-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [component](#TLUiDialog-component-member)\\n - [id](#TLUiDialog-id-member)\\n - [onClose](#TLUiDialog-onClose-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiDialog {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `component` \\\\{#TLUiDialog-component-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncomponent: (props: TLUiDialogProps) => any\\n```\\n\\n##### References\\n\\n[TLUiDialogProps](/gen/ui/TLUiDialogProps-interface)\\n\\n---\\n\\n### `id` \\\\{#TLUiDialog-id-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `onClose` \\\\{#TLUiDialog-onClose-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonClose?: () => void\\n```\\n\\n---\\n\\n","TLUiDialogProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [onClose](#TLUiDialogProps-onClose-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiDialogProps {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `onClose` \\\\{#TLUiDialogProps-onClose-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonClose: () => void\\n```\\n\\n---\\n\\n","TLUiDialogsContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiDialogsContextType = {\\n addDialog: (\\n dialog: Omit & {\\n id?: string\\n }\\n ) => string\\n removeDialog: (id: string) => string\\n updateDialog: (id: string, newDialogData: Partial) => string\\n clearDialogs: () => void\\n dialogs: TLUiDialog[]\\n}\\n```\\n\\n##### References\\n\\n[Omit](/gen/Omit-type), [TLUiDialog](/gen/ui/TLUiDialog-interface), [Partial](/gen/Partial-type)\\n\\n","TLUiEventContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiEventContextType = TLUiEventHandler\\n```\\n\\n##### References\\n\\n[TLUiEventHandler](/gen/ui/TLUiEventHandler-type), [TLUiEventMap](/gen/ui/~TLUiEventMap-interface)\\n\\n","TLUiEventHandler-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiEventHandler = (\\n name: T,\\n data: Join<\\n {\\n source: TLUiEventSource\\n },\\n TLUiEventMap[T]\\n >\\n) => void\\n```\\n\\n##### References\\n\\n[TLUiEventMap](/gen/ui/~TLUiEventMap-interface), [Join](/gen/ui/~Join-type), [TLUiEventSource](/gen/ui/TLUiEventSource-type)\\n\\n","TLUiEventSource-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiEventSource =\\n | \'actions-menu\'\\n | \'context-menu\'\\n | \'debug-panel\'\\n | \'dialog\'\\n | \'export-menu\'\\n | \'help-menu\'\\n | \'helper-buttons\'\\n | \'kbd\'\\n | \'menu\'\\n | \'navigation-zone\'\\n | \'page-menu\'\\n | \'people-menu\'\\n | \'quick-actions\'\\n | \'share-menu\'\\n | \'toolbar\'\\n | \'unknown\'\\n | \'zoom-menu\'\\n```\\n\\n","TLUiHelpMenuSchemaContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiHelpMenuSchemaContextType = TLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","TLUiIconProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [children](#TLUiIconProps-children-member)\\n - [color](#TLUiIconProps-color-member)\\n - [crossOrigin](#TLUiIconProps-crossOrigin-member)\\n - [icon](#TLUiIconProps-icon-member)\\n - [invertIcon](#TLUiIconProps-invertIcon-member)\\n - [small](#TLUiIconProps-small-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiIconProps extends React.HTMLProps {}\\n```\\n\\n##### References\\n\\n[React.HTMLProps](/gen/@types/react-React-HTMLProps-interface), [HTMLDivElement](/gen/HTMLDivElement-interface)\\n\\n---\\n\\n## Properties\\n\\n### `children` \\\\{#TLUiIconProps-children-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: undefined\\n```\\n\\n---\\n\\n### `color` \\\\{#TLUiIconProps-color-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncolor?: string\\n```\\n\\n---\\n\\n### `crossOrigin` \\\\{#TLUiIconProps-crossOrigin-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncrossOrigin?: \'anonymous\' | \'use-credentials\'\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiIconProps-icon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nicon: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `invertIcon` \\\\{#TLUiIconProps-invertIcon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ninvertIcon?: boolean\\n```\\n\\n---\\n\\n### `small` \\\\{#TLUiIconProps-small-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nsmall?: boolean\\n```\\n\\n---\\n\\n","TLUiIconType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiIconType =\\n | \'align-bottom-center\'\\n | \'align-bottom-left\'\\n | \'align-bottom-right\'\\n | \'align-bottom\'\\n | \'align-center-center\'\\n | \'align-center-horizontal\'\\n | \'align-center-left\'\\n | \'align-center-right\'\\n | \'align-center-vertical\'\\n | \'align-left\'\\n | \'align-right\'\\n | \'align-top-center\'\\n | \'align-top-left\'\\n | \'align-top-right\'\\n | \'align-top\'\\n | \'arrow-left\'\\n | \'arrowhead-arrow\'\\n | \'arrowhead-bar\'\\n | \'arrowhead-diamond\'\\n | \'arrowhead-dot\'\\n | \'arrowhead-none\'\\n | \'arrowhead-square\'\\n | \'arrowhead-triangle-inverted\'\\n | \'arrowhead-triangle\'\\n | \'aspect-ratio\'\\n | \'avatar\'\\n | \'blob\'\\n | \'bring-forward\'\\n | \'bring-to-front\'\\n | \'check\'\\n | \'checkbox-checked\'\\n | \'checkbox-empty\'\\n | \'chevron-down\'\\n | \'chevron-left\'\\n | \'chevron-right\'\\n | \'chevron-up\'\\n | \'chevrons-ne\'\\n | \'chevrons-sw\'\\n | \'clipboard-copied\'\\n | \'clipboard-copy\'\\n | \'code\'\\n | \'collab\'\\n | \'color\'\\n | \'comment\'\\n | \'cross-2\'\\n | \'cross\'\\n | \'dash-dashed\'\\n | \'dash-dotted\'\\n | \'dash-draw\'\\n | \'dash-solid\'\\n | \'discord\'\\n | \'distribute-horizontal\'\\n | \'distribute-vertical\'\\n | \'dot\'\\n | \'dots-horizontal\'\\n | \'dots-vertical\'\\n | \'drag-handle-dots\'\\n | \'duplicate\'\\n | \'edit\'\\n | \'external-link\'\\n | \'file\'\\n | \'fill-none\'\\n | \'fill-pattern\'\\n | \'fill-semi\'\\n | \'fill-solid\'\\n | \'follow\'\\n | \'following\'\\n | \'font-draw\'\\n | \'font-mono\'\\n | \'font-sans\'\\n | \'font-serif\'\\n | \'geo-arrow-down\'\\n | \'geo-arrow-left\'\\n | \'geo-arrow-right\'\\n | \'geo-arrow-up\'\\n | \'geo-check-box\'\\n | \'geo-diamond\'\\n | \'geo-ellipse\'\\n | \'geo-hexagon\'\\n | \'geo-octagon\'\\n | \'geo-oval\'\\n | \'geo-pentagon\'\\n | \'geo-rectangle\'\\n | \'geo-rhombus-2\'\\n | \'geo-rhombus\'\\n | \'geo-star\'\\n | \'geo-trapezoid\'\\n | \'geo-triangle\'\\n | \'geo-x-box\'\\n | \'github\'\\n | \'group\'\\n | \'hidden\'\\n | \'image\'\\n | \'info-circle\'\\n | \'leading\'\\n | \'link\'\\n | \'lock-small\'\\n | \'lock\'\\n | \'menu\'\\n | \'minus\'\\n | \'mixed\'\\n | \'pack\'\\n | \'page\'\\n | \'plus\'\\n | \'question-mark-circle\'\\n | \'question-mark\'\\n | \'redo\'\\n | \'reset-zoom\'\\n | \'rotate-ccw\'\\n | \'rotate-cw\'\\n | \'ruler\'\\n | \'search\'\\n | \'send-backward\'\\n | \'send-to-back\'\\n | \'settings-horizontal\'\\n | \'settings-vertical-1\'\\n | \'settings-vertical\'\\n | \'share-1\'\\n | \'share-2\'\\n | \'size-extra-large\'\\n | \'size-large\'\\n | \'size-medium\'\\n | \'size-small\'\\n | \'spline-cubic\'\\n | \'spline-line\'\\n | \'stack-horizontal\'\\n | \'stack-vertical\'\\n | \'stretch-horizontal\'\\n | \'stretch-vertical\'\\n | \'text-align-center\'\\n | \'text-align-justify\'\\n | \'text-align-left\'\\n | \'text-align-right\'\\n | \'tool-arrow\'\\n | \'tool-embed\'\\n | \'tool-eraser\'\\n | \'tool-frame\'\\n | \'tool-hand\'\\n | \'tool-highlight\'\\n | \'tool-laser\'\\n | \'tool-line\'\\n | \'tool-media\'\\n | \'tool-note\'\\n | \'tool-pencil\'\\n | \'tool-pointer\'\\n | \'tool-text\'\\n | \'trash\'\\n | \'triangle-down\'\\n | \'triangle-up\'\\n | \'twitter\'\\n | \'undo\'\\n | \'ungroup\'\\n | \'unlock-small\'\\n | \'unlock\'\\n | \'vertical-align-center\'\\n | \'vertical-align-end\'\\n | \'vertical-align-start\'\\n | \'visible\'\\n | \'warning-triangle\'\\n | \'zoom-in\'\\n | \'zoom-out\'\\n```\\n\\n","TLUiInputProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [autofocus](#TLUiInputProps-autofocus-member)\\n - [autoselect](#TLUiInputProps-autoselect-member)\\n - [children](#TLUiInputProps-children-member)\\n - [className](#TLUiInputProps-className-member)\\n - [defaultValue](#TLUiInputProps-defaultValue-member)\\n - [disabled](#TLUiInputProps-disabled-member)\\n - [icon](#TLUiInputProps-icon-member)\\n - [iconLeft](#TLUiInputProps-iconLeft-member)\\n - [label](#TLUiInputProps-label-member)\\n - [onBlur](#TLUiInputProps-onBlur-member)\\n - [onCancel](#TLUiInputProps-onCancel-member)\\n - [onComplete](#TLUiInputProps-onComplete-member)\\n - [onValueChange](#TLUiInputProps-onValueChange-member)\\n - [placeholder](#TLUiInputProps-placeholder-member)\\n - [shouldManuallyMaintainScrollPositionWhenFocused](#TLUiInputProps-shouldManuallyMaintainScrollPositionWhenFocused-member)\\n - [value](#TLUiInputProps-value-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiInputProps {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `autofocus` \\\\{#TLUiInputProps-autofocus-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nautofocus?: boolean\\n```\\n\\n---\\n\\n### `autoselect` \\\\{#TLUiInputProps-autoselect-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nautoselect?: boolean\\n```\\n\\n---\\n\\n### `children` \\\\{#TLUiInputProps-children-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: any\\n```\\n\\n---\\n\\n### `className` \\\\{#TLUiInputProps-className-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nclassName?: string\\n```\\n\\n---\\n\\n### `defaultValue` \\\\{#TLUiInputProps-defaultValue-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ndefaultValue?: string\\n```\\n\\n---\\n\\n### `disabled` \\\\{#TLUiInputProps-disabled-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ndisabled?: boolean\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiInputProps-icon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nicon?: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `iconLeft` \\\\{#TLUiInputProps-iconLeft-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\niconLeft?: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `label` \\\\{#TLUiInputProps-label-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `onBlur` \\\\{#TLUiInputProps-onBlur-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonBlur?: (value: string) => void\\n```\\n\\n---\\n\\n### `onCancel` \\\\{#TLUiInputProps-onCancel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonCancel?: (value: string) => void\\n```\\n\\n---\\n\\n### `onComplete` \\\\{#TLUiInputProps-onComplete-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonComplete?: (value: string) => void\\n```\\n\\n---\\n\\n### `onValueChange` \\\\{#TLUiInputProps-onValueChange-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonValueChange?: (value: string) => void\\n```\\n\\n---\\n\\n### `placeholder` \\\\{#TLUiInputProps-placeholder-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nplaceholder?: string\\n```\\n\\n---\\n\\n### `shouldManuallyMaintainScrollPositionWhenFocused` \\\\{#TLUiInputProps-shouldManuallyMaintainScrollPositionWhenFocused-member}\\n\\nPublic PropertySignature\\n\\nUsually on iOS when you focus an input, the browser will adjust the viewport to bring the input into view. Sometimes this doesn\'t work properly though - for example, if the input is newly created, iOS seems to have a hard time adjusting the viewport for it. This prop allows you to opt-in to some extra code to manually bring the input into view when the visual viewport of the browser changes, but we don\'t want to use it everywhere because generally the native behavior looks nicer in scenarios where it\'s sufficient.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nshouldManuallyMaintainScrollPositionWhenFocused?: boolean\\n```\\n\\n---\\n\\n### `value` \\\\{#TLUiInputProps-value-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nvalue?: string\\n```\\n\\n---\\n\\n","TLUiKeyboardShortcutsSchemaContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiKeyboardShortcutsSchemaContextType = TLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","TLUiKeyboardShortcutsSchemaProviderProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiKeyboardShortcutsSchemaProviderProps = {\\n overrides?: (\\n editor: Editor,\\n schema: TLUiKeyboardShortcutsSchemaContextType,\\n more: {\\n tools: TLUiToolsContextType\\n actions: TLUiActionsContextType\\n }\\n ) => TLUiKeyboardShortcutsSchemaContextType\\n children: any\\n}\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [TLUiKeyboardShortcutsSchemaContextType](/gen/ui/TLUiKeyboardShortcutsSchemaContextType-type), [TLUiToolsContextType](/gen/ui/TLUiToolsContextType-type), [TLUiActionsContextType](/gen/ui/TLUiActionsContextType-type)\\n\\n","TLUiMenuChild-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiMenuChild =\\n | TLUiCustomMenuItem\\n | TLUiMenuGroup\\n | TLUiMenuItem\\n | TLUiSubMenu\\n```\\n\\n##### References\\n\\n[TLUiCustomMenuItem](/gen/ui/TLUiCustomMenuItem-type), [TLUiMenuGroup](/gen/ui/TLUiMenuGroup-type), [TLUiMenuItem](/gen/ui/TLUiMenuItem-type), [TLUiSubMenu](/gen/ui/TLUiSubMenu-type)\\n\\n","TLUiMenuGroup-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiMenuGroup = {\\n id: string\\n type: \'group\'\\n checkbox: boolean\\n disabled: boolean\\n readonlyOk: boolean\\n children: TLUiMenuChild[]\\n}\\n```\\n\\n##### References\\n\\n[TLUiMenuChild](/gen/ui/TLUiMenuChild-type)\\n\\n","TLUiMenuItem-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiMenuItem = {\\n id: string\\n type: \'item\'\\n readonlyOk: boolean\\n actionItem: TLUiActionItem\\n disabled: boolean\\n checked: boolean\\n}\\n```\\n\\n##### References\\n\\n[TLUiActionItem](/gen/ui/TLUiActionItem-interface)\\n\\n","TLUiMenuSchema-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiMenuSchema = (TLUiCustomMenuItem | TLUiMenuGroup | TLUiMenuItem)[]\\n```\\n\\n##### References\\n\\n[TLUiCustomMenuItem](/gen/ui/TLUiCustomMenuItem-type), [TLUiMenuGroup](/gen/ui/TLUiMenuGroup-type), [TLUiMenuItem](/gen/ui/TLUiMenuItem-type)\\n\\n","TLUiMenuSchemaContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiMenuSchemaContextType = TLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","TLUiMenuSchemaProviderProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiMenuSchemaProviderProps = {\\n overrides?: (\\n editor: Editor,\\n schema: TLUiMenuSchemaContextType,\\n helpers: {\\n actions: ReturnType\\n noneSelected: boolean\\n oneSelected: boolean\\n twoSelected: boolean\\n threeSelected: boolean\\n }\\n ) => TLUiMenuSchemaContextType\\n children: any\\n}\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [TLUiMenuSchemaContextType](/gen/ui/TLUiMenuSchemaContextType-type), [ReturnType](/gen/ReturnType-type), [useActions](/gen/ui/useActions-function)\\n\\n","TLUiOverrides-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [actions](#TLUiOverrides-actions-member)\\n - [actionsMenu](#TLUiOverrides-actionsMenu-member)\\n - [contextMenu](#TLUiOverrides-contextMenu-member)\\n - [helpMenu](#TLUiOverrides-helpMenu-member)\\n - [keyboardShortcutsMenu](#TLUiOverrides-keyboardShortcutsMenu-member)\\n - [menu](#TLUiOverrides-menu-member)\\n - [toolbar](#TLUiOverrides-toolbar-member)\\n - [tools](#TLUiOverrides-tools-member)\\n - [translations](#TLUiOverrides-translations-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiOverrides {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `actions` \\\\{#TLUiOverrides-actions-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nactions?: WithDefaultHelpers>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [ActionsProviderProps](/gen/ui/~ActionsProviderProps-type)\\n\\n---\\n\\n### `actionsMenu` \\\\{#TLUiOverrides-actionsMenu-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nactionsMenu?: WithDefaultHelpers<\\n NonNullable\\n>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [ActionsMenuSchemaProviderProps](/gen/ui/~ActionsMenuSchemaProviderProps-type)\\n\\n---\\n\\n### `contextMenu` \\\\{#TLUiOverrides-contextMenu-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncontextMenu?: WithDefaultHelpers<\\n NonNullable\\n>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [TLUiContextMenuSchemaProviderProps](/gen/ui/~TLUiContextMenuSchemaProviderProps-type)\\n\\n---\\n\\n### `helpMenu` \\\\{#TLUiOverrides-helpMenu-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nhelpMenu?: WithDefaultHelpers<\\n NonNullable\\n>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [TLUiHelpMenuSchemaProviderProps](/gen/ui/~TLUiHelpMenuSchemaProviderProps-type)\\n\\n---\\n\\n### `keyboardShortcutsMenu` \\\\{#TLUiOverrides-keyboardShortcutsMenu-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nkeyboardShortcutsMenu?: WithDefaultHelpers<\\n NonNullable\\n>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [TLUiKeyboardShortcutsSchemaProviderProps](/gen/ui/TLUiKeyboardShortcutsSchemaProviderProps-type)\\n\\n---\\n\\n### `menu` \\\\{#TLUiOverrides-menu-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nmenu?: WithDefaultHelpers<\\n NonNullable\\n>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [TLUiMenuSchemaProviderProps](/gen/ui/TLUiMenuSchemaProviderProps-type)\\n\\n---\\n\\n### `toolbar` \\\\{#TLUiOverrides-toolbar-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntoolbar?: WithDefaultHelpers<\\n NonNullable\\n>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [TLUiToolbarSchemaProviderProps](/gen/ui/~TLUiToolbarSchemaProviderProps-type)\\n\\n---\\n\\n### `tools` \\\\{#TLUiOverrides-tools-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntools?: WithDefaultHelpers>\\n```\\n\\n##### References\\n\\n[WithDefaultHelpers](/gen/ui/~WithDefaultHelpers-type), [NonNullable](/gen/NonNullable-type), [TLUiToolsProviderProps](/gen/ui/TLUiToolsProviderProps-type)\\n\\n---\\n\\n### `translations` \\\\{#TLUiOverrides-translations-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntranslations?: TLUiTranslationProviderProps[\'overrides\']\\n```\\n\\n##### References\\n\\n[TLUiTranslationProviderProps](/gen/ui/~TLUiTranslationProviderProps-interface)\\n\\n---\\n\\n","TLUiSubMenu-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiSubMenu = {\\n id: string\\n type: \'submenu\'\\n label: TLUiTranslationKey\\n disabled: boolean\\n readonlyOk: boolean\\n children: TLUiMenuChild[]\\n}\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type), [TLUiMenuChild](/gen/ui/TLUiMenuChild-type)\\n\\n","TLUiToast-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [actions](#TLUiToast-actions-member)\\n - [closeLabel](#TLUiToast-closeLabel-member)\\n - [description](#TLUiToast-description-member)\\n - [icon](#TLUiToast-icon-member)\\n - [id](#TLUiToast-id-member)\\n - [keepOpen](#TLUiToast-keepOpen-member)\\n - [title](#TLUiToast-title-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiToast {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `actions` \\\\{#TLUiToast-actions-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nactions?: TLUiToastAction[]\\n```\\n\\n##### References\\n\\n[TLUiToastAction](/gen/ui/TLUiToastAction-interface)\\n\\n---\\n\\n### `closeLabel` \\\\{#TLUiToast-closeLabel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncloseLabel?: string\\n```\\n\\n---\\n\\n### `description` \\\\{#TLUiToast-description-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ndescription?: string\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiToast-icon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nicon?: string\\n```\\n\\n---\\n\\n### `id` \\\\{#TLUiToast-id-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `keepOpen` \\\\{#TLUiToast-keepOpen-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nkeepOpen?: boolean\\n```\\n\\n---\\n\\n### `title` \\\\{#TLUiToast-title-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntitle?: string\\n```\\n\\n---\\n\\n","TLUiToastAction-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [label](#TLUiToastAction-label-member)\\n - [onClick](#TLUiToastAction-onClick-member)\\n - [type](#TLUiToastAction-type-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiToastAction {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `label` \\\\{#TLUiToastAction-label-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlabel: string\\n```\\n\\n---\\n\\n### `onClick` \\\\{#TLUiToastAction-onClick-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonClick: () => void\\n```\\n\\n---\\n\\n### `type` \\\\{#TLUiToastAction-type-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntype: \'primary\' | \'secondary\' | \'warn\'\\n```\\n\\n---\\n\\n","TLUiToastsContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToastsContextType = {\\n addToast: (\\n toast: Omit & {\\n id?: string\\n }\\n ) => string\\n removeToast: (id: TLUiToast[\'id\']) => string\\n clearToasts: () => void\\n toasts: TLUiToast[]\\n}\\n```\\n\\n##### References\\n\\n[Omit](/gen/Omit-type), [TLUiToast](/gen/ui/TLUiToast-interface)\\n\\n","TLUiToolItem-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [icon](#TLUiToolItem-icon-member)\\n - [id](#TLUiToolItem-id-member)\\n - [kbd](#TLUiToolItem-kbd-member)\\n - [label](#TLUiToolItem-label-member)\\n - [meta](#TLUiToolItem-meta-member)\\n - [onSelect](#TLUiToolItem-onSelect-member)\\n - [readonlyOk](#TLUiToolItem-readonlyOk-member)\\n - [shortcutsLabel](#TLUiToolItem-shortcutsLabel-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiToolItem {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `icon` \\\\{#TLUiToolItem-icon-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nicon: TLUiIconType\\n```\\n\\n##### References\\n\\n[TLUiIconType](/gen/ui/TLUiIconType-type)\\n\\n---\\n\\n### `id` \\\\{#TLUiToolItem-id-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `kbd` \\\\{#TLUiToolItem-kbd-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nkbd?: string\\n```\\n\\n---\\n\\n### `label` \\\\{#TLUiToolItem-label-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlabel: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n### `meta` \\\\{#TLUiToolItem-meta-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nmeta?: {\\n [key: string]: any\\n}\\n```\\n\\n---\\n\\n### `onSelect` \\\\{#TLUiToolItem-onSelect-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonSelect: (source: TLUiEventSource) => void\\n```\\n\\n##### References\\n\\n[TLUiEventSource](/gen/ui/TLUiEventSource-type)\\n\\n---\\n\\n### `readonlyOk` \\\\{#TLUiToolItem-readonlyOk-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nreadonlyOk: boolean\\n```\\n\\n---\\n\\n### `shortcutsLabel` \\\\{#TLUiToolItem-shortcutsLabel-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nshortcutsLabel?: TLUiTranslationKey\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n---\\n\\n","TLUiToolbarItem-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToolbarItem = {\\n id: string\\n type: \'item\'\\n readonlyOk: boolean\\n toolItem: TLUiToolItem\\n}\\n```\\n\\n##### References\\n\\n[TLUiToolItem](/gen/ui/TLUiToolItem-interface)\\n\\n","TLUiToolbarSchemaContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToolbarSchemaContextType = TLUiToolbarItem[]\\n```\\n\\n##### References\\n\\n[TLUiToolbarItem](/gen/ui/TLUiToolbarItem-type)\\n\\n","TLUiToolsContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToolsContextType = Record\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [TLUiToolItem](/gen/ui/TLUiToolItem-interface)\\n\\n","TLUiToolsProviderProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToolsProviderProps = {\\n overrides?: (\\n editor: Editor,\\n tools: TLUiToolsContextType,\\n helpers: {\\n insertMedia: () => void\\n }\\n ) => TLUiToolsContextType\\n children: any\\n}\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class), [TLUiToolsContextType](/gen/ui/TLUiToolsContextType-type)\\n\\n","TLUiTranslation-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiTranslation = {\\n readonly locale: string\\n readonly label: string\\n readonly messages: Record\\n}\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n","TLUiTranslationContextType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiTranslationContextType = TLUiTranslation\\n```\\n\\n##### References\\n\\n[TLUiTranslation](/gen/ui/TLUiTranslation-type)\\n\\n","TLUiTranslationKey-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiTranslationKey =\\n | \'action.align-bottom\'\\n | \'action.align-center-horizontal.short\'\\n | \'action.align-center-horizontal\'\\n | \'action.align-center-vertical.short\'\\n | \'action.align-center-vertical\'\\n | \'action.align-left\'\\n | \'action.align-right\'\\n | \'action.align-top\'\\n | \'action.back-to-content\'\\n | \'action.bring-forward\'\\n | \'action.bring-to-front\'\\n | \'action.convert-to-bookmark\'\\n | \'action.convert-to-embed\'\\n | \'action.copy-as-json.short\'\\n | \'action.copy-as-json\'\\n | \'action.copy-as-png.short\'\\n | \'action.copy-as-png\'\\n | \'action.copy-as-svg.short\'\\n | \'action.copy-as-svg\'\\n | \'action.copy\'\\n | \'action.cut\'\\n | \'action.delete\'\\n | \'action.distribute-horizontal.short\'\\n | \'action.distribute-horizontal\'\\n | \'action.distribute-vertical.short\'\\n | \'action.distribute-vertical\'\\n | \'action.duplicate\'\\n | \'action.edit-link\'\\n | \'action.exit-pen-mode\'\\n | \'action.export-as-json.short\'\\n | \'action.export-as-json\'\\n | \'action.export-as-png.short\'\\n | \'action.export-as-png\'\\n | \'action.export-as-svg.short\'\\n | \'action.export-as-svg\'\\n | \'action.flip-horizontal.short\'\\n | \'action.flip-horizontal\'\\n | \'action.flip-vertical.short\'\\n | \'action.flip-vertical\'\\n | \'action.fork-project\'\\n | \'action.group\'\\n | \'action.insert-embed\'\\n | \'action.insert-media\'\\n | \'action.leave-shared-project\'\\n | \'action.new-project\'\\n | \'action.new-shared-project\'\\n | \'action.open-cursor-chat\'\\n | \'action.open-embed-link\'\\n | \'action.open-file\'\\n | \'action.pack\'\\n | \'action.paste\'\\n | \'action.print\'\\n | \'action.redo\'\\n | \'action.rotate-ccw\'\\n | \'action.rotate-cw\'\\n | \'action.save-copy\'\\n | \'action.select-all\'\\n | \'action.select-none\'\\n | \'action.send-backward\'\\n | \'action.send-to-back\'\\n | \'action.share-project\'\\n | \'action.stack-horizontal.short\'\\n | \'action.stack-horizontal\'\\n | \'action.stack-vertical.short\'\\n | \'action.stack-vertical\'\\n | \'action.stop-following\'\\n | \'action.stretch-horizontal.short\'\\n | \'action.stretch-horizontal\'\\n | \'action.stretch-vertical.short\'\\n | \'action.stretch-vertical\'\\n | \'action.toggle-auto-size\'\\n | \'action.toggle-dark-mode.menu\'\\n | \'action.toggle-dark-mode\'\\n | \'action.toggle-debug-mode.menu\'\\n | \'action.toggle-debug-mode\'\\n | \'action.toggle-focus-mode.menu\'\\n | \'action.toggle-focus-mode\'\\n | \'action.toggle-grid.menu\'\\n | \'action.toggle-grid\'\\n | \'action.toggle-lock\'\\n | \'action.toggle-reduce-motion.menu\'\\n | \'action.toggle-reduce-motion\'\\n | \'action.toggle-snap-mode.menu\'\\n | \'action.toggle-snap-mode\'\\n | \'action.toggle-tool-lock.menu\'\\n | \'action.toggle-tool-lock\'\\n | \'action.toggle-transparent.context-menu\'\\n | \'action.toggle-transparent.menu\'\\n | \'action.toggle-transparent\'\\n | \'action.undo\'\\n | \'action.ungroup\'\\n | \'action.zoom-in\'\\n | \'action.zoom-out\'\\n | \'action.zoom-to-100\'\\n | \'action.zoom-to-fit\'\\n | \'action.zoom-to-selection\'\\n | \'actions-menu.title\'\\n | \'align-style.end\'\\n | \'align-style.justify\'\\n | \'align-style.middle\'\\n | \'align-style.start\'\\n | \'arrowheadEnd-style.arrow\'\\n | \'arrowheadEnd-style.bar\'\\n | \'arrowheadEnd-style.diamond\'\\n | \'arrowheadEnd-style.dot\'\\n | \'arrowheadEnd-style.inverted\'\\n | \'arrowheadEnd-style.none\'\\n | \'arrowheadEnd-style.pipe\'\\n | \'arrowheadEnd-style.square\'\\n | \'arrowheadEnd-style.triangle\'\\n | \'arrowheadStart-style.arrow\'\\n | \'arrowheadStart-style.bar\'\\n | \'arrowheadStart-style.diamond\'\\n | \'arrowheadStart-style.dot\'\\n | \'arrowheadStart-style.inverted\'\\n | \'arrowheadStart-style.none\'\\n | \'arrowheadStart-style.pipe\'\\n | \'arrowheadStart-style.square\'\\n | \'arrowheadStart-style.triangle\'\\n | \'color-style.black\'\\n | \'color-style.blue\'\\n | \'color-style.green\'\\n | \'color-style.grey\'\\n | \'color-style.light-blue\'\\n | \'color-style.light-green\'\\n | \'color-style.light-red\'\\n | \'color-style.light-violet\'\\n | \'color-style.orange\'\\n | \'color-style.red\'\\n | \'color-style.violet\'\\n | \'color-style.yellow\'\\n | \'context-menu.arrange\'\\n | \'context-menu.copy-as\'\\n | \'context-menu.export-as\'\\n | \'context-menu.move-to-page\'\\n | \'context-menu.reorder\'\\n | \'context.pages.new-page\'\\n | \'cursor-chat.type-to-chat\'\\n | \'dash-style.dashed\'\\n | \'dash-style.dotted\'\\n | \'dash-style.draw\'\\n | \'dash-style.solid\'\\n | \'debug-panel.more\'\\n | \'edit-link-dialog.cancel\'\\n | \'edit-link-dialog.clear\'\\n | \'edit-link-dialog.detail\'\\n | \'edit-link-dialog.invalid-url\'\\n | \'edit-link-dialog.save\'\\n | \'edit-link-dialog.title\'\\n | \'edit-link-dialog.url\'\\n | \'edit-pages-dialog.move-down\'\\n | \'edit-pages-dialog.move-up\'\\n | \'embed-dialog.back\'\\n | \'embed-dialog.cancel\'\\n | \'embed-dialog.create\'\\n | \'embed-dialog.instruction\'\\n | \'embed-dialog.invalid-url\'\\n | \'embed-dialog.title\'\\n | \'embed-dialog.url\'\\n | \'file-system.confirm-clear.cancel\'\\n | \'file-system.confirm-clear.continue\'\\n | \'file-system.confirm-clear.description\'\\n | \'file-system.confirm-clear.dont-show-again\'\\n | \'file-system.confirm-clear.title\'\\n | \'file-system.confirm-open.cancel\'\\n | \'file-system.confirm-open.description\'\\n | \'file-system.confirm-open.dont-show-again\'\\n | \'file-system.confirm-open.open\'\\n | \'file-system.confirm-open.title\'\\n | \'file-system.file-open-error.file-format-version-too-new\'\\n | \'file-system.file-open-error.generic-corrupted-file\'\\n | \'file-system.file-open-error.not-a-tldraw-file\'\\n | \'file-system.file-open-error.title\'\\n | \'file-system.shared-document-file-open-error.description\'\\n | \'file-system.shared-document-file-open-error.title\'\\n | \'fill-style.none\'\\n | \'fill-style.pattern\'\\n | \'fill-style.semi\'\\n | \'fill-style.solid\'\\n | \'focus-mode.toggle-focus-mode\'\\n | \'font-style.draw\'\\n | \'font-style.mono\'\\n | \'font-style.sans\'\\n | \'font-style.serif\'\\n | \'geo-style.arrow-down\'\\n | \'geo-style.arrow-left\'\\n | \'geo-style.arrow-right\'\\n | \'geo-style.arrow-up\'\\n | \'geo-style.check-box\'\\n | \'geo-style.diamond\'\\n | \'geo-style.ellipse\'\\n | \'geo-style.hexagon\'\\n | \'geo-style.octagon\'\\n | \'geo-style.oval\'\\n | \'geo-style.pentagon\'\\n | \'geo-style.rectangle\'\\n | \'geo-style.rhombus-2\'\\n | \'geo-style.rhombus\'\\n | \'geo-style.star\'\\n | \'geo-style.trapezoid\'\\n | \'geo-style.triangle\'\\n | \'geo-style.x-box\'\\n | \'help-menu.about\'\\n | \'help-menu.discord\'\\n | \'help-menu.github\'\\n | \'help-menu.keyboard-shortcuts\'\\n | \'help-menu.title\'\\n | \'help-menu.twitter\'\\n | \'home-project-dialog.description\'\\n | \'home-project-dialog.ok\'\\n | \'home-project-dialog.title\'\\n | \'menu.copy-as\'\\n | \'menu.edit\'\\n | \'menu.export-as\'\\n | \'menu.file\'\\n | \'menu.language\'\\n | \'menu.preferences\'\\n | \'menu.title\'\\n | \'menu.view\'\\n | \'navigation-zone.toggle-minimap\'\\n | \'navigation-zone.zoom\'\\n | \'opacity-style.0.1\'\\n | \'opacity-style.0.25\'\\n | \'opacity-style.0.5\'\\n | \'opacity-style.0.75\'\\n | \'opacity-style.1\'\\n | \'page-menu.create-new-page\'\\n | \'page-menu.edit-done\'\\n | \'page-menu.edit-start\'\\n | \'page-menu.go-to-page\'\\n | \'page-menu.max-page-count-reached\'\\n | \'page-menu.new-page-initial-name\'\\n | \'page-menu.submenu.delete\'\\n | \'page-menu.submenu.duplicate-page\'\\n | \'page-menu.submenu.move-down\'\\n | \'page-menu.submenu.move-up\'\\n | \'page-menu.submenu.rename\'\\n | \'page-menu.submenu.title\'\\n | \'page-menu.title\'\\n | \'people-menu.change-color\'\\n | \'people-menu.change-name\'\\n | \'people-menu.follow\'\\n | \'people-menu.following\'\\n | \'people-menu.invite\'\\n | \'people-menu.leading\'\\n | \'people-menu.title\'\\n | \'people-menu.user\'\\n | \'rename-project-dialog.cancel\'\\n | \'rename-project-dialog.rename\'\\n | \'rename-project-dialog.title\'\\n | \'share-menu.copy-link-note\'\\n | \'share-menu.copy-link\'\\n | \'share-menu.copy-readonly-link-note\'\\n | \'share-menu.copy-readonly-link\'\\n | \'share-menu.create-snapshot-link\'\\n | \'share-menu.default-project-name\'\\n | \'share-menu.fork-note\'\\n | \'share-menu.offline-note\'\\n | \'share-menu.project-too-large\'\\n | \'share-menu.readonly-link\'\\n | \'share-menu.save-note\'\\n | \'share-menu.share-project\'\\n | \'share-menu.snapshot-link-note\'\\n | \'share-menu.title\'\\n | \'share-menu.upload-failed\'\\n | \'sharing.confirm-leave.cancel\'\\n | \'sharing.confirm-leave.description\'\\n | \'sharing.confirm-leave.dont-show-again\'\\n | \'sharing.confirm-leave.leave\'\\n | \'sharing.confirm-leave.title\'\\n | \'shortcuts-dialog.collaboration\'\\n | \'shortcuts-dialog.edit\'\\n | \'shortcuts-dialog.file\'\\n | \'shortcuts-dialog.preferences\'\\n | \'shortcuts-dialog.title\'\\n | \'shortcuts-dialog.tools\'\\n | \'shortcuts-dialog.transform\'\\n | \'shortcuts-dialog.view\'\\n | \'size-style.l\'\\n | \'size-style.m\'\\n | \'size-style.s\'\\n | \'size-style.xl\'\\n | \'spline-style.cubic\'\\n | \'spline-style.line\'\\n | \'style-panel.align\'\\n | \'style-panel.arrowhead-end\'\\n | \'style-panel.arrowhead-start\'\\n | \'style-panel.arrowheads\'\\n | \'style-panel.color\'\\n | \'style-panel.dash\'\\n | \'style-panel.fill\'\\n | \'style-panel.font\'\\n | \'style-panel.geo\'\\n | \'style-panel.mixed\'\\n | \'style-panel.opacity\'\\n | \'style-panel.position\'\\n | \'style-panel.size\'\\n | \'style-panel.spline\'\\n | \'style-panel.title\'\\n | \'style-panel.vertical-align\'\\n | \'toast.close\'\\n | \'toast.error.copy-fail.desc\'\\n | \'toast.error.copy-fail.title\'\\n | \'toast.error.export-fail.desc\'\\n | \'toast.error.export-fail.title\'\\n | \'tool-panel.drawing\'\\n | \'tool-panel.more\'\\n | \'tool-panel.shapes\'\\n | \'tool.arrow-down\'\\n | \'tool.arrow-left\'\\n | \'tool.arrow-right\'\\n | \'tool.arrow-up\'\\n | \'tool.arrow\'\\n | \'tool.asset\'\\n | \'tool.check-box\'\\n | \'tool.diamond\'\\n | \'tool.draw\'\\n | \'tool.ellipse\'\\n | \'tool.embed\'\\n | \'tool.eraser\'\\n | \'tool.frame\'\\n | \'tool.hand\'\\n | \'tool.hexagon\'\\n | \'tool.highlight\'\\n | \'tool.laser\'\\n | \'tool.line\'\\n | \'tool.note\'\\n | \'tool.octagon\'\\n | \'tool.oval\'\\n | \'tool.pentagon\'\\n | \'tool.rectangle\'\\n | \'tool.rhombus\'\\n | \'tool.select\'\\n | \'tool.star\'\\n | \'tool.text\'\\n | \'tool.trapezoid\'\\n | \'tool.triangle\'\\n | \'tool.x-box\'\\n | \'vscode.file-open.backup-failed\'\\n | \'vscode.file-open.backup-saved\'\\n | \'vscode.file-open.backup\'\\n | \'vscode.file-open.desc\'\\n | \'vscode.file-open.dont-show-again\'\\n | \'vscode.file-open.open\'\\n```\\n\\n","TLUnknownShape-type":"Public TypeAlias\\n\\nA type for a shape that is available in the editor but whose type is unknown—either one of the editor\'s default shapes or else a custom shape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUnknownShape = TLBaseShape\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface)\\n\\n","TLUserPreferences-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [animationSpeed](#TLUserPreferences-animationSpeed-member)\\n - [color](#TLUserPreferences-color-member)\\n - [id](#TLUserPreferences-id-member)\\n - [isDarkMode](#TLUserPreferences-isDarkMode-member)\\n - [isSnapMode](#TLUserPreferences-isSnapMode-member)\\n - [locale](#TLUserPreferences-locale-member)\\n - [name](#TLUserPreferences-name-member)\\n
\\n\\nA user of tldraw\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUserPreferences {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `animationSpeed` \\\\{#TLUserPreferences-animationSpeed-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nanimationSpeed: number\\n```\\n\\n---\\n\\n### `color` \\\\{#TLUserPreferences-color-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ncolor: string\\n```\\n\\n---\\n\\n### `id` \\\\{#TLUserPreferences-id-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `isDarkMode` \\\\{#TLUserPreferences-isDarkMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisDarkMode: boolean\\n```\\n\\n---\\n\\n### `isSnapMode` \\\\{#TLUserPreferences-isSnapMode-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nisSnapMode: boolean\\n```\\n\\n---\\n\\n### `locale` \\\\{#TLUserPreferences-locale-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nlocale: string\\n```\\n\\n---\\n\\n### `name` \\\\{#TLUserPreferences-name-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nname: string\\n```\\n\\n---\\n\\n","TLVideoAsset-type":"Public TypeAlias\\n\\nAn asset used for videos, used by the TLVideoShape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLVideoAsset = TLBaseAsset<\\n \'video\',\\n {\\n w: number\\n h: number\\n name: string\\n isAnimated: boolean\\n mimeType: null | string\\n src: null | string\\n }\\n>\\n```\\n\\n##### References\\n\\n[TLBaseAsset](/gen/tlschema/TLBaseAsset-interface)\\n\\n","TLVideoShape-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLVideoShape = TLBaseShape<\'video\', TLVideoShapeProps>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [TLVideoShapeProps](/gen/tlschema/~TLVideoShapeProps-type)\\n\\n","TLWheelEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLWheelEvent = (info: TLWheelEventInfo) => void\\n```\\n\\n##### References\\n\\n[TLWheelEventInfo](/gen/editor/TLWheelEventInfo-type)\\n\\n","TLWheelEventInfo-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLWheelEventInfo = TLBaseEventInfo & {\\n type: \'wheel\'\\n name: \'wheel\'\\n delta: Vec2dModel\\n}\\n```\\n\\n##### References\\n\\n[TLBaseEventInfo](/gen/editor/TLBaseEventInfo-interface), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n","TL_CANVAS_UI_COLOR_TYPES-var":"Public Readonly Variable\\n\\nThe colors used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTL_CANVAS_UI_COLOR_TYPES: Set<\\n | \'accent\'\\n | \'black\'\\n | \'laser\'\\n | \'muted-1\'\\n | \'selection-fill\'\\n | \'selection-stroke\'\\n | \'white\'\\n>\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface)\\n\\n","TextShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTextShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLTextShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n","TextShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canEdit](#TextShapeUtil-canEdit-member)\\n - [isAspectRatioLocked](#TextShapeUtil-isAspectRatioLocked-member)\\n - [onBeforeCreate](#TextShapeUtil-onBeforeCreate-member)\\n - [onBeforeUpdate](#TextShapeUtil-onBeforeUpdate-member)\\n - [onDoubleClickEdge](#TextShapeUtil-onDoubleClickEdge-member)\\n - [onEditEnd](#TextShapeUtil-onEditEnd-member)\\n - [onResize](#TextShapeUtil-onResize-member)\\n - [type](#TextShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#TextShapeUtil-component-member-1)\\n - [getBounds](#TextShapeUtil-getBounds-member-1)\\n - [getDefaultProps](#TextShapeUtil-getDefaultProps-member-1)\\n - [getMinDimensions](#TextShapeUtil-getMinDimensions-member-1)\\n - [getOutline](#TextShapeUtil-getOutline-member-1)\\n - [indicator](#TextShapeUtil-indicator-member-1)\\n - [toSvg](#TextShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass TextShapeUtil extends ShapeUtil {}\\n```\\n\\n##### References\\n\\n[ShapeUtil](/gen/editor/ShapeUtil-class), [TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#TextShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#TextShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#TextShapeUtil-onBeforeCreate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate: (shape: TLTextShape) =>\\n | {\\n x: number\\n y: number\\n type: \'text\'\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n props: {\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n w: number\\n text: string\\n scale: number\\n autoSize: boolean\\n }\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#TextShapeUtil-onBeforeUpdate-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate: (\\n prev: TLTextShape,\\n next: TLTextShape\\n) =>\\n | {\\n x: number\\n y: number\\n props: {\\n w: number\\n color:\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n size: \'l\' | \'m\' | \'s\' | \'xl\'\\n font: \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n align:\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n text: string\\n scale: number\\n autoSize: boolean\\n }\\n type: \'text\'\\n rotation: number\\n index: string\\n parentId: import(\'@tldraw/tlschema\').TLParentId\\n isLocked: boolean\\n opacity: number\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n typeName: \'shape\'\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [TLParentId](/gen/tlschema/TLParentId-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onDoubleClickEdge` \\\\{#TextShapeUtil-onDoubleClickEdge-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge: (shape: TLTextShape) =>\\n | {\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n type: \'text\'\\n props: {\\n autoSize: boolean\\n scale?: undefined\\n }\\n }\\n | {\\n id: import(\'@tldraw/tlschema\').TLShapeId\\n type: \'text\'\\n props: {\\n scale: number\\n autoSize?: undefined\\n }\\n }\\n | undefined\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#TextShapeUtil-onEditEnd-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n---\\n\\n### `onResize` \\\\{#TextShapeUtil-onResize-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n---\\n\\n### `type` \\\\{#TextShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'text\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#TextShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getBounds()` \\\\{#TextShapeUtil-getBounds-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBox2d\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#TextShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLTextShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n---\\n\\n### `getMinDimensions()` \\\\{#TextShapeUtil-getMinDimensions-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n height: number\\n width: number\\n}\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n---\\n\\n### `getOutline()` \\\\{#TextShapeUtil-getOutline-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `indicator()` \\\\{#TextShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#TextShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`ctx`\\n\\n\\n\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLTextShape](/gen/tlschema/TLTextShape-type), [SvgExportContext](/gen/editor/~SvgExportContext-interface), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","Tldraw-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`props`\\n\\n\\n\\n\\n```ts\\nTldrawEditorProps & TldrawUiProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TldrawEditorProps](/gen/editor/TldrawEditorProps-type), [TldrawUiProps](/gen/ui/TldrawUiProps-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","TldrawEditor-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTldrawEditor: React.NamedExoticComponent\\n```\\n\\n##### References\\n\\n[React.NamedExoticComponent](/gen/@types/react-React-NamedExoticComponent-interface), [TldrawEditorProps](/gen/editor/TldrawEditorProps-type)\\n\\n","TldrawEditorProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TldrawEditorProps = {\\n children?: any\\n shapes?: readonly AnyTLShapeInfo[]\\n tools?: readonly TLStateNodeConstructor[]\\n assetUrls?: RecursivePartial\\n autoFocus?: boolean\\n components?: Partial\\n onMount?: (editor: Editor) => (() => void) | undefined | void\\n} & (\\n | {\\n store: TLStore | TLStoreWithStatus\\n }\\n | {\\n store?: undefined\\n initialData?: StoreSnapshot\\n persistenceKey?: string\\n sessionId?: string\\n defaultName?: string\\n }\\n)\\n```\\n\\n##### References\\n\\n[AnyTLShapeInfo](/gen/editor/~AnyTLShapeInfo-type), [TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface), [RecursivePartial](/gen/utils/RecursivePartial-type), [TLEditorAssetUrls](/gen/editor/TLEditorAssetUrls-type), [Partial](/gen/Partial-type), [TLEditorComponents](/gen/editor/TLEditorComponents-interface), [Editor](/gen/editor/Editor-class), [TLStore](/gen/tlschema/TLStore-type), [TLStoreWithStatus](/gen/editor/TLStoreWithStatus-type), [StoreSnapshot](/gen/store/StoreSnapshot-type), [TLRecord](/gen/tlschema/TLRecord-type)\\n\\n","TldrawFile-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [records](#TldrawFile-records-member)\\n - [schema](#TldrawFile-schema-member)\\n - [tldrawFileFormatVersion](#TldrawFile-tldrawFileFormatVersion-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TldrawFile {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `records` \\\\{#TldrawFile-records-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nrecords: UnknownRecord[]\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n### `schema` \\\\{#TldrawFile-schema-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nschema: SerializedSchema\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n---\\n\\n### `tldrawFileFormatVersion` \\\\{#TldrawFile-tldrawFileFormatVersion-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ntldrawFileFormatVersion: number\\n```\\n\\n---\\n\\n","TldrawFileParseError-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TldrawFileParseError =\\n | {\\n type: \'fileFormatVersionTooNew\'\\n version: number\\n }\\n | {\\n type: \'invalidRecords\'\\n cause: unknown\\n }\\n | {\\n type: \'migrationFailed\'\\n reason: MigrationFailureReason\\n }\\n | {\\n type: \'notATldrawFile\'\\n cause: unknown\\n }\\n | {\\n type: \'v1File\'\\n data: any\\n }\\n```\\n\\n##### References\\n\\n[MigrationFailureReason](/gen/store/MigrationFailureReason-enum)\\n\\n","TldrawUi-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTldrawUi: React.NamedExoticComponent<\\n {\\n children?: ReactNode\\n hideUi?: boolean | undefined\\n shareZone?: ReactNode\\n topZone?: ReactNode\\n renderDebugMenuItems?: (() => React.ReactNode) | undefined\\n } & TldrawUiContextProviderProps\\n>\\n```\\n\\n##### References\\n\\n[React.NamedExoticComponent](/gen/@types/react-React-NamedExoticComponent-interface), [ReactNode](/gen/@types/react-React-ReactNode-type), [React.ReactNode](/gen/@types/react-React-ReactNode-type), [TldrawUiContextProviderProps](/gen/ui/TldrawUiContextProviderProps-interface)\\n\\n","TldrawUiContextProvider-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ overrides, assetUrls, onUiEvent, children, }`\\n\\n\\n\\n\\n```ts\\nTldrawUiContextProviderProps\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TldrawUiContextProviderProps](/gen/ui/TldrawUiContextProviderProps-interface), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n","TldrawUiContextProviderProps-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [assetUrls](#TldrawUiContextProviderProps-assetUrls-member)\\n - [children](#TldrawUiContextProviderProps-children-member)\\n - [onUiEvent](#TldrawUiContextProviderProps-onUiEvent-member)\\n - [overrides](#TldrawUiContextProviderProps-overrides-member)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TldrawUiContextProviderProps {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `assetUrls` \\\\{#TldrawUiContextProviderProps-assetUrls-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nassetUrls?: RecursivePartial\\n```\\n\\n##### References\\n\\n[RecursivePartial](/gen/utils/RecursivePartial-type), [TLUiAssetUrls](/gen/ui/~TLUiAssetUrls-type)\\n\\n---\\n\\n### `children` \\\\{#TldrawUiContextProviderProps-children-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: any\\n```\\n\\n---\\n\\n### `onUiEvent` \\\\{#TldrawUiContextProviderProps-onUiEvent-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nonUiEvent?: TLUiEventHandler\\n```\\n\\n##### References\\n\\n[TLUiEventHandler](/gen/ui/TLUiEventHandler-type)\\n\\n---\\n\\n### `overrides` \\\\{#TldrawUiContextProviderProps-overrides-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\noverrides?: TLUiOverrides | TLUiOverrides[]\\n```\\n\\n##### References\\n\\n[TLUiOverrides](/gen/ui/TLUiOverrides-interface)\\n\\n---\\n\\n","TldrawUiProps-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TldrawUiProps = {\\n children?: ReactNode\\n hideUi?: boolean\\n shareZone?: ReactNode\\n topZone?: ReactNode\\n renderDebugMenuItems?: () => React.ReactNode\\n} & TldrawUiContextProviderProps\\n```\\n\\n##### References\\n\\n[ReactNode](/gen/@types/react-React-ReactNode-type), [React.ReactNode](/gen/@types/react-React-ReactNode-type), [TldrawUiContextProviderProps](/gen/ui/TldrawUiContextProviderProps-interface)\\n\\n","UiEvent-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype UiEvent =\\n | TLCancelEvent\\n | TLClickEvent\\n | TLCompleteEvent\\n | TLKeyboardEvent\\n | TLPinchEvent\\n | TLPointerEvent\\n```\\n\\n##### References\\n\\n[TLCancelEvent](/gen/editor/TLCancelEvent-type), [TLClickEvent](/gen/editor/TLClickEvent-type), [TLCompleteEvent](/gen/editor/TLCompleteEvent-type), [TLKeyboardEvent](/gen/editor/TLKeyboardEvent-type), [TLPinchEvent](/gen/editor/TLPinchEvent-type), [TLPointerEvent](/gen/editor/TLPointerEvent-type)\\n\\n","UiEventType-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype UiEventType = \'click\' | \'keyboard\' | \'pinch\' | \'pointer\' | \'wheel\' | \'zoom\'\\n```\\n\\n","UnknownRecord-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype UnknownRecord = BaseRecord>\\n```\\n\\n##### References\\n\\n[BaseRecord](/gen/store/BaseRecord-interface), [RecordId](/gen/store/RecordId-type), [UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","Vec2d-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [pressure](#Vec2d-pressure-member)\\n - [x](#Vec2d-x-member)\\n - [y](#Vec2d-y-member)\\n - [z](#Vec2d-z-member)\\n- [Methods](#methods)\\n - [abs](#Vec2d-abs-member-1)\\n - [Abs](#Vec2d-Abs-member-1)\\n - [add](#Vec2d-add-member-1)\\n - [Add](#Vec2d-Add-member-1)\\n - [addScalar](#Vec2d-addScalar-member-1)\\n - [AddScalar](#Vec2d-AddScalar-member-1)\\n - [addXY](#Vec2d-addXY-member-1)\\n - [AddXY](#Vec2d-AddXY-member-1)\\n - [angle](#Vec2d-angle-member-1)\\n - [Angle](#Vec2d-Angle-member-1)\\n - [Average](#Vec2d-Average-member-1)\\n - [Cast](#Vec2d-Cast-member-1)\\n - [clamp](#Vec2d-clamp-member-1)\\n - [Clamp](#Vec2d-Clamp-member-1)\\n - [Clockwise](#Vec2d-Clockwise-member-1)\\n - [clone](#Vec2d-clone-member-1)\\n - [cpr](#Vec2d-cpr-member-1)\\n - [Cpr](#Vec2d-Cpr-member-1)\\n - [cross](#Vec2d-cross-member-1)\\n - [Cross](#Vec2d-Cross-member-1)\\n - [dist](#Vec2d-dist-member-1)\\n - [Dist](#Vec2d-Dist-member-1)\\n - [Dist2](#Vec2d-Dist2-member-1)\\n - [distanceToLineSegment](#Vec2d-distanceToLineSegment-member-1)\\n - [DistanceToLineSegment](#Vec2d-DistanceToLineSegment-member-1)\\n - [DistanceToLineThroughPoint](#Vec2d-DistanceToLineThroughPoint-member-1)\\n - [div](#Vec2d-div-member-1)\\n - [Div](#Vec2d-Div-member-1)\\n - [divV](#Vec2d-divV-member-1)\\n - [DivV](#Vec2d-DivV-member-1)\\n - [dpr](#Vec2d-dpr-member-1)\\n - [Dpr](#Vec2d-Dpr-member-1)\\n - [equals](#Vec2d-equals-member-1)\\n - [Equals](#Vec2d-Equals-member-1)\\n - [equalsXY](#Vec2d-equalsXY-member-1)\\n - [EqualsXY](#Vec2d-EqualsXY-member-1)\\n - [From](#Vec2d-From-member-1)\\n - [FromArray](#Vec2d-FromArray-member-1)\\n - [len](#Vec2d-len-member-1)\\n - [Len](#Vec2d-Len-member-1)\\n - [len2](#Vec2d-len2-member-1)\\n - [Len2](#Vec2d-Len2-member-1)\\n - [lrp](#Vec2d-lrp-member-1)\\n - [Lrp](#Vec2d-Lrp-member-1)\\n - [Max](#Vec2d-Max-member-1)\\n - [Med](#Vec2d-Med-member-1)\\n - [Min](#Vec2d-Min-member-1)\\n - [mul](#Vec2d-mul-member-1)\\n - [Mul](#Vec2d-Mul-member-1)\\n - [mulV](#Vec2d-mulV-member-1)\\n - [MulV](#Vec2d-MulV-member-1)\\n - [NearestPointOnLineSegment](#Vec2d-NearestPointOnLineSegment-member-1)\\n - [NearestPointOnLineThroughPoint](#Vec2d-NearestPointOnLineThroughPoint-member-1)\\n - [neg](#Vec2d-neg-member-1)\\n - [Neg](#Vec2d-Neg-member-1)\\n - [norm](#Vec2d-norm-member-1)\\n - [nudge](#Vec2d-nudge-member-1)\\n - [Nudge](#Vec2d-Nudge-member-1)\\n - [per](#Vec2d-per-member-1)\\n - [Per](#Vec2d-Per-member-1)\\n - [PointsBetween](#Vec2d-PointsBetween-member-1)\\n - [pry](#Vec2d-pry-member-1)\\n - [Pry](#Vec2d-Pry-member-1)\\n - [Rescale](#Vec2d-Rescale-member-1)\\n - [rot](#Vec2d-rot-member-1)\\n - [Rot](#Vec2d-Rot-member-1)\\n - [rotWith](#Vec2d-rotWith-member-1)\\n - [RotWith](#Vec2d-RotWith-member-1)\\n - [ScaleWithOrigin](#Vec2d-ScaleWithOrigin-member-1)\\n - [set](#Vec2d-set-member-1)\\n - [setTo](#Vec2d-setTo-member-1)\\n - [slope](#Vec2d-slope-member-1)\\n - [Slope](#Vec2d-Slope-member-1)\\n - [Snap](#Vec2d-Snap-member-1)\\n - [snapToGrid](#Vec2d-snapToGrid-member-1)\\n - [SnapToGrid](#Vec2d-SnapToGrid-member-1)\\n - [sub](#Vec2d-sub-member-1)\\n - [Sub](#Vec2d-Sub-member-1)\\n - [subScalar](#Vec2d-subScalar-member-1)\\n - [SubScalar](#Vec2d-SubScalar-member-1)\\n - [subXY](#Vec2d-subXY-member-1)\\n - [SubXY](#Vec2d-SubXY-member-1)\\n - [tan](#Vec2d-tan-member-1)\\n - [Tan](#Vec2d-Tan-member-1)\\n - [toAngle](#Vec2d-toAngle-member-1)\\n - [ToAngle](#Vec2d-ToAngle-member-1)\\n - [toArray](#Vec2d-toArray-member-1)\\n - [ToArray](#Vec2d-ToArray-member-1)\\n - [toFixed](#Vec2d-toFixed-member-1)\\n - [ToFixed](#Vec2d-ToFixed-member-1)\\n - [toJson](#Vec2d-toJson-member-1)\\n - [ToJson](#Vec2d-ToJson-member-1)\\n - [toString](#Vec2d-toString-member-1)\\n - [ToString](#Vec2d-ToString-member-1)\\n - [uni](#Vec2d-uni-member-1)\\n - [Uni](#Vec2d-Uni-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Vec2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\nPublic Constructor\\n\\nConstructs a new instance of the `Vec2d` class\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n---\\n\\n## Properties\\n\\n### `pressure` \\\\{#Vec2d-pressure-member}\\n\\nPublic Readonly Property\\n\\n##### Signature\\n\\n\\n```ts\\nget pressure(): number\\n```\\n\\n---\\n\\n### `x` \\\\{#Vec2d-x-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Vec2d-y-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n### `z` \\\\{#Vec2d-z-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nz: number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `abs()` \\\\{#Vec2d-abs-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Abs()` \\\\{#Vec2d-Abs-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `add()` \\\\{#Vec2d-add-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Add()` \\\\{#Vec2d-Add-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `addScalar()` \\\\{#Vec2d-addScalar-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `AddScalar()` \\\\{#Vec2d-AddScalar-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `addXY()` \\\\{#Vec2d-addXY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `AddXY()` \\\\{#Vec2d-AddXY-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `angle()` \\\\{#Vec2d-angle-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Angle()` \\\\{#Vec2d-Angle-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Average()` \\\\{#Vec2d-Average-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`arr`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Cast()` \\\\{#Vec2d-Cast-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `clamp()` \\\\{#Vec2d-clamp-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`min`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`max`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Clamp()` \\\\{#Vec2d-Clamp-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`min`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`max`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Clockwise()` \\\\{#Vec2d-Clockwise-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `clone()` \\\\{#Vec2d-clone-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `cpr()` \\\\{#Vec2d-cpr-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Cpr()` \\\\{#Vec2d-Cpr-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `cross()` \\\\{#Vec2d-cross-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Cross()` \\\\{#Vec2d-Cross-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `dist()` \\\\{#Vec2d-dist-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Dist()` \\\\{#Vec2d-Dist-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Dist2()` \\\\{#Vec2d-Dist2-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `distanceToLineSegment()` \\\\{#Vec2d-distanceToLineSegment-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `DistanceToLineSegment()` \\\\{#Vec2d-DistanceToLineSegment-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`P`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`clamp`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `DistanceToLineThroughPoint()` \\\\{#Vec2d-DistanceToLineThroughPoint-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`u`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`P`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `div()` \\\\{#Vec2d-div-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Div()` \\\\{#Vec2d-Div-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `divV()` \\\\{#Vec2d-divV-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `DivV()` \\\\{#Vec2d-DivV-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `dpr()` \\\\{#Vec2d-dpr-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Dpr()` \\\\{#Vec2d-Dpr-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `equals()` \\\\{#Vec2d-equals-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Equals()` \\\\{#Vec2d-Equals-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `equalsXY()` \\\\{#Vec2d-equalsXY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `EqualsXY()` \\\\{#Vec2d-EqualsXY-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `From()` \\\\{#Vec2d-From-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ x, y, z }`\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `FromArray()` \\\\{#Vec2d-FromArray-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`v`\\n\\n\\n\\n\\n```ts\\nnumber[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `len()` \\\\{#Vec2d-len-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `Len()` \\\\{#Vec2d-Len-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `len2()` \\\\{#Vec2d-len2-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `Len2()` \\\\{#Vec2d-Len2-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `lrp()` \\\\{#Vec2d-lrp-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Lrp()` \\\\{#Vec2d-Lrp-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Max()` \\\\{#Vec2d-Max-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Med()` \\\\{#Vec2d-Med-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Min()` \\\\{#Vec2d-Min-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `mul()` \\\\{#Vec2d-mul-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Mul()` \\\\{#Vec2d-Mul-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `mulV()` \\\\{#Vec2d-mulV-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `MulV()` \\\\{#Vec2d-MulV-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `NearestPointOnLineSegment()` \\\\{#Vec2d-NearestPointOnLineSegment-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`P`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`clamp`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `NearestPointOnLineThroughPoint()` \\\\{#Vec2d-NearestPointOnLineThroughPoint-member-1}\\n\\nPublic Static Method\\n\\nGet the nearest point on a line with a known unit vector that passes through point A\\n\\n\\n```ts\\nVec.nearestPointOnLineThroughPoint(A, u, Point)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nAny point on the line\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`u`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe unit vector for the line.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`P`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nA point not on the line to test.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `neg()` \\\\{#Vec2d-neg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Neg()` \\\\{#Vec2d-Neg-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `norm()` \\\\{#Vec2d-norm-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `nudge()` \\\\{#Vec2d-nudge-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`distance`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Nudge()` \\\\{#Vec2d-Nudge-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`distance`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `per()` \\\\{#Vec2d-per-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Per()` \\\\{#Vec2d-Per-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `PointsBetween()` \\\\{#Vec2d-PointsBetween-member-1}\\n\\nPublic Static Method\\n\\nGet an array of points (with simulated pressure) between two points.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`steps`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe number of points to return.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `pry()` \\\\{#Vec2d-pry-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Pry()` \\\\{#Vec2d-Pry-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Rescale()` \\\\{#Vec2d-Rescale-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `rot()` \\\\{#Vec2d-rot-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Rot()` \\\\{#Vec2d-Rot-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `rotWith()` \\\\{#Vec2d-rotWith-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `RotWith()` \\\\{#Vec2d-RotWith-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `ScaleWithOrigin()` \\\\{#Vec2d-ScaleWithOrigin-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`scale`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`origin`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `set()` \\\\{#Vec2d-set-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`z`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Vec2d-setTo-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ x, y, z }`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `slope()` \\\\{#Vec2d-slope-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Slope()` \\\\{#Vec2d-Slope-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Snap()` \\\\{#Vec2d-Snap-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`step`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `snapToGrid()` \\\\{#Vec2d-snapToGrid-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`gridSize`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `SnapToGrid()` \\\\{#Vec2d-SnapToGrid-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`gridSize`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `sub()` \\\\{#Vec2d-sub-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `Sub()` \\\\{#Vec2d-Sub-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `subScalar()` \\\\{#Vec2d-subScalar-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `SubScalar()` \\\\{#Vec2d-SubScalar-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `subXY()` \\\\{#Vec2d-subXY-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `SubXY()` \\\\{#Vec2d-SubXY-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`x`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`y`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `tan()` \\\\{#Vec2d-tan-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`V`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Tan()` \\\\{#Vec2d-Tan-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `toAngle()` \\\\{#Vec2d-toAngle-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `ToAngle()` \\\\{#Vec2d-ToAngle-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `toArray()` \\\\{#Vec2d-toArray-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nnumber[]\\n```\\n\\n---\\n\\n### `ToArray()` \\\\{#Vec2d-ToArray-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `toFixed()` \\\\{#Vec2d-toFixed-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `ToFixed()` \\\\{#Vec2d-ToFixed-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `toJson()` \\\\{#Vec2d-toJson-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nVec2dModel\\n```\\n\\n##### References\\n\\n[Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n---\\n\\n### `ToJson()` \\\\{#Vec2d-ToJson-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n z: number | undefined\\n}\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `toString()` \\\\{#Vec2d-toString-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `ToString()` \\\\{#Vec2d-ToString-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n### `uni()` \\\\{#Vec2d-uni-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n### `Uni()` \\\\{#Vec2d-Uni-member-1}\\n\\nPublic Static Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n---\\n\\n","Vec2dModel-interface":"Public Interface\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [x](#Vec2dModel-x-member)\\n - [y](#Vec2dModel-y-member)\\n - [z](#Vec2dModel-z-member)\\n
\\n\\nA serializable model for 2D vectors.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface Vec2dModel {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `x` \\\\{#Vec2dModel-x-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Vec2dModel-y-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n### `z` \\\\{#Vec2dModel-z-member}\\n\\nPublic PropertySignature\\n\\n##### Signature\\n\\n\\n```ts\\nz?: number\\n```\\n\\n---\\n\\n","VecLike-type":"Public TypeAlias\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype VecLike = Vec2d | Vec2dModel\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n","VideoShape-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nVideoShape: import(\'../../../config/defineShape\').TLShapeInfo<\\n import(\'@tldraw/tlschema\').TLVideoShape\\n>\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLVideoShape](/gen/tlschema/TLVideoShape-type)\\n\\n","VideoShapeUtil-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [canEdit](#VideoShapeUtil-canEdit-member)\\n - [isAspectRatioLocked](#VideoShapeUtil-isAspectRatioLocked-member)\\n - [type](#VideoShapeUtil-type-member)\\n- [Methods](#methods)\\n - [component](#VideoShapeUtil-component-member-1)\\n - [getDefaultProps](#VideoShapeUtil-getDefaultProps-member-1)\\n - [indicator](#VideoShapeUtil-indicator-member-1)\\n - [toSvg](#VideoShapeUtil-toSvg-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass VideoShapeUtil extends BaseBoxShapeUtil {}\\n```\\n\\n##### References\\n\\n[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLVideoShape](/gen/tlschema/TLVideoShape-type)\\n\\n---\\n\\n## Properties\\n\\n### `canEdit` \\\\{#VideoShapeUtil-canEdit-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#VideoShapeUtil-isAspectRatioLocked-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: () => boolean\\n```\\n\\n---\\n\\n### `type` \\\\{#VideoShapeUtil-type-member}\\n\\nPublic Static Property\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'video\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#VideoShapeUtil-component-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLVideoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLVideoShape](/gen/tlschema/TLVideoShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `getDefaultProps()` \\\\{#VideoShapeUtil-getDefaultProps-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLVideoShape[\'props\']\\n```\\n\\n##### References\\n\\n[TLVideoShape](/gen/tlschema/TLVideoShape-type)\\n\\n---\\n\\n### `indicator()` \\\\{#VideoShapeUtil-indicator-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLVideoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nJSX.Element\\n```\\n\\n##### References\\n\\n[TLVideoShape](/gen/tlschema/TLVideoShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)\\n\\n---\\n\\n### `toSvg()` \\\\{#VideoShapeUtil-toSvg-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLVideoShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSVGGElement\\n```\\n\\n##### References\\n\\n[TLVideoShape](/gen/tlschema/TLVideoShape-type), [SVGGElement](/gen/SVGGElement-interface)\\n\\n---\\n\\n","WeakMapCache-class":"Public Class\\n\\n
\\n\\tTable of Contents\\n- [Properties](#properties)\\n - [items](#WeakMapCache-items-member)\\n- [Methods](#methods)\\n - [access](#WeakMapCache-access-member-1)\\n - [bust](#WeakMapCache-bust-member-1)\\n - [get](#WeakMapCache-get-member-1)\\n - [has](#WeakMapCache-has-member-1)\\n - [invalidate](#WeakMapCache-invalidate-member-1)\\n - [set](#WeakMapCache-set-member-1)\\n
\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass WeakMapCache {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `items` \\\\{#WeakMapCache-items-member}\\n\\nPublic Property\\n\\n##### Signature\\n\\n\\n```ts\\nitems: WeakMap\\n```\\n\\n##### References\\n\\n[WeakMap](/gen/WeakMap-interface)\\n\\n---\\n\\n## Methods\\n\\n### `access()` \\\\{#WeakMapCache-access-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`item`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nK | undefined\\n```\\n\\n---\\n\\n### `bust()` \\\\{#WeakMapCache-bust-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `get()` \\\\{#WeakMapCache-get-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`item`\\n\\n\\n\\n\\n```ts\\nP\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cb`\\n\\n\\n\\n\\n```ts\\n(item: P) => K\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nNonNullable\\n```\\n\\n##### References\\n\\n[NonNullable](/gen/NonNullable-type)\\n\\n---\\n\\n### `has()` \\\\{#WeakMapCache-has-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`item`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `invalidate()` \\\\{#WeakMapCache-invalidate-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`item`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `set()` \\\\{#WeakMapCache-set-member-1}\\n\\nPublic Method\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`item`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nK\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n","angleDelta-function-1":"Public Function\\n\\nGet the short distance between two angles.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","approximately-function-1":"Public Function\\n\\nWhether two numbers numbers a and b are approximately equal.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`precision`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","areAnglesCompatible-function-1":"Public Function\\n\\nChecks whether two angles are approximately at right-angles or parallel to each other\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nAngle a (radians)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nAngle b (radians)\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n True iff the angles are approximately at right-angles or parallel to each other\\n\\n\\n","arrowShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\narrowShapeProps: {\\n labelColor: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n color: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n fill: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n >\\n dash: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n >\\n size: import(\'../styles/StyleProp\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n arrowheadStart: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow\'\\n | \'bar\'\\n | \'diamond\'\\n | \'dot\'\\n | \'inverted\'\\n | \'none\'\\n | \'pipe\'\\n | \'square\'\\n | \'triangle\'\\n >\\n arrowheadEnd: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow\'\\n | \'bar\'\\n | \'diamond\'\\n | \'dot\'\\n | \'inverted\'\\n | \'none\'\\n | \'pipe\'\\n | \'square\'\\n | \'triangle\'\\n >\\n font: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n >\\n start: T.UnionValidator<\\n \'type\',\\n {\\n binding: T.ObjectValidator<{\\n type: \'binding\'\\n boundShapeId: import(\'..\').TLShapeId\\n normalizedAnchor: import(\'../misc/geometry-types\').Vec2dModel\\n isExact: boolean\\n }>\\n point: T.ObjectValidator<{\\n type: \'point\'\\n x: number\\n y: number\\n }>\\n },\\n never\\n >\\n end: T.UnionValidator<\\n \'type\',\\n {\\n binding: T.ObjectValidator<{\\n type: \'binding\'\\n boundShapeId: import(\'..\').TLShapeId\\n normalizedAnchor: import(\'../misc/geometry-types\').Vec2dModel\\n isExact: boolean\\n }>\\n point: T.ObjectValidator<{\\n type: \'point\'\\n x: number\\n y: number\\n }>\\n },\\n never\\n >\\n bend: T.Validator\\n text: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.UnionValidator](/gen/validate/UnionValidator-class), [T.ObjectValidator](/gen/validate/ObjectValidator-class), [TLShapeId](/gen/tlschema/TLShapeId-type), [Vec2dModel](/gen/tlschema/Vec2dModel-interface), [T.Validator](/gen/validate/Validator-class)\\n\\n","assertIdType-function-1":"Public Function\\n\\nAssert whether an id correspond to a record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nassertIdType(myId, \'shape\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring | undefined\\n```\\n\\nThe id to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nRecordType\\n```\\n\\nThe type of the record.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nasserts id is IdOf\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [RecordType](/gen/store/RecordType-class), [id](/gen/store/~id), [IdOf](/gen/store/IdOf-type)\\n\\n","assetIdValidator-var":"Public Readonly Variable\\n\\nA validator for asset record type Ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nassetIdValidator: T.Validator\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n","blobAsString-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`blob`\\n\\n\\n\\n\\n```ts\\nBlob\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Blob](/gen/Blob-interface), [Promise](/gen/Promise-interface)\\n\\n","bookmarkShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbookmarkShapeProps: {\\n w: T.Validator\\n h: T.Validator\\n assetId: T.Validator\\n url: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n","box2dModelValidator-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbox2dModelValidator: T.Validator\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n","canolicalizeRotation-function-1":"Public Function\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nAny angle in radians\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n A number between 0 and 2 * PI\\n\\n\\n","canvasUiColorTypeValidator-var":"Public Readonly Variable\\n\\nA validator for the colors used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanvasUiColorTypeValidator: T.Validator<\\n | \'accent\'\\n | \'black\'\\n | \'laser\'\\n | \'muted-1\'\\n | \'selection-fill\'\\n | \'selection-stroke\'\\n | \'white\'\\n>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class)\\n\\n","checkFlag-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncheckFlag: (\\n flag: (() => boolean) | boolean | undefined\\n) => boolean | undefined\\n```\\n\\n","clamp-function-1":"Public Function\\n\\nClamp a value into a range.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst A = clamp(0, 1) // 1\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe number to clamp.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`min`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe minimum value.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","clamp-function-2":"Public Function\\n\\nClamp a value into a range.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst A = clamp(0, 1, 10) // 1\\nconst B = clamp(11, 1, 10) // 10\\nconst C = clamp(5, 1, 10) // 5\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe number to clamp.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`min`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe minimum value.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`max`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe maximum value.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","clampRadians-function-1":"Public Function\\n\\nClamp radians within 0 and 2PI\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe radian value.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","compactMenuItems-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`arr`\\n\\n\\n\\n\\n```ts\\nT[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nExclude[]\\n```\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type)\\n\\n","compareRecordVersions-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nRecordVersion\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nRecordVersion\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n-1 | 0 | 1\\n```\\n\\n##### References\\n\\n[RecordVersion](/gen/store/RecordVersion-type)\\n\\n","compareSchemas-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncompareSchemas: (a: SerializedSchema, b: SerializedSchema) => -1 | 0 | 1\\n```\\n\\n##### References\\n\\n[SerializedSchema](/gen/store/SerializedSchema-interface)\\n\\n","containBoxSize-function-1":"Public Function\\n\\nContains the size within the given box size\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`originalSize`\\n\\n\\n\\n\\n```ts\\nBoxWidthHeight\\n```\\n\\nThe size of the asset\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`containBoxSize`\\n\\n\\n\\n\\n```ts\\nBoxWidthHeight\\n```\\n\\nThe container size\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nBoxWidthHeight\\n```\\n\\n Adjusted size\\n\\n\\n##### References\\n\\n[BoxWidthHeight](/gen/editor/~BoxWidthHeight-type)\\n\\n","coreShapes-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncoreShapes: readonly [\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo\\n]\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLGroupShape](/gen/tlschema/TLGroupShape-type), [TLEmbedShape](/gen/tlschema/TLEmbedShape-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [TLImageShape](/gen/tlschema/TLImageShape-type), [TLTextShape](/gen/tlschema/TLTextShape-type)\\n\\n","correctSpacesToNbsp-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`input`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","createAssetValidator-function-1":"Public Function\\n\\nCreate a validator for an asset record type.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nType\\n```\\n\\nThe type of the asset\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`props`\\n\\n\\n\\n\\n```ts\\nT.Validator\\n```\\n\\nThe validator for the asset\'s props\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT.ObjectValidator<{\\n id: TLAssetId\\n typeName: \'asset\'\\n type: Type\\n props: Props\\n}>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [T.ObjectValidator](/gen/validate/ObjectValidator-class), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n","createPresenceStateDerivation-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncreatePresenceStateDerivation: (\\n $user: Signal<{\\n id: string\\n color: string\\n name: string\\n }>,\\n instanceId?: TLInstancePresence[\'id\']\\n) => (store: TLStore) => Signal\\n```\\n\\n##### References\\n\\n[Signal](/gen/state/Signal-interface), [TLInstancePresence](/gen/tlschema/TLInstancePresence-interface), [TLStore](/gen/tlschema/TLStore-type)\\n\\n","createRecordType-function-1":"Public Function\\n\\nCreate a record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst Book = createRecordType(\'book\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`typeName`\\n\\n\\n\\n\\n```ts\\nR[\'typeName\']\\n```\\n\\nThe name of the type to create.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`config`\\n\\n\\n\\n\\n```ts\\n{\\n migrations?: Migrations\\n validator?: StoreValidator\\n scope: RecordScope\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordType>\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Migrations](/gen/store/Migrations-interface), [StoreValidator](/gen/store/StoreValidator-type), [RecordScope](/gen/store/~RecordScope-type), [RecordType](/gen/store/RecordType-class), [Omit](/gen/Omit-type)\\n\\n","createSessionStateSnapshotSignal-function-1":"Public Function\\n\\nCreates a signal of the instance state for a given store.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`store`\\n\\n\\n\\n\\n```ts\\nTLStore\\n```\\n\\nThe store to create the instance state snapshot signal for\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSignal\\n```\\n\\n\\n\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [Signal](/gen/state/Signal-interface), [TLSessionStateSnapshot](/gen/editor/TLSessionStateSnapshot-interface)\\n\\n","createShapeId-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n","createShapeValidator-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nType\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`props`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n [K in keyof Props]: T.Validatable\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT.ObjectValidator<{\\n id: TLShapeId\\n typeName: \'shape\'\\n x: number\\n y: number\\n rotation: number\\n index: string\\n parentId: TLParentId\\n type: Type\\n isLocked: boolean\\n opacity: number\\n props: Props | Record\\n}>\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type), [T.ObjectValidator](/gen/validate/ObjectValidator-class), [TLShapeId](/gen/tlschema/TLShapeId-type), [TLParentId](/gen/tlschema/TLParentId-type), [Record](/gen/Record-type)\\n\\n","createTLSchema-function-1":"Public Function\\n\\nCreate a TLSchema with custom shapes. Custom shapes cannot override default shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ shapes }`\\n\\n\\n\\n\\n```ts\\n{\\n shapes: Record\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLSchema\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [SchemaShapeInfo](/gen/tlschema/SchemaShapeInfo-type), [TLSchema](/gen/tlschema/TLSchema-type)\\n\\n","createTLStore-function-1":"Public Function\\n\\nA helper for creating a TLStore. Custom shapes cannot override default shapes.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ initialData, defaultName, ...rest }`\\n\\n\\n\\n\\n```ts\\nTLStoreOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLStore\\n```\\n\\n##### References\\n\\n[TLStoreOptions](/gen/editor/TLStoreOptions-type), [TLStore](/gen/tlschema/TLStore-type)\\n\\n","createTLUser-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n derivePresenceState?:\\n | ((\\n store: TLStore\\n ) => Signal)\\n | undefined\\n userPreferences?:\\n | Signal\\n | undefined\\n setUserPreferences?:\\n | ((userPreferences: TLUserPreferences) => void)\\n | undefined\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLUser\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [Signal](/gen/state/Signal-interface), [TLInstancePresence](/gen/tlschema/TLInstancePresence-interface), [TLUserPreferences](/gen/editor/TLUserPreferences-interface), [TLUser](/gen/editor/~TLUser-interface)\\n\\n","dataTransferItemAsString-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`item`\\n\\n\\n\\n\\n```ts\\nDataTransferItem\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[DataTransferItem](/gen/DataTransferItem-interface), [Promise](/gen/Promise-interface)\\n\\n","dataUrlToFile-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`filename`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`mimeType`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface), [File](/gen/File-interface)\\n\\n","decomposeMatrix2d-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`m`\\n\\n\\n\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n scaleX: number\\n scaleY: number\\n rotation: number\\n}\\n```\\n\\n##### References\\n\\n[MatLike](/gen/primitives/MatLike-type)\\n\\n","defaultEditorAssetUrls-var":"Public Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ndefaultEditorAssetUrls: TLEditorAssetUrls\\n```\\n\\n##### References\\n\\n[TLEditorAssetUrls](/gen/editor/TLEditorAssetUrls-type)\\n\\n","defaultEmptyAs-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`str`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`dflt`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","defaultShapes-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ndefaultShapes: readonly [\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo,\\n TLShapeInfo\\n]\\n```\\n\\n##### References\\n\\n[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLDrawShape](/gen/tlschema/TLDrawShape-type), [TLGeoShape](/gen/tlschema/TLGeoShape-type), [TLLineShape](/gen/tlschema/TLLineShape-type), [TLNoteShape](/gen/tlschema/TLNoteShape-type), [TLFrameShape](/gen/tlschema/TLFrameShape-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHighlightShape](/gen/tlschema/TLHighlightShape-type), [TLVideoShape](/gen/tlschema/TLVideoShape-type)\\n\\n","defaultTools-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ndefaultTools: TLStateNodeConstructor[]\\n```\\n\\n##### References\\n\\n[TLStateNodeConstructor](/gen/editor/TLStateNodeConstructor-interface)\\n\\n","defineMigrations-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n\\n\\n\\n```ts\\n{\\n firstVersion?: CurrentVersion extends number\\n ? FirstVersion\\n : never\\n currentVersion?: CurrentVersion\\n migrators?: CurrentVersion extends number\\n ? FirstVersion extends number\\n ? CurrentVersion extends FirstVersion\\n ? {\\n [version in Exclude<\\n Range<1, CurrentVersion>,\\n 0\\n >]: Migration\\n }\\n : {\\n [version in Exclude<\\n Range,\\n FirstVersion\\n >]: Migration\\n }\\n : {\\n [version in Exclude<\\n Range<1, CurrentVersion>,\\n 0\\n >]: Migration\\n }\\n : never\\n subTypeKey?: string\\n subTypeMigrations?: Record\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrations\\n```\\n\\n##### References\\n\\n[EMPTY_SYMBOL](/gen/store/~EMPTY_SYMBOL-type), [Exclude](/gen/Exclude-type), [Range](/gen/store/~Range_2-type), [Migration](/gen/store/Migration-type), [Record](/gen/Record-type), [BaseMigrationsInfo](/gen/store/~BaseMigrationsInfo-interface), [Migrations](/gen/store/Migrations-interface)\\n\\n","defineShape-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`type`\\n\\n\\n\\n\\n```ts\\nT[\'type\']\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n\\n\\n\\n```ts\\nOmit, \'type\'>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeInfo\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type), [Omit](/gen/Omit-type), [TLShapeInfo](/gen/editor/TLShapeInfo-type)\\n\\n","degreesToRadians-function-1":"Public Function\\n\\nConvert degrees to radians.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`d`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe degree in degrees.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","devFreeze-function-1":"Public Function\\n\\nFreeze an object when in development mode. Copied from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst frozen = devFreeze({ a: 1 })\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`object`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\nThe object to freeze.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nT\\n```\\n\\n The frozen object when in development mode, or else the object when in other modes.\\n\\n\\n","downloadDataURLAsFile-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dataUrl`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`filename`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","drawShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ndrawShapeProps: {\\n color: import(\'..\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n fill: import(\'..\').EnumStyleProp<\'none\' | \'pattern\' | \'semi\' | \'solid\'>\\n dash: import(\'..\').EnumStyleProp<\'dashed\' | \'dotted\' | \'draw\' | \'solid\'>\\n size: import(\'..\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n segments: T.ArrayOfValidator<{\\n type: \'free\' | \'straight\'\\n points: import(\'../misc/geometry-types\').Vec2dModel[]\\n }>\\n isComplete: T.Validator\\n isClosed: T.Validator\\n isPen: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.ArrayOfValidator](/gen/validate/ArrayOfValidator-class), [Vec2dModel](/gen/tlschema/Vec2dModel-interface), [T.Validator](/gen/validate/Validator-class)\\n\\n","embedShapePermissionDefaults-var":"Public Readonly Variable\\n\\nPermissions with note inline from https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox\\n\\n\\n##### Signature\\n\\n\\n```ts\\nembedShapePermissionDefaults: {\\n readonly \'allow-downloads-without-user-activation\': false\\n readonly \'allow-downloads\': false\\n readonly \'allow-modals\': false\\n readonly \'allow-orientation-lock\': false\\n readonly \'allow-pointer-lock\': false\\n readonly \'allow-popups\': true\\n readonly \'allow-popups-to-escape-sandbox\': false\\n readonly \'allow-presentation\': false\\n readonly \'allow-storage-access-by-user-activation\': false\\n readonly \'allow-top-navigation\': false\\n readonly \'allow-top-navigation-by-user-activation\': false\\n readonly \'allow-scripts\': true\\n readonly \'allow-same-origin\': true\\n readonly \'allow-forms\': true\\n}\\n```\\n\\n","embedShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nembedShapeProps: {\\n w: T.Validator\\n h: T.Validator\\n url: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class)\\n\\n","fileToBase64-function-1":"Public Function\\n\\nConvert a file to base64.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst A = fileToBase64(\'./test.png\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`file`\\n\\n\\n\\n\\n```ts\\nBlob\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Blob](/gen/Blob-interface), [Promise](/gen/Promise-interface)\\n\\n","findMenuItem-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`menu`\\n\\n\\n\\n\\n```ts\\nTLUiMenuSchema\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`path`\\n\\n\\n\\n\\n```ts\\nstring[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiMenuChild\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type), [TLUiMenuChild](/gen/ui/TLUiMenuChild-type)\\n\\n","flipSelectionHandleX-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionHandle\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n | \'bottom_left\'\\n | \'bottom_right\'\\n | \'bottom\'\\n | \'left\'\\n | \'right\'\\n | \'top_left\'\\n | \'top_right\'\\n | \'top\'\\n```\\n\\n##### References\\n\\n[SelectionHandle](/gen/primitives/SelectionHandle-type)\\n\\n","flipSelectionHandleY-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionHandle\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n | \'bottom_left\'\\n | \'bottom_right\'\\n | \'bottom\'\\n | \'left\'\\n | \'right\'\\n | \'top_left\'\\n | \'top_right\'\\n | \'top\'\\n```\\n\\n##### References\\n\\n[SelectionHandle](/gen/primitives/SelectionHandle-type)\\n\\n","frameShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nframeShapeProps: {\\n w: T.Validator\\n h: T.Validator\\n name: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class)\\n\\n","geoShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngeoShapeProps: {\\n geo: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'arrow-down\'\\n | \'arrow-left\'\\n | \'arrow-right\'\\n | \'arrow-up\'\\n | \'check-box\'\\n | \'diamond\'\\n | \'ellipse\'\\n | \'hexagon\'\\n | \'octagon\'\\n | \'oval\'\\n | \'pentagon\'\\n | \'rectangle\'\\n | \'rhombus-2\'\\n | \'rhombus\'\\n | \'star\'\\n | \'trapezoid\'\\n | \'triangle\'\\n | \'x-box\'\\n >\\n labelColor: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n color: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n fill: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'none\' | \'pattern\' | \'semi\' | \'solid\'\\n >\\n dash: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n >\\n size: import(\'../styles/StyleProp\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n font: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'draw\' | \'mono\' | \'sans\' | \'serif\'\\n >\\n align: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n >\\n verticalAlign: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'end\' | \'middle\' | \'start\'\\n >\\n url: T.Validator\\n w: T.Validator\\n h: T.Validator\\n growY: T.Validator\\n text: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.Validator](/gen/validate/Validator-class)\\n\\n","getArcLength-function-1":"Public Function\\n\\nGet the length of an arc between two points on a circle\'s perimeter.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center as [x, y].\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getDefaultColorTheme-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n\\n\\n\\n```ts\\n{\\n isDarkMode: boolean\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLDefaultColorTheme\\n```\\n\\n##### References\\n\\n[TLDefaultColorTheme](/gen/tlschema/TLDefaultColorTheme-type)\\n\\n","getDefaultTranslationLocale-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLLanguage[\'locale\']\\n```\\n\\n##### References\\n\\n[TLLanguage](/gen/tlschema/TLLanguage-type)\\n\\n","getDrawLinePathData-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`outline`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`strokeWidth`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getEmbedInfo-function-1":"Public Function\\n\\nTests whether an URL supports embedding and returns the result. If we encounter an error, we return undefined.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`inputUrl`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe URL to match\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLEmbedResult\\n```\\n\\n##### References\\n\\n[TLEmbedResult](/gen/editor/TLEmbedResult-type)\\n\\n","getEmbedInfoUnsafely-function-1":"Public Function\\n\\nTests whether an URL supports embedding and returns the result.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`inputUrl`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe URL to match\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLEmbedResult\\n```\\n\\n##### References\\n\\n[TLEmbedResult](/gen/editor/TLEmbedResult-type)\\n\\n","getFileMetaData-function-1":"Public Function\\n\\nGet some metadata about the file\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`file`\\n\\n\\n\\n\\n```ts\\nFile\\n```\\n\\nThe file.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<{\\n isAnimated: boolean\\n}>\\n```\\n\\n##### References\\n\\n[File](/gen/File-interface), [Promise](/gen/Promise-interface)\\n\\n","getFreshUserPreferences-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUserPreferences\\n```\\n\\n##### References\\n\\n[TLUserPreferences](/gen/editor/TLUserPreferences-interface)\\n\\n","getHeight-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getImageSizeFromSrc-function-1":"Public Function\\n\\nGet the size of an image from its source.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dataURL`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe file as a string.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<{\\n w: number\\n h: number\\n}>\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface)\\n\\n","getIncrementedName-function-1":"Public Function\\n\\nGet an incremented name (e.g. New page (2)) from a name (e.g. New page), based on an array of existing names.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`name`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe name to increment.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`others`\\n\\n\\n\\n\\n```ts\\nstring[]\\n```\\n\\nThe array of existing names.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","getMaxX-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMaxY-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMediaAssetFromFile-function-1":"Public Function\\n\\nGet an asset from a file.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`file`\\n\\n\\n\\n\\n```ts\\nFile\\n```\\n\\nThe file.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n An image or video asset partial.\\n\\n\\n##### References\\n\\n[File](/gen/File-interface), [Promise](/gen/Promise-interface), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n","getMidX-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMidY-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMinX-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMinY-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getPointOnCircle-function-1":"Public Function\\n\\nGet a point on the perimeter of a circle.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`cx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe center x of the circle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`cy`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe center y of the circle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe radius of the circle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe normalized point on the circle.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getPolygonVertices-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`width`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`height`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`sides`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getRecordVersion-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n\\n\\n\\n```ts\\nUnknownRecord\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`serializedSchema`\\n\\n\\n\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordVersion\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [SerializedSchema](/gen/store/SerializedSchema-interface), [RecordVersion](/gen/store/RecordVersion-type)\\n\\n","getResizedImageDataUrl-function-1":"Public Function\\n\\nGet the size of an image from its source.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`dataURLForImage`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe image file as a string.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`width`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe desired width.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`height`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe desired height.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface)\\n\\n","getRotatedBoxShadow-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`rotation`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","getRoundedInkyPolygonPath-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getRoundedPolygonPoints-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`outline`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`offset`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`roundness`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`passes`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getSplineForLineShape-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`shape`\\n\\n\\n\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nNonNullable\\n```\\n\\n##### References\\n\\n[TLLineShape](/gen/tlschema/TLLineShape-type), [NonNullable](/gen/NonNullable-type), [CubicSpline2d](/gen/primitives/CubicSpline2d-class), [Polyline2d](/gen/primitives/Polyline2d-class)\\n\\n","getStarBounds-var":"Public Readonly Variable\\n\\nGets the width/height of a star given its input bounds.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`sides`\\n\\n\\n\\n\\nNumber of sides\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`w`\\n\\n\\n\\n\\nT target width\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`h`\\n\\n\\n\\n\\nTarget height\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngetStarBounds: (sides: number, w: number, h: number) => Box2d\\n```\\n\\n##### References\\n\\n[Box2d](/gen/primitives/Box2d-class)\\n\\n","getStroke-function-1":"Public Function\\n\\n## getStroke\\n\\n\\nGet an array of points describing a polygon that surrounds the input points.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points (as `[x, y, pressure]` or `{x, y, pressure}`). Pressure is optional in both cases.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStrokeOptions\\n```\\n\\nAn object with options.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [StrokeOptions](/gen/primitives/StrokeOptions-interface), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getStrokeOutlinePoints-function-1":"Public Function\\n\\n## getStrokeOutlinePoints\\n\\n\\nGet an array of points (as `[x, y]`) representing the outline of a stroke.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`strokePoints`\\n\\n\\n\\n\\n```ts\\nStrokePoint[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStrokeOptions\\n```\\n\\nAn object with options.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[StrokePoint](/gen/primitives/StrokePoint-interface), [StrokeOptions](/gen/primitives/StrokeOptions-interface), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getStrokePoints-function-1":"Public Function\\n\\n## getStrokePoints\\n\\n\\nGet an array of points as objects with an adjusted point, pressure, vector, distance, and runningLength.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`rawInputPoints`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nStrokeOptions\\n```\\n\\nAn object with options.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStrokePoint[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [StrokeOptions](/gen/primitives/StrokeOptions-interface), [StrokePoint](/gen/primitives/StrokePoint-interface)\\n\\n","getSvgAsDataUrl-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`svg`\\n\\n\\n\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface), [Promise](/gen/Promise-interface)\\n\\n","getSvgAsDataUrlSync-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`node`\\n\\n\\n\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface)\\n\\n","getSvgAsImage-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`svg`\\n\\n\\n\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n\\n\\n\\n```ts\\n{\\n type: TLCopyType | TLExportType\\n quality: number\\n scale: number\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface), [TLCopyType](/gen/editor/TLCopyType-type), [TLExportType](/gen/editor/TLExportType-type), [Promise](/gen/Promise-interface), [Blob](/gen/Blob-interface)\\n\\n","getSvgAsString-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`svg`\\n\\n\\n\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface)\\n\\n","getSvgPathFromStroke-function-1":"Public Function\\n\\nTurn an array of points into a path of quadradic curves.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\nThe points returned from perfect-freehand\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`closed`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the stroke is closed\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getSvgPathFromStrokePoints-function-1":"Public Function\\n\\nTurn an array of stroke points into a path of quadradic curves.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nStrokePoint[]\\n```\\n\\nThe stroke points returned from perfect-freehand\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`closed`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nboolean\\n```\\n\\nWhether the shape is closed\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[StrokePoint](/gen/primitives/StrokePoint-interface)\\n\\n","getSweep-function-1":"Public Function\\n\\nGet the \\"sweep\\" or short distance between two points on a circle\'s perimeter.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe center of the circle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getTextBoundingBox-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`text`\\n\\n\\n\\n\\n```ts\\nSVGTextElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nDOMRect\\n```\\n\\n##### References\\n\\n[SVGTextElement](/gen/SVGTextElement-interface), [DOMRect](/gen/DOMRect-interface)\\n\\n","getUserPreferences-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUserPreferences\\n```\\n\\n##### References\\n\\n[TLUserPreferences](/gen/editor/TLUserPreferences-interface)\\n\\n","getValidHttpURLList-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngetValidHttpURLList: (url: string) => string[] | undefined\\n```\\n\\n","getVideoSizeFromSrc-function-1":"Public Function\\n\\nGet the size of a video from its source.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`src`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\nThe source of the video.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<{\\n w: number\\n h: number\\n}>\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface)\\n\\n","getWidth-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`pts`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","hardReset-function-1":"Public Function\\n\\nClear the database of all data associated with tldraw.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ shouldReload }`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n{\\n shouldReload?: boolean | undefined\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface)\\n\\n","hardResetEditor-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","highlightShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhighlightShapeProps: {\\n color: import(\'..\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n size: import(\'..\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n segments: T.ArrayOfValidator<{\\n type: \'free\' | \'straight\'\\n points: import(\'..\').Vec2dModel[]\\n }>\\n isComplete: T.Validator\\n isPen: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.ArrayOfValidator](/gen/validate/ArrayOfValidator-class), [Vec2dModel](/gen/tlschema/Vec2dModel-interface), [T.Validator](/gen/validate/Validator-class)\\n\\n","imageShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nimageShapeProps: {\\n w: T.Validator\\n h: T.Validator\\n playing: T.Validator\\n url: T.Validator\\n assetId: T.Validator\\n crop: T.Validator<{\\n topLeft: import(\'../misc/geometry-types\').Vec2dModel\\n bottomRight: import(\'../misc/geometry-types\').Vec2dModel\\n } | null>\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLAssetId](/gen/tlschema/TLAssetId-type), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n","intersectCircleCircle-function-1":"Public Function\\n\\nFind the intersections between a circle and a circle.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`c1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe first circle\'s center.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`c2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe second circle\'s center.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r2`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n","intersectCirclePolygon-function-1":"Public Function\\n\\nFind the intersections between a circle and a bounding box.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polygon.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","intersectCirclePolyline-function-1":"Public Function\\n\\nFind the intersections between a circle and a bounding box.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polyline.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","intersectLineSegmentCircle-function-1":"Public Function\\n\\nFind the intersections between a line segment and a circle.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","intersectLineSegmentLineSegment-function-1":"Public Function\\n\\nFind the intersection between a line segment and a line segment.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe first segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe first segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe second segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe second segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Vec2d\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Vec2d](/gen/primitives/Vec2d-class)\\n\\n","intersectLineSegmentPolygon-function-1":"Public Function\\n\\nFind the intersections between a line segment and a closed polygon.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polygon.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","intersectLineSegmentPolyline-function-1":"Public Function\\n\\nFind the intersections between a line segment and a polyline.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polyline.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","intersectPolygonBounds-function-1":"Public Function\\n\\nFind the intersections between a polygon and a bounding box.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`bounds`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n","intersectPolygonPolygon-function-1":"Public Function\\n\\nCreate a new convex polygon as the intersection of two convex polygons.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`polygonA`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points representing the first polygon.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`polygonB`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points representing the second polygon.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | VecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","isAngleBetween-function-1":"Public Function\\n\\nIs angle c between angles a and b?\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`c`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe third angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","isAnimated-function-1":"Public Function\\n\\nChecks if buffer contains animated GIF image\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`buffer`\\n\\n\\n\\n\\n```ts\\nArrayBuffer\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[ArrayBuffer](/gen/ArrayBuffer-interface)\\n\\n","isGIF-function-1":"Public Function\\n\\nChecks if buffer contains GIF image\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`buffer`\\n\\n\\n\\n\\n```ts\\nArrayBuffer\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[ArrayBuffer](/gen/ArrayBuffer-interface)\\n\\n","isImage-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisImage: (ext: string) => boolean\\n```\\n\\n","isPageId-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nid is TLPageId\\n```\\n\\n##### References\\n\\n[id](/gen/tlschema/~id), [TLPageId](/gen/tlschema/TLPageId-type)\\n\\n","isSafeFloat-var":"Public Readonly Variable\\n\\nCheck if a float is safe to use. ie: Not too big or small.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisSafeFloat: (n: number) => boolean\\n```\\n\\n","isSelectionCorner-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`selection`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nselection is SelectionCorner\\n```\\n\\n##### References\\n\\n[selection](/gen/primitives/~selection), [SelectionCorner](/gen/primitives/SelectionCorner-type)\\n\\n","isSerializable-function-1":"Public Function\\n\\nGet whether a value is serializable.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst A = isSerializable(1) // true\\nconst B = isSerializable(\'a\') // true\\nconst C = isSerializable(true) // true\\nconst D = isSerializable(undefined) // false\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`value`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\nThe value to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","isShape-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`record`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nUnknownRecord\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nrecord is TLShape\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [record](/gen/tlschema/~record), [TLShape](/gen/tlschema/TLShape-type)\\n\\n","isShapeId-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nid is TLShapeId\\n```\\n\\n##### References\\n\\n[id](/gen/tlschema/~id), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n","isSvgText-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisSvgText: (text: string) => boolean\\n```\\n\\n","isV1File-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`data`\\n\\n\\n\\n\\n```ts\\nany\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","isValidHttpURL-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisValidHttpURL: (url: string) => boolean\\n```\\n\\n","isValidUrl-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","lerpAngles-function-1":"Public Function\\n\\nInterpolate an angle between two angles.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`t`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe interpolation value.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","lineShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nlineShapeProps: {\\n color: import(\'../styles/StyleProp\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n dash: import(\'../styles/StyleProp\').EnumStyleProp<\\n \'dashed\' | \'dotted\' | \'draw\' | \'solid\'\\n >\\n size: import(\'../styles/StyleProp\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n spline: import(\'../styles/StyleProp\').EnumStyleProp<\'cubic\' | \'line\'>\\n handles: T.DictValidator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.DictValidator](/gen/validate/DictValidator-class), [TLHandle](/gen/tlschema/TLHandle-interface)\\n\\n","linesIntersect-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`B`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`D`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","loadSessionStateSnapshotIntoStore-function-1":"Public Function\\n\\nLoads a snapshot of the editor\'s instance state into the store of a new editor instance.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`store`\\n\\n\\n\\n\\n```ts\\nTLStore\\n```\\n\\nThe store to load the instance state into\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`snapshot`\\n\\n\\n\\n\\n```ts\\nTLSessionStateSnapshot\\n```\\n\\nThe instance state snapshot to load\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n\\n\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [TLSessionStateSnapshot](/gen/editor/TLSessionStateSnapshot-interface)\\n\\n","longAngleDist-function-1":"Public Function\\n\\nGet the long angle distance between two angles.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","loopToHtmlElement-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`elm`\\n\\n\\n\\n\\n```ts\\nElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nHTMLElement\\n```\\n\\n##### References\\n\\n[Element](/gen/Element-interface), [HTMLElement](/gen/HTMLElement-interface)\\n\\n","matchEmbedUrl-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n | {\\n definition:\\n | {\\n readonly type: \'codepen\'\\n readonly title: \'Codepen\'\\n readonly hostnames: readonly [\'codepen.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'codesandbox\'\\n readonly title: \'CodeSandbox\'\\n readonly hostnames: readonly [\'codesandbox.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'excalidraw\'\\n readonly title: \'Excalidraw\'\\n readonly hostnames: readonly [\'excalidraw.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'felt\'\\n readonly title: \'Felt\'\\n readonly hostnames: readonly [\'felt.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'figma\'\\n readonly title: \'Figma\'\\n readonly hostnames: readonly [\'figma.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'github_gist\'\\n readonly title: \'GitHub Gist\'\\n readonly hostnames: readonly [\'gist.github.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'google_calendar\'\\n readonly title: \'Google Calendar\'\\n readonly hostnames: readonly [\'calendar.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly instructionLink: \'https://support.google.com/calendar/answer/41207?hl=en\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'google_maps\'\\n readonly title: \'Google Maps\'\\n readonly hostnames: readonly [\'google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'google_slides\'\\n readonly title: \'Google Slides\'\\n readonly hostnames: readonly [\'docs.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'observable\'\\n readonly title: \'Observable\'\\n readonly hostnames: readonly [\'observablehq.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: false\\n readonly backgroundColor: \'#fff\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'replit\'\\n readonly title: \'Replit\'\\n readonly hostnames: readonly [\'replit.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'scratch\'\\n readonly title: \'Scratch\'\\n readonly hostnames: readonly [\'scratch.mit.edu\']\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: false\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'spotify\'\\n readonly title: \'Spotify\'\\n readonly hostnames: readonly [\'open.spotify.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly minHeight: 500\\n readonly overrideOutlineRadius: 12\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'tldraw\'\\n readonly title: \'tldraw\'\\n readonly hostnames: readonly [\\n \'beta.tldraw.com\',\\n \'lite.tldraw.com\',\\n \'www.tldraw.com\'\\n ]\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'vimeo\'\\n readonly title: \'Vimeo\'\\n readonly hostnames: readonly [\'vimeo.com\', \'player.vimeo.com\']\\n readonly width: 640\\n readonly height: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'youtube\'\\n readonly title: \'YouTube\'\\n readonly hostnames: readonly [\\n \'*.youtube.com\',\\n \'youtube.com\',\\n \'youtu.be\'\\n ]\\n readonly width: 800\\n readonly height: 450\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly overridePermissions: {\\n readonly \'allow-presentation\': true\\n }\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n url: string\\n embedUrl: string\\n }\\n | undefined\\n```\\n\\n","matchUrl-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n | {\\n definition:\\n | {\\n readonly type: \'codepen\'\\n readonly title: \'Codepen\'\\n readonly hostnames: readonly [\'codepen.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'codesandbox\'\\n readonly title: \'CodeSandbox\'\\n readonly hostnames: readonly [\'codesandbox.io\']\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'excalidraw\'\\n readonly title: \'Excalidraw\'\\n readonly hostnames: readonly [\'excalidraw.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'felt\'\\n readonly title: \'Felt\'\\n readonly hostnames: readonly [\'felt.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'figma\'\\n readonly title: \'Figma\'\\n readonly hostnames: readonly [\'figma.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'github_gist\'\\n readonly title: \'GitHub Gist\'\\n readonly hostnames: readonly [\'gist.github.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'google_calendar\'\\n readonly title: \'Google Calendar\'\\n readonly hostnames: readonly [\'calendar.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly instructionLink: \'https://support.google.com/calendar/answer/41207?hl=en\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'google_maps\'\\n readonly title: \'Google Maps\'\\n readonly hostnames: readonly [\'google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'google_slides\'\\n readonly title: \'Google Slides\'\\n readonly hostnames: readonly [\'docs.google.*\']\\n readonly width: 720\\n readonly height: 500\\n readonly minWidth: 460\\n readonly minHeight: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'observable\'\\n readonly title: \'Observable\'\\n readonly hostnames: readonly [\'observablehq.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: false\\n readonly backgroundColor: \'#fff\'\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'replit\'\\n readonly title: \'Replit\'\\n readonly hostnames: readonly [\'replit.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'scratch\'\\n readonly title: \'Scratch\'\\n readonly hostnames: readonly [\'scratch.mit.edu\']\\n readonly width: 520\\n readonly height: 400\\n readonly doesResize: false\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'spotify\'\\n readonly title: \'Spotify\'\\n readonly hostnames: readonly [\'open.spotify.com\']\\n readonly width: 720\\n readonly height: 500\\n readonly minHeight: 500\\n readonly overrideOutlineRadius: 12\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'tldraw\'\\n readonly title: \'tldraw\'\\n readonly hostnames: readonly [\\n \'beta.tldraw.com\',\\n \'lite.tldraw.com\',\\n \'www.tldraw.com\'\\n ]\\n readonly minWidth: 300\\n readonly minHeight: 300\\n readonly width: 720\\n readonly height: 500\\n readonly doesResize: true\\n readonly canUnmount: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'vimeo\'\\n readonly title: \'Vimeo\'\\n readonly hostnames: readonly [\'vimeo.com\', \'player.vimeo.com\']\\n readonly width: 640\\n readonly height: 360\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n | {\\n readonly type: \'youtube\'\\n readonly title: \'YouTube\'\\n readonly hostnames: readonly [\\n \'*.youtube.com\',\\n \'youtube.com\',\\n \'youtu.be\'\\n ]\\n readonly width: 800\\n readonly height: 450\\n readonly doesResize: true\\n readonly canUnmount: false\\n readonly overridePermissions: {\\n readonly \'allow-presentation\': true\\n }\\n readonly isAspectRatioLocked: true\\n readonly toEmbedUrl: (url: string) => string | undefined\\n readonly fromEmbedUrl: (url: string) => string | undefined\\n }\\n embedUrl: string\\n url: string\\n }\\n | undefined\\n```\\n\\n","menuCustom-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nPartial<{\\n readonlyOk: boolean\\n disabled: boolean\\n}>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n id: string\\n type: \'custom\'\\n disabled: boolean\\n readonlyOk: boolean\\n}\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type)\\n\\n","menuGroup-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`children`\\n\\n\\n\\n\\n```ts\\n(false | null | TLUiMenuChild)[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | TLUiMenuGroup\\n```\\n\\n##### References\\n\\n[TLUiMenuChild](/gen/ui/TLUiMenuChild-type), [TLUiMenuGroup](/gen/ui/TLUiMenuGroup-type)\\n\\n","menuItem-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`actionItem`\\n\\n\\n\\n\\n```ts\\nTLUiActionItem | TLUiToolItem\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nPartial<{\\n checked: boolean\\n disabled: boolean\\n}>\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiMenuItem\\n```\\n\\n##### References\\n\\n[TLUiActionItem](/gen/ui/TLUiActionItem-interface), [TLUiToolItem](/gen/ui/TLUiToolItem-interface), [Partial](/gen/Partial-type), [TLUiMenuItem](/gen/ui/TLUiMenuItem-type)\\n\\n","menuSubmenu-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`label`\\n\\n\\n\\n\\n```ts\\nTLUiTranslationKey\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`children`\\n\\n\\n\\n\\n```ts\\n(false | null | TLUiMenuChild)[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnull | TLUiSubMenu\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type), [TLUiMenuChild](/gen/ui/TLUiMenuChild-type), [TLUiSubMenu](/gen/ui/TLUiSubMenu-type)\\n\\n","migrate-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ value, migrations, fromVersion, toVersion, }`\\n\\n\\n\\n\\n```ts\\n{\\n value: unknown\\n migrations: Migrations\\n fromVersion: number\\n toVersion: number\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult\\n```\\n\\n##### References\\n\\n[Migrations](/gen/store/Migrations-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n","migrateRecord-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ record, migrations, fromVersion, toVersion, }`\\n\\n\\n\\n\\n```ts\\n{\\n record: unknown\\n migrations: Migrations\\n fromVersion: number\\n toVersion: number\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Migrations](/gen/store/Migrations-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n","normalizeWheel-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`event`\\n\\n\\n\\n\\n```ts\\nReact.WheelEvent | WheelEvent\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n x: number\\n y: number\\n z: number\\n}\\n```\\n\\n##### References\\n\\n[React.WheelEvent](/gen/@types/react-React-WheelEvent-interface), [HTMLElement](/gen/HTMLElement-interface), [WheelEvent](/gen/WheelEvent-interface)\\n\\n","noteShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnoteShapeProps: {\\n color: import(\'..\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n size: import(\'..\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n font: import(\'..\').EnumStyleProp<\'draw\' | \'mono\' | \'sans\' | \'serif\'>\\n align: import(\'..\').EnumStyleProp<\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n >\\n verticalAlign: import(\'..\').EnumStyleProp<\'end\' | \'middle\' | \'start\'>\\n growY: T.Validator\\n url: T.Validator\\n text: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.Validator](/gen/validate/Validator-class)\\n\\n","openWindow-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`url`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`target`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","parentIdValidator-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nparentIdValidator: T.Validator\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLParentId](/gen/tlschema/TLParentId-type)\\n\\n","parseTldrawJsonFile-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`{ json, schema, }`\\n\\n\\n\\n\\n```ts\\n{\\n schema: TLSchema\\n json: string\\n}\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nResult\\n```\\n\\n##### References\\n\\n[TLSchema](/gen/tlschema/TLSchema-type), [Result](/gen/utils/Result-type), [TLStore](/gen/tlschema/TLStore-type), [TldrawFileParseError](/gen/file-format/TldrawFileParseError-type)\\n\\n","perimeterOfEllipse-function-1":"Public Function\\n\\nFind the approximate perimeter of an ellipse.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`rx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s x radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ry`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s y radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","pointInBounds-function-1":"Public Function\\n\\nGet whether a point is inside of a bounds.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nBox2d\\n```\\n\\nThe bounds to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Boolean\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type), [Box2d](/gen/primitives/Box2d-class)\\n\\n","pointInCircle-function-1":"Public Function\\n\\nGet whether a point is inside of a circle.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center point as [x, y].\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Boolean\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointInEllipse-function-1":"Public Function\\n\\nGet whether a point is inside of an ellipse.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`C`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`rx`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s x radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`ry`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s y radius.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`rotation`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s rotation.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Boolean\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointInPolygon-function-1":"Public Function\\n\\nGet whether a point is inside of a polygon.\\n\\n\\n```ts\\nconst result = pointInPolygon(myPoint, myPoints)\\n```\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointInPolyline-function-1":"Public Function\\n\\nHit test a point and a polyline using a minimum distance.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points that make up the polyline.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`distance`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe mininum distance that qualifies a hit.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n Boolean\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointInRect-function-1":"Public Function\\n\\nGet whether a point is inside of a rectangle.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`point`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe rectangle\'s top left point as [x, y].\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`size`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe rectangle\'s size as [width, height].\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointNearToLineSegment-function-1":"Public Function\\n\\nGet whether a point is within a certain distance from a line segment.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`p1`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe polyline\'s first point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`p2`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe polyline\'s second point.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`distance`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe mininum distance that qualifies a hit.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointNearToPolyline-function-1":"Public Function\\n\\nGet whether a point is within a certain distance from a polyline.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`A`\\n\\n\\n\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points that make up the polyline.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`distance`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe mininum distance that qualifies a hit.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","polygonsIntersect-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`b`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","preventDefault-function-1":"Public Function\\n\\nThis function calls `event.preventDefault()` for you. Why is that useful?\\n\\n\\nBeacuase if you enable `window.preventDefaultLogging = true` it\'ll log out a message when it happens. Because we use console.warn rather than (log) you\'ll get a stack trace in the inspector telling you exactly where it happened. This is important because `e.preventDefault()` is the source of many bugs, but unfortuantly it can\'t be avoided because it also stops a lot of default behaviour which doesn\'t make sense in our UI\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`event`\\n\\n\\n\\n\\n```ts\\nEvent | React.BaseSyntheticEvent\\n```\\n\\nTo prevent default on\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Event](/gen/Event-interface), [React.BaseSyntheticEvent](/gen/@types/react-React-BaseSyntheticEvent-interface)\\n\\n","radiansToDegrees-function-1":"Public Function\\n\\nConvert radians to degrees.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe degree in radians.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","rangeIntersection-function-1":"Public Function\\n\\nFinds the intersection of two ranges.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the A range\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the A range\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the B range\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the B range\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\n[number, number] | null\\n```\\n\\n The intersection of the ranges, or null if no intersection\\n\\n\\n","rangesOverlap-function-1":"Public Function\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the A range\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the A range\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the B range\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`b1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the B range\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n True if the ranges overlap\\n\\n\\n","refreshPage-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","releasePointerCapture-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`element`\\n\\n\\n\\n\\n```ts\\nElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`event`\\n\\n\\n\\n\\n```ts\\nPointerEvent | React.PointerEvent\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Element](/gen/Element-interface), [PointerEvent](/gen/PointerEvent-interface), [React.PointerEvent](/gen/@types/react-React-PointerEvent-interface)\\n\\n","reverseRecordsDiff-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`diff`\\n\\n\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n","rotateSelectionHandle-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`handle`\\n\\n\\n\\n\\n```ts\\nSelectionHandle\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`rotation`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nSelectionHandle\\n```\\n\\n##### References\\n\\n[SelectionHandle](/gen/primitives/SelectionHandle-type)\\n\\n","runtime-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nruntime: {\\n openWindow: (url: string, target: string) => void\\n refreshPage: () => void\\n hardReset: () => void\\n}\\n```\\n\\n","serializeTldrawJson-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`store`\\n\\n\\n\\n\\n```ts\\nTLStore\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [Promise](/gen/Promise-interface)\\n\\n","serializeTldrawJsonBlob-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`store`\\n\\n\\n\\n\\n```ts\\nTLStore\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nPromise\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [Promise](/gen/Promise-interface), [Blob](/gen/Blob-interface)\\n\\n","setPointerCapture-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`element`\\n\\n\\n\\n\\n```ts\\nElement\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`event`\\n\\n\\n\\n\\n```ts\\nPointerEvent | React.PointerEvent\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Element](/gen/Element-interface), [PointerEvent](/gen/PointerEvent-interface), [React.PointerEvent](/gen/@types/react-React-PointerEvent-interface)\\n\\n","setRuntimeOverrides-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`input`\\n\\n\\n\\n\\n```ts\\nPartial\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [runtime](/gen/editor/runtime-var)\\n\\n","setStrokePointRadii-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`strokePoints`\\n\\n\\n\\n\\n```ts\\nStrokePoint[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`options`\\n\\n\\n\\n\\n```ts\\nStrokeOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nStrokePoint[]\\n```\\n\\n##### References\\n\\n[StrokePoint](/gen/primitives/StrokePoint-interface), [StrokeOptions](/gen/primitives/StrokeOptions-interface)\\n\\n","setUserPreferences-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`user`\\n\\n\\n\\n\\n```ts\\nTLUserPreferences\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLUserPreferences](/gen/editor/TLUserPreferences-interface)\\n\\n","shapeIdValidator-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nshapeIdValidator: T.Validator\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n","shortAngleDist-function-1":"Public Function\\n\\nGet the short angle distance between two angles.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`a0`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`a1`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","simplify-function-1":"Public Function\\n\\nSimplify a line (using Ramer-Douglas-Peucker algorithm).\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points as [x, y, ...][]\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`tolerance`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe minimum line distance (also called epsilon).\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n Simplified array as [x, y, ...][]\\n\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","simplify2-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`points`\\n\\n\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`tolerance`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","snapAngle-function-1":"Public Function\\n\\nClamp rotation to even segments.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`r`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe rotation in radians.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`segments`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe number of segments.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","snapToGrid-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`gridSize`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","squashRecordDiffs-function-1":"Public Function\\n\\nSquash a collection of diffs into a single diff.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`diffs`\\n\\n\\n\\n\\n```ts\\nRecordsDiff[]\\n```\\n\\nAn array of diffs to squash.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff\\n```\\n\\n A single diff that represents the squashed diffs.\\n\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n","textShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntextShapeProps: {\\n color: import(\'..\').EnumStyleProp<\\n | \'black\'\\n | \'blue\'\\n | \'green\'\\n | \'grey\'\\n | \'light-blue\'\\n | \'light-green\'\\n | \'light-red\'\\n | \'light-violet\'\\n | \'orange\'\\n | \'red\'\\n | \'violet\'\\n | \'yellow\'\\n >\\n size: import(\'..\').EnumStyleProp<\'l\' | \'m\' | \'s\' | \'xl\'>\\n font: import(\'..\').EnumStyleProp<\'draw\' | \'mono\' | \'sans\' | \'serif\'>\\n align: import(\'..\').EnumStyleProp<\\n | \'end-legacy\'\\n | \'end\'\\n | \'middle-legacy\'\\n | \'middle\'\\n | \'start-legacy\'\\n | \'start\'\\n >\\n w: T.Validator\\n text: T.Validator\\n scale: T.Validator\\n autoSize: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.Validator](/gen/validate/Validator-class)\\n\\n","toDomPrecision-function-1":"Public Function\\n\\nThe DOM likes values to be fixed to 3 decimal places\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`v`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","toFixed-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`v`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","toPrecision-function-1":"Public Function\\n\\nGet a number to a precision.\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`n`\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe number.\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n`precision`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\nnumber\\n```\\n\\nThe precision.\\n\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","toolbarItem-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`toolItem`\\n\\n\\n\\n\\n```ts\\nTLUiToolItem\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiToolbarItem\\n```\\n\\n##### References\\n\\n[TLUiToolItem](/gen/ui/TLUiToolItem-interface), [TLUiToolbarItem](/gen/ui/TLUiToolbarItem-type)\\n\\n","truncateStringWithEllipsis-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntruncateStringWithEllipsis: (str: string, maxLength: number) => string\\n```\\n\\n","uniqueId-function-1":"Public Function\\n\\nGenerate a unique id.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst id = uniqueId()\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","useActions-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiActionsContextType\\n```\\n\\n##### References\\n\\n[TLUiActionsContextType](/gen/ui/TLUiActionsContextType-type)\\n\\n","useActionsMenuSchema-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","useBreakpoint-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","useCanRedo-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useCanUndo-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useContainer-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nHTMLDivElement\\n```\\n\\n##### References\\n\\n[HTMLDivElement](/gen/HTMLDivElement-interface)\\n\\n","useContextMenuSchema-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","useCopyAs-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n(ids?: TLShapeId[], format?: TLCopyType) => void\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLCopyType](/gen/editor/TLCopyType-type)\\n\\n","useDefaultHelpers-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n addToast: (\\n toast: Omit & {\\n id?: string | undefined\\n }\\n ) => string\\n removeToast: (id: string) => string\\n clearToasts: () => void\\n addDialog: (\\n dialog: Omit & {\\n id?: string | undefined\\n }\\n ) => string\\n clearDialogs: () => void\\n removeDialog: (id: string) => string\\n updateDialog: (\\n id: string,\\n newDialogData: Partial\\n ) => string\\n msg: (id: import(\'..\').TLUiTranslationKey) => string\\n isMobile: boolean\\n}\\n```\\n\\n##### References\\n\\n[Omit](/gen/Omit-type), [TLUiToast](/gen/ui/TLUiToast-interface), [TLUiDialog](/gen/ui/TLUiDialog-interface), [Partial](/gen/Partial-type), [TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n","useDialogs-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiDialogsContextType\\n```\\n\\n##### References\\n\\n[TLUiDialogsContextType](/gen/ui/TLUiDialogsContextType-type)\\n\\n","useEditor-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nuseEditor: () => Editor\\n```\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n","useEvents-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiEventContextType\\n```\\n\\n##### References\\n\\n[TLUiEventContextType](/gen/ui/TLUiEventContextType-type)\\n\\n","useExportAs-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n(ids?: TLShapeId[], format?: TLExportType) => Promise\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type), [TLExportType](/gen/editor/TLExportType-type), [Promise](/gen/Promise-interface)\\n\\n","useHelpMenuSchema-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","useKeyboardShortcuts-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","useKeyboardShortcutsSchema-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiKeyboardShortcutsSchemaContextType\\n```\\n\\n##### References\\n\\n[TLUiKeyboardShortcutsSchemaContextType](/gen/ui/TLUiKeyboardShortcutsSchemaContextType-type)\\n\\n","useLocalStorageState-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`key`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`defaultValue`\\n\\n\\n\\n\\n```ts\\nT\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nreadonly [T, (setter: ((value: T) => T) | T) => void]\\n```\\n\\n","useMenuClipboardEvents-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n copy: (source: TLUiEventSource) => void\\n cut: (source: TLUiEventSource) => void\\n paste: (\\n data: ClipboardItem[] | DataTransfer,\\n source: TLUiEventSource,\\n point?: VecLike\\n ) => Promise\\n}\\n```\\n\\n##### References\\n\\n[TLUiEventSource](/gen/ui/TLUiEventSource-type), [ClipboardItem](/gen/ClipboardItem-interface), [DataTransfer](/gen/DataTransfer-interface), [VecLike](/gen/primitives/VecLike-type), [Promise](/gen/Promise-interface)\\n\\n","useMenuIsOpen-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`id`\\n\\n\\n\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n\\n\\n\\n\\n\\n`cb`\\n\\n (optional)\\n\\n\\n\\n\\n```ts\\n(isOpen: boolean) => void\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nreadonly [boolean, (isOpen: boolean) => void]\\n```\\n\\n","useMenuSchema-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiMenuSchema\\n```\\n\\n##### References\\n\\n[TLUiMenuSchema](/gen/ui/TLUiMenuSchema-type)\\n\\n","useNativeClipboardEvents-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","usePrefersReducedMotion-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useReadonly-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useTLStore-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n\\n\\n\\n\\n\\n`opts`\\n\\n\\n\\n\\n```ts\\nTLStoreOptions\\n```\\n\\n\\n\\n\\n\\n\\n\\n##### Returns\\n\\n\\n```ts\\nimport(\'@tldraw/tlschema\').TLStore\\n```\\n\\n##### References\\n\\n[TLStoreOptions](/gen/editor/TLStoreOptions-type), [TLStore](/gen/tlschema/TLStore-type)\\n\\n","useToasts-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiToastsContextType\\n```\\n\\n##### References\\n\\n[TLUiToastsContextType](/gen/ui/TLUiToastsContextType-type)\\n\\n","useToolbarSchema-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiToolbarSchemaContextType\\n```\\n\\n##### References\\n\\n[TLUiToolbarSchemaContextType](/gen/ui/TLUiToolbarSchemaContextType-type)\\n\\n","useTools-function-1":"Public Function\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nTLUiToolsContextType\\n```\\n\\n##### References\\n\\n[TLUiToolsContextType](/gen/ui/TLUiToolsContextType-type)\\n\\n","useTranslation-function-1":"Public Function\\n\\nReturns a function to translate a translation key into a string based on the current translation.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst msg = useTranslation()\\nconst label = msg(\'style-panel.styles\')\\n```\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n(id: TLUiTranslationKey) => string\\n```\\n\\n##### References\\n\\n[TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n","vec2dModelValidator-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nvec2dModelValidator: T.Validator\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n","videoShapeProps-var":"Public Readonly Variable\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nvideoShapeProps: {\\n w: T.Validator\\n h: T.Validator\\n time: T.Validator\\n playing: T.Validator\\n url: T.Validator\\n assetId: T.Validator\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n"},"articles":{"introduction":{"id":"introduction","sectionIndex":0,"groupIndex":-1,"groupId":null,"categoryIndex":0,"sectionId":"getting-started","categoryId":"ucg","status":"published","title":"Introduction","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":"installation","prev":null,"author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/getting-started/introduction.mdx"},"installation":{"id":"installation","sectionIndex":1,"groupIndex":-1,"groupId":null,"categoryIndex":1,"sectionId":"getting-started","categoryId":"ucg","status":"published","title":"Installation","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":"usage","prev":"introduction","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/getting-started/installation.mdx"},"usage":{"id":"usage","sectionIndex":2,"groupIndex":-1,"groupId":null,"categoryIndex":2,"sectionId":"getting-started","categoryId":"ucg","status":"published","title":"Usage","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":null,"prev":"installation","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/getting-started/usage.mdx"},"editor":{"id":"editor","sectionIndex":0,"groupIndex":-1,"groupId":null,"categoryIndex":0,"sectionId":"docs","categoryId":"ucg","status":"published","title":"Editor","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":["ui","app","editor","control","select"],"next":"shapes","prev":null,"author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/editor.mdx"},"shapes":{"id":"shapes","sectionIndex":1,"groupIndex":-1,"groupId":null,"categoryIndex":1,"sectionId":"docs","categoryId":"ucg","status":"published","title":"Shapes","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":["custom","shapes","shapeutils","utils"],"next":"tools","prev":"editor","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/shapes.mdx"},"tools":{"id":"tools","sectionIndex":2,"groupIndex":-1,"groupId":null,"categoryIndex":2,"sectionId":"docs","categoryId":"ucg","status":"published","title":"Tools","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":["custom","tools","state"],"next":"persistence","prev":"shapes","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/tools.mdx"},"persistence":{"id":"persistence","sectionIndex":3,"groupIndex":-1,"groupId":null,"categoryIndex":3,"sectionId":"docs","categoryId":"ucg","status":"published","title":"Persistence","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":["data","sync","persistence","database","indexeddb","localstorage"],"next":"collaboration","prev":"tools","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/persistence.mdx"},"collaboration":{"id":"collaboration","sectionIndex":4,"groupIndex":-1,"groupId":null,"categoryIndex":4,"sectionId":"docs","categoryId":"ucg","status":"published","title":"Collaboration","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":"user-interface","prev":"persistence","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/collaboration.mdx"},"user-interface":{"id":"user-interface","sectionIndex":5,"groupIndex":-1,"groupId":null,"categoryIndex":5,"sectionId":"docs","categoryId":"ucg","status":"published","title":"User Interface","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":["ui","interface","tools","shapes","custom","button","toolbar","styles"],"next":"assets","prev":"collaboration","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/user-interface.mdx"},"assets":{"id":"assets","sectionIndex":6,"groupIndex":-1,"groupId":null,"categoryIndex":6,"sectionId":"docs","categoryId":"ucg","status":"published","title":"Assets","description":"An article for the docs site.","hero":null,"date":"2023-06-08T23:00:00.000Z","keywords":[],"next":null,"prev":"user-interface","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/docs/assets.mdx"},"contributing":{"id":"contributing","sectionIndex":0,"groupIndex":-1,"groupId":null,"categoryIndex":0,"sectionId":"community","categoryId":"ucg","status":"published","title":"Contributing","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":"translations","prev":null,"author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/community/contributing.mdx"},"translations":{"id":"translations","sectionIndex":1,"groupIndex":-1,"groupId":null,"categoryIndex":1,"sectionId":"community","categoryId":"ucg","status":"published","title":"Translations","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":"embeds","prev":"contributing","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/community/translations.mdx"},"embeds":{"id":"embeds","sectionIndex":2,"groupIndex":-1,"groupId":null,"categoryIndex":2,"sectionId":"community","categoryId":"ucg","status":"published","title":"Embeds","description":"An article for the docs site.","hero":null,"date":"2023-03-22T00:00:00.000Z","keywords":[],"next":null,"prev":"translations","author":{"name":"Steve Ruiz","email":"steve@tldraw.com","twitter":"steveruizok","image":"steve_ruiz.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/community/embeds.mdx"},"ACCEPTED_ASSET_TYPE-var":{"id":"ACCEPTED_ASSET_TYPE-var","sectionIndex":0,"groupIndex":-1,"groupId":"Variable","categoryIndex":0,"sectionId":"gen","categoryId":"editor","status":"published","title":"ACCEPTED_ASSET_TYPE","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ACCEPTED_IMG_TYPE-var","prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ACCEPTED_ASSET_TYPE-var.mdx"},"ACCEPTED_IMG_TYPE-var":{"id":"ACCEPTED_IMG_TYPE-var","sectionIndex":1,"groupIndex":-1,"groupId":"Variable","categoryIndex":1,"sectionId":"gen","categoryId":"editor","status":"published","title":"ACCEPTED_IMG_TYPE","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ACCEPTED_VID_TYPE-var","prev":"ACCEPTED_ASSET_TYPE-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ACCEPTED_IMG_TYPE-var.mdx"},"ACCEPTED_VID_TYPE-var":{"id":"ACCEPTED_VID_TYPE-var","sectionIndex":2,"groupIndex":-1,"groupId":"Variable","categoryIndex":2,"sectionId":"gen","categoryId":"editor","status":"published","title":"ACCEPTED_VID_TYPE","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ArrowShape-var","prev":"ACCEPTED_IMG_TYPE-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ACCEPTED_VID_TYPE-var.mdx"},"ArrowShape-var":{"id":"ArrowShape-var","sectionIndex":3,"groupIndex":-1,"groupId":"Variable","categoryIndex":3,"sectionId":"gen","categoryId":"editor","status":"published","title":"ArrowShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ArrowShapeUtil-class","prev":"ACCEPTED_VID_TYPE-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ArrowShape-var.mdx"},"ArrowShapeUtil-class":{"id":"ArrowShapeUtil-class","sectionIndex":4,"groupIndex":-1,"groupId":"Class","categoryIndex":4,"sectionId":"gen","categoryId":"editor","status":"published","title":"ArrowShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"BaseBoxShapeTool-class","prev":"ArrowShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ArrowShapeUtil-class.mdx"},"BaseBoxShapeTool-class":{"id":"BaseBoxShapeTool-class","sectionIndex":5,"groupIndex":-1,"groupId":"Class","categoryIndex":5,"sectionId":"gen","categoryId":"editor","status":"published","title":"BaseBoxShapeTool","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"BaseBoxShapeUtil-class","prev":"ArrowShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/BaseBoxShapeTool-class.mdx"},"BaseBoxShapeUtil-class":{"id":"BaseBoxShapeUtil-class","sectionIndex":6,"groupIndex":-1,"groupId":"Class","categoryIndex":6,"sectionId":"gen","categoryId":"editor","status":"published","title":"BaseBoxShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"blobAsString-function-1","prev":"BaseBoxShapeTool-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/BaseBoxShapeUtil-class.mdx"},"blobAsString-function-1":{"id":"blobAsString-function-1","sectionIndex":7,"groupIndex":-1,"groupId":"Function","categoryIndex":7,"sectionId":"gen","categoryId":"editor","status":"published","title":"blobAsString","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"BookmarkShape-var","prev":"BaseBoxShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/blobAsString-function-1.mdx"},"BookmarkShape-var":{"id":"BookmarkShape-var","sectionIndex":8,"groupIndex":-1,"groupId":"Variable","categoryIndex":8,"sectionId":"gen","categoryId":"editor","status":"published","title":"BookmarkShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"BookmarkShapeUtil-class","prev":"blobAsString-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/BookmarkShape-var.mdx"},"BookmarkShapeUtil-class":{"id":"BookmarkShapeUtil-class","sectionIndex":9,"groupIndex":-1,"groupId":"Class","categoryIndex":9,"sectionId":"gen","categoryId":"editor","status":"published","title":"BookmarkShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Canvas-var","prev":"BookmarkShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/BookmarkShapeUtil-class.mdx"},"Canvas-var":{"id":"Canvas-var","sectionIndex":10,"groupIndex":-1,"groupId":"Variable","categoryIndex":10,"sectionId":"gen","categoryId":"editor","status":"published","title":"Canvas","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"checkFlag-var","prev":"BookmarkShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Canvas-var.mdx"},"checkFlag-var":{"id":"checkFlag-var","sectionIndex":11,"groupIndex":-1,"groupId":"Variable","categoryIndex":11,"sectionId":"gen","categoryId":"editor","status":"published","title":"checkFlag","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"containBoxSize-function-1","prev":"Canvas-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/checkFlag-var.mdx"},"containBoxSize-function-1":{"id":"containBoxSize-function-1","sectionIndex":12,"groupIndex":-1,"groupId":"Function","categoryIndex":12,"sectionId":"gen","categoryId":"editor","status":"published","title":"containBoxSize","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"coreShapes-var","prev":"checkFlag-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/containBoxSize-function-1.mdx"},"coreShapes-var":{"id":"coreShapes-var","sectionIndex":13,"groupIndex":-1,"groupId":"Variable","categoryIndex":13,"sectionId":"gen","categoryId":"editor","status":"published","title":"coreShapes","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"correctSpacesToNbsp-function-1","prev":"containBoxSize-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/coreShapes-var.mdx"},"correctSpacesToNbsp-function-1":{"id":"correctSpacesToNbsp-function-1","sectionIndex":14,"groupIndex":-1,"groupId":"Function","categoryIndex":14,"sectionId":"gen","categoryId":"editor","status":"published","title":"correctSpacesToNbsp","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createSessionStateSnapshotSignal-function-1","prev":"coreShapes-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/correctSpacesToNbsp-function-1.mdx"},"createSessionStateSnapshotSignal-function-1":{"id":"createSessionStateSnapshotSignal-function-1","sectionIndex":15,"groupIndex":-1,"groupId":"Function","categoryIndex":15,"sectionId":"gen","categoryId":"editor","status":"published","title":"createSessionStateSnapshotSignal","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createTLStore-function-1","prev":"correctSpacesToNbsp-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createSessionStateSnapshotSignal-function-1.mdx"},"createTLStore-function-1":{"id":"createTLStore-function-1","sectionIndex":16,"groupIndex":-1,"groupId":"Function","categoryIndex":16,"sectionId":"gen","categoryId":"editor","status":"published","title":"createTLStore","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createTLUser-function-1","prev":"createSessionStateSnapshotSignal-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createTLStore-function-1.mdx"},"createTLUser-function-1":{"id":"createTLUser-function-1","sectionIndex":17,"groupIndex":-1,"groupId":"Function","categoryIndex":17,"sectionId":"gen","categoryId":"editor","status":"published","title":"createTLUser","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"dataTransferItemAsString-function-1","prev":"createTLStore-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createTLUser-function-1.mdx"},"dataTransferItemAsString-function-1":{"id":"dataTransferItemAsString-function-1","sectionIndex":18,"groupIndex":-1,"groupId":"Function","categoryIndex":18,"sectionId":"gen","categoryId":"editor","status":"published","title":"dataTransferItemAsString","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"dataUrlToFile-function-1","prev":"createTLUser-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/dataTransferItemAsString-function-1.mdx"},"dataUrlToFile-function-1":{"id":"dataUrlToFile-function-1","sectionIndex":19,"groupIndex":-1,"groupId":"Function","categoryIndex":19,"sectionId":"gen","categoryId":"editor","status":"published","title":"dataUrlToFile","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"defaultEditorAssetUrls-var","prev":"dataTransferItemAsString-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/dataUrlToFile-function-1.mdx"},"defaultEditorAssetUrls-var":{"id":"defaultEditorAssetUrls-var","sectionIndex":20,"groupIndex":-1,"groupId":"Variable","categoryIndex":20,"sectionId":"gen","categoryId":"editor","status":"published","title":"defaultEditorAssetUrls","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"defaultEmptyAs-function-1","prev":"dataUrlToFile-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/defaultEditorAssetUrls-var.mdx"},"defaultEmptyAs-function-1":{"id":"defaultEmptyAs-function-1","sectionIndex":21,"groupIndex":-1,"groupId":"Function","categoryIndex":21,"sectionId":"gen","categoryId":"editor","status":"published","title":"defaultEmptyAs","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"defaultShapes-var","prev":"defaultEditorAssetUrls-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/defaultEmptyAs-function-1.mdx"},"defaultShapes-var":{"id":"defaultShapes-var","sectionIndex":22,"groupIndex":-1,"groupId":"Variable","categoryIndex":22,"sectionId":"gen","categoryId":"editor","status":"published","title":"defaultShapes","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"defaultTools-var","prev":"defaultEmptyAs-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/defaultShapes-var.mdx"},"defaultTools-var":{"id":"defaultTools-var","sectionIndex":23,"groupIndex":-1,"groupId":"Variable","categoryIndex":23,"sectionId":"gen","categoryId":"editor","status":"published","title":"defaultTools","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"defineShape-function-1","prev":"defaultShapes-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/defaultTools-var.mdx"},"defineShape-function-1":{"id":"defineShape-function-1","sectionIndex":24,"groupIndex":-1,"groupId":"Function","categoryIndex":24,"sectionId":"gen","categoryId":"editor","status":"published","title":"defineShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"downloadDataURLAsFile-function-1","prev":"defaultTools-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/defineShape-function-1.mdx"},"downloadDataURLAsFile-function-1":{"id":"downloadDataURLAsFile-function-1","sectionIndex":25,"groupIndex":-1,"groupId":"Function","categoryIndex":25,"sectionId":"gen","categoryId":"editor","status":"published","title":"downloadDataURLAsFile","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DrawShape-var","prev":"defineShape-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/downloadDataURLAsFile-function-1.mdx"},"DrawShape-var":{"id":"DrawShape-var","sectionIndex":26,"groupIndex":-1,"groupId":"Variable","categoryIndex":26,"sectionId":"gen","categoryId":"editor","status":"published","title":"DrawShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DrawShapeUtil-class","prev":"downloadDataURLAsFile-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DrawShape-var.mdx"},"DrawShapeUtil-class":{"id":"DrawShapeUtil-class","sectionIndex":27,"groupIndex":-1,"groupId":"Class","categoryIndex":27,"sectionId":"gen","categoryId":"editor","status":"published","title":"DrawShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Editor-class","prev":"DrawShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DrawShapeUtil-class.mdx"},"Editor-class":{"id":"Editor-class","sectionIndex":28,"groupIndex":-1,"groupId":"Class","categoryIndex":28,"sectionId":"gen","categoryId":"editor","status":"published","title":"Editor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EmbedShape-var","prev":"DrawShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Editor-class.mdx"},"EmbedShape-var":{"id":"EmbedShape-var","sectionIndex":29,"groupIndex":-1,"groupId":"Variable","categoryIndex":29,"sectionId":"gen","categoryId":"editor","status":"published","title":"EmbedShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EmbedShapeUtil-class","prev":"Editor-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EmbedShape-var.mdx"},"EmbedShapeUtil-class":{"id":"EmbedShapeUtil-class","sectionIndex":30,"groupIndex":-1,"groupId":"Class","categoryIndex":30,"sectionId":"gen","categoryId":"editor","status":"published","title":"EmbedShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ErrorBoundary-class","prev":"EmbedShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EmbedShapeUtil-class.mdx"},"ErrorBoundary-class":{"id":"ErrorBoundary-class","sectionIndex":31,"groupIndex":-1,"groupId":"Class","categoryIndex":31,"sectionId":"gen","categoryId":"editor","status":"published","title":"ErrorBoundary","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ErrorScreen-function-1","prev":"EmbedShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ErrorBoundary-class.mdx"},"ErrorScreen-function-1":{"id":"ErrorScreen-function-1","sectionIndex":32,"groupIndex":-1,"groupId":"Function","categoryIndex":32,"sectionId":"gen","categoryId":"editor","status":"published","title":"ErrorScreen","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EVENT_NAME_MAP-var","prev":"ErrorBoundary-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ErrorScreen-function-1.mdx"},"EVENT_NAME_MAP-var":{"id":"EVENT_NAME_MAP-var","sectionIndex":33,"groupIndex":-1,"groupId":"Variable","categoryIndex":33,"sectionId":"gen","categoryId":"editor","status":"published","title":"EVENT_NAME_MAP","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"fileToBase64-function-1","prev":"ErrorScreen-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EVENT_NAME_MAP-var.mdx"},"fileToBase64-function-1":{"id":"fileToBase64-function-1","sectionIndex":34,"groupIndex":-1,"groupId":"Function","categoryIndex":34,"sectionId":"gen","categoryId":"editor","status":"published","title":"fileToBase64","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"FrameShape-var","prev":"EVENT_NAME_MAP-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/fileToBase64-function-1.mdx"},"FrameShape-var":{"id":"FrameShape-var","sectionIndex":35,"groupIndex":-1,"groupId":"Variable","categoryIndex":35,"sectionId":"gen","categoryId":"editor","status":"published","title":"FrameShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"FrameShapeUtil-class","prev":"fileToBase64-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/FrameShape-var.mdx"},"FrameShapeUtil-class":{"id":"FrameShapeUtil-class","sectionIndex":36,"groupIndex":-1,"groupId":"Class","categoryIndex":36,"sectionId":"gen","categoryId":"editor","status":"published","title":"FrameShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"GeoShape-var","prev":"FrameShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/FrameShapeUtil-class.mdx"},"GeoShape-var":{"id":"GeoShape-var","sectionIndex":37,"groupIndex":-1,"groupId":"Variable","categoryIndex":37,"sectionId":"gen","categoryId":"editor","status":"published","title":"GeoShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"GeoShapeUtil-class","prev":"FrameShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/GeoShape-var.mdx"},"GeoShapeUtil-class":{"id":"GeoShapeUtil-class","sectionIndex":38,"groupIndex":-1,"groupId":"Class","categoryIndex":38,"sectionId":"gen","categoryId":"editor","status":"published","title":"GeoShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getEmbedInfo-function-1","prev":"GeoShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/GeoShapeUtil-class.mdx"},"getEmbedInfo-function-1":{"id":"getEmbedInfo-function-1","sectionIndex":39,"groupIndex":-1,"groupId":"Function","categoryIndex":39,"sectionId":"gen","categoryId":"editor","status":"published","title":"getEmbedInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getEmbedInfoUnsafely-function-1","prev":"GeoShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getEmbedInfo-function-1.mdx"},"getEmbedInfoUnsafely-function-1":{"id":"getEmbedInfoUnsafely-function-1","sectionIndex":40,"groupIndex":-1,"groupId":"Function","categoryIndex":40,"sectionId":"gen","categoryId":"editor","status":"published","title":"getEmbedInfoUnsafely","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getFileMetaData-function-1","prev":"getEmbedInfo-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getEmbedInfoUnsafely-function-1.mdx"},"getFileMetaData-function-1":{"id":"getFileMetaData-function-1","sectionIndex":41,"groupIndex":-1,"groupId":"Function","categoryIndex":41,"sectionId":"gen","categoryId":"editor","status":"published","title":"getFileMetaData","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getFreshUserPreferences-function-1","prev":"getEmbedInfoUnsafely-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getFileMetaData-function-1.mdx"},"getFreshUserPreferences-function-1":{"id":"getFreshUserPreferences-function-1","sectionIndex":42,"groupIndex":-1,"groupId":"Function","categoryIndex":42,"sectionId":"gen","categoryId":"editor","status":"published","title":"getFreshUserPreferences","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getImageSizeFromSrc-function-1","prev":"getFileMetaData-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getFreshUserPreferences-function-1.mdx"},"getImageSizeFromSrc-function-1":{"id":"getImageSizeFromSrc-function-1","sectionIndex":43,"groupIndex":-1,"groupId":"Function","categoryIndex":43,"sectionId":"gen","categoryId":"editor","status":"published","title":"getImageSizeFromSrc","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getIncrementedName-function-1","prev":"getFreshUserPreferences-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getImageSizeFromSrc-function-1.mdx"},"getIncrementedName-function-1":{"id":"getIncrementedName-function-1","sectionIndex":44,"groupIndex":-1,"groupId":"Function","categoryIndex":44,"sectionId":"gen","categoryId":"editor","status":"published","title":"getIncrementedName","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMediaAssetFromFile-function-1","prev":"getImageSizeFromSrc-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getIncrementedName-function-1.mdx"},"getMediaAssetFromFile-function-1":{"id":"getMediaAssetFromFile-function-1","sectionIndex":45,"groupIndex":-1,"groupId":"Function","categoryIndex":45,"sectionId":"gen","categoryId":"editor","status":"published","title":"getMediaAssetFromFile","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getResizedImageDataUrl-function-1","prev":"getIncrementedName-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMediaAssetFromFile-function-1.mdx"},"getResizedImageDataUrl-function-1":{"id":"getResizedImageDataUrl-function-1","sectionIndex":46,"groupIndex":-1,"groupId":"Function","categoryIndex":46,"sectionId":"gen","categoryId":"editor","status":"published","title":"getResizedImageDataUrl","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getRotatedBoxShadow-function-1","prev":"getMediaAssetFromFile-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getResizedImageDataUrl-function-1.mdx"},"getRotatedBoxShadow-function-1":{"id":"getRotatedBoxShadow-function-1","sectionIndex":47,"groupIndex":-1,"groupId":"Function","categoryIndex":47,"sectionId":"gen","categoryId":"editor","status":"published","title":"getRotatedBoxShadow","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSplineForLineShape-function-1","prev":"getResizedImageDataUrl-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getRotatedBoxShadow-function-1.mdx"},"getSplineForLineShape-function-1":{"id":"getSplineForLineShape-function-1","sectionIndex":48,"groupIndex":-1,"groupId":"Function","categoryIndex":48,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSplineForLineShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSvgAsDataUrl-function-1","prev":"getRotatedBoxShadow-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSplineForLineShape-function-1.mdx"},"getSvgAsDataUrl-function-1":{"id":"getSvgAsDataUrl-function-1","sectionIndex":49,"groupIndex":-1,"groupId":"Function","categoryIndex":49,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSvgAsDataUrl","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSvgAsDataUrlSync-function-1","prev":"getSplineForLineShape-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSvgAsDataUrl-function-1.mdx"},"getSvgAsDataUrlSync-function-1":{"id":"getSvgAsDataUrlSync-function-1","sectionIndex":50,"groupIndex":-1,"groupId":"Function","categoryIndex":50,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSvgAsDataUrlSync","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSvgAsImage-function-1","prev":"getSvgAsDataUrl-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSvgAsDataUrlSync-function-1.mdx"},"getSvgAsImage-function-1":{"id":"getSvgAsImage-function-1","sectionIndex":51,"groupIndex":-1,"groupId":"Function","categoryIndex":51,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSvgAsImage","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSvgAsString-function-1","prev":"getSvgAsDataUrlSync-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSvgAsImage-function-1.mdx"},"getSvgAsString-function-1":{"id":"getSvgAsString-function-1","sectionIndex":52,"groupIndex":-1,"groupId":"Function","categoryIndex":52,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSvgAsString","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSvgPathFromStroke-function-1","prev":"getSvgAsImage-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSvgAsString-function-1.mdx"},"getSvgPathFromStroke-function-1":{"id":"getSvgPathFromStroke-function-1","sectionIndex":53,"groupIndex":-1,"groupId":"Function","categoryIndex":53,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSvgPathFromStroke","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSvgPathFromStrokePoints-function-1","prev":"getSvgAsString-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSvgPathFromStroke-function-1.mdx"},"getSvgPathFromStrokePoints-function-1":{"id":"getSvgPathFromStrokePoints-function-1","sectionIndex":54,"groupIndex":-1,"groupId":"Function","categoryIndex":54,"sectionId":"gen","categoryId":"editor","status":"published","title":"getSvgPathFromStrokePoints","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getTextBoundingBox-function-1","prev":"getSvgPathFromStroke-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSvgPathFromStrokePoints-function-1.mdx"},"getTextBoundingBox-function-1":{"id":"getTextBoundingBox-function-1","sectionIndex":55,"groupIndex":-1,"groupId":"Function","categoryIndex":55,"sectionId":"gen","categoryId":"editor","status":"published","title":"getTextBoundingBox","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getUserPreferences-function-1","prev":"getSvgPathFromStrokePoints-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getTextBoundingBox-function-1.mdx"},"getUserPreferences-function-1":{"id":"getUserPreferences-function-1","sectionIndex":56,"groupIndex":-1,"groupId":"Function","categoryIndex":56,"sectionId":"gen","categoryId":"editor","status":"published","title":"getUserPreferences","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getValidHttpURLList-var","prev":"getTextBoundingBox-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getUserPreferences-function-1.mdx"},"getValidHttpURLList-var":{"id":"getValidHttpURLList-var","sectionIndex":57,"groupIndex":-1,"groupId":"Variable","categoryIndex":57,"sectionId":"gen","categoryId":"editor","status":"published","title":"getValidHttpURLList","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getVideoSizeFromSrc-function-1","prev":"getUserPreferences-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getValidHttpURLList-var.mdx"},"getVideoSizeFromSrc-function-1":{"id":"getVideoSizeFromSrc-function-1","sectionIndex":58,"groupIndex":-1,"groupId":"Function","categoryIndex":58,"sectionId":"gen","categoryId":"editor","status":"published","title":"getVideoSizeFromSrc","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"GRID_STEPS-var","prev":"getValidHttpURLList-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getVideoSizeFromSrc-function-1.mdx"},"GRID_STEPS-var":{"id":"GRID_STEPS-var","sectionIndex":59,"groupIndex":-1,"groupId":"Variable","categoryIndex":59,"sectionId":"gen","categoryId":"editor","status":"published","title":"GRID_STEPS","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"GroupShape-var","prev":"getVideoSizeFromSrc-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/GRID_STEPS-var.mdx"},"GroupShape-var":{"id":"GroupShape-var","sectionIndex":60,"groupIndex":-1,"groupId":"Variable","categoryIndex":60,"sectionId":"gen","categoryId":"editor","status":"published","title":"GroupShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"GroupShapeUtil-class","prev":"GRID_STEPS-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/GroupShape-var.mdx"},"GroupShapeUtil-class":{"id":"GroupShapeUtil-class","sectionIndex":61,"groupIndex":-1,"groupId":"Class","categoryIndex":61,"sectionId":"gen","categoryId":"editor","status":"published","title":"GroupShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"hardReset-function-1","prev":"GroupShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/GroupShapeUtil-class.mdx"},"hardReset-function-1":{"id":"hardReset-function-1","sectionIndex":62,"groupIndex":-1,"groupId":"Function","categoryIndex":62,"sectionId":"gen","categoryId":"editor","status":"published","title":"hardReset","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"hardResetEditor-function-1","prev":"GroupShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/hardReset-function-1.mdx"},"hardResetEditor-function-1":{"id":"hardResetEditor-function-1","sectionIndex":63,"groupIndex":-1,"groupId":"Function","categoryIndex":63,"sectionId":"gen","categoryId":"editor","status":"published","title":"hardResetEditor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"HighlightShape-var","prev":"hardReset-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/hardResetEditor-function-1.mdx"},"HighlightShape-var":{"id":"HighlightShape-var","sectionIndex":64,"groupIndex":-1,"groupId":"Variable","categoryIndex":64,"sectionId":"gen","categoryId":"editor","status":"published","title":"HighlightShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"HighlightShapeUtil-class","prev":"hardResetEditor-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/HighlightShape-var.mdx"},"HighlightShapeUtil-class":{"id":"HighlightShapeUtil-class","sectionIndex":65,"groupIndex":-1,"groupId":"Class","categoryIndex":65,"sectionId":"gen","categoryId":"editor","status":"published","title":"HighlightShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"HTMLContainer-function-1","prev":"HighlightShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/HighlightShapeUtil-class.mdx"},"HTMLContainer-function-1":{"id":"HTMLContainer-function-1","sectionIndex":66,"groupIndex":-1,"groupId":"Function","categoryIndex":66,"sectionId":"gen","categoryId":"editor","status":"published","title":"HTMLContainer","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"HTMLContainerProps-type","prev":"HighlightShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/HTMLContainer-function-1.mdx"},"HTMLContainerProps-type":{"id":"HTMLContainerProps-type","sectionIndex":67,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":67,"sectionId":"gen","categoryId":"editor","status":"published","title":"HTMLContainerProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ImageShape-var","prev":"HTMLContainer-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/HTMLContainerProps-type.mdx"},"ImageShape-var":{"id":"ImageShape-var","sectionIndex":68,"groupIndex":-1,"groupId":"Variable","categoryIndex":68,"sectionId":"gen","categoryId":"editor","status":"published","title":"ImageShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ImageShapeUtil-class","prev":"HTMLContainerProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ImageShape-var.mdx"},"ImageShapeUtil-class":{"id":"ImageShapeUtil-class","sectionIndex":69,"groupIndex":-1,"groupId":"Class","categoryIndex":69,"sectionId":"gen","categoryId":"editor","status":"published","title":"ImageShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"INDENT-var","prev":"ImageShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ImageShapeUtil-class.mdx"},"INDENT-var":{"id":"INDENT-var","sectionIndex":70,"groupIndex":-1,"groupId":"Variable","categoryIndex":70,"sectionId":"gen","categoryId":"editor","status":"published","title":"INDENT","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isAnimated-function-1","prev":"ImageShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/INDENT-var.mdx"},"isAnimated-function-1":{"id":"isAnimated-function-1","sectionIndex":71,"groupIndex":-1,"groupId":"Function","categoryIndex":71,"sectionId":"gen","categoryId":"editor","status":"published","title":"isAnimated","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isGIF-function-1","prev":"INDENT-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isAnimated-function-1.mdx"},"isGIF-function-1":{"id":"isGIF-function-1","sectionIndex":72,"groupIndex":-1,"groupId":"Function","categoryIndex":72,"sectionId":"gen","categoryId":"editor","status":"published","title":"isGIF","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isImage-var","prev":"isAnimated-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isGIF-function-1.mdx"},"isImage-var":{"id":"isImage-var","sectionIndex":73,"groupIndex":-1,"groupId":"Variable","categoryIndex":73,"sectionId":"gen","categoryId":"editor","status":"published","title":"isImage","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isSerializable-function-1","prev":"isGIF-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isImage-var.mdx"},"isSerializable-function-1":{"id":"isSerializable-function-1","sectionIndex":74,"groupIndex":-1,"groupId":"Function","categoryIndex":74,"sectionId":"gen","categoryId":"editor","status":"published","title":"isSerializable","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isSvgText-var","prev":"isImage-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isSerializable-function-1.mdx"},"isSvgText-var":{"id":"isSvgText-var","sectionIndex":75,"groupIndex":-1,"groupId":"Variable","categoryIndex":75,"sectionId":"gen","categoryId":"editor","status":"published","title":"isSvgText","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isValidHttpURL-var","prev":"isSerializable-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isSvgText-var.mdx"},"isValidHttpURL-var":{"id":"isValidHttpURL-var","sectionIndex":76,"groupIndex":-1,"groupId":"Variable","categoryIndex":76,"sectionId":"gen","categoryId":"editor","status":"published","title":"isValidHttpURL","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isValidUrl-function-1","prev":"isSvgText-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isValidHttpURL-var.mdx"},"isValidUrl-function-1":{"id":"isValidUrl-function-1","sectionIndex":77,"groupIndex":-1,"groupId":"Function","categoryIndex":77,"sectionId":"gen","categoryId":"editor","status":"published","title":"isValidUrl","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LineShape-var","prev":"isValidHttpURL-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isValidUrl-function-1.mdx"},"LineShape-var":{"id":"LineShape-var","sectionIndex":78,"groupIndex":-1,"groupId":"Variable","categoryIndex":78,"sectionId":"gen","categoryId":"editor","status":"published","title":"LineShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LineShapeUtil-class","prev":"isValidUrl-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LineShape-var.mdx"},"LineShapeUtil-class":{"id":"LineShapeUtil-class","sectionIndex":79,"groupIndex":-1,"groupId":"Class","categoryIndex":79,"sectionId":"gen","categoryId":"editor","status":"published","title":"LineShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LoadingScreen-function-1","prev":"LineShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LineShapeUtil-class.mdx"},"LoadingScreen-function-1":{"id":"LoadingScreen-function-1","sectionIndex":80,"groupIndex":-1,"groupId":"Function","categoryIndex":80,"sectionId":"gen","categoryId":"editor","status":"published","title":"LoadingScreen","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"loadSessionStateSnapshotIntoStore-function-1","prev":"LineShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LoadingScreen-function-1.mdx"},"loadSessionStateSnapshotIntoStore-function-1":{"id":"loadSessionStateSnapshotIntoStore-function-1","sectionIndex":81,"groupIndex":-1,"groupId":"Function","categoryIndex":81,"sectionId":"gen","categoryId":"editor","status":"published","title":"loadSessionStateSnapshotIntoStore","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"loopToHtmlElement-function-1","prev":"LoadingScreen-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/loadSessionStateSnapshotIntoStore-function-1.mdx"},"loopToHtmlElement-function-1":{"id":"loopToHtmlElement-function-1","sectionIndex":82,"groupIndex":-1,"groupId":"Function","categoryIndex":82,"sectionId":"gen","categoryId":"editor","status":"published","title":"loopToHtmlElement","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"matchEmbedUrl-function-1","prev":"loadSessionStateSnapshotIntoStore-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/loopToHtmlElement-function-1.mdx"},"matchEmbedUrl-function-1":{"id":"matchEmbedUrl-function-1","sectionIndex":83,"groupIndex":-1,"groupId":"Function","categoryIndex":83,"sectionId":"gen","categoryId":"editor","status":"published","title":"matchEmbedUrl","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"matchUrl-function-1","prev":"loopToHtmlElement-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/matchEmbedUrl-function-1.mdx"},"matchUrl-function-1":{"id":"matchUrl-function-1","sectionIndex":84,"groupIndex":-1,"groupId":"Function","categoryIndex":84,"sectionId":"gen","categoryId":"editor","status":"published","title":"matchUrl","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"normalizeWheel-function-1","prev":"matchEmbedUrl-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/matchUrl-function-1.mdx"},"normalizeWheel-function-1":{"id":"normalizeWheel-function-1","sectionIndex":85,"groupIndex":-1,"groupId":"Function","categoryIndex":85,"sectionId":"gen","categoryId":"editor","status":"published","title":"normalizeWheel","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"NoteShape-var","prev":"matchUrl-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/normalizeWheel-function-1.mdx"},"NoteShape-var":{"id":"NoteShape-var","sectionIndex":86,"groupIndex":-1,"groupId":"Variable","categoryIndex":86,"sectionId":"gen","categoryId":"editor","status":"published","title":"NoteShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"NoteShapeUtil-class","prev":"normalizeWheel-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/NoteShape-var.mdx"},"NoteShapeUtil-class":{"id":"NoteShapeUtil-class","sectionIndex":87,"groupIndex":-1,"groupId":"Class","categoryIndex":87,"sectionId":"gen","categoryId":"editor","status":"published","title":"NoteShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"openWindow-function-1","prev":"NoteShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/NoteShapeUtil-class.mdx"},"openWindow-function-1":{"id":"openWindow-function-1","sectionIndex":88,"groupIndex":-1,"groupId":"Function","categoryIndex":88,"sectionId":"gen","categoryId":"editor","status":"published","title":"openWindow","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"PlopManager-class","prev":"NoteShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/openWindow-function-1.mdx"},"PlopManager-class":{"id":"PlopManager-class","sectionIndex":89,"groupIndex":-1,"groupId":"Class","categoryIndex":89,"sectionId":"gen","categoryId":"editor","status":"published","title":"PlopManager","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"preventDefault-function-1","prev":"openWindow-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/PlopManager-class.mdx"},"preventDefault-function-1":{"id":"preventDefault-function-1","sectionIndex":90,"groupIndex":-1,"groupId":"Function","categoryIndex":90,"sectionId":"gen","categoryId":"editor","status":"published","title":"preventDefault","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ReadonlySharedStyleMap-class","prev":"PlopManager-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/preventDefault-function-1.mdx"},"ReadonlySharedStyleMap-class":{"id":"ReadonlySharedStyleMap-class","sectionIndex":91,"groupIndex":-1,"groupId":"Class","categoryIndex":91,"sectionId":"gen","categoryId":"editor","status":"published","title":"ReadonlySharedStyleMap","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"refreshPage-function-1","prev":"preventDefault-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ReadonlySharedStyleMap-class.mdx"},"refreshPage-function-1":{"id":"refreshPage-function-1","sectionIndex":92,"groupIndex":-1,"groupId":"Function","categoryIndex":92,"sectionId":"gen","categoryId":"editor","status":"published","title":"refreshPage","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"releasePointerCapture-function-1","prev":"ReadonlySharedStyleMap-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/refreshPage-function-1.mdx"},"releasePointerCapture-function-1":{"id":"releasePointerCapture-function-1","sectionIndex":93,"groupIndex":-1,"groupId":"Function","categoryIndex":93,"sectionId":"gen","categoryId":"editor","status":"published","title":"releasePointerCapture","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"RequiredKeys-type","prev":"refreshPage-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/releasePointerCapture-function-1.mdx"},"RequiredKeys-type":{"id":"RequiredKeys-type","sectionIndex":94,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":94,"sectionId":"gen","categoryId":"editor","status":"published","title":"RequiredKeys","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"runtime-var","prev":"releasePointerCapture-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/RequiredKeys-type.mdx"},"runtime-var":{"id":"runtime-var","sectionIndex":95,"groupIndex":-1,"groupId":"Variable","categoryIndex":95,"sectionId":"gen","categoryId":"editor","status":"published","title":"runtime","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"setPointerCapture-function-1","prev":"RequiredKeys-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/runtime-var.mdx"},"setPointerCapture-function-1":{"id":"setPointerCapture-function-1","sectionIndex":96,"groupIndex":-1,"groupId":"Function","categoryIndex":96,"sectionId":"gen","categoryId":"editor","status":"published","title":"setPointerCapture","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"setRuntimeOverrides-function-1","prev":"runtime-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/setPointerCapture-function-1.mdx"},"setRuntimeOverrides-function-1":{"id":"setRuntimeOverrides-function-1","sectionIndex":97,"groupIndex":-1,"groupId":"Function","categoryIndex":97,"sectionId":"gen","categoryId":"editor","status":"published","title":"setRuntimeOverrides","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"setUserPreferences-function-1","prev":"setPointerCapture-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/setRuntimeOverrides-function-1.mdx"},"setUserPreferences-function-1":{"id":"setUserPreferences-function-1","sectionIndex":98,"groupIndex":-1,"groupId":"Function","categoryIndex":98,"sectionId":"gen","categoryId":"editor","status":"published","title":"setUserPreferences","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ShapeUtil-class","prev":"setRuntimeOverrides-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/setUserPreferences-function-1.mdx"},"ShapeUtil-class":{"id":"ShapeUtil-class","sectionIndex":99,"groupIndex":-1,"groupId":"Class","categoryIndex":99,"sectionId":"gen","categoryId":"editor","status":"published","title":"ShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SharedStyle-type","prev":"setUserPreferences-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ShapeUtil-class.mdx"},"SharedStyle-type":{"id":"SharedStyle-type","sectionIndex":100,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":100,"sectionId":"gen","categoryId":"editor","status":"published","title":"SharedStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"snapToGrid-function-1","prev":"ShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SharedStyle-type.mdx"},"snapToGrid-function-1":{"id":"snapToGrid-function-1","sectionIndex":101,"groupIndex":-1,"groupId":"Function","categoryIndex":101,"sectionId":"gen","categoryId":"editor","status":"published","title":"snapToGrid","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StateNode-class","prev":"SharedStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/snapToGrid-function-1.mdx"},"StateNode-class":{"id":"StateNode-class","sectionIndex":102,"groupIndex":-1,"groupId":"Class","categoryIndex":102,"sectionId":"gen","categoryId":"editor","status":"published","title":"StateNode","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SVGContainer-function-1","prev":"snapToGrid-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StateNode-class.mdx"},"SVGContainer-function-1":{"id":"SVGContainer-function-1","sectionIndex":103,"groupIndex":-1,"groupId":"Function","categoryIndex":103,"sectionId":"gen","categoryId":"editor","status":"published","title":"SVGContainer","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SVGContainerProps-type","prev":"StateNode-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SVGContainer-function-1.mdx"},"SVGContainerProps-type":{"id":"SVGContainerProps-type","sectionIndex":104,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":104,"sectionId":"gen","categoryId":"editor","status":"published","title":"SVGContainerProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TAB_ID-var","prev":"SVGContainer-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SVGContainerProps-type.mdx"},"TAB_ID-var":{"id":"TAB_ID-var","sectionIndex":105,"groupIndex":-1,"groupId":"Variable","categoryIndex":105,"sectionId":"gen","categoryId":"editor","status":"published","title":"TAB_ID","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TextShape-var","prev":"SVGContainerProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TAB_ID-var.mdx"},"TextShape-var":{"id":"TextShape-var","sectionIndex":106,"groupIndex":-1,"groupId":"Variable","categoryIndex":106,"sectionId":"gen","categoryId":"editor","status":"published","title":"TextShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TextShapeUtil-class","prev":"TAB_ID-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TextShape-var.mdx"},"TextShapeUtil-class":{"id":"TextShapeUtil-class","sectionIndex":107,"groupIndex":-1,"groupId":"Class","categoryIndex":107,"sectionId":"gen","categoryId":"editor","status":"published","title":"TextShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLAnimationOptions-type","prev":"TextShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TextShapeUtil-class.mdx"},"TLAnimationOptions-type":{"id":"TLAnimationOptions-type","sectionIndex":108,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":108,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLAnimationOptions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLBaseBoxShape-type","prev":"TextShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLAnimationOptions-type.mdx"},"TLBaseBoxShape-type":{"id":"TLBaseBoxShape-type","sectionIndex":109,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":109,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLBaseBoxShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLBaseEventInfo-interface","prev":"TLAnimationOptions-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLBaseBoxShape-type.mdx"},"TLBaseEventInfo-interface":{"id":"TLBaseEventInfo-interface","sectionIndex":110,"groupIndex":-1,"groupId":"Interface","categoryIndex":110,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLBaseEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCancelEvent-type","prev":"TLBaseBoxShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLBaseEventInfo-interface.mdx"},"TLCancelEvent-type":{"id":"TLCancelEvent-type","sectionIndex":111,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":111,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCancelEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCancelEventInfo-type","prev":"TLBaseEventInfo-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCancelEvent-type.mdx"},"TLCancelEventInfo-type":{"id":"TLCancelEventInfo-type","sectionIndex":112,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":112,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCancelEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLClickEvent-type","prev":"TLCancelEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCancelEventInfo-type.mdx"},"TLClickEvent-type":{"id":"TLClickEvent-type","sectionIndex":113,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":113,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLClickEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLClickEventInfo-type","prev":"TLCancelEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLClickEvent-type.mdx"},"TLClickEventInfo-type":{"id":"TLClickEventInfo-type","sectionIndex":114,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":114,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLClickEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCLickEventName-type","prev":"TLClickEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLClickEventInfo-type.mdx"},"TLCLickEventName-type":{"id":"TLCLickEventName-type","sectionIndex":115,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":115,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCLickEventName","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCommand-type","prev":"TLClickEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCLickEventName-type.mdx"},"TLCommand-type":{"id":"TLCommand-type","sectionIndex":116,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":116,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCommand","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCommandHandler-type","prev":"TLCLickEventName-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCommand-type.mdx"},"TLCommandHandler-type":{"id":"TLCommandHandler-type","sectionIndex":117,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":117,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCommandHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCompleteEvent-type","prev":"TLCommand-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCommandHandler-type.mdx"},"TLCompleteEvent-type":{"id":"TLCompleteEvent-type","sectionIndex":118,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":118,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCompleteEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCompleteEventInfo-type","prev":"TLCommandHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCompleteEvent-type.mdx"},"TLCompleteEventInfo-type":{"id":"TLCompleteEventInfo-type","sectionIndex":119,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":119,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCompleteEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLContent-interface","prev":"TLCompleteEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCompleteEventInfo-type.mdx"},"TLContent-interface":{"id":"TLContent-interface","sectionIndex":120,"groupIndex":-1,"groupId":"Interface","categoryIndex":120,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLContent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCopyType-type","prev":"TLCompleteEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLContent-interface.mdx"},"TLCopyType-type":{"id":"TLCopyType-type","sectionIndex":121,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":121,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLCopyType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawEditor-var","prev":"TLContent-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCopyType-type.mdx"},"TldrawEditor-var":{"id":"TldrawEditor-var","sectionIndex":122,"groupIndex":-1,"groupId":"Variable","categoryIndex":122,"sectionId":"gen","categoryId":"editor","status":"published","title":"TldrawEditor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawEditorProps-type","prev":"TLCopyType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawEditor-var.mdx"},"TldrawEditorProps-type":{"id":"TldrawEditorProps-type","sectionIndex":123,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":123,"sectionId":"gen","categoryId":"editor","status":"published","title":"TldrawEditorProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEditorAssetUrls-type","prev":"TldrawEditor-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawEditorProps-type.mdx"},"TLEditorAssetUrls-type":{"id":"TLEditorAssetUrls-type","sectionIndex":124,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":124,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEditorAssetUrls","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEditorComponents-interface","prev":"TldrawEditorProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEditorAssetUrls-type.mdx"},"TLEditorComponents-interface":{"id":"TLEditorComponents-interface","sectionIndex":125,"groupIndex":-1,"groupId":"Interface","categoryIndex":125,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEditorComponents","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEditorOptions-interface","prev":"TLEditorAssetUrls-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEditorComponents-interface.mdx"},"TLEditorOptions-interface":{"id":"TLEditorOptions-interface","sectionIndex":126,"groupIndex":-1,"groupId":"Interface","categoryIndex":126,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEditorOptions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEmbedResult-type","prev":"TLEditorComponents-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEditorOptions-interface.mdx"},"TLEmbedResult-type":{"id":"TLEmbedResult-type","sectionIndex":127,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":127,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEmbedResult","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEnterEventHandler-type","prev":"TLEditorOptions-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEmbedResult-type.mdx"},"TLEnterEventHandler-type":{"id":"TLEnterEventHandler-type","sectionIndex":128,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":128,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEnterEventHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLErrorBoundaryProps-interface","prev":"TLEmbedResult-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEnterEventHandler-type.mdx"},"TLErrorBoundaryProps-interface":{"id":"TLErrorBoundaryProps-interface","sectionIndex":129,"groupIndex":-1,"groupId":"Interface","categoryIndex":129,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLErrorBoundaryProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEventHandlers-interface","prev":"TLEnterEventHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLErrorBoundaryProps-interface.mdx"},"TLEventHandlers-interface":{"id":"TLEventHandlers-interface","sectionIndex":130,"groupIndex":-1,"groupId":"Interface","categoryIndex":130,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEventHandlers","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEventInfo-type","prev":"TLErrorBoundaryProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEventHandlers-interface.mdx"},"TLEventInfo-type":{"id":"TLEventInfo-type","sectionIndex":131,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":131,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEventMap-interface","prev":"TLEventHandlers-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEventInfo-type.mdx"},"TLEventMap-interface":{"id":"TLEventMap-interface","sectionIndex":132,"groupIndex":-1,"groupId":"Interface","categoryIndex":132,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEventMap","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEventMapHandler-type","prev":"TLEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEventMap-interface.mdx"},"TLEventMapHandler-type":{"id":"TLEventMapHandler-type","sectionIndex":133,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":133,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEventMapHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEventName-type","prev":"TLEventMap-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEventMapHandler-type.mdx"},"TLEventName-type":{"id":"TLEventName-type","sectionIndex":134,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":134,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLEventName","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLExitEventHandler-type","prev":"TLEventMapHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEventName-type.mdx"},"TLExitEventHandler-type":{"id":"TLExitEventHandler-type","sectionIndex":135,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":135,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLExitEventHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLExportType-type","prev":"TLEventName-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLExitEventHandler-type.mdx"},"TLExportType-type":{"id":"TLExportType-type","sectionIndex":136,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":136,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLExportType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLExternalContent-type","prev":"TLExitEventHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLExportType-type.mdx"},"TLExternalContent-type":{"id":"TLExternalContent-type","sectionIndex":137,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":137,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLExternalContent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLHistoryEntry-type","prev":"TLExportType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLExternalContent-type.mdx"},"TLHistoryEntry-type":{"id":"TLHistoryEntry-type","sectionIndex":138,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":138,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLHistoryEntry","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLHistoryMark-type","prev":"TLExternalContent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLHistoryEntry-type.mdx"},"TLHistoryMark-type":{"id":"TLHistoryMark-type","sectionIndex":139,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":139,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLHistoryMark","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLInterruptEvent-type","prev":"TLHistoryEntry-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLHistoryMark-type.mdx"},"TLInterruptEvent-type":{"id":"TLInterruptEvent-type","sectionIndex":140,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":140,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLInterruptEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLInterruptEventInfo-type","prev":"TLHistoryMark-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLInterruptEvent-type.mdx"},"TLInterruptEventInfo-type":{"id":"TLInterruptEventInfo-type","sectionIndex":141,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":141,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLInterruptEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLKeyboardEvent-type","prev":"TLInterruptEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLInterruptEventInfo-type.mdx"},"TLKeyboardEvent-type":{"id":"TLKeyboardEvent-type","sectionIndex":142,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":142,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLKeyboardEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLKeyboardEventInfo-type","prev":"TLInterruptEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLKeyboardEvent-type.mdx"},"TLKeyboardEventInfo-type":{"id":"TLKeyboardEventInfo-type","sectionIndex":143,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":143,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLKeyboardEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLKeyboardEventName-type","prev":"TLKeyboardEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLKeyboardEventInfo-type.mdx"},"TLKeyboardEventName-type":{"id":"TLKeyboardEventName-type","sectionIndex":144,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":144,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLKeyboardEventName","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnBeforeCreateHandler-type","prev":"TLKeyboardEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLKeyboardEventName-type.mdx"},"TLOnBeforeCreateHandler-type":{"id":"TLOnBeforeCreateHandler-type","sectionIndex":145,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":145,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnBeforeCreateHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnBeforeUpdateHandler-type","prev":"TLKeyboardEventName-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnBeforeCreateHandler-type.mdx"},"TLOnBeforeUpdateHandler-type":{"id":"TLOnBeforeUpdateHandler-type","sectionIndex":146,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":146,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnBeforeUpdateHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnChildrenChangeHandler-type","prev":"TLOnBeforeCreateHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnBeforeUpdateHandler-type.mdx"},"TLOnChildrenChangeHandler-type":{"id":"TLOnChildrenChangeHandler-type","sectionIndex":147,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":147,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnChildrenChangeHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnClickHandler-type","prev":"TLOnBeforeUpdateHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnChildrenChangeHandler-type.mdx"},"TLOnClickHandler-type":{"id":"TLOnClickHandler-type","sectionIndex":148,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":148,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnClickHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnDoubleClickHandleHandler-type","prev":"TLOnChildrenChangeHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnClickHandler-type.mdx"},"TLOnDoubleClickHandleHandler-type":{"id":"TLOnDoubleClickHandleHandler-type","sectionIndex":149,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":149,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnDoubleClickHandleHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnDoubleClickHandler-type","prev":"TLOnClickHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnDoubleClickHandleHandler-type.mdx"},"TLOnDoubleClickHandler-type":{"id":"TLOnDoubleClickHandler-type","sectionIndex":150,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":150,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnDoubleClickHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnDragHandler-type","prev":"TLOnDoubleClickHandleHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnDoubleClickHandler-type.mdx"},"TLOnDragHandler-type":{"id":"TLOnDragHandler-type","sectionIndex":151,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":151,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnDragHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnEditEndHandler-type","prev":"TLOnDoubleClickHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnDragHandler-type.mdx"},"TLOnEditEndHandler-type":{"id":"TLOnEditEndHandler-type","sectionIndex":152,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":152,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnEditEndHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnHandleChangeHandler-type","prev":"TLOnDragHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnEditEndHandler-type.mdx"},"TLOnHandleChangeHandler-type":{"id":"TLOnHandleChangeHandler-type","sectionIndex":153,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":153,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnHandleChangeHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnResizeEndHandler-type","prev":"TLOnEditEndHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnHandleChangeHandler-type.mdx"},"TLOnResizeEndHandler-type":{"id":"TLOnResizeEndHandler-type","sectionIndex":154,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":154,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnResizeEndHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnResizeHandler-type","prev":"TLOnHandleChangeHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnResizeEndHandler-type.mdx"},"TLOnResizeHandler-type":{"id":"TLOnResizeHandler-type","sectionIndex":155,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":155,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnResizeHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnResizeStartHandler-type","prev":"TLOnResizeEndHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnResizeHandler-type.mdx"},"TLOnResizeStartHandler-type":{"id":"TLOnResizeStartHandler-type","sectionIndex":156,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":156,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnResizeStartHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnRotateEndHandler-type","prev":"TLOnResizeHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnResizeStartHandler-type.mdx"},"TLOnRotateEndHandler-type":{"id":"TLOnRotateEndHandler-type","sectionIndex":157,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":157,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnRotateEndHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnRotateHandler-type","prev":"TLOnResizeStartHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnRotateEndHandler-type.mdx"},"TLOnRotateHandler-type":{"id":"TLOnRotateHandler-type","sectionIndex":158,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":158,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnRotateHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnRotateStartHandler-type","prev":"TLOnRotateEndHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnRotateHandler-type.mdx"},"TLOnRotateStartHandler-type":{"id":"TLOnRotateStartHandler-type","sectionIndex":159,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":159,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnRotateStartHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnTranslateEndHandler-type","prev":"TLOnRotateHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnRotateStartHandler-type.mdx"},"TLOnTranslateEndHandler-type":{"id":"TLOnTranslateEndHandler-type","sectionIndex":160,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":160,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnTranslateEndHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnTranslateHandler-type","prev":"TLOnRotateStartHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnTranslateEndHandler-type.mdx"},"TLOnTranslateHandler-type":{"id":"TLOnTranslateHandler-type","sectionIndex":161,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":161,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnTranslateHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOnTranslateStartHandler-type","prev":"TLOnTranslateEndHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnTranslateHandler-type.mdx"},"TLOnTranslateStartHandler-type":{"id":"TLOnTranslateStartHandler-type","sectionIndex":162,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":162,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLOnTranslateStartHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPinchEvent-type","prev":"TLOnTranslateHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOnTranslateStartHandler-type.mdx"},"TLPinchEvent-type":{"id":"TLPinchEvent-type","sectionIndex":163,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":163,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPinchEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPinchEventInfo-type","prev":"TLOnTranslateStartHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPinchEvent-type.mdx"},"TLPinchEventInfo-type":{"id":"TLPinchEventInfo-type","sectionIndex":164,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":164,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPinchEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPinchEventName-type","prev":"TLPinchEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPinchEventInfo-type.mdx"},"TLPinchEventName-type":{"id":"TLPinchEventName-type","sectionIndex":165,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":165,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPinchEventName","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPointerEvent-type","prev":"TLPinchEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPinchEventName-type.mdx"},"TLPointerEvent-type":{"id":"TLPointerEvent-type","sectionIndex":166,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":166,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPointerEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPointerEventInfo-type","prev":"TLPinchEventName-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPointerEvent-type.mdx"},"TLPointerEventInfo-type":{"id":"TLPointerEventInfo-type","sectionIndex":167,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":167,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPointerEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPointerEventName-type","prev":"TLPointerEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPointerEventInfo-type.mdx"},"TLPointerEventName-type":{"id":"TLPointerEventName-type","sectionIndex":168,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":168,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPointerEventName","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPointerEventTarget-type","prev":"TLPointerEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPointerEventName-type.mdx"},"TLPointerEventTarget-type":{"id":"TLPointerEventTarget-type","sectionIndex":169,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":169,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLPointerEventTarget","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLResizeHandle-type","prev":"TLPointerEventName-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPointerEventTarget-type.mdx"},"TLResizeHandle-type":{"id":"TLResizeHandle-type","sectionIndex":170,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":170,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLResizeHandle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLResizeInfo-type","prev":"TLPointerEventTarget-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLResizeHandle-type.mdx"},"TLResizeInfo-type":{"id":"TLResizeInfo-type","sectionIndex":171,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":171,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLResizeInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLResizeMode-type","prev":"TLResizeHandle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLResizeInfo-type.mdx"},"TLResizeMode-type":{"id":"TLResizeMode-type","sectionIndex":172,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":172,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLResizeMode","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLSelectionHandle-type","prev":"TLResizeInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLResizeMode-type.mdx"},"TLSelectionHandle-type":{"id":"TLSelectionHandle-type","sectionIndex":173,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":173,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLSelectionHandle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLSessionStateSnapshot-interface","prev":"TLResizeMode-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLSelectionHandle-type.mdx"},"TLSessionStateSnapshot-interface":{"id":"TLSessionStateSnapshot-interface","sectionIndex":174,"groupIndex":-1,"groupId":"Interface","categoryIndex":174,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLSessionStateSnapshot","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapeInfo-type","prev":"TLSelectionHandle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLSessionStateSnapshot-interface.mdx"},"TLShapeInfo-type":{"id":"TLShapeInfo-type","sectionIndex":175,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":175,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLShapeInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapeUtilConstructor-interface","prev":"TLSessionStateSnapshot-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapeInfo-type.mdx"},"TLShapeUtilConstructor-interface":{"id":"TLShapeUtilConstructor-interface","sectionIndex":176,"groupIndex":-1,"groupId":"Interface","categoryIndex":176,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLShapeUtilConstructor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapeUtilFlag-type","prev":"TLShapeInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapeUtilConstructor-interface.mdx"},"TLShapeUtilFlag-type":{"id":"TLShapeUtilFlag-type","sectionIndex":177,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":177,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLShapeUtilFlag","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStateNodeConstructor-interface","prev":"TLShapeUtilConstructor-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapeUtilFlag-type.mdx"},"TLStateNodeConstructor-interface":{"id":"TLStateNodeConstructor-interface","sectionIndex":178,"groupIndex":-1,"groupId":"Interface","categoryIndex":178,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLStateNodeConstructor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStoreEventInfo-type","prev":"TLShapeUtilFlag-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStateNodeConstructor-interface.mdx"},"TLStoreEventInfo-type":{"id":"TLStoreEventInfo-type","sectionIndex":179,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":179,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLStoreEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStoreOptions-type","prev":"TLStateNodeConstructor-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStoreEventInfo-type.mdx"},"TLStoreOptions-type":{"id":"TLStoreOptions-type","sectionIndex":180,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":180,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLStoreOptions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStoreWithStatus-type","prev":"TLStoreEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStoreOptions-type.mdx"},"TLStoreWithStatus-type":{"id":"TLStoreWithStatus-type","sectionIndex":181,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":181,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLStoreWithStatus","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLTickEvent-type","prev":"TLStoreOptions-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStoreWithStatus-type.mdx"},"TLTickEvent-type":{"id":"TLTickEvent-type","sectionIndex":182,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":182,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLTickEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUserPreferences-interface","prev":"TLStoreWithStatus-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLTickEvent-type.mdx"},"TLUserPreferences-interface":{"id":"TLUserPreferences-interface","sectionIndex":183,"groupIndex":-1,"groupId":"Interface","categoryIndex":183,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLUserPreferences","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLWheelEvent-type","prev":"TLTickEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUserPreferences-interface.mdx"},"TLWheelEvent-type":{"id":"TLWheelEvent-type","sectionIndex":184,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":184,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLWheelEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLWheelEventInfo-type","prev":"TLUserPreferences-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLWheelEvent-type.mdx"},"TLWheelEventInfo-type":{"id":"TLWheelEventInfo-type","sectionIndex":185,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":185,"sectionId":"gen","categoryId":"editor","status":"published","title":"TLWheelEventInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"truncateStringWithEllipsis-var","prev":"TLWheelEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLWheelEventInfo-type.mdx"},"truncateStringWithEllipsis-var":{"id":"truncateStringWithEllipsis-var","sectionIndex":186,"groupIndex":-1,"groupId":"Variable","categoryIndex":186,"sectionId":"gen","categoryId":"editor","status":"published","title":"truncateStringWithEllipsis","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"UiEvent-type","prev":"TLWheelEventInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/truncateStringWithEllipsis-var.mdx"},"UiEvent-type":{"id":"UiEvent-type","sectionIndex":187,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":187,"sectionId":"gen","categoryId":"editor","status":"published","title":"UiEvent","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"UiEventType-type","prev":"truncateStringWithEllipsis-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/UiEvent-type.mdx"},"UiEventType-type":{"id":"UiEventType-type","sectionIndex":188,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":188,"sectionId":"gen","categoryId":"editor","status":"published","title":"UiEventType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"uniqueId-function-1","prev":"UiEvent-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/UiEventType-type.mdx"},"uniqueId-function-1":{"id":"uniqueId-function-1","sectionIndex":189,"groupIndex":-1,"groupId":"Function","categoryIndex":189,"sectionId":"gen","categoryId":"editor","status":"published","title":"uniqueId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useContainer-function-1","prev":"UiEventType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/uniqueId-function-1.mdx"},"useContainer-function-1":{"id":"useContainer-function-1","sectionIndex":190,"groupIndex":-1,"groupId":"Function","categoryIndex":190,"sectionId":"gen","categoryId":"editor","status":"published","title":"useContainer","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useEditor-var","prev":"uniqueId-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useContainer-function-1.mdx"},"useEditor-var":{"id":"useEditor-var","sectionIndex":191,"groupIndex":-1,"groupId":"Variable","categoryIndex":191,"sectionId":"gen","categoryId":"editor","status":"published","title":"useEditor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"usePrefersReducedMotion-function-1","prev":"useContainer-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useEditor-var.mdx"},"usePrefersReducedMotion-function-1":{"id":"usePrefersReducedMotion-function-1","sectionIndex":192,"groupIndex":-1,"groupId":"Function","categoryIndex":192,"sectionId":"gen","categoryId":"editor","status":"published","title":"usePrefersReducedMotion","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useTLStore-function-1","prev":"useEditor-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/usePrefersReducedMotion-function-1.mdx"},"useTLStore-function-1":{"id":"useTLStore-function-1","sectionIndex":193,"groupIndex":-1,"groupId":"Function","categoryIndex":193,"sectionId":"gen","categoryId":"editor","status":"published","title":"useTLStore","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"VideoShape-var","prev":"usePrefersReducedMotion-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useTLStore-function-1.mdx"},"VideoShape-var":{"id":"VideoShape-var","sectionIndex":194,"groupIndex":-1,"groupId":"Variable","categoryIndex":194,"sectionId":"gen","categoryId":"editor","status":"published","title":"VideoShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"VideoShapeUtil-class","prev":"useTLStore-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/VideoShape-var.mdx"},"VideoShapeUtil-class":{"id":"VideoShapeUtil-class","sectionIndex":195,"groupIndex":-1,"groupId":"Class","categoryIndex":195,"sectionId":"gen","categoryId":"editor","status":"published","title":"VideoShapeUtil","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"WeakMapCache-class","prev":"VideoShape-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/VideoShapeUtil-class.mdx"},"WeakMapCache-class":{"id":"WeakMapCache-class","sectionIndex":196,"groupIndex":-1,"groupId":"Class","categoryIndex":196,"sectionId":"gen","categoryId":"editor","status":"published","title":"WeakMapCache","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":"VideoShapeUtil-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/WeakMapCache-class.mdx"},"isV1File-function-1":{"id":"isV1File-function-1","sectionIndex":197,"groupIndex":-1,"groupId":"Function","categoryIndex":0,"sectionId":"gen","categoryId":"file-format","status":"published","title":"isV1File","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"parseTldrawJsonFile-function-1","prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isV1File-function-1.mdx"},"parseTldrawJsonFile-function-1":{"id":"parseTldrawJsonFile-function-1","sectionIndex":198,"groupIndex":-1,"groupId":"Function","categoryIndex":1,"sectionId":"gen","categoryId":"file-format","status":"published","title":"parseTldrawJsonFile","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"serializeTldrawJson-function-1","prev":"isV1File-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/parseTldrawJsonFile-function-1.mdx"},"serializeTldrawJson-function-1":{"id":"serializeTldrawJson-function-1","sectionIndex":199,"groupIndex":-1,"groupId":"Function","categoryIndex":2,"sectionId":"gen","categoryId":"file-format","status":"published","title":"serializeTldrawJson","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"serializeTldrawJsonBlob-function-1","prev":"parseTldrawJsonFile-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/serializeTldrawJson-function-1.mdx"},"serializeTldrawJsonBlob-function-1":{"id":"serializeTldrawJsonBlob-function-1","sectionIndex":200,"groupIndex":-1,"groupId":"Function","categoryIndex":3,"sectionId":"gen","categoryId":"file-format","status":"published","title":"serializeTldrawJsonBlob","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDRAW_FILE_EXTENSION-var","prev":"serializeTldrawJson-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/serializeTldrawJsonBlob-function-1.mdx"},"TLDRAW_FILE_EXTENSION-var":{"id":"TLDRAW_FILE_EXTENSION-var","sectionIndex":201,"groupIndex":-1,"groupId":"Variable","categoryIndex":4,"sectionId":"gen","categoryId":"file-format","status":"published","title":"TLDRAW_FILE_EXTENSION","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDRAW_FILE_MIMETYPE-var","prev":"serializeTldrawJsonBlob-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDRAW_FILE_EXTENSION-var.mdx"},"TLDRAW_FILE_MIMETYPE-var":{"id":"TLDRAW_FILE_MIMETYPE-var","sectionIndex":202,"groupIndex":-1,"groupId":"Variable","categoryIndex":5,"sectionId":"gen","categoryId":"file-format","status":"published","title":"TLDRAW_FILE_MIMETYPE","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawFile-interface","prev":"TLDRAW_FILE_EXTENSION-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDRAW_FILE_MIMETYPE-var.mdx"},"TldrawFile-interface":{"id":"TldrawFile-interface","sectionIndex":203,"groupIndex":-1,"groupId":"Interface","categoryIndex":6,"sectionId":"gen","categoryId":"file-format","status":"published","title":"TldrawFile","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawFileParseError-type","prev":"TLDRAW_FILE_MIMETYPE-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawFile-interface.mdx"},"TldrawFileParseError-type":{"id":"TldrawFileParseError-type","sectionIndex":204,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":7,"sectionId":"gen","categoryId":"file-format","status":"published","title":"TldrawFileParseError","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":"TldrawFile-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawFileParseError-type.mdx"},"angleDelta-function-1":{"id":"angleDelta-function-1","sectionIndex":205,"groupIndex":-1,"groupId":"Function","categoryIndex":0,"sectionId":"gen","categoryId":"primitives","status":"published","title":"angleDelta","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"approximately-function-1","prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/angleDelta-function-1.mdx"},"approximately-function-1":{"id":"approximately-function-1","sectionIndex":206,"groupIndex":-1,"groupId":"Function","categoryIndex":1,"sectionId":"gen","categoryId":"primitives","status":"published","title":"approximately","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"areAnglesCompatible-function-1","prev":"angleDelta-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/approximately-function-1.mdx"},"areAnglesCompatible-function-1":{"id":"areAnglesCompatible-function-1","sectionIndex":207,"groupIndex":-1,"groupId":"Function","categoryIndex":2,"sectionId":"gen","categoryId":"primitives","status":"published","title":"areAnglesCompatible","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Box2d-class","prev":"approximately-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/areAnglesCompatible-function-1.mdx"},"Box2d-class":{"id":"Box2d-class","sectionIndex":208,"groupIndex":-1,"groupId":"Class","categoryIndex":3,"sectionId":"gen","categoryId":"primitives","status":"published","title":"Box2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"canolicalizeRotation-function-1","prev":"areAnglesCompatible-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Box2d-class.mdx"},"canolicalizeRotation-function-1":{"id":"canolicalizeRotation-function-1","sectionIndex":209,"groupIndex":-1,"groupId":"Function","categoryIndex":4,"sectionId":"gen","categoryId":"primitives","status":"published","title":"canolicalizeRotation","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"clamp-function-1","prev":"Box2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/canolicalizeRotation-function-1.mdx"},"clamp-function-1":{"id":"clamp-function-1","sectionIndex":210,"groupIndex":-1,"groupId":"Function","categoryIndex":5,"sectionId":"gen","categoryId":"primitives","status":"published","title":"clamp","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"clamp-function-2","prev":"canolicalizeRotation-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/clamp-function-1.mdx"},"clamp-function-2":{"id":"clamp-function-2","sectionIndex":211,"groupIndex":-1,"groupId":"Function","categoryIndex":6,"sectionId":"gen","categoryId":"primitives","status":"published","title":"clamp","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"clampRadians-function-1","prev":"clamp-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/clamp-function-2.mdx"},"clampRadians-function-1":{"id":"clampRadians-function-1","sectionIndex":212,"groupIndex":-1,"groupId":"Function","categoryIndex":7,"sectionId":"gen","categoryId":"primitives","status":"published","title":"clampRadians","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"CubicSegment2d-class","prev":"clamp-function-2","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/clampRadians-function-1.mdx"},"CubicSegment2d-class":{"id":"CubicSegment2d-class","sectionIndex":213,"groupIndex":-1,"groupId":"Class","categoryIndex":8,"sectionId":"gen","categoryId":"primitives","status":"published","title":"CubicSegment2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"CubicSegment2dModel-interface","prev":"clampRadians-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/CubicSegment2d-class.mdx"},"CubicSegment2dModel-interface":{"id":"CubicSegment2dModel-interface","sectionIndex":214,"groupIndex":-1,"groupId":"Interface","categoryIndex":9,"sectionId":"gen","categoryId":"primitives","status":"published","title":"CubicSegment2dModel","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"CubicSpline2d-class","prev":"CubicSegment2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/CubicSegment2dModel-interface.mdx"},"CubicSpline2d-class":{"id":"CubicSpline2d-class","sectionIndex":215,"groupIndex":-1,"groupId":"Class","categoryIndex":10,"sectionId":"gen","categoryId":"primitives","status":"published","title":"CubicSpline2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"decomposeMatrix2d-function-1","prev":"CubicSegment2dModel-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/CubicSpline2d-class.mdx"},"decomposeMatrix2d-function-1":{"id":"decomposeMatrix2d-function-1","sectionIndex":216,"groupIndex":-1,"groupId":"Function","categoryIndex":11,"sectionId":"gen","categoryId":"primitives","status":"published","title":"decomposeMatrix2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"degreesToRadians-function-1","prev":"CubicSpline2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/decomposeMatrix2d-function-1.mdx"},"degreesToRadians-function-1":{"id":"degreesToRadians-function-1","sectionIndex":217,"groupIndex":-1,"groupId":"Function","categoryIndex":12,"sectionId":"gen","categoryId":"primitives","status":"published","title":"degreesToRadians","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EASINGS-var","prev":"decomposeMatrix2d-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/degreesToRadians-function-1.mdx"},"EASINGS-var":{"id":"EASINGS-var","sectionIndex":218,"groupIndex":-1,"groupId":"Variable","categoryIndex":13,"sectionId":"gen","categoryId":"primitives","status":"published","title":"EASINGS","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EasingType-type","prev":"degreesToRadians-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EASINGS-var.mdx"},"EasingType-type":{"id":"EasingType-type","sectionIndex":219,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":14,"sectionId":"gen","categoryId":"primitives","status":"published","title":"EasingType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EPSILON-var","prev":"EASINGS-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EasingType-type.mdx"},"EPSILON-var":{"id":"EPSILON-var","sectionIndex":220,"groupIndex":-1,"groupId":"Variable","categoryIndex":15,"sectionId":"gen","categoryId":"primitives","status":"published","title":"EPSILON","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"flipSelectionHandleX-function-1","prev":"EasingType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EPSILON-var.mdx"},"flipSelectionHandleX-function-1":{"id":"flipSelectionHandleX-function-1","sectionIndex":221,"groupIndex":-1,"groupId":"Function","categoryIndex":16,"sectionId":"gen","categoryId":"primitives","status":"published","title":"flipSelectionHandleX","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"flipSelectionHandleY-function-1","prev":"EPSILON-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/flipSelectionHandleX-function-1.mdx"},"flipSelectionHandleY-function-1":{"id":"flipSelectionHandleY-function-1","sectionIndex":222,"groupIndex":-1,"groupId":"Function","categoryIndex":17,"sectionId":"gen","categoryId":"primitives","status":"published","title":"flipSelectionHandleY","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getArcLength-function-1","prev":"flipSelectionHandleX-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/flipSelectionHandleY-function-1.mdx"},"getArcLength-function-1":{"id":"getArcLength-function-1","sectionIndex":223,"groupIndex":-1,"groupId":"Function","categoryIndex":18,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getArcLength","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getDrawLinePathData-function-1","prev":"flipSelectionHandleY-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getArcLength-function-1.mdx"},"getDrawLinePathData-function-1":{"id":"getDrawLinePathData-function-1","sectionIndex":224,"groupIndex":-1,"groupId":"Function","categoryIndex":19,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getDrawLinePathData","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getHeight-function-1","prev":"getArcLength-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getDrawLinePathData-function-1.mdx"},"getHeight-function-1":{"id":"getHeight-function-1","sectionIndex":225,"groupIndex":-1,"groupId":"Function","categoryIndex":20,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getHeight","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMaxX-function-1","prev":"getDrawLinePathData-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getHeight-function-1.mdx"},"getMaxX-function-1":{"id":"getMaxX-function-1","sectionIndex":226,"groupIndex":-1,"groupId":"Function","categoryIndex":21,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getMaxX","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMaxY-function-1","prev":"getHeight-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMaxX-function-1.mdx"},"getMaxY-function-1":{"id":"getMaxY-function-1","sectionIndex":227,"groupIndex":-1,"groupId":"Function","categoryIndex":22,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getMaxY","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMidX-function-1","prev":"getMaxX-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMaxY-function-1.mdx"},"getMidX-function-1":{"id":"getMidX-function-1","sectionIndex":228,"groupIndex":-1,"groupId":"Function","categoryIndex":23,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getMidX","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMidY-function-1","prev":"getMaxY-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMidX-function-1.mdx"},"getMidY-function-1":{"id":"getMidY-function-1","sectionIndex":229,"groupIndex":-1,"groupId":"Function","categoryIndex":24,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getMidY","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMinX-function-1","prev":"getMidX-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMidY-function-1.mdx"},"getMinX-function-1":{"id":"getMinX-function-1","sectionIndex":230,"groupIndex":-1,"groupId":"Function","categoryIndex":25,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getMinX","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getMinY-function-1","prev":"getMidY-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMinX-function-1.mdx"},"getMinY-function-1":{"id":"getMinY-function-1","sectionIndex":231,"groupIndex":-1,"groupId":"Function","categoryIndex":26,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getMinY","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getPointOnCircle-function-1","prev":"getMinX-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getMinY-function-1.mdx"},"getPointOnCircle-function-1":{"id":"getPointOnCircle-function-1","sectionIndex":232,"groupIndex":-1,"groupId":"Function","categoryIndex":27,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getPointOnCircle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getPolygonVertices-function-1","prev":"getMinY-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getPointOnCircle-function-1.mdx"},"getPolygonVertices-function-1":{"id":"getPolygonVertices-function-1","sectionIndex":233,"groupIndex":-1,"groupId":"Function","categoryIndex":28,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getPolygonVertices","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getRoundedInkyPolygonPath-function-1","prev":"getPointOnCircle-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getPolygonVertices-function-1.mdx"},"getRoundedInkyPolygonPath-function-1":{"id":"getRoundedInkyPolygonPath-function-1","sectionIndex":234,"groupIndex":-1,"groupId":"Function","categoryIndex":29,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getRoundedInkyPolygonPath","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getRoundedPolygonPoints-function-1","prev":"getPolygonVertices-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getRoundedInkyPolygonPath-function-1.mdx"},"getRoundedPolygonPoints-function-1":{"id":"getRoundedPolygonPoints-function-1","sectionIndex":235,"groupIndex":-1,"groupId":"Function","categoryIndex":30,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getRoundedPolygonPoints","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getStarBounds-var","prev":"getRoundedInkyPolygonPath-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getRoundedPolygonPoints-function-1.mdx"},"getStarBounds-var":{"id":"getStarBounds-var","sectionIndex":236,"groupIndex":-1,"groupId":"Variable","categoryIndex":31,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getStarBounds","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getStroke-function-1","prev":"getRoundedPolygonPoints-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getStarBounds-var.mdx"},"getStroke-function-1":{"id":"getStroke-function-1","sectionIndex":237,"groupIndex":-1,"groupId":"Function","categoryIndex":32,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getStroke","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getStrokeOutlinePoints-function-1","prev":"getStarBounds-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getStroke-function-1.mdx"},"getStrokeOutlinePoints-function-1":{"id":"getStrokeOutlinePoints-function-1","sectionIndex":238,"groupIndex":-1,"groupId":"Function","categoryIndex":33,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getStrokeOutlinePoints","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getStrokePoints-function-1","prev":"getStroke-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getStrokeOutlinePoints-function-1.mdx"},"getStrokePoints-function-1":{"id":"getStrokePoints-function-1","sectionIndex":239,"groupIndex":-1,"groupId":"Function","categoryIndex":34,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getStrokePoints","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getSweep-function-1","prev":"getStrokeOutlinePoints-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getStrokePoints-function-1.mdx"},"getSweep-function-1":{"id":"getSweep-function-1","sectionIndex":240,"groupIndex":-1,"groupId":"Function","categoryIndex":35,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getSweep","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getWidth-function-1","prev":"getStrokePoints-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getSweep-function-1.mdx"},"getWidth-function-1":{"id":"getWidth-function-1","sectionIndex":241,"groupIndex":-1,"groupId":"Function","categoryIndex":36,"sectionId":"gen","categoryId":"primitives","status":"published","title":"getWidth","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectCircleCircle-function-1","prev":"getSweep-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getWidth-function-1.mdx"},"intersectCircleCircle-function-1":{"id":"intersectCircleCircle-function-1","sectionIndex":242,"groupIndex":-1,"groupId":"Function","categoryIndex":37,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectCircleCircle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectCirclePolygon-function-1","prev":"getWidth-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectCircleCircle-function-1.mdx"},"intersectCirclePolygon-function-1":{"id":"intersectCirclePolygon-function-1","sectionIndex":243,"groupIndex":-1,"groupId":"Function","categoryIndex":38,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectCirclePolygon","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectCirclePolyline-function-1","prev":"intersectCircleCircle-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectCirclePolygon-function-1.mdx"},"intersectCirclePolyline-function-1":{"id":"intersectCirclePolyline-function-1","sectionIndex":244,"groupIndex":-1,"groupId":"Function","categoryIndex":39,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectCirclePolyline","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectLineSegmentCircle-function-1","prev":"intersectCirclePolygon-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectCirclePolyline-function-1.mdx"},"intersectLineSegmentCircle-function-1":{"id":"intersectLineSegmentCircle-function-1","sectionIndex":245,"groupIndex":-1,"groupId":"Function","categoryIndex":40,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectLineSegmentCircle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectLineSegmentLineSegment-function-1","prev":"intersectCirclePolyline-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectLineSegmentCircle-function-1.mdx"},"intersectLineSegmentLineSegment-function-1":{"id":"intersectLineSegmentLineSegment-function-1","sectionIndex":246,"groupIndex":-1,"groupId":"Function","categoryIndex":41,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectLineSegmentLineSegment","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectLineSegmentPolygon-function-1","prev":"intersectLineSegmentCircle-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectLineSegmentLineSegment-function-1.mdx"},"intersectLineSegmentPolygon-function-1":{"id":"intersectLineSegmentPolygon-function-1","sectionIndex":247,"groupIndex":-1,"groupId":"Function","categoryIndex":42,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectLineSegmentPolygon","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectLineSegmentPolyline-function-1","prev":"intersectLineSegmentLineSegment-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectLineSegmentPolygon-function-1.mdx"},"intersectLineSegmentPolyline-function-1":{"id":"intersectLineSegmentPolyline-function-1","sectionIndex":248,"groupIndex":-1,"groupId":"Function","categoryIndex":43,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectLineSegmentPolyline","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectPolygonBounds-function-1","prev":"intersectLineSegmentPolygon-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectLineSegmentPolyline-function-1.mdx"},"intersectPolygonBounds-function-1":{"id":"intersectPolygonBounds-function-1","sectionIndex":249,"groupIndex":-1,"groupId":"Function","categoryIndex":44,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectPolygonBounds","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"intersectPolygonPolygon-function-1","prev":"intersectLineSegmentPolyline-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectPolygonBounds-function-1.mdx"},"intersectPolygonPolygon-function-1":{"id":"intersectPolygonPolygon-function-1","sectionIndex":250,"groupIndex":-1,"groupId":"Function","categoryIndex":45,"sectionId":"gen","categoryId":"primitives","status":"published","title":"intersectPolygonPolygon","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isAngleBetween-function-1","prev":"intersectPolygonBounds-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/intersectPolygonPolygon-function-1.mdx"},"isAngleBetween-function-1":{"id":"isAngleBetween-function-1","sectionIndex":251,"groupIndex":-1,"groupId":"Function","categoryIndex":46,"sectionId":"gen","categoryId":"primitives","status":"published","title":"isAngleBetween","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isSafeFloat-var","prev":"intersectPolygonPolygon-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isAngleBetween-function-1.mdx"},"isSafeFloat-var":{"id":"isSafeFloat-var","sectionIndex":252,"groupIndex":-1,"groupId":"Variable","categoryIndex":47,"sectionId":"gen","categoryId":"primitives","status":"published","title":"isSafeFloat","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isSelectionCorner-function-1","prev":"isAngleBetween-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isSafeFloat-var.mdx"},"isSelectionCorner-function-1":{"id":"isSelectionCorner-function-1","sectionIndex":253,"groupIndex":-1,"groupId":"Function","categoryIndex":48,"sectionId":"gen","categoryId":"primitives","status":"published","title":"isSelectionCorner","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"lerpAngles-function-1","prev":"isSafeFloat-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isSelectionCorner-function-1.mdx"},"lerpAngles-function-1":{"id":"lerpAngles-function-1","sectionIndex":254,"groupIndex":-1,"groupId":"Function","categoryIndex":49,"sectionId":"gen","categoryId":"primitives","status":"published","title":"lerpAngles","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LineSegment2d-class","prev":"isSelectionCorner-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/lerpAngles-function-1.mdx"},"LineSegment2d-class":{"id":"LineSegment2d-class","sectionIndex":255,"groupIndex":-1,"groupId":"Class","categoryIndex":50,"sectionId":"gen","categoryId":"primitives","status":"published","title":"LineSegment2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LineSegment2dModel-interface","prev":"lerpAngles-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LineSegment2d-class.mdx"},"LineSegment2dModel-interface":{"id":"LineSegment2dModel-interface","sectionIndex":256,"groupIndex":-1,"groupId":"Interface","categoryIndex":51,"sectionId":"gen","categoryId":"primitives","status":"published","title":"LineSegment2dModel","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"linesIntersect-function-1","prev":"LineSegment2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LineSegment2dModel-interface.mdx"},"linesIntersect-function-1":{"id":"linesIntersect-function-1","sectionIndex":257,"groupIndex":-1,"groupId":"Function","categoryIndex":52,"sectionId":"gen","categoryId":"primitives","status":"published","title":"linesIntersect","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"longAngleDist-function-1","prev":"LineSegment2dModel-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/linesIntersect-function-1.mdx"},"longAngleDist-function-1":{"id":"longAngleDist-function-1","sectionIndex":258,"groupIndex":-1,"groupId":"Function","categoryIndex":53,"sectionId":"gen","categoryId":"primitives","status":"published","title":"longAngleDist","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"MatLike-type","prev":"linesIntersect-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/longAngleDist-function-1.mdx"},"MatLike-type":{"id":"MatLike-type","sectionIndex":259,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":54,"sectionId":"gen","categoryId":"primitives","status":"published","title":"MatLike","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Matrix2d-class","prev":"longAngleDist-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/MatLike-type.mdx"},"Matrix2d-class":{"id":"Matrix2d-class","sectionIndex":260,"groupIndex":-1,"groupId":"Class","categoryIndex":55,"sectionId":"gen","categoryId":"primitives","status":"published","title":"Matrix2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Matrix2dModel-interface","prev":"MatLike-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Matrix2d-class.mdx"},"Matrix2dModel-interface":{"id":"Matrix2dModel-interface","sectionIndex":261,"groupIndex":-1,"groupId":"Interface","categoryIndex":56,"sectionId":"gen","categoryId":"primitives","status":"published","title":"Matrix2dModel","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"MatrixInfo-interface","prev":"Matrix2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Matrix2dModel-interface.mdx"},"MatrixInfo-interface":{"id":"MatrixInfo-interface","sectionIndex":262,"groupIndex":-1,"groupId":"Interface","categoryIndex":57,"sectionId":"gen","categoryId":"primitives","status":"published","title":"MatrixInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"perimeterOfEllipse-function-1","prev":"Matrix2dModel-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/MatrixInfo-interface.mdx"},"perimeterOfEllipse-function-1":{"id":"perimeterOfEllipse-function-1","sectionIndex":263,"groupIndex":-1,"groupId":"Function","categoryIndex":58,"sectionId":"gen","categoryId":"primitives","status":"published","title":"perimeterOfEllipse","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"PI-var","prev":"MatrixInfo-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/perimeterOfEllipse-function-1.mdx"},"PI-var":{"id":"PI-var","sectionIndex":264,"groupIndex":-1,"groupId":"Variable","categoryIndex":59,"sectionId":"gen","categoryId":"primitives","status":"published","title":"PI","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"PI2-var","prev":"perimeterOfEllipse-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/PI-var.mdx"},"PI2-var":{"id":"PI2-var","sectionIndex":265,"groupIndex":-1,"groupId":"Variable","categoryIndex":60,"sectionId":"gen","categoryId":"primitives","status":"published","title":"PI2","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointInBounds-function-1","prev":"PI-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/PI2-var.mdx"},"pointInBounds-function-1":{"id":"pointInBounds-function-1","sectionIndex":266,"groupIndex":-1,"groupId":"Function","categoryIndex":61,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointInBounds","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointInCircle-function-1","prev":"PI2-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointInBounds-function-1.mdx"},"pointInCircle-function-1":{"id":"pointInCircle-function-1","sectionIndex":267,"groupIndex":-1,"groupId":"Function","categoryIndex":62,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointInCircle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointInEllipse-function-1","prev":"pointInBounds-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointInCircle-function-1.mdx"},"pointInEllipse-function-1":{"id":"pointInEllipse-function-1","sectionIndex":268,"groupIndex":-1,"groupId":"Function","categoryIndex":63,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointInEllipse","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointInPolygon-function-1","prev":"pointInCircle-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointInEllipse-function-1.mdx"},"pointInPolygon-function-1":{"id":"pointInPolygon-function-1","sectionIndex":269,"groupIndex":-1,"groupId":"Function","categoryIndex":64,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointInPolygon","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointInPolyline-function-1","prev":"pointInEllipse-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointInPolygon-function-1.mdx"},"pointInPolyline-function-1":{"id":"pointInPolyline-function-1","sectionIndex":270,"groupIndex":-1,"groupId":"Function","categoryIndex":65,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointInPolyline","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointInRect-function-1","prev":"pointInPolygon-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointInPolyline-function-1.mdx"},"pointInRect-function-1":{"id":"pointInRect-function-1","sectionIndex":271,"groupIndex":-1,"groupId":"Function","categoryIndex":66,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointInRect","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointNearToLineSegment-function-1","prev":"pointInPolyline-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointInRect-function-1.mdx"},"pointNearToLineSegment-function-1":{"id":"pointNearToLineSegment-function-1","sectionIndex":272,"groupIndex":-1,"groupId":"Function","categoryIndex":67,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointNearToLineSegment","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"pointNearToPolyline-function-1","prev":"pointInRect-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointNearToLineSegment-function-1.mdx"},"pointNearToPolyline-function-1":{"id":"pointNearToPolyline-function-1","sectionIndex":273,"groupIndex":-1,"groupId":"Function","categoryIndex":68,"sectionId":"gen","categoryId":"primitives","status":"published","title":"pointNearToPolyline","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"polygonsIntersect-function-1","prev":"pointNearToLineSegment-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/pointNearToPolyline-function-1.mdx"},"polygonsIntersect-function-1":{"id":"polygonsIntersect-function-1","sectionIndex":274,"groupIndex":-1,"groupId":"Function","categoryIndex":69,"sectionId":"gen","categoryId":"primitives","status":"published","title":"polygonsIntersect","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Polyline2d-class","prev":"pointNearToPolyline-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/polygonsIntersect-function-1.mdx"},"Polyline2d-class":{"id":"Polyline2d-class","sectionIndex":275,"groupIndex":-1,"groupId":"Class","categoryIndex":70,"sectionId":"gen","categoryId":"primitives","status":"published","title":"Polyline2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"radiansToDegrees-function-1","prev":"polygonsIntersect-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Polyline2d-class.mdx"},"radiansToDegrees-function-1":{"id":"radiansToDegrees-function-1","sectionIndex":276,"groupIndex":-1,"groupId":"Function","categoryIndex":71,"sectionId":"gen","categoryId":"primitives","status":"published","title":"radiansToDegrees","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"rangeIntersection-function-1","prev":"Polyline2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/radiansToDegrees-function-1.mdx"},"rangeIntersection-function-1":{"id":"rangeIntersection-function-1","sectionIndex":277,"groupIndex":-1,"groupId":"Function","categoryIndex":72,"sectionId":"gen","categoryId":"primitives","status":"published","title":"rangeIntersection","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"rangesOverlap-function-1","prev":"radiansToDegrees-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/rangeIntersection-function-1.mdx"},"rangesOverlap-function-1":{"id":"rangesOverlap-function-1","sectionIndex":278,"groupIndex":-1,"groupId":"Function","categoryIndex":73,"sectionId":"gen","categoryId":"primitives","status":"published","title":"rangesOverlap","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ROTATE_CORNER_TO_SELECTION_CORNER-var","prev":"rangeIntersection-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/rangesOverlap-function-1.mdx"},"ROTATE_CORNER_TO_SELECTION_CORNER-var":{"id":"ROTATE_CORNER_TO_SELECTION_CORNER-var","sectionIndex":279,"groupIndex":-1,"groupId":"Variable","categoryIndex":74,"sectionId":"gen","categoryId":"primitives","status":"published","title":"ROTATE_CORNER_TO_SELECTION_CORNER","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"RotateCorner-type","prev":"rangesOverlap-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ROTATE_CORNER_TO_SELECTION_CORNER-var.mdx"},"RotateCorner-type":{"id":"RotateCorner-type","sectionIndex":280,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":75,"sectionId":"gen","categoryId":"primitives","status":"published","title":"RotateCorner","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"rotateSelectionHandle-function-1","prev":"ROTATE_CORNER_TO_SELECTION_CORNER-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/RotateCorner-type.mdx"},"rotateSelectionHandle-function-1":{"id":"rotateSelectionHandle-function-1","sectionIndex":281,"groupIndex":-1,"groupId":"Function","categoryIndex":76,"sectionId":"gen","categoryId":"primitives","status":"published","title":"rotateSelectionHandle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SelectionCorner-type","prev":"RotateCorner-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/rotateSelectionHandle-function-1.mdx"},"SelectionCorner-type":{"id":"SelectionCorner-type","sectionIndex":282,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":77,"sectionId":"gen","categoryId":"primitives","status":"published","title":"SelectionCorner","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SelectionEdge-type","prev":"rotateSelectionHandle-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SelectionCorner-type.mdx"},"SelectionEdge-type":{"id":"SelectionEdge-type","sectionIndex":283,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":78,"sectionId":"gen","categoryId":"primitives","status":"published","title":"SelectionEdge","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SelectionHandle-type","prev":"SelectionCorner-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SelectionEdge-type.mdx"},"SelectionHandle-type":{"id":"SelectionHandle-type","sectionIndex":284,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":79,"sectionId":"gen","categoryId":"primitives","status":"published","title":"SelectionHandle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"setStrokePointRadii-function-1","prev":"SelectionEdge-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SelectionHandle-type.mdx"},"setStrokePointRadii-function-1":{"id":"setStrokePointRadii-function-1","sectionIndex":285,"groupIndex":-1,"groupId":"Function","categoryIndex":80,"sectionId":"gen","categoryId":"primitives","status":"published","title":"setStrokePointRadii","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"shortAngleDist-function-1","prev":"SelectionHandle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/setStrokePointRadii-function-1.mdx"},"shortAngleDist-function-1":{"id":"shortAngleDist-function-1","sectionIndex":286,"groupIndex":-1,"groupId":"Function","categoryIndex":81,"sectionId":"gen","categoryId":"primitives","status":"published","title":"shortAngleDist","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"simplify-function-1","prev":"setStrokePointRadii-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/shortAngleDist-function-1.mdx"},"simplify-function-1":{"id":"simplify-function-1","sectionIndex":287,"groupIndex":-1,"groupId":"Function","categoryIndex":82,"sectionId":"gen","categoryId":"primitives","status":"published","title":"simplify","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"simplify2-function-1","prev":"shortAngleDist-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/simplify-function-1.mdx"},"simplify2-function-1":{"id":"simplify2-function-1","sectionIndex":288,"groupIndex":-1,"groupId":"Function","categoryIndex":83,"sectionId":"gen","categoryId":"primitives","status":"published","title":"simplify2","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SIN-var","prev":"simplify-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/simplify2-function-1.mdx"},"SIN-var":{"id":"SIN-var","sectionIndex":289,"groupIndex":-1,"groupId":"Variable","categoryIndex":84,"sectionId":"gen","categoryId":"primitives","status":"published","title":"SIN","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"snapAngle-function-1","prev":"simplify2-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SIN-var.mdx"},"snapAngle-function-1":{"id":"snapAngle-function-1","sectionIndex":290,"groupIndex":-1,"groupId":"Function","categoryIndex":85,"sectionId":"gen","categoryId":"primitives","status":"published","title":"snapAngle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StrokeOptions-interface","prev":"SIN-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/snapAngle-function-1.mdx"},"StrokeOptions-interface":{"id":"StrokeOptions-interface","sectionIndex":291,"groupIndex":-1,"groupId":"Interface","categoryIndex":86,"sectionId":"gen","categoryId":"primitives","status":"published","title":"StrokeOptions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StrokePoint-interface","prev":"snapAngle-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StrokeOptions-interface.mdx"},"StrokePoint-interface":{"id":"StrokePoint-interface","sectionIndex":292,"groupIndex":-1,"groupId":"Interface","categoryIndex":87,"sectionId":"gen","categoryId":"primitives","status":"published","title":"StrokePoint","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TAU-var","prev":"StrokeOptions-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StrokePoint-interface.mdx"},"TAU-var":{"id":"TAU-var","sectionIndex":293,"groupIndex":-1,"groupId":"Variable","categoryIndex":88,"sectionId":"gen","categoryId":"primitives","status":"published","title":"TAU","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"toDomPrecision-function-1","prev":"StrokePoint-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TAU-var.mdx"},"toDomPrecision-function-1":{"id":"toDomPrecision-function-1","sectionIndex":294,"groupIndex":-1,"groupId":"Function","categoryIndex":89,"sectionId":"gen","categoryId":"primitives","status":"published","title":"toDomPrecision","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"toFixed-function-1","prev":"TAU-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/toDomPrecision-function-1.mdx"},"toFixed-function-1":{"id":"toFixed-function-1","sectionIndex":295,"groupIndex":-1,"groupId":"Function","categoryIndex":90,"sectionId":"gen","categoryId":"primitives","status":"published","title":"toFixed","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"toPrecision-function-1","prev":"toDomPrecision-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/toFixed-function-1.mdx"},"toPrecision-function-1":{"id":"toPrecision-function-1","sectionIndex":296,"groupIndex":-1,"groupId":"Function","categoryIndex":91,"sectionId":"gen","categoryId":"primitives","status":"published","title":"toPrecision","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Vec2d-class","prev":"toFixed-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/toPrecision-function-1.mdx"},"Vec2d-class":{"id":"Vec2d-class","sectionIndex":297,"groupIndex":-1,"groupId":"Class","categoryIndex":92,"sectionId":"gen","categoryId":"primitives","status":"published","title":"Vec2d","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"VecLike-type","prev":"toPrecision-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Vec2d-class.mdx"},"VecLike-type":{"id":"VecLike-type","sectionIndex":298,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":93,"sectionId":"gen","categoryId":"primitives","status":"published","title":"VecLike","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":"Vec2d-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/VecLike-type.mdx"},"AllRecords-type":{"id":"AllRecords-type","sectionIndex":299,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":0,"sectionId":"gen","categoryId":"store","status":"published","title":"AllRecords","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"assertIdType-function-1","prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/AllRecords-type.mdx"},"assertIdType-function-1":{"id":"assertIdType-function-1","sectionIndex":300,"groupIndex":-1,"groupId":"Function","categoryIndex":1,"sectionId":"gen","categoryId":"store","status":"published","title":"assertIdType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"BaseRecord-interface","prev":"AllRecords-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/assertIdType-function-1.mdx"},"BaseRecord-interface":{"id":"BaseRecord-interface","sectionIndex":301,"groupIndex":-1,"groupId":"Interface","categoryIndex":2,"sectionId":"gen","categoryId":"store","status":"published","title":"BaseRecord","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"CollectionDiff-type","prev":"assertIdType-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/BaseRecord-interface.mdx"},"CollectionDiff-type":{"id":"CollectionDiff-type","sectionIndex":302,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":3,"sectionId":"gen","categoryId":"store","status":"published","title":"CollectionDiff","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"compareRecordVersions-function-1","prev":"BaseRecord-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/CollectionDiff-type.mdx"},"compareRecordVersions-function-1":{"id":"compareRecordVersions-function-1","sectionIndex":303,"groupIndex":-1,"groupId":"Function","categoryIndex":4,"sectionId":"gen","categoryId":"store","status":"published","title":"compareRecordVersions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"compareSchemas-var","prev":"CollectionDiff-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/compareRecordVersions-function-1.mdx"},"compareSchemas-var":{"id":"compareSchemas-var","sectionIndex":304,"groupIndex":-1,"groupId":"Variable","categoryIndex":5,"sectionId":"gen","categoryId":"store","status":"published","title":"compareSchemas","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ComputedCache-type","prev":"compareRecordVersions-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/compareSchemas-var.mdx"},"ComputedCache-type":{"id":"ComputedCache-type","sectionIndex":305,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":6,"sectionId":"gen","categoryId":"store","status":"published","title":"ComputedCache","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createRecordType-function-1","prev":"compareSchemas-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ComputedCache-type.mdx"},"createRecordType-function-1":{"id":"createRecordType-function-1","sectionIndex":306,"groupIndex":-1,"groupId":"Function","categoryIndex":7,"sectionId":"gen","categoryId":"store","status":"published","title":"createRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"defineMigrations-function-1","prev":"ComputedCache-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createRecordType-function-1.mdx"},"defineMigrations-function-1":{"id":"defineMigrations-function-1","sectionIndex":307,"groupIndex":-1,"groupId":"Function","categoryIndex":8,"sectionId":"gen","categoryId":"store","status":"published","title":"defineMigrations","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"devFreeze-function-1","prev":"createRecordType-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/defineMigrations-function-1.mdx"},"devFreeze-function-1":{"id":"devFreeze-function-1","sectionIndex":308,"groupIndex":-1,"groupId":"Function","categoryIndex":9,"sectionId":"gen","categoryId":"store","status":"published","title":"devFreeze","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getRecordVersion-function-1","prev":"defineMigrations-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/devFreeze-function-1.mdx"},"getRecordVersion-function-1":{"id":"getRecordVersion-function-1","sectionIndex":309,"groupIndex":-1,"groupId":"Function","categoryIndex":10,"sectionId":"gen","categoryId":"store","status":"published","title":"getRecordVersion","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"HistoryEntry-type","prev":"devFreeze-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getRecordVersion-function-1.mdx"},"HistoryEntry-type":{"id":"HistoryEntry-type","sectionIndex":310,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":11,"sectionId":"gen","categoryId":"store","status":"published","title":"HistoryEntry","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"IdOf-type","prev":"getRecordVersion-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/HistoryEntry-type.mdx"},"IdOf-type":{"id":"IdOf-type","sectionIndex":311,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":12,"sectionId":"gen","categoryId":"store","status":"published","title":"IdOf","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"migrate-function-1","prev":"HistoryEntry-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/IdOf-type.mdx"},"migrate-function-1":{"id":"migrate-function-1","sectionIndex":312,"groupIndex":-1,"groupId":"Function","categoryIndex":13,"sectionId":"gen","categoryId":"store","status":"published","title":"migrate","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"migrateRecord-function-1","prev":"IdOf-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/migrate-function-1.mdx"},"migrateRecord-function-1":{"id":"migrateRecord-function-1","sectionIndex":313,"groupIndex":-1,"groupId":"Function","categoryIndex":14,"sectionId":"gen","categoryId":"store","status":"published","title":"migrateRecord","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Migration-type","prev":"migrate-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/migrateRecord-function-1.mdx"},"Migration-type":{"id":"Migration-type","sectionIndex":314,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":15,"sectionId":"gen","categoryId":"store","status":"published","title":"Migration","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"MigrationFailureReason-enum","prev":"migrateRecord-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Migration-type.mdx"},"MigrationFailureReason-enum":{"id":"MigrationFailureReason-enum","sectionIndex":315,"groupIndex":-1,"groupId":"Enum","categoryIndex":16,"sectionId":"gen","categoryId":"store","status":"published","title":"MigrationFailureReason","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"MigrationResult-type","prev":"Migration-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/MigrationFailureReason-enum.mdx"},"MigrationResult-type":{"id":"MigrationResult-type","sectionIndex":316,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":17,"sectionId":"gen","categoryId":"store","status":"published","title":"MigrationResult","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Migrations-interface","prev":"MigrationFailureReason-enum","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/MigrationResult-type.mdx"},"Migrations-interface":{"id":"Migrations-interface","sectionIndex":317,"groupIndex":-1,"groupId":"Interface","categoryIndex":18,"sectionId":"gen","categoryId":"store","status":"published","title":"Migrations","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"RecordId-type","prev":"MigrationResult-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Migrations-interface.mdx"},"RecordId-type":{"id":"RecordId-type","sectionIndex":318,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":19,"sectionId":"gen","categoryId":"store","status":"published","title":"RecordId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"RecordsDiff-type","prev":"Migrations-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/RecordId-type.mdx"},"RecordsDiff-type":{"id":"RecordsDiff-type","sectionIndex":319,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":20,"sectionId":"gen","categoryId":"store","status":"published","title":"RecordsDiff","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"RecordType-class","prev":"RecordId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/RecordsDiff-type.mdx"},"RecordType-class":{"id":"RecordType-class","sectionIndex":320,"groupIndex":-1,"groupId":"Class","categoryIndex":21,"sectionId":"gen","categoryId":"store","status":"published","title":"RecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"RecordVersion-type","prev":"RecordsDiff-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/RecordType-class.mdx"},"RecordVersion-type":{"id":"RecordVersion-type","sectionIndex":321,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":22,"sectionId":"gen","categoryId":"store","status":"published","title":"RecordVersion","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"reverseRecordsDiff-function-1","prev":"RecordType-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/RecordVersion-type.mdx"},"reverseRecordsDiff-function-1":{"id":"reverseRecordsDiff-function-1","sectionIndex":322,"groupIndex":-1,"groupId":"Function","categoryIndex":23,"sectionId":"gen","categoryId":"store","status":"published","title":"reverseRecordsDiff","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SerializedSchema-interface","prev":"RecordVersion-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/reverseRecordsDiff-function-1.mdx"},"SerializedSchema-interface":{"id":"SerializedSchema-interface","sectionIndex":323,"groupIndex":-1,"groupId":"Interface","categoryIndex":24,"sectionId":"gen","categoryId":"store","status":"published","title":"SerializedSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"squashRecordDiffs-function-1","prev":"reverseRecordsDiff-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SerializedSchema-interface.mdx"},"squashRecordDiffs-function-1":{"id":"squashRecordDiffs-function-1","sectionIndex":324,"groupIndex":-1,"groupId":"Function","categoryIndex":25,"sectionId":"gen","categoryId":"store","status":"published","title":"squashRecordDiffs","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Store-class","prev":"SerializedSchema-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/squashRecordDiffs-function-1.mdx"},"Store-class":{"id":"Store-class","sectionIndex":325,"groupIndex":-1,"groupId":"Class","categoryIndex":26,"sectionId":"gen","categoryId":"store","status":"published","title":"Store","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreError-type","prev":"squashRecordDiffs-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Store-class.mdx"},"StoreError-type":{"id":"StoreError-type","sectionIndex":326,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":27,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreError","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreListener-type","prev":"Store-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreError-type.mdx"},"StoreListener-type":{"id":"StoreListener-type","sectionIndex":327,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":28,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreListener","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreSchema-class","prev":"StoreError-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreListener-type.mdx"},"StoreSchema-class":{"id":"StoreSchema-class","sectionIndex":328,"groupIndex":-1,"groupId":"Class","categoryIndex":29,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreSchemaOptions-type","prev":"StoreListener-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreSchema-class.mdx"},"StoreSchemaOptions-type":{"id":"StoreSchemaOptions-type","sectionIndex":329,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":30,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreSchemaOptions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreSnapshot-type","prev":"StoreSchema-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreSchemaOptions-type.mdx"},"StoreSnapshot-type":{"id":"StoreSnapshot-type","sectionIndex":330,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":31,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreSnapshot","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreValidator-type","prev":"StoreSchemaOptions-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreSnapshot-type.mdx"},"StoreValidator-type":{"id":"StoreValidator-type","sectionIndex":331,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":32,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StoreValidators-type","prev":"StoreSnapshot-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreValidator-type.mdx"},"StoreValidators-type":{"id":"StoreValidators-type","sectionIndex":332,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":33,"sectionId":"gen","categoryId":"store","status":"published","title":"StoreValidators","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"UnknownRecord-type","prev":"StoreValidator-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StoreValidators-type.mdx"},"UnknownRecord-type":{"id":"UnknownRecord-type","sectionIndex":333,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":34,"sectionId":"gen","categoryId":"store","status":"published","title":"UnknownRecord","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":"StoreValidators-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/UnknownRecord-type.mdx"},"Tldraw-function-1":{"id":"Tldraw-function-1","sectionIndex":334,"groupIndex":-1,"groupId":"Function","categoryIndex":0,"sectionId":"gen","categoryId":"tldraw","status":"published","title":"Tldraw","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Tldraw-function-1.mdx"},"ArrowShapeArrowheadEndStyle-var":{"id":"ArrowShapeArrowheadEndStyle-var","sectionIndex":335,"groupIndex":-1,"groupId":"Variable","categoryIndex":0,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"ArrowShapeArrowheadEndStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ArrowShapeArrowheadStartStyle-var","prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ArrowShapeArrowheadEndStyle-var.mdx"},"ArrowShapeArrowheadStartStyle-var":{"id":"ArrowShapeArrowheadStartStyle-var","sectionIndex":336,"groupIndex":-1,"groupId":"Variable","categoryIndex":1,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"ArrowShapeArrowheadStartStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"arrowShapeProps-var","prev":"ArrowShapeArrowheadEndStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ArrowShapeArrowheadStartStyle-var.mdx"},"arrowShapeProps-var":{"id":"arrowShapeProps-var","sectionIndex":337,"groupIndex":-1,"groupId":"Variable","categoryIndex":2,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"arrowShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"assetIdValidator-var","prev":"ArrowShapeArrowheadStartStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/arrowShapeProps-var.mdx"},"assetIdValidator-var":{"id":"assetIdValidator-var","sectionIndex":338,"groupIndex":-1,"groupId":"Variable","categoryIndex":3,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"assetIdValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"AssetRecordType-var","prev":"arrowShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/assetIdValidator-var.mdx"},"AssetRecordType-var":{"id":"AssetRecordType-var","sectionIndex":339,"groupIndex":-1,"groupId":"Variable","categoryIndex":4,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"AssetRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"bookmarkShapeProps-var","prev":"assetIdValidator-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/AssetRecordType-var.mdx"},"bookmarkShapeProps-var":{"id":"bookmarkShapeProps-var","sectionIndex":340,"groupIndex":-1,"groupId":"Variable","categoryIndex":5,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"bookmarkShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Box2dModel-interface","prev":"AssetRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/bookmarkShapeProps-var.mdx"},"Box2dModel-interface":{"id":"Box2dModel-interface","sectionIndex":341,"groupIndex":-1,"groupId":"Interface","categoryIndex":6,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"Box2dModel","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"box2dModelValidator-var","prev":"bookmarkShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Box2dModel-interface.mdx"},"box2dModelValidator-var":{"id":"box2dModelValidator-var","sectionIndex":342,"groupIndex":-1,"groupId":"Variable","categoryIndex":7,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"box2dModelValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"CameraRecordType-var","prev":"Box2dModel-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/box2dModelValidator-var.mdx"},"CameraRecordType-var":{"id":"CameraRecordType-var","sectionIndex":343,"groupIndex":-1,"groupId":"Variable","categoryIndex":8,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"CameraRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"canvasUiColorTypeValidator-var","prev":"box2dModelValidator-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/CameraRecordType-var.mdx"},"canvasUiColorTypeValidator-var":{"id":"canvasUiColorTypeValidator-var","sectionIndex":344,"groupIndex":-1,"groupId":"Variable","categoryIndex":9,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"canvasUiColorTypeValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createAssetValidator-function-1","prev":"CameraRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/canvasUiColorTypeValidator-var.mdx"},"createAssetValidator-function-1":{"id":"createAssetValidator-function-1","sectionIndex":345,"groupIndex":-1,"groupId":"Function","categoryIndex":10,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"createAssetValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createPresenceStateDerivation-var","prev":"canvasUiColorTypeValidator-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createAssetValidator-function-1.mdx"},"createPresenceStateDerivation-var":{"id":"createPresenceStateDerivation-var","sectionIndex":346,"groupIndex":-1,"groupId":"Variable","categoryIndex":11,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"createPresenceStateDerivation","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createShapeId-function-1","prev":"createAssetValidator-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createPresenceStateDerivation-var.mdx"},"createShapeId-function-1":{"id":"createShapeId-function-1","sectionIndex":347,"groupIndex":-1,"groupId":"Function","categoryIndex":12,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"createShapeId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createShapeValidator-function-1","prev":"createPresenceStateDerivation-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createShapeId-function-1.mdx"},"createShapeValidator-function-1":{"id":"createShapeValidator-function-1","sectionIndex":348,"groupIndex":-1,"groupId":"Function","categoryIndex":13,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"createShapeValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"createTLSchema-function-1","prev":"createShapeId-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createShapeValidator-function-1.mdx"},"createTLSchema-function-1":{"id":"createTLSchema-function-1","sectionIndex":349,"groupIndex":-1,"groupId":"Function","categoryIndex":14,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"createTLSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultColorStyle-var","prev":"createShapeValidator-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/createTLSchema-function-1.mdx"},"DefaultColorStyle-var":{"id":"DefaultColorStyle-var","sectionIndex":350,"groupIndex":-1,"groupId":"Variable","categoryIndex":15,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultColorStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultColorThemePalette-var","prev":"createTLSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultColorStyle-var.mdx"},"DefaultColorThemePalette-var":{"id":"DefaultColorThemePalette-var","sectionIndex":351,"groupIndex":-1,"groupId":"Variable","categoryIndex":16,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultColorThemePalette","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultDashStyle-var","prev":"DefaultColorStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultColorThemePalette-var.mdx"},"DefaultDashStyle-var":{"id":"DefaultDashStyle-var","sectionIndex":352,"groupIndex":-1,"groupId":"Variable","categoryIndex":17,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultDashStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultFillStyle-var","prev":"DefaultColorThemePalette-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultDashStyle-var.mdx"},"DefaultFillStyle-var":{"id":"DefaultFillStyle-var","sectionIndex":353,"groupIndex":-1,"groupId":"Variable","categoryIndex":18,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultFillStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultFontFamilies-var","prev":"DefaultDashStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultFillStyle-var.mdx"},"DefaultFontFamilies-var":{"id":"DefaultFontFamilies-var","sectionIndex":354,"groupIndex":-1,"groupId":"Variable","categoryIndex":19,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultFontFamilies","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultFontStyle-var","prev":"DefaultFillStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultFontFamilies-var.mdx"},"DefaultFontStyle-var":{"id":"DefaultFontStyle-var","sectionIndex":355,"groupIndex":-1,"groupId":"Variable","categoryIndex":20,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultFontStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultHorizontalAlignStyle-var","prev":"DefaultFontFamilies-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultFontStyle-var.mdx"},"DefaultHorizontalAlignStyle-var":{"id":"DefaultHorizontalAlignStyle-var","sectionIndex":356,"groupIndex":-1,"groupId":"Variable","categoryIndex":21,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultHorizontalAlignStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultSizeStyle-var","prev":"DefaultFontStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultHorizontalAlignStyle-var.mdx"},"DefaultSizeStyle-var":{"id":"DefaultSizeStyle-var","sectionIndex":357,"groupIndex":-1,"groupId":"Variable","categoryIndex":22,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultSizeStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DefaultVerticalAlignStyle-var","prev":"DefaultHorizontalAlignStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultSizeStyle-var.mdx"},"DefaultVerticalAlignStyle-var":{"id":"DefaultVerticalAlignStyle-var","sectionIndex":358,"groupIndex":-1,"groupId":"Variable","categoryIndex":23,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DefaultVerticalAlignStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DocumentRecordType-var","prev":"DefaultSizeStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DefaultVerticalAlignStyle-var.mdx"},"DocumentRecordType-var":{"id":"DocumentRecordType-var","sectionIndex":359,"groupIndex":-1,"groupId":"Variable","categoryIndex":24,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"DocumentRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"drawShapeProps-var","prev":"DefaultVerticalAlignStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DocumentRecordType-var.mdx"},"drawShapeProps-var":{"id":"drawShapeProps-var","sectionIndex":360,"groupIndex":-1,"groupId":"Variable","categoryIndex":25,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"drawShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EMBED_DEFINITIONS-var","prev":"DocumentRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/drawShapeProps-var.mdx"},"EMBED_DEFINITIONS-var":{"id":"EMBED_DEFINITIONS-var","sectionIndex":361,"groupIndex":-1,"groupId":"Variable","categoryIndex":26,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"EMBED_DEFINITIONS","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EmbedDefinition-type","prev":"drawShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EMBED_DEFINITIONS-var.mdx"},"EmbedDefinition-type":{"id":"EmbedDefinition-type","sectionIndex":362,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":27,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"EmbedDefinition","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"embedShapePermissionDefaults-var","prev":"EMBED_DEFINITIONS-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EmbedDefinition-type.mdx"},"embedShapePermissionDefaults-var":{"id":"embedShapePermissionDefaults-var","sectionIndex":363,"groupIndex":-1,"groupId":"Variable","categoryIndex":28,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"embedShapePermissionDefaults","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"embedShapeProps-var","prev":"EmbedDefinition-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/embedShapePermissionDefaults-var.mdx"},"embedShapeProps-var":{"id":"embedShapeProps-var","sectionIndex":364,"groupIndex":-1,"groupId":"Variable","categoryIndex":29,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"embedShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"EnumStyleProp-class","prev":"embedShapePermissionDefaults-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/embedShapeProps-var.mdx"},"EnumStyleProp-class":{"id":"EnumStyleProp-class","sectionIndex":365,"groupIndex":-1,"groupId":"Class","categoryIndex":30,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"EnumStyleProp","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"frameShapeProps-var","prev":"embedShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/EnumStyleProp-class.mdx"},"frameShapeProps-var":{"id":"frameShapeProps-var","sectionIndex":366,"groupIndex":-1,"groupId":"Variable","categoryIndex":31,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"frameShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"GeoShapeGeoStyle-var","prev":"EnumStyleProp-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/frameShapeProps-var.mdx"},"GeoShapeGeoStyle-var":{"id":"GeoShapeGeoStyle-var","sectionIndex":367,"groupIndex":-1,"groupId":"Variable","categoryIndex":32,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"GeoShapeGeoStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"geoShapeProps-var","prev":"frameShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/GeoShapeGeoStyle-var.mdx"},"geoShapeProps-var":{"id":"geoShapeProps-var","sectionIndex":368,"groupIndex":-1,"groupId":"Variable","categoryIndex":33,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"geoShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getDefaultColorTheme-function-1","prev":"GeoShapeGeoStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/geoShapeProps-var.mdx"},"getDefaultColorTheme-function-1":{"id":"getDefaultColorTheme-function-1","sectionIndex":369,"groupIndex":-1,"groupId":"Function","categoryIndex":34,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"getDefaultColorTheme","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"getDefaultTranslationLocale-function-1","prev":"geoShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getDefaultColorTheme-function-1.mdx"},"getDefaultTranslationLocale-function-1":{"id":"getDefaultTranslationLocale-function-1","sectionIndex":370,"groupIndex":-1,"groupId":"Function","categoryIndex":35,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"getDefaultTranslationLocale","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"highlightShapeProps-var","prev":"getDefaultColorTheme-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/getDefaultTranslationLocale-function-1.mdx"},"highlightShapeProps-var":{"id":"highlightShapeProps-var","sectionIndex":371,"groupIndex":-1,"groupId":"Variable","categoryIndex":36,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"highlightShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"imageShapeProps-var","prev":"getDefaultTranslationLocale-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/highlightShapeProps-var.mdx"},"imageShapeProps-var":{"id":"imageShapeProps-var","sectionIndex":372,"groupIndex":-1,"groupId":"Variable","categoryIndex":37,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"imageShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"InstancePageStateRecordType-var","prev":"highlightShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/imageShapeProps-var.mdx"},"InstancePageStateRecordType-var":{"id":"InstancePageStateRecordType-var","sectionIndex":373,"groupIndex":-1,"groupId":"Variable","categoryIndex":38,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"InstancePageStateRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"InstancePresenceRecordType-var","prev":"imageShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/InstancePageStateRecordType-var.mdx"},"InstancePresenceRecordType-var":{"id":"InstancePresenceRecordType-var","sectionIndex":374,"groupIndex":-1,"groupId":"Variable","categoryIndex":39,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"InstancePresenceRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isPageId-function-1","prev":"InstancePageStateRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/InstancePresenceRecordType-var.mdx"},"isPageId-function-1":{"id":"isPageId-function-1","sectionIndex":375,"groupIndex":-1,"groupId":"Function","categoryIndex":40,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"isPageId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isShape-function-1","prev":"InstancePresenceRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isPageId-function-1.mdx"},"isShape-function-1":{"id":"isShape-function-1","sectionIndex":376,"groupIndex":-1,"groupId":"Function","categoryIndex":41,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"isShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"isShapeId-function-1","prev":"isPageId-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isShape-function-1.mdx"},"isShapeId-function-1":{"id":"isShapeId-function-1","sectionIndex":377,"groupIndex":-1,"groupId":"Function","categoryIndex":42,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"isShapeId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LANGUAGES-var","prev":"isShape-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/isShapeId-function-1.mdx"},"LANGUAGES-var":{"id":"LANGUAGES-var","sectionIndex":378,"groupIndex":-1,"groupId":"Variable","categoryIndex":43,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"LANGUAGES","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"lineShapeProps-var","prev":"isShapeId-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LANGUAGES-var.mdx"},"lineShapeProps-var":{"id":"lineShapeProps-var","sectionIndex":379,"groupIndex":-1,"groupId":"Variable","categoryIndex":44,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"lineShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"LineShapeSplineStyle-var","prev":"LANGUAGES-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/lineShapeProps-var.mdx"},"LineShapeSplineStyle-var":{"id":"LineShapeSplineStyle-var","sectionIndex":380,"groupIndex":-1,"groupId":"Variable","categoryIndex":45,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"LineShapeSplineStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"noteShapeProps-var","prev":"lineShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/LineShapeSplineStyle-var.mdx"},"noteShapeProps-var":{"id":"noteShapeProps-var","sectionIndex":381,"groupIndex":-1,"groupId":"Variable","categoryIndex":46,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"noteShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"PageRecordType-var","prev":"LineShapeSplineStyle-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/noteShapeProps-var.mdx"},"PageRecordType-var":{"id":"PageRecordType-var","sectionIndex":382,"groupIndex":-1,"groupId":"Variable","categoryIndex":47,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"PageRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"parentIdValidator-var","prev":"noteShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/PageRecordType-var.mdx"},"parentIdValidator-var":{"id":"parentIdValidator-var","sectionIndex":383,"groupIndex":-1,"groupId":"Variable","categoryIndex":48,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"parentIdValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"PointerRecordType-var","prev":"PageRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/parentIdValidator-var.mdx"},"PointerRecordType-var":{"id":"PointerRecordType-var","sectionIndex":384,"groupIndex":-1,"groupId":"Variable","categoryIndex":49,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"PointerRecordType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"SchemaShapeInfo-type","prev":"parentIdValidator-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/PointerRecordType-var.mdx"},"SchemaShapeInfo-type":{"id":"SchemaShapeInfo-type","sectionIndex":385,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":50,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"SchemaShapeInfo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"shapeIdValidator-var","prev":"PointerRecordType-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/SchemaShapeInfo-type.mdx"},"shapeIdValidator-var":{"id":"shapeIdValidator-var","sectionIndex":386,"groupIndex":-1,"groupId":"Variable","categoryIndex":51,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"shapeIdValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ShapeProps-type","prev":"SchemaShapeInfo-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/shapeIdValidator-var.mdx"},"ShapeProps-type":{"id":"ShapeProps-type","sectionIndex":387,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":52,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"ShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"StyleProp-class","prev":"shapeIdValidator-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ShapeProps-type.mdx"},"StyleProp-class":{"id":"StyleProp-class","sectionIndex":388,"groupIndex":-1,"groupId":"Class","categoryIndex":53,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"StyleProp","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"textShapeProps-var","prev":"ShapeProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/StyleProp-class.mdx"},"textShapeProps-var":{"id":"textShapeProps-var","sectionIndex":389,"groupIndex":-1,"groupId":"Variable","categoryIndex":54,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"textShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TL_CANVAS_UI_COLOR_TYPES-var","prev":"StyleProp-class","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/textShapeProps-var.mdx"},"TL_CANVAS_UI_COLOR_TYPES-var":{"id":"TL_CANVAS_UI_COLOR_TYPES-var","sectionIndex":390,"groupIndex":-1,"groupId":"Variable","categoryIndex":55,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TL_CANVAS_UI_COLOR_TYPES","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLArrowShape-type","prev":"textShapeProps-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TL_CANVAS_UI_COLOR_TYPES-var.mdx"},"TLArrowShape-type":{"id":"TLArrowShape-type","sectionIndex":391,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":56,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLArrowShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLArrowShapeArrowheadStyle-type","prev":"TL_CANVAS_UI_COLOR_TYPES-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLArrowShape-type.mdx"},"TLArrowShapeArrowheadStyle-type":{"id":"TLArrowShapeArrowheadStyle-type","sectionIndex":392,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":57,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLArrowShapeArrowheadStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLArrowShapeProps-type","prev":"TLArrowShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLArrowShapeArrowheadStyle-type.mdx"},"TLArrowShapeProps-type":{"id":"TLArrowShapeProps-type","sectionIndex":393,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":58,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLArrowShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLArrowShapeTerminal-type","prev":"TLArrowShapeArrowheadStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLArrowShapeProps-type.mdx"},"TLArrowShapeTerminal-type":{"id":"TLArrowShapeTerminal-type","sectionIndex":394,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":59,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLArrowShapeTerminal","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLAsset-type","prev":"TLArrowShapeProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLArrowShapeTerminal-type.mdx"},"TLAsset-type":{"id":"TLAsset-type","sectionIndex":395,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":60,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLAsset","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLAssetId-type","prev":"TLArrowShapeTerminal-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLAsset-type.mdx"},"TLAssetId-type":{"id":"TLAssetId-type","sectionIndex":396,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":61,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLAssetId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLAssetPartial-type","prev":"TLAsset-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLAssetId-type.mdx"},"TLAssetPartial-type":{"id":"TLAssetPartial-type","sectionIndex":397,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":62,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLAssetPartial","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLAssetShape-type","prev":"TLAssetId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLAssetPartial-type.mdx"},"TLAssetShape-type":{"id":"TLAssetShape-type","sectionIndex":398,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":63,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLAssetShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLBaseAsset-interface","prev":"TLAssetPartial-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLAssetShape-type.mdx"},"TLBaseAsset-interface":{"id":"TLBaseAsset-interface","sectionIndex":399,"groupIndex":-1,"groupId":"Interface","categoryIndex":64,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLBaseAsset","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLBaseShape-interface","prev":"TLAssetShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLBaseAsset-interface.mdx"},"TLBaseShape-interface":{"id":"TLBaseShape-interface","sectionIndex":400,"groupIndex":-1,"groupId":"Interface","categoryIndex":65,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLBaseShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLBookmarkAsset-type","prev":"TLBaseAsset-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLBaseShape-interface.mdx"},"TLBookmarkAsset-type":{"id":"TLBookmarkAsset-type","sectionIndex":401,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":66,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLBookmarkAsset","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLBookmarkShape-type","prev":"TLBaseShape-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLBookmarkAsset-type.mdx"},"TLBookmarkShape-type":{"id":"TLBookmarkShape-type","sectionIndex":402,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":67,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLBookmarkShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCamera-interface","prev":"TLBookmarkAsset-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLBookmarkShape-type.mdx"},"TLCamera-interface":{"id":"TLCamera-interface","sectionIndex":403,"groupIndex":-1,"groupId":"Interface","categoryIndex":68,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLCamera","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCameraId-type","prev":"TLBookmarkShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCamera-interface.mdx"},"TLCameraId-type":{"id":"TLCameraId-type","sectionIndex":404,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":69,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLCameraId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCanvasUiColor-type","prev":"TLCamera-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCameraId-type.mdx"},"TLCanvasUiColor-type":{"id":"TLCanvasUiColor-type","sectionIndex":405,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":70,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLCanvasUiColor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCursor-interface","prev":"TLCameraId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCanvasUiColor-type.mdx"},"TLCursor-interface":{"id":"TLCursor-interface","sectionIndex":406,"groupIndex":-1,"groupId":"Interface","categoryIndex":71,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLCursor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLCursorType-type","prev":"TLCanvasUiColor-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCursor-interface.mdx"},"TLCursorType-type":{"id":"TLCursorType-type","sectionIndex":407,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":72,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLCursorType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultColorStyle-type","prev":"TLCursor-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLCursorType-type.mdx"},"TLDefaultColorStyle-type":{"id":"TLDefaultColorStyle-type","sectionIndex":408,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":73,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultColorStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultColorTheme-type","prev":"TLCursorType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultColorStyle-type.mdx"},"TLDefaultColorTheme-type":{"id":"TLDefaultColorTheme-type","sectionIndex":409,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":74,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultColorTheme","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultColorThemeColor-type","prev":"TLDefaultColorStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultColorTheme-type.mdx"},"TLDefaultColorThemeColor-type":{"id":"TLDefaultColorThemeColor-type","sectionIndex":410,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":75,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultColorThemeColor","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultDashStyle-type","prev":"TLDefaultColorTheme-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultColorThemeColor-type.mdx"},"TLDefaultDashStyle-type":{"id":"TLDefaultDashStyle-type","sectionIndex":411,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":76,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultDashStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultFillStyle-type","prev":"TLDefaultColorThemeColor-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultDashStyle-type.mdx"},"TLDefaultFillStyle-type":{"id":"TLDefaultFillStyle-type","sectionIndex":412,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":77,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultFillStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultFontStyle-type","prev":"TLDefaultDashStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultFillStyle-type.mdx"},"TLDefaultFontStyle-type":{"id":"TLDefaultFontStyle-type","sectionIndex":413,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":78,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultFontStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultHorizontalAlignStyle-type","prev":"TLDefaultFillStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultFontStyle-type.mdx"},"TLDefaultHorizontalAlignStyle-type":{"id":"TLDefaultHorizontalAlignStyle-type","sectionIndex":414,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":79,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultHorizontalAlignStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultShape-type","prev":"TLDefaultFontStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultHorizontalAlignStyle-type.mdx"},"TLDefaultShape-type":{"id":"TLDefaultShape-type","sectionIndex":415,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":80,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultSizeStyle-type","prev":"TLDefaultHorizontalAlignStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultShape-type.mdx"},"TLDefaultSizeStyle-type":{"id":"TLDefaultSizeStyle-type","sectionIndex":416,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":81,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultSizeStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDefaultVerticalAlignStyle-type","prev":"TLDefaultShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultSizeStyle-type.mdx"},"TLDefaultVerticalAlignStyle-type":{"id":"TLDefaultVerticalAlignStyle-type","sectionIndex":417,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":82,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDefaultVerticalAlignStyle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDOCUMENT_ID-var","prev":"TLDefaultSizeStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDefaultVerticalAlignStyle-type.mdx"},"TLDOCUMENT_ID-var":{"id":"TLDOCUMENT_ID-var","sectionIndex":418,"groupIndex":-1,"groupId":"Variable","categoryIndex":83,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDOCUMENT_ID","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDocument-interface","prev":"TLDefaultVerticalAlignStyle-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDOCUMENT_ID-var.mdx"},"TLDocument-interface":{"id":"TLDocument-interface","sectionIndex":419,"groupIndex":-1,"groupId":"Interface","categoryIndex":84,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDocument","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDrawShape-type","prev":"TLDOCUMENT_ID-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDocument-interface.mdx"},"TLDrawShape-type":{"id":"TLDrawShape-type","sectionIndex":420,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":85,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDrawShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLDrawShapeSegment-type","prev":"TLDocument-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDrawShape-type.mdx"},"TLDrawShapeSegment-type":{"id":"TLDrawShapeSegment-type","sectionIndex":421,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":86,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLDrawShapeSegment","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEmbedShape-type","prev":"TLDrawShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLDrawShapeSegment-type.mdx"},"TLEmbedShape-type":{"id":"TLEmbedShape-type","sectionIndex":422,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":87,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLEmbedShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLEmbedShapePermissions-type","prev":"TLDrawShapeSegment-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEmbedShape-type.mdx"},"TLEmbedShapePermissions-type":{"id":"TLEmbedShapePermissions-type","sectionIndex":423,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":88,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLEmbedShapePermissions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLFrameShape-type","prev":"TLEmbedShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLEmbedShapePermissions-type.mdx"},"TLFrameShape-type":{"id":"TLFrameShape-type","sectionIndex":424,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":89,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLFrameShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLGeoShape-type","prev":"TLEmbedShapePermissions-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLFrameShape-type.mdx"},"TLGeoShape-type":{"id":"TLGeoShape-type","sectionIndex":425,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":90,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLGeoShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLGroupShape-type","prev":"TLFrameShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLGeoShape-type.mdx"},"TLGroupShape-type":{"id":"TLGroupShape-type","sectionIndex":426,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":91,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLGroupShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLHandle-interface","prev":"TLGeoShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLGroupShape-type.mdx"},"TLHandle-interface":{"id":"TLHandle-interface","sectionIndex":427,"groupIndex":-1,"groupId":"Interface","categoryIndex":92,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLHandle","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLHandleType-type","prev":"TLGroupShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLHandle-interface.mdx"},"TLHandleType-type":{"id":"TLHandleType-type","sectionIndex":428,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":93,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLHandleType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLHighlightShape-type","prev":"TLHandle-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLHandleType-type.mdx"},"TLHighlightShape-type":{"id":"TLHighlightShape-type","sectionIndex":429,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":94,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLHighlightShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLImageAsset-type","prev":"TLHandleType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLHighlightShape-type.mdx"},"TLImageAsset-type":{"id":"TLImageAsset-type","sectionIndex":430,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":95,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLImageAsset","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLImageShape-type","prev":"TLHighlightShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLImageAsset-type.mdx"},"TLImageShape-type":{"id":"TLImageShape-type","sectionIndex":431,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":96,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLImageShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLImageShapeCrop-type","prev":"TLImageAsset-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLImageShape-type.mdx"},"TLImageShapeCrop-type":{"id":"TLImageShapeCrop-type","sectionIndex":432,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":97,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLImageShapeCrop","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLImageShapeProps-type","prev":"TLImageShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLImageShapeCrop-type.mdx"},"TLImageShapeProps-type":{"id":"TLImageShapeProps-type","sectionIndex":433,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":98,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLImageShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLINSTANCE_ID-var","prev":"TLImageShapeCrop-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLImageShapeProps-type.mdx"},"TLINSTANCE_ID-var":{"id":"TLINSTANCE_ID-var","sectionIndex":434,"groupIndex":-1,"groupId":"Variable","categoryIndex":99,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLINSTANCE_ID","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLInstance-interface","prev":"TLImageShapeProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLINSTANCE_ID-var.mdx"},"TLInstance-interface":{"id":"TLInstance-interface","sectionIndex":435,"groupIndex":-1,"groupId":"Interface","categoryIndex":100,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLInstance","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLInstanceId-type","prev":"TLINSTANCE_ID-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLInstance-interface.mdx"},"TLInstanceId-type":{"id":"TLInstanceId-type","sectionIndex":436,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":101,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLInstanceId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLInstancePageState-interface","prev":"TLInstance-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLInstanceId-type.mdx"},"TLInstancePageState-interface":{"id":"TLInstancePageState-interface","sectionIndex":437,"groupIndex":-1,"groupId":"Interface","categoryIndex":102,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLInstancePageState","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLInstancePresence-interface","prev":"TLInstanceId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLInstancePageState-interface.mdx"},"TLInstancePresence-interface":{"id":"TLInstancePresence-interface","sectionIndex":438,"groupIndex":-1,"groupId":"Interface","categoryIndex":103,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLInstancePresence","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLLanguage-type","prev":"TLInstancePageState-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLInstancePresence-interface.mdx"},"TLLanguage-type":{"id":"TLLanguage-type","sectionIndex":439,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":104,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLLanguage","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLLineShape-type","prev":"TLInstancePresence-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLLanguage-type.mdx"},"TLLineShape-type":{"id":"TLLineShape-type","sectionIndex":440,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":105,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLLineShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLNoteShape-type","prev":"TLLanguage-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLLineShape-type.mdx"},"TLNoteShape-type":{"id":"TLNoteShape-type","sectionIndex":441,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":106,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLNoteShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLOpacityType-type","prev":"TLLineShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLNoteShape-type.mdx"},"TLOpacityType-type":{"id":"TLOpacityType-type","sectionIndex":442,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":107,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLOpacityType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPage-interface","prev":"TLNoteShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLOpacityType-type.mdx"},"TLPage-interface":{"id":"TLPage-interface","sectionIndex":443,"groupIndex":-1,"groupId":"Interface","categoryIndex":108,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLPage","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPageId-type","prev":"TLOpacityType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPage-interface.mdx"},"TLPageId-type":{"id":"TLPageId-type","sectionIndex":444,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":109,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLPageId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLParentId-type","prev":"TLPage-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPageId-type.mdx"},"TLParentId-type":{"id":"TLParentId-type","sectionIndex":445,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":110,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLParentId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLPOINTER_ID-var","prev":"TLPageId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLParentId-type.mdx"},"TLPOINTER_ID-var":{"id":"TLPOINTER_ID-var","sectionIndex":446,"groupIndex":-1,"groupId":"Variable","categoryIndex":111,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLPOINTER_ID","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLRecord-type","prev":"TLParentId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLPOINTER_ID-var.mdx"},"TLRecord-type":{"id":"TLRecord-type","sectionIndex":447,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":112,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLRecord","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLSchema-type","prev":"TLPOINTER_ID-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLRecord-type.mdx"},"TLSchema-type":{"id":"TLSchema-type","sectionIndex":448,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":113,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLScribble-type","prev":"TLRecord-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLSchema-type.mdx"},"TLScribble-type":{"id":"TLScribble-type","sectionIndex":449,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":114,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLScribble","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShape-type","prev":"TLSchema-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLScribble-type.mdx"},"TLShape-type":{"id":"TLShape-type","sectionIndex":450,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":115,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapeId-type","prev":"TLScribble-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShape-type.mdx"},"TLShapeId-type":{"id":"TLShapeId-type","sectionIndex":451,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":116,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLShapeId","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapePartial-type","prev":"TLShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapeId-type.mdx"},"TLShapePartial-type":{"id":"TLShapePartial-type","sectionIndex":452,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":117,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLShapePartial","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapeProp-type","prev":"TLShapeId-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapePartial-type.mdx"},"TLShapeProp-type":{"id":"TLShapeProp-type","sectionIndex":453,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":118,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLShapeProp","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLShapeProps-type","prev":"TLShapePartial-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapeProp-type.mdx"},"TLShapeProps-type":{"id":"TLShapeProps-type","sectionIndex":454,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":119,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStore-type","prev":"TLShapeProp-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLShapeProps-type.mdx"},"TLStore-type":{"id":"TLStore-type","sectionIndex":455,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":120,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLStore","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStoreProps-type","prev":"TLShapeProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStore-type.mdx"},"TLStoreProps-type":{"id":"TLStoreProps-type","sectionIndex":456,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":121,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLStoreProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStoreSchema-type","prev":"TLStore-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStoreProps-type.mdx"},"TLStoreSchema-type":{"id":"TLStoreSchema-type","sectionIndex":457,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":122,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLStoreSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLStoreSnapshot-type","prev":"TLStoreProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStoreSchema-type.mdx"},"TLStoreSnapshot-type":{"id":"TLStoreSnapshot-type","sectionIndex":458,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":123,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLStoreSnapshot","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLTextShape-type","prev":"TLStoreSchema-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLStoreSnapshot-type.mdx"},"TLTextShape-type":{"id":"TLTextShape-type","sectionIndex":459,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":124,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLTextShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLTextShapeProps-type","prev":"TLStoreSnapshot-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLTextShape-type.mdx"},"TLTextShapeProps-type":{"id":"TLTextShapeProps-type","sectionIndex":460,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":125,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLTextShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUnknownShape-type","prev":"TLTextShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLTextShapeProps-type.mdx"},"TLUnknownShape-type":{"id":"TLUnknownShape-type","sectionIndex":461,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":126,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLUnknownShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLVideoAsset-type","prev":"TLTextShapeProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUnknownShape-type.mdx"},"TLVideoAsset-type":{"id":"TLVideoAsset-type","sectionIndex":462,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":127,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLVideoAsset","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLVideoShape-type","prev":"TLUnknownShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLVideoAsset-type.mdx"},"TLVideoShape-type":{"id":"TLVideoShape-type","sectionIndex":463,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":128,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"TLVideoShape","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Vec2dModel-interface","prev":"TLVideoAsset-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLVideoShape-type.mdx"},"Vec2dModel-interface":{"id":"Vec2dModel-interface","sectionIndex":464,"groupIndex":-1,"groupId":"Interface","categoryIndex":129,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"Vec2dModel","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"vec2dModelValidator-var","prev":"TLVideoShape-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Vec2dModel-interface.mdx"},"vec2dModelValidator-var":{"id":"vec2dModelValidator-var","sectionIndex":465,"groupIndex":-1,"groupId":"Variable","categoryIndex":130,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"vec2dModelValidator","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"videoShapeProps-var","prev":"Vec2dModel-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/vec2dModelValidator-var.mdx"},"videoShapeProps-var":{"id":"videoShapeProps-var","sectionIndex":466,"groupIndex":-1,"groupId":"Variable","categoryIndex":131,"sectionId":"gen","categoryId":"tlschema","status":"published","title":"videoShapeProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":"vec2dModelValidator-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/videoShapeProps-var.mdx"},"BreakPointProvider-function-1":{"id":"BreakPointProvider-function-1","sectionIndex":467,"groupIndex":-1,"groupId":"Function","categoryIndex":0,"sectionId":"gen","categoryId":"ui","status":"published","title":"BreakPointProvider","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Button-var","prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/BreakPointProvider-function-1.mdx"},"Button-var":{"id":"Button-var","sectionIndex":468,"groupIndex":-1,"groupId":"Variable","categoryIndex":1,"sectionId":"gen","categoryId":"ui","status":"published","title":"Button","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"compactMenuItems-function-1","prev":"BreakPointProvider-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Button-var.mdx"},"compactMenuItems-function-1":{"id":"compactMenuItems-function-1","sectionIndex":469,"groupIndex":-1,"groupId":"Function","categoryIndex":2,"sectionId":"gen","categoryId":"ui","status":"published","title":"compactMenuItems","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"ContextMenu-var","prev":"Button-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/compactMenuItems-function-1.mdx"},"ContextMenu-var":{"id":"ContextMenu-var","sectionIndex":470,"groupIndex":-1,"groupId":"Variable","categoryIndex":3,"sectionId":"gen","categoryId":"ui","status":"published","title":"ContextMenu","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Dialog-namespace","prev":"compactMenuItems-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/ContextMenu-var.mdx"},"Dialog-namespace":{"id":"Dialog-namespace","sectionIndex":471,"groupIndex":-1,"groupId":"Namespace","categoryIndex":4,"sectionId":"gen","categoryId":"ui","status":"published","title":"Dialog","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"DropdownMenu-namespace","prev":"ContextMenu-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Dialog-namespace.mdx"},"DropdownMenu-namespace":{"id":"DropdownMenu-namespace","sectionIndex":472,"groupIndex":-1,"groupId":"Namespace","categoryIndex":5,"sectionId":"gen","categoryId":"ui","status":"published","title":"DropdownMenu","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"findMenuItem-function-1","prev":"Dialog-namespace","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/DropdownMenu-namespace.mdx"},"findMenuItem-function-1":{"id":"findMenuItem-function-1","sectionIndex":473,"groupIndex":-1,"groupId":"Function","categoryIndex":6,"sectionId":"gen","categoryId":"ui","status":"published","title":"findMenuItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Icon-var","prev":"DropdownMenu-namespace","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/findMenuItem-function-1.mdx"},"Icon-var":{"id":"Icon-var","sectionIndex":474,"groupIndex":-1,"groupId":"Variable","categoryIndex":7,"sectionId":"gen","categoryId":"ui","status":"published","title":"Icon","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"Input-var","prev":"findMenuItem-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Icon-var.mdx"},"Input-var":{"id":"Input-var","sectionIndex":475,"groupIndex":-1,"groupId":"Variable","categoryIndex":8,"sectionId":"gen","categoryId":"ui","status":"published","title":"Input","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"menuCustom-function-1","prev":"Icon-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/Input-var.mdx"},"menuCustom-function-1":{"id":"menuCustom-function-1","sectionIndex":476,"groupIndex":-1,"groupId":"Function","categoryIndex":9,"sectionId":"gen","categoryId":"ui","status":"published","title":"menuCustom","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"menuGroup-function-1","prev":"Input-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/menuCustom-function-1.mdx"},"menuGroup-function-1":{"id":"menuGroup-function-1","sectionIndex":477,"groupIndex":-1,"groupId":"Function","categoryIndex":10,"sectionId":"gen","categoryId":"ui","status":"published","title":"menuGroup","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"menuItem-function-1","prev":"menuCustom-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/menuGroup-function-1.mdx"},"menuItem-function-1":{"id":"menuItem-function-1","sectionIndex":478,"groupIndex":-1,"groupId":"Function","categoryIndex":11,"sectionId":"gen","categoryId":"ui","status":"published","title":"menuItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"menuSubmenu-function-1","prev":"menuGroup-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/menuItem-function-1.mdx"},"menuSubmenu-function-1":{"id":"menuSubmenu-function-1","sectionIndex":479,"groupIndex":-1,"groupId":"Function","categoryIndex":12,"sectionId":"gen","categoryId":"ui","status":"published","title":"menuSubmenu","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawUi-var","prev":"menuItem-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/menuSubmenu-function-1.mdx"},"TldrawUi-var":{"id":"TldrawUi-var","sectionIndex":480,"groupIndex":-1,"groupId":"Variable","categoryIndex":13,"sectionId":"gen","categoryId":"ui","status":"published","title":"TldrawUi","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawUiContextProvider-function-1","prev":"menuSubmenu-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawUi-var.mdx"},"TldrawUiContextProvider-function-1":{"id":"TldrawUiContextProvider-function-1","sectionIndex":481,"groupIndex":-1,"groupId":"Function","categoryIndex":14,"sectionId":"gen","categoryId":"ui","status":"published","title":"TldrawUiContextProvider","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawUiContextProviderProps-interface","prev":"TldrawUi-var","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawUiContextProvider-function-1.mdx"},"TldrawUiContextProviderProps-interface":{"id":"TldrawUiContextProviderProps-interface","sectionIndex":482,"groupIndex":-1,"groupId":"Interface","categoryIndex":15,"sectionId":"gen","categoryId":"ui","status":"published","title":"TldrawUiContextProviderProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TldrawUiProps-type","prev":"TldrawUiContextProvider-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawUiContextProviderProps-interface.mdx"},"TldrawUiProps-type":{"id":"TldrawUiProps-type","sectionIndex":483,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":16,"sectionId":"gen","categoryId":"ui","status":"published","title":"TldrawUiProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiActionItem-interface","prev":"TldrawUiContextProviderProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TldrawUiProps-type.mdx"},"TLUiActionItem-interface":{"id":"TLUiActionItem-interface","sectionIndex":484,"groupIndex":-1,"groupId":"Interface","categoryIndex":17,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiActionItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiActionsContextType-type","prev":"TldrawUiProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiActionItem-interface.mdx"},"TLUiActionsContextType-type":{"id":"TLUiActionsContextType-type","sectionIndex":485,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":18,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiActionsContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiActionsMenuSchemaContextType-type","prev":"TLUiActionItem-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiActionsContextType-type.mdx"},"TLUiActionsMenuSchemaContextType-type":{"id":"TLUiActionsMenuSchemaContextType-type","sectionIndex":486,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":19,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiActionsMenuSchemaContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiButtonProps-interface","prev":"TLUiActionsContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiActionsMenuSchemaContextType-type.mdx"},"TLUiButtonProps-interface":{"id":"TLUiButtonProps-interface","sectionIndex":487,"groupIndex":-1,"groupId":"Interface","categoryIndex":20,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiButtonProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiContextMenuProps-interface","prev":"TLUiActionsMenuSchemaContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiButtonProps-interface.mdx"},"TLUiContextMenuProps-interface":{"id":"TLUiContextMenuProps-interface","sectionIndex":488,"groupIndex":-1,"groupId":"Interface","categoryIndex":21,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiContextMenuProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiContextTTLUiMenuSchemaContextType-type","prev":"TLUiButtonProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiContextMenuProps-interface.mdx"},"TLUiContextTTLUiMenuSchemaContextType-type":{"id":"TLUiContextTTLUiMenuSchemaContextType-type","sectionIndex":489,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":22,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiContextTTLUiMenuSchemaContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiCustomMenuItem-type","prev":"TLUiContextMenuProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiContextTTLUiMenuSchemaContextType-type.mdx"},"TLUiCustomMenuItem-type":{"id":"TLUiCustomMenuItem-type","sectionIndex":490,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":23,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiCustomMenuItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiDialog-interface","prev":"TLUiContextTTLUiMenuSchemaContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiCustomMenuItem-type.mdx"},"TLUiDialog-interface":{"id":"TLUiDialog-interface","sectionIndex":491,"groupIndex":-1,"groupId":"Interface","categoryIndex":24,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiDialog","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiDialogProps-interface","prev":"TLUiCustomMenuItem-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiDialog-interface.mdx"},"TLUiDialogProps-interface":{"id":"TLUiDialogProps-interface","sectionIndex":492,"groupIndex":-1,"groupId":"Interface","categoryIndex":25,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiDialogProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiDialogsContextType-type","prev":"TLUiDialog-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiDialogProps-interface.mdx"},"TLUiDialogsContextType-type":{"id":"TLUiDialogsContextType-type","sectionIndex":493,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":26,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiDialogsContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiEventContextType-type","prev":"TLUiDialogProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiDialogsContextType-type.mdx"},"TLUiEventContextType-type":{"id":"TLUiEventContextType-type","sectionIndex":494,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":27,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiEventContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiEventHandler-type","prev":"TLUiDialogsContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiEventContextType-type.mdx"},"TLUiEventHandler-type":{"id":"TLUiEventHandler-type","sectionIndex":495,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":28,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiEventHandler","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiEventSource-type","prev":"TLUiEventContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiEventHandler-type.mdx"},"TLUiEventSource-type":{"id":"TLUiEventSource-type","sectionIndex":496,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":29,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiEventSource","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiHelpMenuSchemaContextType-type","prev":"TLUiEventHandler-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiEventSource-type.mdx"},"TLUiHelpMenuSchemaContextType-type":{"id":"TLUiHelpMenuSchemaContextType-type","sectionIndex":497,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":30,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiHelpMenuSchemaContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiIconProps-interface","prev":"TLUiEventSource-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiHelpMenuSchemaContextType-type.mdx"},"TLUiIconProps-interface":{"id":"TLUiIconProps-interface","sectionIndex":498,"groupIndex":-1,"groupId":"Interface","categoryIndex":31,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiIconProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiIconType-type","prev":"TLUiHelpMenuSchemaContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiIconProps-interface.mdx"},"TLUiIconType-type":{"id":"TLUiIconType-type","sectionIndex":499,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":32,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiIconType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiInputProps-interface","prev":"TLUiIconProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiIconType-type.mdx"},"TLUiInputProps-interface":{"id":"TLUiInputProps-interface","sectionIndex":500,"groupIndex":-1,"groupId":"Interface","categoryIndex":33,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiInputProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiKeyboardShortcutsSchemaContextType-type","prev":"TLUiIconType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiInputProps-interface.mdx"},"TLUiKeyboardShortcutsSchemaContextType-type":{"id":"TLUiKeyboardShortcutsSchemaContextType-type","sectionIndex":501,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":34,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiKeyboardShortcutsSchemaContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiKeyboardShortcutsSchemaProviderProps-type","prev":"TLUiInputProps-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiKeyboardShortcutsSchemaContextType-type.mdx"},"TLUiKeyboardShortcutsSchemaProviderProps-type":{"id":"TLUiKeyboardShortcutsSchemaProviderProps-type","sectionIndex":502,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":35,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiKeyboardShortcutsSchemaProviderProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiMenuChild-type","prev":"TLUiKeyboardShortcutsSchemaContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiKeyboardShortcutsSchemaProviderProps-type.mdx"},"TLUiMenuChild-type":{"id":"TLUiMenuChild-type","sectionIndex":503,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":36,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiMenuChild","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiMenuGroup-type","prev":"TLUiKeyboardShortcutsSchemaProviderProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiMenuChild-type.mdx"},"TLUiMenuGroup-type":{"id":"TLUiMenuGroup-type","sectionIndex":504,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":37,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiMenuGroup","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiMenuItem-type","prev":"TLUiMenuChild-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiMenuGroup-type.mdx"},"TLUiMenuItem-type":{"id":"TLUiMenuItem-type","sectionIndex":505,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":38,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiMenuItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiMenuSchema-type","prev":"TLUiMenuGroup-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiMenuItem-type.mdx"},"TLUiMenuSchema-type":{"id":"TLUiMenuSchema-type","sectionIndex":506,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":39,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiMenuSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiMenuSchemaContextType-type","prev":"TLUiMenuItem-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiMenuSchema-type.mdx"},"TLUiMenuSchemaContextType-type":{"id":"TLUiMenuSchemaContextType-type","sectionIndex":507,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":40,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiMenuSchemaContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiMenuSchemaProviderProps-type","prev":"TLUiMenuSchema-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiMenuSchemaContextType-type.mdx"},"TLUiMenuSchemaProviderProps-type":{"id":"TLUiMenuSchemaProviderProps-type","sectionIndex":508,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":41,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiMenuSchemaProviderProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiOverrides-interface","prev":"TLUiMenuSchemaContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiMenuSchemaProviderProps-type.mdx"},"TLUiOverrides-interface":{"id":"TLUiOverrides-interface","sectionIndex":509,"groupIndex":-1,"groupId":"Interface","categoryIndex":42,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiOverrides","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiSubMenu-type","prev":"TLUiMenuSchemaProviderProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiOverrides-interface.mdx"},"TLUiSubMenu-type":{"id":"TLUiSubMenu-type","sectionIndex":510,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":43,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiSubMenu","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToast-interface","prev":"TLUiOverrides-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiSubMenu-type.mdx"},"TLUiToast-interface":{"id":"TLUiToast-interface","sectionIndex":511,"groupIndex":-1,"groupId":"Interface","categoryIndex":44,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToast","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToastAction-interface","prev":"TLUiSubMenu-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToast-interface.mdx"},"TLUiToastAction-interface":{"id":"TLUiToastAction-interface","sectionIndex":512,"groupIndex":-1,"groupId":"Interface","categoryIndex":45,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToastAction","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToastsContextType-type","prev":"TLUiToast-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToastAction-interface.mdx"},"TLUiToastsContextType-type":{"id":"TLUiToastsContextType-type","sectionIndex":513,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":46,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToastsContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToolbarItem-type","prev":"TLUiToastAction-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToastsContextType-type.mdx"},"TLUiToolbarItem-type":{"id":"TLUiToolbarItem-type","sectionIndex":514,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":47,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToolbarItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToolbarSchemaContextType-type","prev":"TLUiToastsContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToolbarItem-type.mdx"},"TLUiToolbarSchemaContextType-type":{"id":"TLUiToolbarSchemaContextType-type","sectionIndex":515,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":48,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToolbarSchemaContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToolItem-interface","prev":"TLUiToolbarItem-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToolbarSchemaContextType-type.mdx"},"TLUiToolItem-interface":{"id":"TLUiToolItem-interface","sectionIndex":516,"groupIndex":-1,"groupId":"Interface","categoryIndex":49,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToolItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToolsContextType-type","prev":"TLUiToolbarSchemaContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToolItem-interface.mdx"},"TLUiToolsContextType-type":{"id":"TLUiToolsContextType-type","sectionIndex":517,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":50,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToolsContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiToolsProviderProps-type","prev":"TLUiToolItem-interface","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToolsContextType-type.mdx"},"TLUiToolsProviderProps-type":{"id":"TLUiToolsProviderProps-type","sectionIndex":518,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":51,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiToolsProviderProps","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiTranslation-type","prev":"TLUiToolsContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiToolsProviderProps-type.mdx"},"TLUiTranslation-type":{"id":"TLUiTranslation-type","sectionIndex":519,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":52,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiTranslation","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiTranslationContextType-type","prev":"TLUiToolsProviderProps-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiTranslation-type.mdx"},"TLUiTranslationContextType-type":{"id":"TLUiTranslationContextType-type","sectionIndex":520,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":53,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiTranslationContextType","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"TLUiTranslationKey-type","prev":"TLUiTranslation-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiTranslationContextType-type.mdx"},"TLUiTranslationKey-type":{"id":"TLUiTranslationKey-type","sectionIndex":521,"groupIndex":-1,"groupId":"TypeAlias","categoryIndex":54,"sectionId":"gen","categoryId":"ui","status":"published","title":"TLUiTranslationKey","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"toolbarItem-function-1","prev":"TLUiTranslationContextType-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/TLUiTranslationKey-type.mdx"},"toolbarItem-function-1":{"id":"toolbarItem-function-1","sectionIndex":522,"groupIndex":-1,"groupId":"Function","categoryIndex":55,"sectionId":"gen","categoryId":"ui","status":"published","title":"toolbarItem","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useActions-function-1","prev":"TLUiTranslationKey-type","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/toolbarItem-function-1.mdx"},"useActions-function-1":{"id":"useActions-function-1","sectionIndex":523,"groupIndex":-1,"groupId":"Function","categoryIndex":56,"sectionId":"gen","categoryId":"ui","status":"published","title":"useActions","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useActionsMenuSchema-function-1","prev":"toolbarItem-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useActions-function-1.mdx"},"useActionsMenuSchema-function-1":{"id":"useActionsMenuSchema-function-1","sectionIndex":524,"groupIndex":-1,"groupId":"Function","categoryIndex":57,"sectionId":"gen","categoryId":"ui","status":"published","title":"useActionsMenuSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useBreakpoint-function-1","prev":"useActions-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useActionsMenuSchema-function-1.mdx"},"useBreakpoint-function-1":{"id":"useBreakpoint-function-1","sectionIndex":525,"groupIndex":-1,"groupId":"Function","categoryIndex":58,"sectionId":"gen","categoryId":"ui","status":"published","title":"useBreakpoint","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useCanRedo-function-1","prev":"useActionsMenuSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useBreakpoint-function-1.mdx"},"useCanRedo-function-1":{"id":"useCanRedo-function-1","sectionIndex":526,"groupIndex":-1,"groupId":"Function","categoryIndex":59,"sectionId":"gen","categoryId":"ui","status":"published","title":"useCanRedo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useCanUndo-function-1","prev":"useBreakpoint-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useCanRedo-function-1.mdx"},"useCanUndo-function-1":{"id":"useCanUndo-function-1","sectionIndex":527,"groupIndex":-1,"groupId":"Function","categoryIndex":60,"sectionId":"gen","categoryId":"ui","status":"published","title":"useCanUndo","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useContextMenuSchema-function-1","prev":"useCanRedo-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useCanUndo-function-1.mdx"},"useContextMenuSchema-function-1":{"id":"useContextMenuSchema-function-1","sectionIndex":528,"groupIndex":-1,"groupId":"Function","categoryIndex":61,"sectionId":"gen","categoryId":"ui","status":"published","title":"useContextMenuSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useCopyAs-function-1","prev":"useCanUndo-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useContextMenuSchema-function-1.mdx"},"useCopyAs-function-1":{"id":"useCopyAs-function-1","sectionIndex":529,"groupIndex":-1,"groupId":"Function","categoryIndex":62,"sectionId":"gen","categoryId":"ui","status":"published","title":"useCopyAs","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useDefaultHelpers-function-1","prev":"useContextMenuSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useCopyAs-function-1.mdx"},"useDefaultHelpers-function-1":{"id":"useDefaultHelpers-function-1","sectionIndex":530,"groupIndex":-1,"groupId":"Function","categoryIndex":63,"sectionId":"gen","categoryId":"ui","status":"published","title":"useDefaultHelpers","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useDialogs-function-1","prev":"useCopyAs-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useDefaultHelpers-function-1.mdx"},"useDialogs-function-1":{"id":"useDialogs-function-1","sectionIndex":531,"groupIndex":-1,"groupId":"Function","categoryIndex":64,"sectionId":"gen","categoryId":"ui","status":"published","title":"useDialogs","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useEvents-function-1","prev":"useDefaultHelpers-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useDialogs-function-1.mdx"},"useEvents-function-1":{"id":"useEvents-function-1","sectionIndex":532,"groupIndex":-1,"groupId":"Function","categoryIndex":65,"sectionId":"gen","categoryId":"ui","status":"published","title":"useEvents","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useExportAs-function-1","prev":"useDialogs-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useEvents-function-1.mdx"},"useExportAs-function-1":{"id":"useExportAs-function-1","sectionIndex":533,"groupIndex":-1,"groupId":"Function","categoryIndex":66,"sectionId":"gen","categoryId":"ui","status":"published","title":"useExportAs","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useHelpMenuSchema-function-1","prev":"useEvents-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useExportAs-function-1.mdx"},"useHelpMenuSchema-function-1":{"id":"useHelpMenuSchema-function-1","sectionIndex":534,"groupIndex":-1,"groupId":"Function","categoryIndex":67,"sectionId":"gen","categoryId":"ui","status":"published","title":"useHelpMenuSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useKeyboardShortcuts-function-1","prev":"useExportAs-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useHelpMenuSchema-function-1.mdx"},"useKeyboardShortcuts-function-1":{"id":"useKeyboardShortcuts-function-1","sectionIndex":535,"groupIndex":-1,"groupId":"Function","categoryIndex":68,"sectionId":"gen","categoryId":"ui","status":"published","title":"useKeyboardShortcuts","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useKeyboardShortcutsSchema-function-1","prev":"useHelpMenuSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useKeyboardShortcuts-function-1.mdx"},"useKeyboardShortcutsSchema-function-1":{"id":"useKeyboardShortcutsSchema-function-1","sectionIndex":536,"groupIndex":-1,"groupId":"Function","categoryIndex":69,"sectionId":"gen","categoryId":"ui","status":"published","title":"useKeyboardShortcutsSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useLocalStorageState-function-1","prev":"useKeyboardShortcuts-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useKeyboardShortcutsSchema-function-1.mdx"},"useLocalStorageState-function-1":{"id":"useLocalStorageState-function-1","sectionIndex":537,"groupIndex":-1,"groupId":"Function","categoryIndex":70,"sectionId":"gen","categoryId":"ui","status":"published","title":"useLocalStorageState","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useMenuClipboardEvents-function-1","prev":"useKeyboardShortcutsSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useLocalStorageState-function-1.mdx"},"useMenuClipboardEvents-function-1":{"id":"useMenuClipboardEvents-function-1","sectionIndex":538,"groupIndex":-1,"groupId":"Function","categoryIndex":71,"sectionId":"gen","categoryId":"ui","status":"published","title":"useMenuClipboardEvents","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useMenuIsOpen-function-1","prev":"useLocalStorageState-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useMenuClipboardEvents-function-1.mdx"},"useMenuIsOpen-function-1":{"id":"useMenuIsOpen-function-1","sectionIndex":539,"groupIndex":-1,"groupId":"Function","categoryIndex":72,"sectionId":"gen","categoryId":"ui","status":"published","title":"useMenuIsOpen","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useMenuSchema-function-1","prev":"useMenuClipboardEvents-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useMenuIsOpen-function-1.mdx"},"useMenuSchema-function-1":{"id":"useMenuSchema-function-1","sectionIndex":540,"groupIndex":-1,"groupId":"Function","categoryIndex":73,"sectionId":"gen","categoryId":"ui","status":"published","title":"useMenuSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useNativeClipboardEvents-function-1","prev":"useMenuIsOpen-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useMenuSchema-function-1.mdx"},"useNativeClipboardEvents-function-1":{"id":"useNativeClipboardEvents-function-1","sectionIndex":541,"groupIndex":-1,"groupId":"Function","categoryIndex":74,"sectionId":"gen","categoryId":"ui","status":"published","title":"useNativeClipboardEvents","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useReadonly-function-1","prev":"useMenuSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useNativeClipboardEvents-function-1.mdx"},"useReadonly-function-1":{"id":"useReadonly-function-1","sectionIndex":542,"groupIndex":-1,"groupId":"Function","categoryIndex":75,"sectionId":"gen","categoryId":"ui","status":"published","title":"useReadonly","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useToasts-function-1","prev":"useNativeClipboardEvents-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useReadonly-function-1.mdx"},"useToasts-function-1":{"id":"useToasts-function-1","sectionIndex":543,"groupIndex":-1,"groupId":"Function","categoryIndex":76,"sectionId":"gen","categoryId":"ui","status":"published","title":"useToasts","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useToolbarSchema-function-1","prev":"useReadonly-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useToasts-function-1.mdx"},"useToolbarSchema-function-1":{"id":"useToolbarSchema-function-1","sectionIndex":544,"groupIndex":-1,"groupId":"Function","categoryIndex":77,"sectionId":"gen","categoryId":"ui","status":"published","title":"useToolbarSchema","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useTools-function-1","prev":"useToasts-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useToolbarSchema-function-1.mdx"},"useTools-function-1":{"id":"useTools-function-1","sectionIndex":545,"groupIndex":-1,"groupId":"Function","categoryIndex":78,"sectionId":"gen","categoryId":"ui","status":"published","title":"useTools","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":"useTranslation-function-1","prev":"useToolbarSchema-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useTools-function-1.mdx"},"useTranslation-function-1":{"id":"useTranslation-function-1","sectionIndex":546,"groupIndex":-1,"groupId":"Function","categoryIndex":79,"sectionId":"gen","categoryId":"ui","status":"published","title":"useTranslation","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":"useTools-function-1","author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/useTranslation-function-1.mdx"},"T-namespace":{"id":"T-namespace","sectionIndex":547,"groupIndex":-1,"groupId":"Namespace","categoryIndex":0,"sectionId":"gen","categoryId":"validate","status":"published","title":"T","description":"An article for the docs site.","hero":null,"date":"2023-06-22T23:00:00.000Z","keywords":[],"next":null,"prev":null,"author":{"name":"API","email":"hello@tldraw.com","twitter":"tldraw","image":"api.jpg"},"sourceUrl":"https://github.com/tldraw/tldraw/tree/main/apps/docs/content/gen/T-namespace.mdx"}}}'); /***/ }) }; ; // load runtime var __webpack_require__ = require("../webpack-runtime.js"); __webpack_require__.C(exports); var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) var __webpack_exports__ = (__webpack_exec__("./pages/index.tsx")); module.exports = __webpack_exports__; })();