tldraw/apps/docs/.next/server/pages/index.js
alex c893a02878
remove lock option from highlighter (#1703)
Highlighter is autolocked, so we shouldn't show the lock icon 

### Change Type

- [x] `patch` — Bug fix


[^1]: publishes a `patch` release, for devDependencies use `internal`
[^2]: will not publish a new version

### Test Plan

1. Add a step-by-step description of how to test your PR here.
2.

- [ ] Unit Tests
- [ ] End to end tests

### Release Notes

- We no longer show the tool lock option for highlighter - it didn't do
anything anyway
2023-07-04 10:41:14 +00:00

519 lines
No EOL
1.5 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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 browsers 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 \\`<Link>\\`, 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 <Link> 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 <Link> 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 <Link> 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 <Link> 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 <Link> 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 <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\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 <a> 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<div style={{ position: \'fixed\', inset: 0 }}>\\n\\t\\t\\t<Tldraw />\\n\\t\\t</div>\\n\\t)\\n}\\n```\\n\\nYou can use the `<Tldraw>` 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 `<TldrawEditor>` 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 `<Tldraw>` 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<div style={{ position: \'fixed\', inset: 0 }} >\\n\\t\\t\\t<Tldraw />\\n\\t\\t</div>\\n\\t)\\n}\\n```\\n\\n### CSS\\n\\nIn order to use the `<Tldraw>` 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 `<Tldraw>` 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<meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1, viewport-fit=cover\\" />\\n```\\n\\nThis may not be critical to `<Tldraw>` 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 `<Tldraw>` 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 `<Tldraw>` component combines two lower-level components: `<TldrawEditor>` and `<TldrawUi>`. 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 `<Tldraw/>` 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 `<Tldraw />` 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<Tldraw assetUrls={assetUrls} />\\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 `<Tldraw/>` 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<Tldraw assetUrls={assetUrls} />\\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<Tldraw assetUrls={assetUrls} />\\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 <div>{editor.selectedIds.length}</div>\\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<Image title=\\"Events\\" src=\\"/images/api/events.png\\" alt=\\"A diagram showing an event being sent to the editor and handled in the state chart.\\" title=\\"The editor passes an event into the state start where it is handled by each active state in order.\\"/>\\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 <div data-isSelected={isSelected}>Creating Bubble</div>\\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<CardShape> {\\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 <HTMLContainer>Hello</HTMLContainer>\\n )\\n }\\n\\n indicator(shape: Shape) {\\n return (\\n <rect width={shape.props.w} height={shape.props.h}/>\\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 `<Tldraw>` 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 `<Tldraw>` 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<div style={{ position: \'fixed\', inset: 0 }}>\\n\\t\\t\\t<Tldraw shapes={MyCustomShapes}/>\\n\\t\\t</div>\\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<div style={{ position: \'fixed\', inset: 0 }}>\\n\\t\\t\\t<Tldraw shapes={MyCustomShapes} onMount={editor => {\\n editor.createShapes([{ type: \\"card\\" }])\\n }}/>\\n\\t\\t</div>\\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 `<Tldraw>` 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 <Tldraw onUiEvent={handleEvent}/>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_ASSET_TYPE: string\\n```\\n\\n","ACCEPTED_IMG_TYPE-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_IMG_TYPE: string[]\\n```\\n\\n","ACCEPTED_VID_TYPE-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nACCEPTED_VID_TYPE: string[]\\n```\\n\\n","AllRecords-type":"<Small>Public TypeAlias</Small>\\n\\nGet the type of all records in a record store.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype AllRecords<T extends Store<any>> = ExtractR<ExtractRecordType<T>>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ArrowShapeUtil extends ShapeUtil<TLArrowShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `canEdit` \\\\{#ArrowShapeUtil-canEdit-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `canSnap` \\\\{#ArrowShapeUtil-canSnap-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanSnap: () => boolean\\n```\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#ArrowShapeUtil-hideResizeHandles-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: TLShapeUtilFlag<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: TLShapeUtilFlag<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: () => boolean\\n```\\n\\n---\\n\\n### `labelBoundsCache` \\\\{#ArrowShapeUtil-labelBoundsCache-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget labelBoundsCache(): ComputedCache<Box2d | null, TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickHandle: (\\n shape: TLArrowShape,\\n handle: TLHandle\\n) => TLShapePartial<TLArrowShape> | 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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange: TLOnHandleChangeHandler<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLArrowShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateStart: TLOnTranslateStartHandler<TLArrowShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'arrow\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#ArrowShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`_shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLArrowShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nAssetRecordType: import(\'@tldraw/store\').RecordType<TLAsset, \'props\' | \'type\'>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLAsset](/gen/tlschema/TLAsset-type)\\n\\n","BaseBoxShapeTool-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [children](#BaseBoxShapeTool-children-member)\\n - [id](#BaseBoxShapeTool-id-member)\\n - [initial](#BaseBoxShapeTool-initial-member)\\n - [shapeType](#BaseBoxShapeTool-shapeType-member)\\n</details>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic id: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#BaseBoxShapeTool-initial-member}\\n\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic initial: string\\n```\\n\\n---\\n\\n### `shapeType` \\\\{#BaseBoxShapeTool-shapeType-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nabstract shapeType: TLShapeUtilConstructor<any>\\n```\\n\\n##### References\\n\\n[TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface)\\n\\n---\\n\\n","BaseBoxShapeUtil-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class BaseBoxShapeUtil<\\n Shape extends TLBaseBoxShape\\n> extends ShapeUtil<Shape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<any>\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)\\n\\n---\\n\\n## Methods\\n\\n### `getBounds()` \\\\{#BaseBoxShapeUtil-getBounds-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [id](#BaseRecord-id-member)\\n - [typeName](#BaseRecord-typeName-member)\\n</details>\\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<UnknownRecord>\\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\\n<Small>Public Readonly PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: Id\\n```\\n\\n---\\n\\n### `typeName` \\\\{#BaseRecord-typeName-member}\\n\\n<Small>Public Readonly PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly typeName: TypeName\\n```\\n\\n---\\n\\n","BookmarkShape-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass BookmarkShapeUtil extends BaseBoxShapeUtil<TLBookmarkShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#BookmarkShapeUtil-hideSelectionBoundsBg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#BookmarkShapeUtil-hideSelectionBoundsFg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#BookmarkShapeUtil-onBeforeCreate-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate?: TLOnBeforeCreateHandler<TLBookmarkShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate?: TLOnBeforeUpdateHandler<TLBookmarkShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'bookmark\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#BookmarkShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLBookmarkShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLBookmarkShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Box2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `Box2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`w`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`h`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n---\\n\\n## Properties\\n\\n### `aspectRatio` \\\\{#Box2d-aspectRatio-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget aspectRatio(): number\\n```\\n\\n---\\n\\n### `center` \\\\{#Box2d-center-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nh: number\\n```\\n\\n---\\n\\n### `height` \\\\{#Box2d-height-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget maxX(): number\\n```\\n\\n---\\n\\n### `maxY` \\\\{#Box2d-maxY-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget maxY(): number\\n```\\n\\n---\\n\\n### `midX` \\\\{#Box2d-midX-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget midX(): number\\n```\\n\\n---\\n\\n### `midY` \\\\{#Box2d-midY-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget midY(): number\\n```\\n\\n---\\n\\n### `minX` \\\\{#Box2d-minX-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nw: number\\n```\\n\\n---\\n\\n### `width` \\\\{#Box2d-width-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Box2d-y-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `clone()` \\\\{#Box2d-clone-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber | VecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`other`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d | Box2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `ExpandBy()` \\\\{#Box2d-ExpandBy-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`box`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSelectionCorner | SelectionEdge\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSelectionCorner | SelectionEdge | string\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dy`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`box`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSelectionCorner | SelectionEdge | string\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dy`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isAspectRatioLocked`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `set()` \\\\{#Box2d-set-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`w`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`h`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Box2d-setTo-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`size`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `toFixed()` \\\\{#Box2d-toFixed-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`delta`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`box`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [h](#Box2dModel-h-member)\\n - [w](#Box2dModel-w-member)\\n - [x](#Box2dModel-x-member)\\n - [y](#Box2dModel-y-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nh: number\\n```\\n\\n---\\n\\n### `w` \\\\{#Box2dModel-w-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nw: number\\n```\\n\\n---\\n\\n### `x` \\\\{#Box2dModel-x-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Box2dModel-y-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","BreakPointProvider-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nButton: React.ForwardRefExoticComponent<\\n TLUiButtonProps & React.RefAttributes<HTMLButtonElement>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nCameraRecordType: import(\'@tldraw/store\').RecordType<TLCamera, never>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n","Canvas-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\nA diff describing the changes to a collection.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype CollectionDiff<T> = {\\n added?: Set<T>\\n removed?: Set<T>\\n}\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface)\\n\\n","ComputedCache-type":"<Small>Public TypeAlias</Small>\\n\\nA record store is a collection of records of different types.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype ComputedCache<Data, R extends UnknownRecord> = {\\n get(id: IdOf<R>): Data | undefined\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [IdOf](/gen/store/IdOf-type)\\n\\n","ContextMenu-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass CubicSegment2d extends BaseSegment2d<CubicSegment2dModel> {}\\n```\\n\\n##### References\\n\\n[BaseSegment2d](/gen/primitives/~BaseSegment2d-class), [CubicSegment2dModel](/gen/primitives/CubicSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `CubicSegment2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`d`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `[Symbol.iterator]` \\\\{#CubicSegment2d-[Symbol-iterator]-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\n[Symbol.iterator]: (\\n this: InstanceType<typeof CubicSegment2d>\\n) => Generator<VecLike, void, undefined>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`head`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `getPoint()` \\\\{#CubicSegment2d-getPoint-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `getY()` \\\\{#CubicSegment2d-getY-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n","CubicSegment2dModel-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\np: number\\n```\\n\\n---\\n\\n","CubicSpline2d-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [segments](#CubicSpline2d-segments-member)\\n- [Methods](#methods)\\n - [FromPoints](#CubicSpline2d-FromPoints-member-1)\\n - [getSegmentsFromPoints](#CubicSpline2d-getSegmentsFromPoints-member-1)\\n</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass CubicSpline2d extends BaseSpline2d<CubicSegment2dModel> {}\\n```\\n\\n##### References\\n\\n[BaseSpline2d](/gen/primitives/~BaseSpline2d-class), [CubicSegment2dModel](/gen/primitives/CubicSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `CubicSpline2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`k`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `segments` \\\\{#CubicSpline2d-segments-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`k`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>None Namespace</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Methods\\n\\n### `Body` \\\\{#Dialog-Body-function-1}\\n\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ className, children, style, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n className?: string\\n children: any\\n style?: React.CSSProperties\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ className, children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ className, children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ className, children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n className?: string\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nDocumentRecordType: import(\'@tldraw/store\').RecordType<TLDocument, never>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n","DrawShape-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass DrawShapeUtil extends ShapeUtil<TLDrawShape> {}\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLDrawShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'draw\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#DrawShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLDrawShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>None Namespace</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Methods\\n\\n### `CheckboxItem` \\\\{#DropdownMenu-CheckboxItem-function-1}\\n\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children, onSelect, ...rest }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nDropdownMenuCheckboxItemProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ side, align, sideOffset, alignOffset, children, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children, size, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n children: any\\n size?: \'medium\' | \'small\' | \'tiny\' | \'wide\'\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ noClose, ...props }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nDropdownMenuItemProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children, onSelect, ...rest }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nDropdownMenuCheckboxItemProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ id, children, modal, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n id: string\\n children: any\\n modal?: boolean\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ id, children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n id: string\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ alignOffset, sideOffset, children, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n alignOffset?: number\\n sideOffset?: number\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ label, \'data-testid\': testId, \'data-direction\': dataDirection, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n label: TLUiTranslationKey\\n \'data-testid\'?: string\\n \'data-direction\'?: \'left\' | \'right\'\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children, \'data-testid\': testId, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n children: any\\n \'data-testid\'?: string\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEPSILON: number\\n```\\n\\n","EVENT_NAME_MAP-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nEVENT_NAME_MAP: Record<\\n Exclude<TLEventName, TLPinchEventName>,\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Editor extends EventEmitter<TLEventMap> {}\\n```\\n\\n##### References\\n\\n[EventEmitter](/gen/eventemitter3-EventEmitter-EventEmitter), [TLEventMap](/gen/editor/TLEventMap-interface)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `Editor` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ store, user, shapes, tools, getContainer }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLEditorOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[TLEditorOptions](/gen/editor/TLEditorOptions-interface)\\n\\n---\\n\\n## Properties\\n\\n### `allShapesCommonBounds` \\\\{#Editor-allShapesCommonBounds-member}\\n\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`canMove`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nWhether the camera can move.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\nAn array of all of the shapes on the current page.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget currentPageShapeIds(): Set<TLShapeId>\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `currentToolId` \\\\{#Editor-currentToolId-member}\\n\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\nA derived set containing the current erasing ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget erasingIdsSet(): Set<TLShapeId>\\n```\\n\\n##### References\\n\\n[Set](/gen/Set-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `externalContentManager` \\\\{#Editor-externalContentManager-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\nA manager for the app\'s history.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly history: HistoryManager<this>\\n```\\n\\n##### References\\n\\n[HistoryManager](/gen/editor/~HistoryManager-class)\\n\\n---\\n\\n### `hoveredId` \\\\{#Editor-hoveredId-member}\\n\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\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<string>\\n buttons: Set<number>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\nThe current selected ids as a set\\n\\n\\n##### Signature\\n\\n\\n```ts\\nget selectedIdsSet(): ReadonlySet<TLShapeId>\\n```\\n\\n##### References\\n\\n[ReadonlySet](/gen/ReadonlySet-interface), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n---\\n\\n### `selectedPageBounds` \\\\{#Editor-selectedPageBounds-member}\\n\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\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<TLUnknownShape>\\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\\n<Small>Public Readonly Property</Small>\\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<number>\\n```\\n\\n##### References\\n\\n[SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n### `sharedStyles` \\\\{#Editor-sharedStyles-member}\\n\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `alignShapes()` \\\\{#Editor-alignShapes-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`operation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to align. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s x position.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s y position.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`z`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s z position. Defaults to the current zoom.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nOptions for the animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`partials`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(null | TLShapePartial | undefined)[]\\n```\\n\\nThe shape partials to update.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n duration?: number\\n ease?: (t: number) => number\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nAnimate the camera to a shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapeId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`userId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe id of the user to aniamte to.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `bail()` \\\\{#Editor-bail-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `batch()` \\\\{#Editor-batch-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`fn`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n() => void\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `blur()` \\\\{#Editor-blur-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe x position of the point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe y position of the point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`assets`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAsset[]\\n```\\n\\nThe assets to create.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`title`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe new page\'s title.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe new page\'s id.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`belowPageIndex`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`partials`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapePartial<T>[]\\n```\\n\\nThe shape partials to create.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`select`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether to select the created shapes. Defaults to false.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAssetId[]\\n```\\n\\nThe assets to delete.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `deletePage()` \\\\{#Editor-deletePage-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to delete.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to delete. Defaults to the selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLEventInfo\\n```\\n\\nThe event info.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`operation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to distribute shapes horizontally or vertically.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to distribute. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nDuplicate a page.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to duplicate. Defaults to the current page.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`createId`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the new page. Defaults to a new id.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`offset`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe offset (in pixels) to apply to the duplicated shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to check the ancestors for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`predicate`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(parent: TLShape) => boolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the common ancestor of two or more shapes that matches a predicate.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapes`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`predicate`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(shape: TLShape) => boolean\\n```\\n\\nThe predicate to match.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`operation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to flip horizontally or vertically.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to flip. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\nGet the id of the containing page for a given shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page id for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the ancestors for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`acc`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the ancestors for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`acc`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet all arrows bound to a shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapeId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAssetId\\n```\\n\\nThe id of the asset.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`src`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe source value of the asset.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the bounds for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT[\'id\']\\n```\\n\\nThe id of the shape to get the bounds for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet content that can be exported for the given shape ids.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the delta in the parent space of.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`delta`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe page delta to convert.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the delta in the local space of.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`delta`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe page delta to convert.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the shape that some shapes should be dropped on at a given point.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to find the parent for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`droppingShapes`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes that are being dropped.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the handles (if any) for a shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the handles (if any) for a shape by its id.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT[\'id\']\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the index above the highest child of a given parent.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`parentId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId | TLShapeId\\n```\\n\\nThe id of the parent.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the masked bounds for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the masked page bounds for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the outermost selectable shape for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`filter`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(shape: TLShape) => boolean\\n```\\n\\nA function to filter the selectable shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the outline for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id to get the outline for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\nThe shape to get the outline segments for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the bounds for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page bounds for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page point for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe shape id to get the page point for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the corners for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPage[\'id\']\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page mask for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page rotation for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to get the page rotation for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the page transform for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe if of the shape to get the page transform for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to find the parent for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapeType`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[\'type\']\\n```\\n\\nThe type of shape that will be created.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to get the parents and children of.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nMap<TLParentId, Set<TLShape>>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the parent transform for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapeId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to get in the local space of the shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the point in the local space of.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to get in the local space of the shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the shape ids of all descendants of the given shapes (including the shapes themselves).\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to get descendants of.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nSet<TLShapeId>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the shape to get.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pageId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nSet<TLShapeId>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to test.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`style`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStyleProp<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`util`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nC\\n```\\n\\nThe shape util.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nInstanceType<C>\\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\\n<Small>Public Method</Small>\\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<ArrowShapeUtil>(myShape)\\nconst util = editor.getShapeUtil(ArrowShapeUtil)\\n```\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nS | TLShapePartial<S>\\n```\\n\\nA shape or shape partial.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nShapeUtil<S>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`parentId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the parent shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`path`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe descendant\'s path of state ids, separated by periods.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet an exported SVG of the given shapes.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to export. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<{\\n scale: number\\n background: boolean\\n padding: number\\n darkMode?: boolean | undefined\\n preserveAspectRatio: React.SVGAttributes<SVGSVGElement>[\'preserveAspectRatio\']\\n}>\\n```\\n\\nOptions for the export.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<SVGSVGElement | undefined>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to get the local transform for.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGroup some shapes together.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nIds of the shapes to group. Defaults to the selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`groupId`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nId of the group to create. Defaults to a new shape id.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nReturns true if the the given shape has the given ancestor.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape | undefined\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ancestorId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the ancestor.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`path`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe path of active states, separated by periods.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `isInAny()` \\\\{#Editor-isInAny-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`paths`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `isPointInShape()` \\\\{#Editor-isPointInShape-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe page point to test.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to test against.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\nThe shape to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pageId`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to check against. Defaults to the current page.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLUnknownShape\\n```\\n\\nthe shape to test\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`util`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n new (...args: any): ShapeUtil<T>\\n type: string\\n}\\n```\\n\\nthe TLShapeUtil constructor to test against\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nCheck whether a shape or its parent is locked.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`reason`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe reason for the mark.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`onUndo`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether to stop at the mark when undoing.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`onRedo`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether to stop at the mark when redoing.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `moveShapesToPage()` \\\\{#Editor-moveShapesToPage-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pageId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page where the shapes will be moved.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`direction`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe direction in which to move the shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`major`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether this is a major nudge, e.g. a shift + arrow nudge.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ephemeral`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to pack. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`padding`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe padding to apply to the packed shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe x coordinate of the point in screen space.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe y coordinate of the point in screen space.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`z`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`camera`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe camera to use. Defaults to the current camera.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe amount to pan on the x axis.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dy`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe amount to pan on the y axis.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe animation options\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to pan and zoom into view.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\nPlace content into the editor.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`content`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLContent\\n```\\n\\nThe content.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLExternalContent\\n```\\n\\nInfo about the external content.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to rename.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`name`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe new name.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nReorder shapes.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`operation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'backward\' | \'forward\' | \'toBack\' | \'toFront\'\\n```\\n\\nThe operation to perform.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to reorder.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to reparent.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`parentId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the new parent shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`insertIndex`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe index to insert the children.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nReplace the store\'s contents with the given records.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`records`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLRecord[]\\n```\\n\\nThe records to replace the store\'s contents with.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nResize a shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId\\n```\\n\\nThe id of the shape to resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scale`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe scale factor to apply to the shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to move.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`delta`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe delta in radians to apply to the selection rotation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe x coordinate of the point in screen space.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe y coordinate of the point in screen space.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`z`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`camera`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe camera to use. Defaults to the current camera.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to select.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`animationSpeed`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setBrush()` \\\\{#Editor-setBrush-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`brush`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2dModel | null\\n```\\n\\nThe brush box model to set, or null for no brush model.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s x position.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s y position.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`z`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe camera\'s z position. Defaults to the current zoom.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ stopFollowing }`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLViewportOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSet the current cropping shape\'s id.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pageId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLPageId\\n```\\n\\nThe id of the page to set as the current page.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ stopFollowing }`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLViewportOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cursor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<TLCursor>\\n```\\n\\nA partial of the cursor object.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSet whether the user has dark mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isDarkMode`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setDevicePixelRatio()` \\\\{#Editor-setDevicePixelRatio-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dpr`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setEditingId()` \\\\{#Editor-setEditingId-member-1}\\n\\n<Small>Public Method</Small>\\n\\nSet the current editing id.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of shapes to set as erasing.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSet the focus layer to the given shape id.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`next`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSet whether the instance is in focus mode or not.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isFocusMode`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setGridMode()` \\\\{#Editor-setGridMode-member-1}\\n\\n<Small>Public Method</Small>\\n\\nSet whether the instance\'s grid is enabled.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isGridMode`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setHintingIds()` \\\\{#Editor-setHintingIds-member-1}\\n\\n<Small>Public Method</Small>\\n\\nSet the hinted shape ids.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to set as hinted.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnull | TLShapeId\\n```\\n\\nThe id of the page to set as the current page\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`locale`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `setOpacity()` \\\\{#Editor-setOpacity-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opacity`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe opacity to set. Must be a number between 0 and 1 inclusive.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ephemeral`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setPageState()` \\\\{#Editor-setPageState-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`partial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<TLInstancePageState>\\n```\\n\\nThe partial of the page state object containing the changes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ephemeral`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether the command is ephemeral.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSet whether the editor is in pen mode or not.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isPenMode`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setReadOnly()` \\\\{#Editor-setReadOnly-member-1}\\n\\n<Small>Public Method</Small>\\n\\nSet whether the editor is in read-only mode or not.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isReadOnly`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setScribble()` \\\\{#Editor-setScribble-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scribble`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnull | TLScribble\\n```\\n\\nThe new scribble object.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids to select.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe id of the tool to select.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{}\\n```\\n\\nArbitrary data to pass along into the transition.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setSnapMode()` \\\\{#Editor-setSnapMode-member-1}\\n\\n<Small>Public Method</Small>\\n\\nSet whether the user has \\"always snap\\" mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isSnapMode`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setStyle()` \\\\{#Editor-setStyle-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`style`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStyleProp<T>\\n```\\n\\nThe style to set.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`value`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\nThe value to set.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ephemeral`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSet whether the instance has \\"tool lock\\" mode enabled.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`isToolLocked`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setZoomBrush()` \\\\{#Editor-setZoomBrush-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`zoomBrush`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2dModel | null\\n```\\n\\nThe zoom box model to set, or null for no zoom model.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nSlide the camera in a certain direction.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`operation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to stack horizontally or vertically.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to stack. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`gap`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nA specific gap to use when stacking.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nStart viewport-following a user.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`userId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe id of the user to follow.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis | undefined\\n```\\n\\n---\\n\\n### `stopCameraAnimation()` \\\\{#Editor-stopCameraAnimation-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`operation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'horizontal\' | \'vertical\'\\n```\\n\\nWhether to stretch shapes horizontally or vertically.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to stretch. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nThe ids of the shapes to toggle. Defaults to selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<this>\\n```\\n\\n##### References\\n\\n[HistoryManager](/gen/editor/~HistoryManager-class)\\n\\n---\\n\\n### `ungroupShapes()` \\\\{#Editor-ungroupShapes-member-1}\\n\\n<Small>Public Method</Small>\\n\\nUngroup some shapes.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapeId[]\\n```\\n\\nIds of the shapes to ungroup. Defaults to the selected shapes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`assets`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAssetPartial[]\\n```\\n\\nThe assets to update.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nUpdate the global document settings that apply to all users.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`settings`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<TLDocument>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nUpdate the instance\'s state.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`partial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<Omit<TLInstance, \'currentPageId\'>>\\n```\\n\\nA partial object to update the instance state with.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ephemeral`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`partial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRequiredKeys<TLPage, \'id\'>\\n```\\n\\nThe partial of the shape to update.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`partials`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(null | TLShapePartial<T> | undefined)[]\\n```\\n\\nThe shape partials to update.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`squashing`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether the change is ephemeral.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`center`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n(optional) Whether to preserve the viewport page center as the viewport changes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `visitDescendants()` \\\\{#Editor-visitDescendants-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`parentId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLParentId\\n```\\n\\nThe id of the parent shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`visitor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(id: TLShapeId) => false | void\\n```\\n\\nThe visitor function.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s x position.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s y position.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`width`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s width.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`height`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe bounding box\'s height.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`targetZoom`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe desired zoom level. Defaults to 0.1.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAnimationOptions\\n```\\n\\nThe options for an animation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass EmbedShapeUtil extends BaseBoxShapeUtil<TLEmbedShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: TLShapeUtilFlag<TLEmbedShape>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanUnmount: TLShapeUtilFlag<TLEmbedShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag<TLEmbedShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag<TLEmbedShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag<TLEmbedShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLEmbedShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'embed\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#EmbedShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLEmbedShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLEmbedShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [values](#EnumStyleProp-values-member)\\n</details>\\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<T> extends StyleProp<T> {}\\n```\\n\\n##### References\\n\\n[StyleProp](/gen/tlschema/StyleProp-class)\\n\\n---\\n\\n## Properties\\n\\n### `values` \\\\{#EnumStyleProp-values-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly values: readonly T[]\\n```\\n\\n---\\n\\n","ErrorBoundary-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ErrorBoundary extends React.Component<\\n React.PropsWithRef<React.PropsWithChildren<TLErrorBoundaryProps>>,\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`error`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `getDerivedStateFromError()` \\\\{#ErrorBoundary-getDerivedStateFromError-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`error`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nError\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass FrameShapeUtil extends BaseBoxShapeUtil<TLFrameShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `canDropShapes` \\\\{#FrameShapeUtil-canDropShapes-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `canReceiveNewChildrenOfType` \\\\{#FrameShapeUtil-canReceiveNewChildrenOfType-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeEnd: TLOnResizeEndHandler<TLFrameShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'frame\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#FrameShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLFrameShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<SVGElement> | 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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#GeoShapeUtil-onBeforeCreate-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler<TLGeoShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLGeoShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'geo\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#GeoShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGeoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass GroupShapeUtil extends ShapeUtil<TLGroupShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#GroupShapeUtil-hideSelectionBoundsBg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#GroupShapeUtil-hideSelectionBoundsFg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onChildrenChange` \\\\{#GroupShapeUtil-onChildrenChange-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonChildrenChange: TLOnChildrenChangeHandler<TLGroupShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntype: \'group\'\\n```\\n\\n---\\n\\n### `type` \\\\{#GroupShapeUtil-type-member}\\n\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'group\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#GroupShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLGroupShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children, className, ...rest }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nHTMLContainerProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype HTMLContainerProps = React.HTMLAttributes<HTMLDivElement>\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [HTMLDivElement](/gen/HTMLDivElement-interface)\\n\\n","HighlightShape-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass HighlightShapeUtil extends ShapeUtil<TLHighlightShape> {}\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLHighlightShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'highlight\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `backgroundComponent()` \\\\{#HighlightShapeUtil-backgroundComponent-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLHighlightShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public TypeAlias</Small>\\n\\nAn entry containing changes that originated either by user actions or remote changes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype HistoryEntry<R extends UnknownRecord = UnknownRecord> = {\\n changes: RecordsDiff<R>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nINDENT = \' \'\\n```\\n\\n","Icon-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nIcon: import(\'react\').NamedExoticComponent<TLUiIconProps>\\n```\\n\\n##### References\\n\\n[NamedExoticComponent](/gen/@types/react-React-NamedExoticComponent-interface), [TLUiIconProps](/gen/ui/TLUiIconProps-interface)\\n\\n","IdOf-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype IdOf<R extends UnknownRecord> = R[\'id\']\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","ImageShape-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ImageShapeUtil extends BaseBoxShapeUtil<TLImageShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanCrop: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#ImageShapeUtil-isAspectRatioLocked-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: () => boolean\\n```\\n\\n---\\n\\n### `onDoubleClick` \\\\{#ImageShapeUtil-onDoubleClick-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge: TLOnDoubleClickHandler<TLImageShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'image\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#ImageShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLImageShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<SVGGElement>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nInput: React.ForwardRefExoticComponent<\\n TLUiInputProps & React.RefAttributes<HTMLInputElement>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass LineSegment2d extends BaseSegment2d<LineSegment2dModel> {}\\n```\\n\\n##### References\\n\\n[BaseSegment2d](/gen/primitives/~BaseSegment2d-class), [LineSegment2dModel](/gen/primitives/LineSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `LineSegment2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#LineSegment2d-a-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget angle(): number\\n```\\n\\n---\\n\\n### `b` \\\\{#LineSegment2d-b-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget length(): number\\n```\\n\\n---\\n\\n### `tangent` \\\\{#LineSegment2d-tangent-member}\\n\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the closest point on the segment to an arbitrary point.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe arbitrary point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`head`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n---\\n\\n### `getPoint()` \\\\{#LineSegment2d-getPoint-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `getY()` \\\\{#LineSegment2d-getY-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n---\\n\\n### `Length()` \\\\{#LineSegment2d-Length-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nLineSegment2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [a](#LineSegment2dModel-a-member)\\n - [b](#LineSegment2dModel-b-member)\\n - [p](#LineSegment2dModel-p-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\np: number\\n```\\n\\n---\\n\\n","LineShape-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass LineShapeUtil extends ShapeUtil<TLLineShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: () => boolean\\n```\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#LineShapeUtil-hideRotateHandle-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#LineShapeUtil-hideSelectionBoundsBg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#LineShapeUtil-hideSelectionBoundsFg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `isClosed` \\\\{#LineShapeUtil-isClosed-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: () => boolean\\n```\\n\\n---\\n\\n### `onHandleChange` \\\\{#LineShapeUtil-onHandleChange-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange: TLOnHandleChangeHandler<TLLineShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLLineShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'line\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#LineShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n children: any\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Matrix2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `Matrix2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`d`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`e`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`f`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n---\\n\\n## Properties\\n\\n### `a` \\\\{#Matrix2d-a-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\na: number\\n```\\n\\n---\\n\\n### `b` \\\\{#Matrix2d-b-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nb: number\\n```\\n\\n---\\n\\n### `c` \\\\{#Matrix2d-c-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nc: number\\n```\\n\\n---\\n\\n### `d` \\\\{#Matrix2d-d-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nd: number\\n```\\n\\n---\\n\\n### `e` \\\\{#Matrix2d-e-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ne: number\\n```\\n\\n---\\n\\n### `f` \\\\{#Matrix2d-f-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nf: number\\n```\\n\\n---\\n\\n### `Scale` \\\\{#Matrix2d-Scale-member}\\n\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`box`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`matrices`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatrix2d | Matrix2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatrix2d | Matrix2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cx`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cy`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cx`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cy`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Matrix2d-setTo-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`model`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatrix2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`precision`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\na: number\\n```\\n\\n---\\n\\n### `b` \\\\{#Matrix2dModel-b-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nb: number\\n```\\n\\n---\\n\\n### `c` \\\\{#Matrix2dModel-c-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nc: number\\n```\\n\\n---\\n\\n### `d` \\\\{#Matrix2dModel-d-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nd: number\\n```\\n\\n---\\n\\n### `e` \\\\{#Matrix2dModel-e-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ne: number\\n```\\n\\n---\\n\\n### `f` \\\\{#Matrix2dModel-f-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nf: number\\n```\\n\\n---\\n\\n","MatrixInfo-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `scaleX` \\\\{#MatrixInfo-scaleX-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nscaleX: number\\n```\\n\\n---\\n\\n### `scaleY` \\\\{#MatrixInfo-scaleY-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nscaleY: number\\n```\\n\\n---\\n\\n### `x` \\\\{#MatrixInfo-x-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#MatrixInfo-y-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","Migration-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype Migration<Before = any, After = any> = {\\n up: (oldState: Before) => After\\n down: (newState: After) => Before\\n}\\n```\\n\\n","MigrationFailureReason-enum":"<Small>Public Enum</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nenum MigrationFailureReason {}\\n```\\n\\n","MigrationResult-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype MigrationResult<T> =\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [subTypeKey](#Migrations-subTypeKey-member)\\n - [subTypeMigrations](#Migrations-subTypeMigrations-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nsubTypeKey?: string\\n```\\n\\n---\\n\\n### `subTypeMigrations` \\\\{#Migrations-subTypeMigrations-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nsubTypeMigrations?: Record<string, BaseMigrationsInfo>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [BaseMigrationsInfo](/gen/store/~BaseMigrationsInfo-interface)\\n\\n---\\n\\n","NoteShape-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass NoteShapeUtil extends ShapeUtil<TLNoteShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `hideResizeHandles` \\\\{#NoteShapeUtil-hideResizeHandles-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#NoteShapeUtil-hideSelectionBoundsBg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: () => boolean\\n```\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#NoteShapeUtil-hideSelectionBoundsFg-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: () => boolean\\n```\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#NoteShapeUtil-onBeforeCreate-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler<TLNoteShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'note\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#NoteShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`_shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLNoteShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPI: number\\n```\\n\\n","PI2-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPI2: number\\n```\\n\\n","PageRecordType-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPageRecordType: import(\'@tldraw/store\').RecordType<TLPage, \'index\' | \'name\'>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n","PlopManager-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ExternalContentManager {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `ExternalContentManager` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[Editor](/gen/editor/Editor-class)\\n\\n---\\n\\n## Properties\\n\\n### `editor` \\\\{#PlopManager-editor-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhandleContent: (info: TLExternalContent) => Promise<void>\\n```\\n\\n##### References\\n\\n[TLExternalContent](/gen/editor/TLExternalContent-type), [Promise](/gen/Promise-interface)\\n\\n---\\n\\n### `handleUrl` \\\\{#PlopManager-handleUrl-member}\\n\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe editor instance\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe info object describing the external content.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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<void>\\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\\n<Small>Public Method</Small>\\n\\nOverride this method to change how assets are created from files.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`_editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`file`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nFile\\n```\\n\\nThe file to create the asset from.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<TLAsset>\\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\\n<Small>Public Method</Small>\\n\\nOverride me to change the way assets are created from urls.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`_editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`url`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe url to create the asset from\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<TLAsset>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`assets`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLAsset[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`position`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ point, url, embed }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'embed\'\\n }\\n>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ point, files }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'files\'\\n }\\n>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ point, text }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'svg-text\'\\n }\\n>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\nThe editor instance\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ point, text }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nExtract<\\n TLExternalContent,\\n {\\n type: \'text\'\\n }\\n>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nPointerRecordType: import(\'@tldraw/store\').RecordType<TLPointer, never>\\n```\\n\\n##### References\\n\\n[RecordType](/gen/store/RecordType-class), [TLPointer](/gen/tlschema/~TLPointer-interface)\\n\\n","Polyline2d-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [segments](#Polyline2d-segments-member)\\n- [Methods](#methods)\\n - [FromPoints](#Polyline2d-FromPoints-member-1)\\n - [getSegmentsFromPoints](#Polyline2d-getSegmentsFromPoints-member-1)\\n</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Polyline2d extends BaseSpline2d<LineSegment2dModel> {}\\n```\\n\\n##### References\\n\\n[BaseSpline2d](/gen/primitives/~BaseSpline2d-class), [LineSegment2dModel](/gen/primitives/LineSegment2dModel-interface)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `Polyline2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`k`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n---\\n\\n## Properties\\n\\n### `segments` \\\\{#Polyline2d-segments-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass ReadonlySharedStyleMap {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `ReadonlySharedStyleMap` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`entries`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nIterable<\\n [StyleProp<unknown>, SharedStyle<unknown>]\\n>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nprotected map: Map<StyleProp<unknown>, SharedStyle<unknown>>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<[StyleProp<unknown>, SharedStyle<unknown>]>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<[StyleProp<unknown>, SharedStyle<unknown>]>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`other`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nReadonlySharedStyleMap\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`prop`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStyleProp<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nSharedStyle<T> | 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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`prop`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStyleProp<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<StyleProp<unknown>>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nIterableIterator<SharedStyle<unknown>>\\n```\\n\\n##### References\\n\\n[IterableIterator](/gen/IterableIterator-interface), [SharedStyle](/gen/editor/SharedStyle-type)\\n\\n---\\n\\n","RecordId-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordId<R extends UnknownRecord> = string & {\\n __type__: R\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","RecordType-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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<R, \'id\' | \'typeName\'>\\n> {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [Omit](/gen/Omit-type)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `RecordType` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`typeName`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nR[\'typeName\']\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`config`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n readonly createDefaultProperties: () => Exclude<\\n OmitMeta<R>,\\n RequiredProperties\\n >\\n readonly migrations: Migrations\\n readonly validator?:\\n | {\\n validate: (r: unknown) => R\\n }\\n | StoreValidator<R>\\n readonly scope?: RecordScope\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly createDefaultProperties: () => Exclude<\\n OmitMeta<R>,\\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\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe record to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly validator:\\n | {\\n validate: (r: unknown) => R\\n }\\n | StoreValidator<R>\\n```\\n\\n##### References\\n\\n[StoreValidator](/gen/store/StoreValidator-type)\\n\\n---\\n\\n## Methods\\n\\n### `clone()` \\\\{#RecordType-clone-member-1}\\n\\n<Small>Public Method</Small>\\n\\nClone a record of this type.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nR\\n```\\n\\nThe record to clone.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nCreate a new record of this type.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`properties`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPick<R, RequiredProperties> &\\n Omit<Partial<R>, RequiredProperties>\\n```\\n\\nThe properties of the record.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe ID to base the new ID on.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nIdOf<R>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`customUniquePart`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nIdOf<R>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe id to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nid is IdOf<R>\\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\\n<Small>Public Method</Small>\\n\\nTakes an id like `user:123` and returns the part after the colon `123`\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nIdOf<R>\\n```\\n\\nThe id\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nR\\n```\\n\\n---\\n\\n### `withDefaultProperties()` \\\\{#RecordType-withDefaultProperties-member-1}\\n\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`createDefaultProperties`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n() => DefaultProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nRecordType<R, Exclude<RequiredProperties, keyof DefaultProps>>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordVersion = {\\n rootVersion: number\\n subTypeVersion?: number\\n}\\n```\\n\\n","RecordsDiff-type":"<Small>Public TypeAlias</Small>\\n\\nA diff describing the changes to a record.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RecordsDiff<R extends UnknownRecord> = {\\n added: Record<IdOf<R>, R>\\n updated: Record<IdOf<R>, [from: R, to: R]>\\n removed: Record<IdOf<R>, 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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype RequiredKeys<T, K extends keyof T> = Pick<T, K> & Partial<T>\\n```\\n\\n##### References\\n\\n[Pick](/gen/Pick-type), [Partial](/gen/Partial-type)\\n\\n","RotateCorner-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nSIN: (x: number) => number\\n```\\n\\n","SVGContainer-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ children, className, ...rest }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSVGContainerProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SVGContainerProps = React.HTMLAttributes<SVGElement>\\n```\\n\\n##### References\\n\\n[React.HTMLAttributes](/gen/@types/react-React-HTMLAttributes-interface), [SVGElement](/gen/SVGElement-interface)\\n\\n","SchemaShapeInfo-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SelectionEdge = \'bottom\' | \'left\' | \'right\' | \'top\'\\n```\\n\\n","SelectionHandle-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [recordVersions](#SerializedSchema-recordVersions-member)\\n - [schemaVersion](#SerializedSchema-schemaVersion-member)\\n - [storeVersion](#SerializedSchema-storeVersion-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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<string, number>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype ShapeProps<Shape extends TLBaseShape<any, any>> = {\\n [K in keyof Shape[\'props\']]: T.Validatable<Shape[\'props\'][K]>\\n}\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface), [T.Validatable](/gen/validate/Validatable-type)\\n\\n","ShapeUtil-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class ShapeUtil<Shape extends TLUnknownShape = TLUnknownShape> {}\\n```\\n\\n##### References\\n\\n[TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `ShapeUtil` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape[\'type\']\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`styleProps`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nReadonlyMap<StyleProp<unknown>, string>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Property</Small>\\n\\nWhether the shape can be bound to by an arrow.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`_otherShape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe other shape attempting to bind to this shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind: <K>(_shape: Shape, _otherShape?: K | undefined) => boolean\\n```\\n\\n---\\n\\n### `canCrop` \\\\{#ShapeUtil-canCrop-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape can be cropped.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanCrop: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canEdit` \\\\{#ShapeUtil-canEdit-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape can be double clicked to edit.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canResize` \\\\{#ShapeUtil-canResize-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape can be resized.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanResize: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canScroll` \\\\{#ShapeUtil-canScroll-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape can be scrolled while editing.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanScroll: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canSnap` \\\\{#ShapeUtil-canSnap-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape can be snapped to by another shape.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncanSnap: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `canUnmount` \\\\{#ShapeUtil-canUnmount-member}\\n\\n<Small>Public Property</Small>\\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<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `editor` \\\\{#ShapeUtil-editor-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\nWhether the shape should hide its resize handles when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideResizeHandles: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideRotateHandle` \\\\{#ShapeUtil-hideRotateHandle-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape should hide its resize handles when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideRotateHandle: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideSelectionBoundsBg` \\\\{#ShapeUtil-hideSelectionBoundsBg-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape should hide its selection bounds background when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsBg: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `hideSelectionBoundsFg` \\\\{#ShapeUtil-hideSelectionBoundsFg-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape should hide its selection bounds foreground when selected.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nhideSelectionBoundsFg: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#ShapeUtil-isAspectRatioLocked-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape\'s aspect ratio is locked.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `isClosed` \\\\{#ShapeUtil-isClosed-member}\\n\\n<Small>Public Property</Small>\\n\\nWhether the shape\'s outline is closed.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisClosed: TLShapeUtilFlag<Shape>\\n```\\n\\n##### References\\n\\n[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type)\\n\\n---\\n\\n### `onBeforeCreate` \\\\{#ShapeUtil-onBeforeCreate-member}\\n\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`next`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe next shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeCreate?: TLOnBeforeCreateHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnBeforeCreateHandler](/gen/editor/TLOnBeforeCreateHandler-type)\\n\\n---\\n\\n### `onBeforeUpdate` \\\\{#ShapeUtil-onBeforeUpdate-member}\\n\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`prev`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe previous shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`next`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe next shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeUpdate?: TLOnBeforeUpdateHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnBeforeUpdateHandler](/gen/editor/TLOnBeforeUpdateHandler-type)\\n\\n---\\n\\n### `onChildrenChange` \\\\{#ShapeUtil-onChildrenChange-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape\'s children change.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonChildrenChange?: TLOnChildrenChangeHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnChildrenChangeHandler](/gen/editor/TLOnChildrenChangeHandler-type)\\n\\n---\\n\\n### `onClick` \\\\{#ShapeUtil-onClick-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape is clicked.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonClick?: TLOnClickHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnClickHandler](/gen/editor/TLOnClickHandler-type)\\n\\n---\\n\\n### `onDoubleClick` \\\\{#ShapeUtil-onDoubleClick-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClick?: TLOnDoubleClickHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type)\\n\\n---\\n\\n### `onDoubleClickEdge` \\\\{#ShapeUtil-onDoubleClickEdge-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape\'s edge is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickEdge?: TLOnDoubleClickHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandler](/gen/editor/TLOnDoubleClickHandler-type)\\n\\n---\\n\\n### `onDoubleClickHandle` \\\\{#ShapeUtil-onDoubleClickHandle-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape\'s handle is double clicked.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe handle that is double-clicked.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonDoubleClickHandle?: TLOnDoubleClickHandleHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnDoubleClickHandleHandler](/gen/editor/TLOnDoubleClickHandleHandler-type)\\n\\n---\\n\\n### `onDragShapesOut` \\\\{#ShapeUtil-onDragShapesOut-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when some other shapes are dragged out of this one.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapes`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shapes that are being dragged out.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonDragShapesOut?: TLOnDragHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onDragShapesOver` \\\\{#ShapeUtil-onDragShapesOver-member}\\n\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapes`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shapes that are being dragged over this one.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Property</Small>\\n\\nA callback called when some other shapes are dropped over this one.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapes`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shapes that are being dropped over this one.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonDropShapesOver?: TLOnDragHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnDragHandler](/gen/editor/TLOnDragHandler-type)\\n\\n---\\n\\n### `onEditEnd` \\\\{#ShapeUtil-onEditEnd-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape finishes being editing.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd?: TLOnEditEndHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type)\\n\\n---\\n\\n### `onHandleChange` \\\\{#ShapeUtil-onHandleChange-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape\'s handle changes.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nAn object containing the handle and whether the handle is \'precise\' or not.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonHandleChange?: TLOnHandleChangeHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type)\\n\\n---\\n\\n### `onResize` \\\\{#ShapeUtil-onResize-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape changes from a resize.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nInfo about the resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize?: TLOnResizeHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)\\n\\n---\\n\\n### `onResizeEnd` \\\\{#ShapeUtil-onResizeEnd-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape finishes resizing.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`current`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe current shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeEnd?: TLOnResizeEndHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnResizeEndHandler](/gen/editor/TLOnResizeEndHandler-type)\\n\\n---\\n\\n### `onResizeStart` \\\\{#ShapeUtil-onResizeStart-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape starts being resized.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonResizeStart?: TLOnResizeStartHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnResizeStartHandler](/gen/editor/TLOnResizeStartHandler-type)\\n\\n---\\n\\n### `onRotate` \\\\{#ShapeUtil-onRotate-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape changes from a rotation.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the rotation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`current`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe current shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonRotate?: TLOnRotateHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnRotateHandler](/gen/editor/TLOnRotateHandler-type)\\n\\n---\\n\\n### `onRotateEnd` \\\\{#ShapeUtil-onRotateEnd-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape finishes rotating.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the rotation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`current`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe current shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonRotateEnd?: TLOnRotateEndHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnRotateEndHandler](/gen/editor/TLOnRotateEndHandler-type)\\n\\n---\\n\\n### `onRotateStart` \\\\{#ShapeUtil-onRotateStart-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape starts being rotated.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonRotateStart?: TLOnRotateStartHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnRotateStartHandler](/gen/editor/TLOnRotateStartHandler-type)\\n\\n---\\n\\n### `onTranslate` \\\\{#ShapeUtil-onTranslate-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape changes from a translation.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the translation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`current`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe current shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslate?: TLOnTranslateHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnTranslateHandler](/gen/editor/TLOnTranslateHandler-type)\\n\\n---\\n\\n### `onTranslateEnd` \\\\{#ShapeUtil-onTranslateEnd-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape finishes translating.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initial`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the translation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`current`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe current shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateEnd?: TLOnTranslateEndHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnTranslateEndHandler](/gen/editor/TLOnTranslateEndHandler-type)\\n\\n---\\n\\n### `onTranslateStart` \\\\{#ShapeUtil-onTranslateStart-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback called when a shape starts being translated.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonTranslateStart?: TLOnTranslateStartHandler<Shape>\\n```\\n\\n##### References\\n\\n[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type)\\n\\n---\\n\\n### `styleProps` \\\\{#ShapeUtil-styleProps-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly styleProps: ReadonlyMap<StyleProp<unknown>, 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\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly type: Shape[\'type\']\\n```\\n\\n---\\n\\n### `type` \\\\{#ShapeUtil-type-member}\\n\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Method</Small>\\n\\nGet whether the shape can receive children of a given type.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape type.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shapes`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[]\\n```\\n\\nThe shapes that are being dropped.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet whether the shape can receive children of a given type.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShape[\'type\']\\n```\\n\\nThe shape type.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the shape\'s cached center.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet a JSX element for the shape (as an HTML element).\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nany\\n```\\n\\n---\\n\\n### `getBounds()` \\\\{#ShapeUtil-getBounds-member-1}\\n\\n<Small>Public Method</Small>\\n\\nGet the (not cached) bounds for the shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nReturn elements to be added to the \\\\<defs\\\\> 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\\n<Small>Public Method</Small>\\n\\nGet the shape\'s (not cached) center.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the shape\'s (not cached) outline.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet whether a point intersects the shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe line segment\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe line segment\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet whether a point intersects the shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to test.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet JSX describing the shape\'s indicator (as an SVG element).\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nany\\n```\\n\\n---\\n\\n### `setStyleInPartial()` \\\\{#ShapeUtil-setStyleInPartial-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`style`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStyleProp<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLShapePartial<Shape>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`value`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapePartial<Shape>\\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\\n<Small>Public Method</Small>\\n\\nGet the shape\'s snap points.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\nGet the shape\'s background layer as an SVG object.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\nctx - The export context for the SVG - used for adding e.g. \\\\<def\\\\>s\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnull | Promise<SVGElement> | 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\\n<Small>Public Method</Small>\\n\\nGet the shape as an SVG object.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nShape\\n```\\n\\nThe shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\nThe export context for the SVG - used for adding e.g. \\\\<def\\\\>s\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<SVGElement> | 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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype SharedStyle<T> =\\n | {\\n readonly type: \'mixed\'\\n }\\n | {\\n readonly type: \'shared\'\\n readonly value: T\\n }\\n```\\n\\n","StateNode-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nabstract class StateNode implements Partial<TLEventHandlers> {}\\n```\\n\\n##### References\\n\\n[Partial](/gen/Partial-type), [TLEventHandlers](/gen/editor/TLEventHandlers-interface)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `StateNode` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`parent`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStateNode\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: Record<string, StateNode>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [StateNode](/gen/editor/StateNode-class)\\n\\n---\\n\\n### `children` \\\\{#StateNode-children-member}\\n\\n<Small>Public Static Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncurrent: Atom<StateNode | undefined>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `id` \\\\{#StateNode-id-member}\\n\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic id: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#StateNode-initial-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ninitial?: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#StateNode-initial-member}\\n\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic initial?: string\\n```\\n\\n---\\n\\n### `isActive` \\\\{#StateNode-isActive-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisActive: boolean\\n```\\n\\n---\\n\\n### `onCancel` \\\\{#StateNode-onCancel-member}\\n\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\npath: Computed<string>\\n```\\n\\n##### References\\n\\n[Computed](/gen/state/Computed-interface)\\n\\n---\\n\\n### `shapeType` \\\\{#StateNode-shapeType-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nshapeType?: TLShapeUtilConstructor<TLBaseShape<any, any>>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nany\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`from`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `exit()` \\\\{#StateNode-exit-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nany\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`from`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `handleEvent()` \\\\{#StateNode-handleEvent-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nExclude<TLEventInfo, TLPinchEventInfo>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`info`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nany\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n","Store-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\nA store of records.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Store<R extends UnknownRecord = UnknownRecord, Props = unknown> {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `Store` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`config`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n initialData?: StoreSnapshot<R>\\n schema: StoreSchema<R, Props>\\n props: Props\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\nCreate a computed cache.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`name`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe name of the derivation cache.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`derive`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nA function used to derive the value of the cache.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\ncreateComputedCache: <T, V extends R = R>(\\n name: string,\\n derive: (record: V) => T | undefined\\n) => ComputedCache<T, V>\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type)\\n\\n---\\n\\n### `createSelectedComputedCache` \\\\{#Store-createSelectedComputedCache-member}\\n\\n<Small>Public Property</Small>\\n\\nCreate a computed cache from a selector\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`name`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe name of the derivation cache.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`selector`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nA function that returns a subset of the original shape\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`derive`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nA function used to derive the value of the cache.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\ncreateSelectedComputedCache: <T, J, V extends R = R>(\\n name: string,\\n selector: (record: V) => T | undefined,\\n derive: (input: T) => J | undefined\\n) => ComputedCache<J, V>\\n```\\n\\n##### References\\n\\n[ComputedCache](/gen/store/ComputedCache-type)\\n\\n---\\n\\n### `get` \\\\{#Store-get-member}\\n\\n<Small>Public Property</Small>\\n\\nGet the value of a store record by its id.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe id of the record to get.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nget: <K extends IdOf<R>>(id: K) => RecFromId<K> | 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\\n<Small>Public Property</Small>\\n\\nGet whether the record store has a id.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe id of the record to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nhas: <K extends IdOf<R>>(id: K) => boolean\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `history` \\\\{#Store-history-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\nAn atom containing the store\'s history.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly history: Atom<number, RecordsDiff<R>>\\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\\n<Small>Public Readonly Property</Small>\\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\\n<Small>Public Property</Small>\\n\\nAdd a new listener to the store.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`onHistory`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe listener to call when the store updates.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`filters`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nFilters to apply to the listener.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nlisten: (\\n onHistory: StoreListener<R>,\\n filters?: Partial<StoreListenerFilters>\\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\\n<Small>Public Property</Small>\\n\\nMerge changes from a remote source without triggering listeners.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`fn`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nA function that merges the external changes.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nmergeRemoteChanges: (fn: () => void) => void\\n```\\n\\n---\\n\\n### `onAfterChange` \\\\{#Store-onAfterChange-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback fired after each record\'s change.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`prev`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe previous value, if any.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`next`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe next value.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterChange?: (prev: R, next: R) => void\\n```\\n\\n---\\n\\n### `onAfterCreate` \\\\{#Store-onAfterCreate-member}\\n\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe record to be created\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterCreate?: (record: R) => void\\n```\\n\\n---\\n\\n### `onAfterDelete` \\\\{#Store-onAfterDelete-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback fired after a record is deleted.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`prev`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe record that will be deleted.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonAfterDelete?: (prev: R) => void\\n```\\n\\n---\\n\\n### `onBeforeDelete` \\\\{#Store-onBeforeDelete-member}\\n\\n<Small>Public Property</Small>\\n\\nA callback fired before a record is deleted.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`prev`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe record that will be deleted.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nonBeforeDelete?: (prev: R) => void\\n```\\n\\n---\\n\\n### `props` \\\\{#Store-props-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly props: Props\\n```\\n\\n---\\n\\n### `put` \\\\{#Store-put-member}\\n\\n<Small>Public Property</Small>\\n\\nAdd some records to the store. It\'s an error if they already exist.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`records`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe records to add.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nput: (records: R[], phaseOverride?: \'initialize\') => void\\n```\\n\\n---\\n\\n### `query` \\\\{#Store-query-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\nA StoreQueries instance for this store.\\n \\n\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly query: StoreQueries<R>\\n```\\n\\n##### References\\n\\n[StoreQueries](/gen/store/~StoreQueries-class)\\n\\n---\\n\\n### `remove` \\\\{#Store-remove-member}\\n\\n<Small>Public Property</Small>\\n\\nRemove some records from the store via their ids.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ids`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe ids of the records to remove.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nremove: (ids: IdOf<R>[]) => void\\n```\\n\\n##### References\\n\\n[IdOf](/gen/store/IdOf-type)\\n\\n---\\n\\n### `schema` \\\\{#Store-schema-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly schema: StoreSchema<R, Props>\\n```\\n\\n##### References\\n\\n[StoreSchema](/gen/store/StoreSchema-class)\\n\\n---\\n\\n### `scopedTypes` \\\\{#Store-scopedTypes-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly scopedTypes: {\\n readonly [K in RecordScope]: ReadonlySet<R[\'typeName\']>\\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\\n<Small>Public Property</Small>\\n\\nCreates a JSON payload from the record store.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scope`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe scope of records to serialize. Defaults to \'document\'.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nserialize: (scope?: \'all\' | RecordScope) => StoreSnapshot<R>\\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\\n<Small>Public Property</Small>\\n\\nGet the value of a store record by its id without updating its epoch.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe id of the record to get.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nunsafeGetWithoutCapture: <K extends IdOf<R>>(\\n id: K\\n) => RecFromId<K> | 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\\n<Small>Public Property</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe id of the record to update.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`updater`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nA function that updates the record.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\nupdate: <K extends IdOf<R>>(\\n id: K,\\n updater: (record: RecFromId<K>) => RecFromId<K>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`diff`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordsDiff<R>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`runCallbacks`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`fn`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n() => void\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff<R>\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n---\\n\\n### `filterChangesByScope()` \\\\{#Store-filterChangesByScope-member-1}\\n\\n<Small>Public Method</Small>\\n\\nFilters out non-document changes from a diff. Returns null if there are no changes left.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`change`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordsDiff<R>\\n```\\n\\nthe records diff\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scope`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordScope\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n added: { [K in IdOf<R>]: R }\\n updated: { [K_1 in IdOf<R>]: [from: R, to: R] }\\n removed: { [K in IdOf<R>]: 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\\n<Small>Public Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scope`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'all\' | RecordScope\\n```\\n\\nThe scope of records to serialize. Defaults to \'document\'.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n store: StoreSnapshot<R>\\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\\n<Small>Public Method</Small>\\n\\nLoad a serialized snapshot.\\n\\n\\n```ts\\nconst snapshot = store.getSnapshot()\\nstore.loadSnapshot(snapshot)\\n```\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`snapshot`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n store: StoreSnapshot<R>\\n schema: SerializedSchema\\n}\\n```\\n\\nThe snapshot to load.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`phase`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n | \'createRecord\'\\n | \'initialize\'\\n | \'tests\'\\n | \'updateRecord\'\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n","StoreError-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\nA function that will be called when the history changes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreListener<R extends UnknownRecord> = (entry: HistoryEntry<R>) => void\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type), [HistoryEntry](/gen/store/HistoryEntry-type)\\n\\n","StoreSchema-class":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass StoreSchema<R extends UnknownRecord, P = unknown> {}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n---\\n\\n## Properties\\n\\n### `currentStoreVersion` \\\\{#StoreSchema-currentStoreVersion-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget currentStoreVersion(): number\\n```\\n\\n---\\n\\n### `types` \\\\{#StoreSchema-types-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly types: {\\n [Record in R as Record[\'typeName\']]: RecordType<R, any>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`types`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n [TypeName in R[\'typeName\']]: {\\n createId: any\\n }\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStoreSchemaOptions<R, P>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nStoreSchema<R, P>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nR\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`persistedSchema`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`direction`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n\'down\' | \'up\'\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult<R>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`storeSnapshot`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStoreSnapshot<R>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`persistedSchema`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult<StoreSnapshot<R>>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`store`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStore<R>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nR\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`phase`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n | \'createRecord\'\\n | \'initialize\'\\n | \'tests\'\\n | \'updateRecord\'\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`recordBefore`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnull | R\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreSchemaOptions<R extends UnknownRecord, P> = {\\n snapshotMigrations?: Migrations\\n onValidationFailure?: (data: {\\n error: unknown\\n store: Store<R>\\n record: R\\n phase: \'createRecord\' | \'initialize\' | \'tests\' | \'updateRecord\'\\n recordBefore: null | R\\n }) => R\\n createIntegrityChecker?: (store: Store<R, P>) => 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":"<Small>Public TypeAlias</Small>\\n\\nA serialized snapshot of the record store\'s values.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreSnapshot<R extends UnknownRecord> = Record<IdOf<R>, 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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreValidator<R extends UnknownRecord> = {\\n validate: (record: unknown) => R\\n}\\n```\\n\\n##### References\\n\\n[UnknownRecord](/gen/store/UnknownRecord-type)\\n\\n","StoreValidators-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype StoreValidators<R extends UnknownRecord> = {\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstreamline?: number\\n```\\n\\n---\\n\\n### `thinning` \\\\{#StrokeOptions-thinning-member}\\n\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ndistance: number\\n```\\n\\n---\\n\\n### `input` \\\\{#StrokePoint-input-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\npressure: number\\n```\\n\\n---\\n\\n### `radius` \\\\{#StrokePoint-radius-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nradius: number\\n```\\n\\n---\\n\\n### `runningLength` \\\\{#StrokePoint-runningLength-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nrunningLength: number\\n```\\n\\n---\\n\\n### `vector` \\\\{#StrokePoint-vector-member}\\n\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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<Type> implements T.Validatable<Type> {}\\n```\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `StyleProp` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`defaultValue`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nType\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT.Validatable<Type>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### References\\n\\n[T.Validatable](/gen/validate/Validatable-type)\\n\\n---\\n\\n## Properties\\n\\n### `defaultValue` \\\\{#StyleProp-defaultValue-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly defaultValue: Type\\n```\\n\\n---\\n\\n### `id` \\\\{#StyleProp-id-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly id: string\\n```\\n\\n---\\n\\n### `type` \\\\{#StyleProp-type-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonly type: T.Validatable<Type>\\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\\n<Small>Public Static Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`uniqueId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n defaultValue: Type\\n type?: T.Validatable<Type>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nStyleProp<Type>\\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\\n<Small>Public Static Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`uniqueId`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nEnumStyleProp<Values[number]>\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)\\n\\n---\\n\\n### `validate()` \\\\{#StyleProp-validate-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`value`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nunknown\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nType\\n```\\n\\n---\\n\\n","T-namespace":"<Small>None Namespace</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n##### Signature\\n\\n\\n```ts\\n\\n```\\n\\n---\\n\\n## Properties\\n\\n### `any` \\\\{#T-any-var}\\n\\n<Small>Public Readonly Variable</Small>\\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<any>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `array` \\\\{#T-array-var}\\n\\n<Small>Public Readonly Variable</Small>\\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<unknown[]>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `bigint` \\\\{#T-bigint-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nValidates that a value is a bigint.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbigint: Validator<bigint>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `boolean` \\\\{#T-boolean-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nValidates that a value is boolean.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nboolean: Validator<boolean>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `integer` \\\\{#T-integer-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nFails if number is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninteger: Validator<number>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nonZeroInteger` \\\\{#T-nonZeroInteger-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nFails if value \\\\<= 0 and is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnonZeroInteger: Validator<number>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `nonZeroNumber` \\\\{#T-nonZeroNumber-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nFails if value \\\\<= 0\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnonZeroNumber: Validator<number>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `number` \\\\{#T-number-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nValidates that a value is a finite non-NaN number.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nnumber: Validator<number>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `positiveInteger` \\\\{#T-positiveInteger-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nFails if value \\\\< 0 and is not an integer\\n\\n\\n##### Signature\\n\\n\\n```ts\\npositiveInteger: Validator<number>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `positiveNumber` \\\\{#T-positiveNumber-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nFails if value \\\\< 0\\n\\n\\n##### Signature\\n\\n\\n```ts\\npositiveNumber: Validator<number>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `string` \\\\{#T-string-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\nValidates that a value is a string.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nstring: Validator<string>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `unknown` \\\\{#T-unknown-var}\\n\\n<Small>Public Readonly Variable</Small>\\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<unknown>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `unknownObject` \\\\{#T-unknownObject-var}\\n\\n<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nunknownObject: Validator<Record<string, unknown>>\\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\\n<Small>Public Function</Small>\\n\\nValidates that a value is an array whose contents matches the passed-in validator.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`itemValidator`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValidatable<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nArrayOfValidator<T>\\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\\n<Small>Public Function</Small>\\n\\nValidation that an option is a dict with particular keys and values.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`keyValidator`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValidatable<Key>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`valueValidator`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValidatable<Value>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nDictValidator<Key, Value>\\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\\n<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`expectedValue`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nValidator<T>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `literalEnum` \\\\{#T-literalEnum-function-1}\\n\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`values`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValues\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nValidator<Values[number]>\\n```\\n\\n##### References\\n\\n[Validator](/gen/validate/T-Validator-class)\\n\\n---\\n\\n### `model` \\\\{#T-model-function-1}\\n\\n<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`name`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`validator`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValidatable<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nValidator<T>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`validator`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValidatable<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nValidator<null | T>\\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\\n<Small>Public Function</Small>\\n\\nValidate an object has a particular shape.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`config`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n readonly [K in keyof Shape]: Validatable<Shape[K]>\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nObjectValidator<Shape>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`validator`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nValidatable<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nValidator<T | undefined>\\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\\n<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`values`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nReadonlySet<T>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nValidator<T>\\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\\n<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`key`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nKey\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`config`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nConfig\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nUnionValidator<Key, Config>\\n```\\n\\n##### References\\n\\n[UnionValidatorConfig](/gen/validate/~UnionValidatorConfig-type), [UnionValidator](/gen/validate/T-UnionValidator-class)\\n\\n---\\n\\n","TAB_ID-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTAU: number\\n```\\n\\n","TLAnimationOptions-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShapeArrowheadStyle = T.TypeOf<typeof ArrowShapeArrowheadStartStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [ArrowShapeArrowheadStartStyle](/gen/tlschema/ArrowShapeArrowheadStartStyle-var)\\n\\n","TLArrowShapeProps-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShapeProps = ShapePropsType<typeof arrowShapeProps>\\n```\\n\\n##### References\\n\\n[ShapePropsType](/gen/tlschema/~ShapePropsType-type), [arrowShapeProps](/gen/tlschema/arrowShapeProps-var)\\n\\n","TLArrowShapeTerminal-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLArrowShapeTerminal = T.TypeOf<typeof ArrowShapeTerminal>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [ArrowShapeTerminal](/gen/tlschema/~ArrowShapeTerminal-var)\\n\\n","TLAsset-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAssetId = RecordId<TLBaseAsset<any, any>>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLBaseAsset](/gen/tlschema/TLBaseAsset-interface)\\n\\n","TLAssetPartial-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLAssetPartial<T extends TLAsset = TLAsset> = T extends T\\n ? {\\n id: TLAssetId\\n type: T[\'type\']\\n props?: Partial<T[\'props\']>\\n } & Partial<Omit<T, \'id\' | \'props\' | \'type\'>>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [props](#TLBaseAsset-props-member)\\n - [type](#TLBaseAsset-type-member)\\n</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLBaseAsset<Type extends string, Props>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nprops: Props\\n```\\n\\n---\\n\\n### `type` \\\\{#TLBaseAsset-type-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntype: Type\\n```\\n\\n---\\n\\n","TLBaseBoxShape-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [altKey](#TLBaseEventInfo-altKey-member)\\n - [ctrlKey](#TLBaseEventInfo-ctrlKey-member)\\n - [shiftKey](#TLBaseEventInfo-shiftKey-member)\\n - [type](#TLBaseEventInfo-type-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\naltKey: boolean\\n```\\n\\n---\\n\\n### `ctrlKey` \\\\{#TLBaseEventInfo-ctrlKey-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nctrlKey: boolean\\n```\\n\\n---\\n\\n### `shiftKey` \\\\{#TLBaseEventInfo-shiftKey-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nshiftKey: boolean\\n```\\n\\n---\\n\\n### `type` \\\\{#TLBaseEventInfo-type-member}\\n\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLBaseShape<Type extends string, Props extends object>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nindex: string\\n```\\n\\n---\\n\\n### `isLocked` \\\\{#TLBaseShape-isLocked-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisLocked: boolean\\n```\\n\\n---\\n\\n### `opacity` \\\\{#TLBaseShape-opacity-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nprops: Props\\n```\\n\\n---\\n\\n### `rotation` \\\\{#TLBaseShape-rotation-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `type` \\\\{#TLBaseShape-type-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntype: Type\\n```\\n\\n---\\n\\n### `x` \\\\{#TLBaseShape-x-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#TLBaseShape-y-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","TLBookmarkAsset-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCLickEventName = \'double_click\' | \'quadruple_click\' | \'triple_click\'\\n```\\n\\n","TLCamera-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [x](#TLCamera-x-member)\\n - [y](#TLCamera-y-member)\\n - [z](#TLCamera-z-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#TLCamera-y-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n### `z` \\\\{#TLCamera-z-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nz: number\\n```\\n\\n---\\n\\n","TLCameraId-type":"<Small>Public TypeAlias</Small>\\n\\nThe id of a camera record.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCameraId = RecordId<TLCamera>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLCamera](/gen/tlschema/TLCamera-interface)\\n\\n","TLCancelEvent-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCancelEventInfo = {\\n type: \'misc\'\\n name: \'cancel\'\\n}\\n```\\n\\n","TLCanvasUiColor-type":"<Small>Public TypeAlias</Small>\\n\\nA type for the colors used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCanvasUiColor = SetValue<typeof TL_CANVAS_UI_COLOR_TYPES>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCommand<Name extends string = any, Data = any> = {\\n type: \'command\'\\n id: string\\n data: Data\\n name: Name\\n preservesRedoStack?: boolean\\n}\\n```\\n\\n","TLCommandHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCommandHandler<Data> = {\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCompleteEventInfo = {\\n type: \'misc\'\\n name: \'complete\'\\n}\\n```\\n\\n","TLContent-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [assets](#TLContent-assets-member)\\n - [rootShapeIds](#TLContent-rootShapeIds-member)\\n - [schema](#TLContent-schema-member)\\n - [shapes](#TLContent-shapes-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCopyType = \'jpeg\' | \'json\' | \'png\' | \'svg\'\\n```\\n\\n","TLCursor-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [color](#TLCursor-color-member)\\n - [rotation](#TLCursor-rotation-member)\\n - [type](#TLCursor-type-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nrotation: number\\n```\\n\\n---\\n\\n### `type` \\\\{#TLCursor-type-member}\\n\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\nA type for the cursor types used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLCursorType = SetValue<typeof TL_CURSOR_TYPES>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLDOCUMENT_ID: RecordId<TLDocument>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLDocument](/gen/tlschema/TLDocument-interface)\\n\\n","TLDRAW_FILE_EXTENSION-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLDRAW_FILE_EXTENSION: \'.tldr\'\\n```\\n\\n","TLDRAW_FILE_MIMETYPE-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTLDRAW_FILE_MIMETYPE: \'application/vnd.tldraw+json\'\\n```\\n\\n","TLDefaultColorStyle-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultColorStyle = T.TypeOf<typeof DefaultColorStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultColorStyle](/gen/tlschema/DefaultColorStyle-var)\\n\\n","TLDefaultColorTheme-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultDashStyle = T.TypeOf<typeof DefaultDashStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultDashStyle](/gen/tlschema/DefaultDashStyle-var)\\n\\n","TLDefaultFillStyle-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultFillStyle = T.TypeOf<typeof DefaultFillStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultFillStyle](/gen/tlschema/DefaultFillStyle-var)\\n\\n","TLDefaultFontStyle-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultFontStyle = T.TypeOf<typeof DefaultFontStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultFontStyle](/gen/tlschema/DefaultFontStyle-var)\\n\\n","TLDefaultHorizontalAlignStyle-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultSizeStyle = T.TypeOf<typeof DefaultSizeStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultSizeStyle](/gen/tlschema/DefaultSizeStyle-var)\\n\\n","TLDefaultVerticalAlignStyle-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDefaultVerticalAlignStyle = T.TypeOf<typeof DefaultVerticalAlignStyle>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DefaultVerticalAlignStyle](/gen/tlschema/DefaultVerticalAlignStyle-var)\\n\\n","TLDocument-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [gridSize](#TLDocument-gridSize-member)\\n - [name](#TLDocument-name-member)\\n</details>\\n\\nTLDocument\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLDocument extends BaseRecord<\'document\', RecordId<TLDocument>> {}\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ngridSize: number\\n```\\n\\n---\\n\\n### `name` \\\\{#TLDocument-name-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nname: string\\n```\\n\\n---\\n\\n","TLDrawShape-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLDrawShapeSegment = T.TypeOf<typeof DrawShapeSegment>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [DrawShapeSegment](/gen/tlschema/~DrawShapeSegment-var)\\n\\n","TLEditorAssetUrls-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEnterEventHandler = (info: any, from: string) => void\\n```\\n\\n","TLErrorBoundaryProps-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [children](#TLErrorBoundaryProps-children-member)\\n - [fallback](#TLErrorBoundaryProps-fallback-member)\\n - [onError](#TLErrorBoundaryProps-onError-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nfallback: (props: { error: unknown }) => any\\n```\\n\\n---\\n\\n### `onError` \\\\{#TLErrorBoundaryProps-onError-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonError?: ((error: unknown) => void) | null\\n```\\n\\n---\\n\\n","TLEventHandlers-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\n\'stop-camera-animation\': []\\n```\\n\\n---\\n\\n### `\\"stop-following\\"` \\\\{#TLEventMap-\\"stop-following\\"-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\n\'stop-following\': []\\n```\\n\\n---\\n\\n### `change` \\\\{#TLEventMap-change-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchange: [HistoryEntry<TLRecord>]\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncrash: [\\n {\\n error: unknown\\n }\\n]\\n```\\n\\n---\\n\\n### `event` \\\\{#TLEventMap-event-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nframe: [number]\\n```\\n\\n---\\n\\n### `mount` \\\\{#TLEventMap-mount-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nmount: []\\n```\\n\\n---\\n\\n### `tick` \\\\{#TLEventMap-tick-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntick: [number]\\n```\\n\\n---\\n\\n### `update` \\\\{#TLEventMap-update-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nupdate: []\\n```\\n\\n---\\n\\n","TLEventMapHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLEventMapHandler<T extends keyof TLEventMap> = (\\n ...args: TLEventMap[T]\\n) => void\\n```\\n\\n##### References\\n\\n[TLEventMap](/gen/editor/TLEventMap-interface)\\n\\n","TLEventName-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLExitEventHandler = (info: any, to: string) => void\\n```\\n\\n","TLExportType-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLExportType = \'jpeg\' | \'json\' | \'png\' | \'svg\' | \'webp\'\\n```\\n\\n","TLExternalContent-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanBind?: boolean\\n```\\n\\n---\\n\\n### `id` \\\\{#TLHandle-id-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nindex: string\\n```\\n\\n---\\n\\n### `type` \\\\{#TLHandle-type-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#TLHandle-y-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n","TLHandleType-type":"<Small>Public TypeAlias</Small>\\n\\nA type for the handle types used by tldraw\'s default shapes.\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLHandleType = SetValue<typeof TL_HANDLE_TYPES>\\n```\\n\\n##### References\\n\\n[SetValue](/gen/tlschema/~SetValue-type), [TL_HANDLE_TYPES](/gen/tlschema/~TL_HANDLE_TYPES-var)\\n\\n","TLHighlightShape-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLImageShapeCrop = T.TypeOf<typeof ImageShapeCrop>\\n```\\n\\n##### References\\n\\n[T.TypeOf](/gen/validate/TypeOf-type), [ImageShapeCrop](/gen/tlschema/~ImageShapeCrop-var)\\n\\n","TLImageShapeProps-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLImageShapeProps = ShapePropsType<typeof imageShapeProps>\\n```\\n\\n##### References\\n\\n[ShapePropsType](/gen/tlschema/~ShapePropsType-type), [imageShapeProps](/gen/tlschema/imageShapeProps-var)\\n\\n","TLInstance-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchatMessage: string\\n```\\n\\n---\\n\\n### `currentPageId` \\\\{#TLInstance-currentPageId-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nexportBackground: boolean\\n```\\n\\n---\\n\\n### `followingUserId` \\\\{#TLInstance-followingUserId-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nfollowingUserId: null | string\\n```\\n\\n---\\n\\n### `highlightedUserIds` \\\\{#TLInstance-highlightedUserIds-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhighlightedUserIds: string[]\\n```\\n\\n---\\n\\n### `isChatting` \\\\{#TLInstance-isChatting-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisChatting: boolean\\n```\\n\\n---\\n\\n### `isDebugMode` \\\\{#TLInstance-isDebugMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisDebugMode: boolean\\n```\\n\\n---\\n\\n### `isFocusMode` \\\\{#TLInstance-isFocusMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisFocusMode: boolean\\n```\\n\\n---\\n\\n### `isGridMode` \\\\{#TLInstance-isGridMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisGridMode: boolean\\n```\\n\\n---\\n\\n### `isPenMode` \\\\{#TLInstance-isPenMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisPenMode: boolean\\n```\\n\\n---\\n\\n### `isToolLocked` \\\\{#TLInstance-isToolLocked-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisToolLocked: boolean\\n```\\n\\n---\\n\\n### `opacityForNextShape` \\\\{#TLInstance-opacityForNextShape-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstylesForNextShape: Record<string, unknown>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type)\\n\\n---\\n\\n### `zoomBrush` \\\\{#TLInstance-zoomBrush-member}\\n\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLInstanceId = RecordId<TLInstance>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLInstance](/gen/tlschema/TLInstance-interface)\\n\\n","TLInstancePageState-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\npageId: RecordId<TLPage>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchatMessage: string\\n```\\n\\n---\\n\\n### `color` \\\\{#TLInstancePresence-color-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncolor: string\\n```\\n\\n---\\n\\n### `currentPageId` \\\\{#TLInstancePresence-currentPageId-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nfollowingUserId: null | string\\n```\\n\\n---\\n\\n### `lastActivityTimestamp` \\\\{#TLInstancePresence-lastActivityTimestamp-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nlastActivityTimestamp: number\\n```\\n\\n---\\n\\n### `screenBounds` \\\\{#TLInstancePresence-screenBounds-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nuserId: string\\n```\\n\\n---\\n\\n### `userName` \\\\{#TLInstancePresence-userName-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nuserName: string\\n```\\n\\n---\\n\\n","TLInterruptEvent-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLInterruptEventInfo = {\\n type: \'misc\'\\n name: \'interrupt\'\\n}\\n```\\n\\n","TLKeyboardEvent-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLKeyboardEventName = \'key_down\' | \'key_repeat\' | \'key_up\'\\n```\\n\\n","TLLanguage-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnBeforeCreateHandler<T extends TLShape> = (next: T) => T | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnBeforeUpdateHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnBeforeUpdateHandler<T extends TLShape> = (prev: T, next: T) => T | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnChildrenChangeHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnChildrenChangeHandler<T extends TLShape> = (\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnClickHandler<T extends TLShape> = (\\n shape: T\\n) => TLShapePartial<T> | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnDoubleClickHandleHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnDoubleClickHandleHandler<T extends TLShape> = (\\n shape: T,\\n handle: TLHandle\\n) => TLShapePartial<T> | 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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnDoubleClickHandler<T extends TLShape> = (\\n shape: T\\n) => TLShapePartial<T> | void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLShapePartial](/gen/tlschema/TLShapePartial-type)\\n\\n","TLOnDragHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnDragHandler<T extends TLShape, R = void> = (\\n shape: T,\\n shapes: TLShape[]\\n) => R\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnEditEndHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnEditEndHandler<T extends TLShape> = (shape: T) => void\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type)\\n\\n","TLOnHandleChangeHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnHandleChangeHandler<T extends TLShape> = (\\n shape: T,\\n info: {\\n handle: TLHandle\\n isPrecise: boolean\\n }\\n) => TLShapePartial<T> | 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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnResizeEndHandler<T extends TLShape> = TLEventChangeHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnResizeHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnResizeHandler<T extends TLShape> = (\\n shape: T,\\n info: TLResizeInfo<T>\\n) => Omit<TLShapePartial<T>, \'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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnResizeStartHandler<T extends TLShape> = TLEventStartHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventStartHandler](/gen/editor/~TLEventStartHandler-type)\\n\\n","TLOnRotateEndHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnRotateEndHandler<T extends TLShape> = TLEventChangeHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnRotateHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnRotateHandler<T extends TLShape> = TLEventChangeHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnRotateStartHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnRotateStartHandler<T extends TLShape> = TLEventStartHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventStartHandler](/gen/editor/~TLEventStartHandler-type)\\n\\n","TLOnTranslateEndHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnTranslateEndHandler<T extends TLShape> = TLEventChangeHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnTranslateHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnTranslateHandler<T extends TLShape> = TLEventChangeHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventChangeHandler](/gen/editor/~TLEventChangeHandler-type)\\n\\n","TLOnTranslateStartHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOnTranslateStartHandler<T extends TLShape> = TLEventStartHandler<T>\\n```\\n\\n##### References\\n\\n[TLShape](/gen/tlschema/TLShape-type), [TLEventStartHandler](/gen/editor/~TLEventStartHandler-type)\\n\\n","TLOpacityType-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLOpacityType = number\\n```\\n\\n","TLPOINTER_ID-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [index](#TLPage-index-member)\\n - [name](#TLPage-name-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nindex: string\\n```\\n\\n---\\n\\n### `name` \\\\{#TLPage-name-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nname: string\\n```\\n\\n---\\n\\n","TLPageId-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPageId = RecordId<TLPage>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLPage](/gen/tlschema/TLPage-interface)\\n\\n","TLParentId-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLPinchEventName = \'pinch_end\' | \'pinch_start\' | \'pinch\'\\n```\\n\\n","TLPointerEvent-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\nInfo about a resize.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`newPoint`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe new local position of the shape.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe handle being dragged.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`mode`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe type of resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scaleX`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe scale in the x-axis.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scaleY`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe scale in the y-axis.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initialBounds`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe bounds of the shape at the start of the resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`initialShape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nThe shape at the start of the resize.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLResizeInfo<T extends TLShape> = {\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLSchema = StoreSchema<TLRecord, TLStoreProps>\\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":"<Small>Public TypeAlias</Small>\\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<typeof TL_SCRIBBLE_STATES>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nexportBackground: boolean\\n```\\n\\n---\\n\\n### `isDebugMode` \\\\{#TLSessionStateSnapshot-isDebugMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisDebugMode: boolean\\n```\\n\\n---\\n\\n### `isFocusMode` \\\\{#TLSessionStateSnapshot-isFocusMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisFocusMode: boolean\\n```\\n\\n---\\n\\n### `isGridMode` \\\\{#TLSessionStateSnapshot-isGridMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisGridMode: boolean\\n```\\n\\n---\\n\\n### `isToolLocked` \\\\{#TLSessionStateSnapshot-isToolLocked-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisToolLocked: boolean\\n```\\n\\n---\\n\\n### `pageStates` \\\\{#TLSessionStateSnapshot-pageStates-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nversion: number\\n```\\n\\n---\\n\\n","TLShape-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeId = RecordId<TLUnknownShape>\\n```\\n\\n##### References\\n\\n[RecordId](/gen/store/RecordId-type), [TLUnknownShape](/gen/tlschema/TLUnknownShape-type)\\n\\n","TLShapeInfo-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeInfo<T extends TLUnknownShape = TLUnknownShape> = {\\n type: T[\'type\']\\n util: TLShapeUtilConstructor<T>\\n props?: ShapeProps<T>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapePartial<T extends TLShape = TLShape> = T extends T\\n ? {\\n id: TLShapeId\\n type: T[\'type\']\\n props?: Partial<T[\'props\']>\\n } & Partial<Omit<T, \'id\' | \'props\' | \'type\'>>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeProps = Identity<UnionToIntersection<TLDefaultShape[\'props\']>>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [type](#TLShapeUtilConstructor-type-member)\\n</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLShapeUtilConstructor<\\n T extends TLUnknownShape,\\n U extends ShapeUtil<T> = ShapeUtil<T>\\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\\n<Small>Public ConstructSignature</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT[\'type\']\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`styleProps`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nReadonlyMap<StyleProp<unknown>, string>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntype: T[\'type\']\\n```\\n\\n---\\n\\n","TLShapeUtilFlag-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLShapeUtilFlag<T> = (shape: T) => boolean\\n```\\n\\n","TLStateNodeConstructor-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [children](#TLStateNodeConstructor-children-member)\\n - [id](#TLStateNodeConstructor-id-member)\\n - [initial](#TLStateNodeConstructor-initial-member)\\n</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLStateNodeConstructor {}\\n```\\n\\n---\\n\\n### `(new)` \\\\{#TLStateNodeConstructor-new-1}\\n\\n<Small>Public ConstructSignature</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`editor`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEditor\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`parent`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStateNode\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `initial` \\\\{#TLStateNodeConstructor-initial-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ninitial?: string\\n```\\n\\n---\\n\\n","TLStore-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStore = Store<TLRecord, TLStoreProps>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreEventInfo = HistoryEntry<TLRecord>\\n```\\n\\n##### References\\n\\n[HistoryEntry](/gen/store/HistoryEntry-type), [TLRecord](/gen/tlschema/TLRecord-type)\\n\\n","TLStoreOptions-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreOptions = {\\n initialData?: StoreSnapshot<TLRecord>\\n defaultName?: string\\n} & (\\n | {\\n schema: StoreSchema<TLRecord, TLStoreProps>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreProps = {\\n defaultName: string\\n}\\n```\\n\\n","TLStoreSchema-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreSchema = StoreSchema<TLRecord, TLStoreProps>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLStoreSnapshot = StoreSnapshot<TLRecord>\\n```\\n\\n##### References\\n\\n[StoreSnapshot](/gen/store/StoreSnapshot-type), [TLRecord](/gen/tlschema/TLRecord-type)\\n\\n","TLStoreWithStatus-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLTextShapeProps = ShapePropsType<typeof textShapeProps>\\n```\\n\\n##### References\\n\\n[ShapePropsType](/gen/tlschema/~ShapePropsType-type), [textShapeProps](/gen/tlschema/textShapeProps-var)\\n\\n","TLTickEvent-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLTickEvent = (elapsed: number) => void\\n```\\n\\n","TLUiActionItem-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncheckbox?: boolean\\n```\\n\\n---\\n\\n### `contextMenuLabel` \\\\{#TLUiActionItem-contextMenuLabel-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `kbd` \\\\{#TLUiActionItem-kbd-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nkbd?: string\\n```\\n\\n---\\n\\n### `label` \\\\{#TLUiActionItem-label-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonSelect: (source: TLUiEventSource) => Promise<void> | 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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonlyOk: boolean\\n```\\n\\n---\\n\\n### `shortcutsLabel` \\\\{#TLUiActionItem-shortcutsLabel-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntitle?: string\\n```\\n\\n---\\n\\n","TLUiActionsContextType-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiActionsContextType = Record<string, TLUiActionItem>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [TLUiActionItem](/gen/ui/TLUiActionItem-interface)\\n\\n","TLUiActionsMenuSchemaContextType-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiButtonProps extends React.HTMLAttributes<HTMLButtonElement> {}\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ndisabled?: boolean\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiButtonProps-icon-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ninvertIcon?: boolean\\n```\\n\\n---\\n\\n### `isChecked` \\\\{#TLUiButtonProps-isChecked-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisChecked?: boolean\\n```\\n\\n---\\n\\n### `kbd` \\\\{#TLUiButtonProps-kbd-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nkbd?: string\\n```\\n\\n---\\n\\n### `label` \\\\{#TLUiButtonProps-label-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nloading?: boolean\\n```\\n\\n---\\n\\n### `smallIcon` \\\\{#TLUiButtonProps-smallIcon-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nsmallIcon?: boolean\\n```\\n\\n---\\n\\n### `spinner` \\\\{#TLUiButtonProps-spinner-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nspinner?: boolean\\n```\\n\\n---\\n\\n### `type` \\\\{#TLUiButtonProps-type-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntype?: \'danger\' | \'normal\' | \'primary\'\\n```\\n\\n---\\n\\n","TLUiContextMenuProps-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [children](#TLUiContextMenuProps-children-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchildren: any\\n```\\n\\n---\\n\\n","TLUiContextTTLUiMenuSchemaContextType-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [component](#TLUiDialog-component-member)\\n - [id](#TLUiDialog-id-member)\\n - [onClose](#TLUiDialog-onClose-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `onClose` \\\\{#TLUiDialog-onClose-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonClose?: () => void\\n```\\n\\n---\\n\\n","TLUiDialogProps-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [onClose](#TLUiDialogProps-onClose-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonClose: () => void\\n```\\n\\n---\\n\\n","TLUiDialogsContextType-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiDialogsContextType = {\\n addDialog: (\\n dialog: Omit<TLUiDialog, \'id\'> & {\\n id?: string\\n }\\n ) => string\\n removeDialog: (id: string) => string\\n updateDialog: (id: string, newDialogData: Partial<TLUiDialog>) => 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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiEventContextType = TLUiEventHandler<keyof TLUiEventMap>\\n```\\n\\n##### References\\n\\n[TLUiEventHandler](/gen/ui/TLUiEventHandler-type), [TLUiEventMap](/gen/ui/~TLUiEventMap-interface)\\n\\n","TLUiEventHandler-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiEventHandler<T extends keyof TLUiEventMap = keyof TLUiEventMap> = (\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ninterface TLUiIconProps extends React.HTMLProps<HTMLDivElement> {}\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: undefined\\n```\\n\\n---\\n\\n### `color` \\\\{#TLUiIconProps-color-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncolor?: string\\n```\\n\\n---\\n\\n### `crossOrigin` \\\\{#TLUiIconProps-crossOrigin-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncrossOrigin?: \'anonymous\' | \'use-credentials\'\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiIconProps-icon-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ninvertIcon?: boolean\\n```\\n\\n---\\n\\n### `small` \\\\{#TLUiIconProps-small-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nsmall?: boolean\\n```\\n\\n---\\n\\n","TLUiIconType-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nautofocus?: boolean\\n```\\n\\n---\\n\\n### `autoselect` \\\\{#TLUiInputProps-autoselect-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nautoselect?: boolean\\n```\\n\\n---\\n\\n### `children` \\\\{#TLUiInputProps-children-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: any\\n```\\n\\n---\\n\\n### `className` \\\\{#TLUiInputProps-className-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nclassName?: string\\n```\\n\\n---\\n\\n### `defaultValue` \\\\{#TLUiInputProps-defaultValue-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ndefaultValue?: string\\n```\\n\\n---\\n\\n### `disabled` \\\\{#TLUiInputProps-disabled-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ndisabled?: boolean\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiInputProps-icon-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonBlur?: (value: string) => void\\n```\\n\\n---\\n\\n### `onCancel` \\\\{#TLUiInputProps-onCancel-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonCancel?: (value: string) => void\\n```\\n\\n---\\n\\n### `onComplete` \\\\{#TLUiInputProps-onComplete-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonComplete?: (value: string) => void\\n```\\n\\n---\\n\\n### `onValueChange` \\\\{#TLUiInputProps-onValueChange-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonValueChange?: (value: string) => void\\n```\\n\\n---\\n\\n### `placeholder` \\\\{#TLUiInputProps-placeholder-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nplaceholder?: string\\n```\\n\\n---\\n\\n### `shouldManuallyMaintainScrollPositionWhenFocused` \\\\{#TLUiInputProps-shouldManuallyMaintainScrollPositionWhenFocused-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nvalue?: string\\n```\\n\\n---\\n\\n","TLUiKeyboardShortcutsSchemaContextType-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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<typeof useActions>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nactions?: WithDefaultHelpers<NonNullable<ActionsProviderProps[\'overrides\']>>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nactionsMenu?: WithDefaultHelpers<\\n NonNullable<ActionsMenuSchemaProviderProps[\'overrides\']>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncontextMenu?: WithDefaultHelpers<\\n NonNullable<TLUiContextMenuSchemaProviderProps[\'overrides\']>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nhelpMenu?: WithDefaultHelpers<\\n NonNullable<TLUiHelpMenuSchemaProviderProps[\'overrides\']>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nkeyboardShortcutsMenu?: WithDefaultHelpers<\\n NonNullable<TLUiKeyboardShortcutsSchemaProviderProps[\'overrides\']>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nmenu?: WithDefaultHelpers<\\n NonNullable<TLUiMenuSchemaProviderProps[\'overrides\']>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntoolbar?: WithDefaultHelpers<\\n NonNullable<TLUiToolbarSchemaProviderProps[\'overrides\']>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntools?: WithDefaultHelpers<NonNullable<TLUiToolsProviderProps[\'overrides\']>>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncloseLabel?: string\\n```\\n\\n---\\n\\n### `description` \\\\{#TLUiToast-description-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ndescription?: string\\n```\\n\\n---\\n\\n### `icon` \\\\{#TLUiToast-icon-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nicon?: string\\n```\\n\\n---\\n\\n### `id` \\\\{#TLUiToast-id-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `keepOpen` \\\\{#TLUiToast-keepOpen-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nkeepOpen?: boolean\\n```\\n\\n---\\n\\n### `title` \\\\{#TLUiToast-title-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntitle?: string\\n```\\n\\n---\\n\\n","TLUiToastAction-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [label](#TLUiToastAction-label-member)\\n - [onClick](#TLUiToastAction-onClick-member)\\n - [type](#TLUiToastAction-type-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nlabel: string\\n```\\n\\n---\\n\\n### `onClick` \\\\{#TLUiToastAction-onClick-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonClick: () => void\\n```\\n\\n---\\n\\n### `type` \\\\{#TLUiToastAction-type-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntype: \'primary\' | \'secondary\' | \'warn\'\\n```\\n\\n---\\n\\n","TLUiToastsContextType-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToastsContextType = {\\n addToast: (\\n toast: Omit<TLUiToast, \'id\'> & {\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `kbd` \\\\{#TLUiToolItem-kbd-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nkbd?: string\\n```\\n\\n---\\n\\n### `label` \\\\{#TLUiToolItem-label-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nmeta?: {\\n [key: string]: any\\n}\\n```\\n\\n---\\n\\n### `onSelect` \\\\{#TLUiToolItem-onSelect-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nreadonlyOk: boolean\\n```\\n\\n---\\n\\n### `shortcutsLabel` \\\\{#TLUiToolItem-shortcutsLabel-member}\\n\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiToolsContextType = Record<string, TLUiToolItem>\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [TLUiToolItem](/gen/ui/TLUiToolItem-interface)\\n\\n","TLUiToolsProviderProps-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype TLUiTranslation = {\\n readonly locale: string\\n readonly label: string\\n readonly messages: Record<TLUiTranslationKey, string>\\n}\\n```\\n\\n##### References\\n\\n[Record](/gen/Record-type), [TLUiTranslationKey](/gen/ui/TLUiTranslationKey-type)\\n\\n","TLUiTranslationContextType-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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<string, object>\\n```\\n\\n##### References\\n\\n[TLBaseShape](/gen/tlschema/TLBaseShape-interface)\\n\\n","TLUserPreferences-interface":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nanimationSpeed: number\\n```\\n\\n---\\n\\n### `color` \\\\{#TLUserPreferences-color-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncolor: string\\n```\\n\\n---\\n\\n### `id` \\\\{#TLUserPreferences-id-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nid: string\\n```\\n\\n---\\n\\n### `isDarkMode` \\\\{#TLUserPreferences-isDarkMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisDarkMode: boolean\\n```\\n\\n---\\n\\n### `isSnapMode` \\\\{#TLUserPreferences-isSnapMode-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisSnapMode: boolean\\n```\\n\\n---\\n\\n### `locale` \\\\{#TLUserPreferences-locale-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nlocale: string\\n```\\n\\n---\\n\\n### `name` \\\\{#TLUserPreferences-name-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nname: string\\n```\\n\\n---\\n\\n","TLVideoAsset-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass TextShapeUtil extends ShapeUtil<TLTextShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#TextShapeUtil-isAspectRatioLocked-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: TLShapeUtilFlag<TLTextShape>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonEditEnd: TLOnEditEndHandler<TLTextShape>\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nonResize: TLOnResizeHandler<TLTextShape>\\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\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'text\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#TextShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLTextShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ctx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSvgExportContext\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`props`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTldrawEditorProps & TldrawUiProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nTldrawEditor: React.NamedExoticComponent<TldrawEditorProps>\\n```\\n\\n##### References\\n\\n[React.NamedExoticComponent](/gen/@types/react-React-NamedExoticComponent-interface), [TldrawEditorProps](/gen/editor/TldrawEditorProps-type)\\n\\n","TldrawEditorProps-type":"<Small>Public TypeAlias</Small>\\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<TLEditorAssetUrls>\\n autoFocus?: boolean\\n components?: Partial<TLEditorComponents>\\n onMount?: (editor: Editor) => (() => void) | undefined | void\\n} & (\\n | {\\n store: TLStore | TLStoreWithStatus\\n }\\n | {\\n store?: undefined\\n initialData?: StoreSnapshot<TLRecord>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [records](#TldrawFile-records-member)\\n - [schema](#TldrawFile-schema-member)\\n - [tldrawFileFormatVersion](#TldrawFile-tldrawFileFormatVersion-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ntldrawFileFormatVersion: number\\n```\\n\\n---\\n\\n","TldrawFileParseError-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ overrides, assetUrls, onUiEvent, children, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTldrawUiContextProviderProps\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [assetUrls](#TldrawUiContextProviderProps-assetUrls-member)\\n - [children](#TldrawUiContextProviderProps-children-member)\\n - [onUiEvent](#TldrawUiContextProviderProps-onUiEvent-member)\\n - [overrides](#TldrawUiContextProviderProps-overrides-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nassetUrls?: RecursivePartial<TLUiAssetUrls>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nchildren?: any\\n```\\n\\n---\\n\\n### `onUiEvent` \\\\{#TldrawUiContextProviderProps-onUiEvent-member}\\n\\n<Small>Public PropertySignature</Small>\\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\\n<Small>Public PropertySignature</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\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":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype UiEventType = \'click\' | \'keyboard\' | \'pinch\' | \'pointer\' | \'wheel\' | \'zoom\'\\n```\\n\\n","UnknownRecord-type":"<Small>Public TypeAlias</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntype UnknownRecord = BaseRecord<string, RecordId<UnknownRecord>>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass Vec2d {}\\n```\\n\\n---\\n\\n### `Constructor`\\n\\n<Small>Public Constructor</Small>\\n\\nConstructs a new instance of the `Vec2d` class\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`z`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n---\\n\\n## Properties\\n\\n### `pressure` \\\\{#Vec2d-pressure-member}\\n\\n<Small>Public Readonly Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nget pressure(): number\\n```\\n\\n---\\n\\n### `x` \\\\{#Vec2d-x-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Vec2d-y-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n### `z` \\\\{#Vec2d-z-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nz: number\\n```\\n\\n---\\n\\n## Methods\\n\\n### `abs()` \\\\{#Vec2d-abs-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `AddScalar()` \\\\{#Vec2d-AddScalar-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `AddXY()` \\\\{#Vec2d-AddXY-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`arr`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`min`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`max`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Clamp()` \\\\{#Vec2d-Clamp-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`min`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`max`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`P`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`clamp`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`u`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`P`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Div()` \\\\{#Vec2d-Div-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `EqualsXY()` \\\\{#Vec2d-EqualsXY-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ x, y, z }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2dModel\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`v`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Mul()` \\\\{#Vec2d-Mul-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`P`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`clamp`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nAny point on the line\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`u`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe unit vector for the line.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`P`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nA point not on the line to test.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`distance`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`distance`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\nGet an array of points (with simulated pressure) between two points.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2dModel\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`steps`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe number of points to return.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `Rot()` \\\\{#Vec2d-Rot-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`scale`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`origin`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`z`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `setTo()` \\\\{#Vec2d-setTo-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ x, y, z }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`step`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`gridSize`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `SnapToGrid()` \\\\{#Vec2d-SnapToGrid-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`gridSize`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `SubScalar()` \\\\{#Vec2d-SubScalar-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nthis\\n```\\n\\n---\\n\\n### `SubXY()` \\\\{#Vec2d-SubXY-member-1}\\n\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`x`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`y`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`V`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Static Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Interface</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\n- [Properties](#properties)\\n - [x](#Vec2dModel-x-member)\\n - [y](#Vec2dModel-y-member)\\n - [z](#Vec2dModel-z-member)\\n</details>\\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\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nx: number\\n```\\n\\n---\\n\\n### `y` \\\\{#Vec2dModel-y-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ny: number\\n```\\n\\n---\\n\\n### `z` \\\\{#Vec2dModel-z-member}\\n\\n<Small>Public PropertySignature</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nz?: number\\n```\\n\\n---\\n\\n","VecLike-type":"<Small>Public TypeAlias</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass VideoShapeUtil extends BaseBoxShapeUtil<TLVideoShape> {}\\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\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\ncanEdit: () => boolean\\n```\\n\\n---\\n\\n### `isAspectRatioLocked` \\\\{#VideoShapeUtil-isAspectRatioLocked-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nisAspectRatioLocked: () => boolean\\n```\\n\\n---\\n\\n### `type` \\\\{#VideoShapeUtil-type-member}\\n\\n<Small>Public Static Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nstatic type: \'video\'\\n```\\n\\n---\\n\\n## Methods\\n\\n### `component()` \\\\{#VideoShapeUtil-component-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLVideoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLVideoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLVideoShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Class</Small>\\n\\n<details>\\n\\t<summary>Table of Contents</summary>\\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</details>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nclass WeakMapCache<T extends object, K> {}\\n```\\n\\n---\\n\\n## Properties\\n\\n### `items` \\\\{#WeakMapCache-items-member}\\n\\n<Small>Public Property</Small>\\n\\n##### Signature\\n\\n\\n```ts\\nitems: WeakMap<T, K>\\n```\\n\\n##### References\\n\\n[WeakMap](/gen/WeakMap-interface)\\n\\n---\\n\\n## Methods\\n\\n### `access()` \\\\{#WeakMapCache-access-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`item`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nK | undefined\\n```\\n\\n---\\n\\n### `bust()` \\\\{#WeakMapCache-bust-member-1}\\n\\n<Small>Public Method</Small>\\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\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`item`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nP\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cb`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(item: P) => K\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nNonNullable<K>\\n```\\n\\n##### References\\n\\n[NonNullable](/gen/NonNullable-type)\\n\\n---\\n\\n### `has()` \\\\{#WeakMapCache-has-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`item`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n---\\n\\n### `invalidate()` \\\\{#WeakMapCache-invalidate-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`item`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n### `set()` \\\\{#WeakMapCache-set-member-1}\\n\\n<Small>Public Method</Small>\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`item`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`value`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nK\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n---\\n\\n","angleDelta-function-1":"<Small>Public Function</Small>\\n\\nGet the short distance between two angles.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","approximately-function-1":"<Small>Public Function</Small>\\n\\nWhether two numbers numbers a and b are approximately equal.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`precision`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","areAnglesCompatible-function-1":"<Small>Public Function</Small>\\n\\nChecks whether two angles are approximately at right-angles or parallel to each other\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nAngle a (radians)\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nAngle b (radians)\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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<number>\\n text: T.Validator<string>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring | undefined\\n```\\n\\nThe id to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordType<R, any>\\n```\\n\\nThe type of the record.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nasserts id is IdOf<R>\\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":"<Small>Public Readonly Variable</Small>\\n\\nA validator for asset record type Ids.\\n\\n\\n##### Signature\\n\\n\\n```ts\\nassetIdValidator: T.Validator<TLAssetId>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n","blobAsString-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`blob`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBlob\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<string>\\n```\\n\\n##### References\\n\\n[Blob](/gen/Blob-interface), [Promise](/gen/Promise-interface)\\n\\n","bookmarkShapeProps-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbookmarkShapeProps: {\\n w: T.Validator<number>\\n h: T.Validator<number>\\n assetId: T.Validator<import(\'..\').TLAssetId | null>\\n url: T.Validator<string>\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLAssetId](/gen/tlschema/TLAssetId-type)\\n\\n","box2dModelValidator-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nbox2dModelValidator: T.Validator<Box2dModel>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [Box2dModel](/gen/tlschema/Box2dModel-interface)\\n\\n","canolicalizeRotation-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nAny angle in radians\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n A number between 0 and 2 * PI\\n\\n\\n","canvasUiColorTypeValidator-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe number to clamp.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`min`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe minimum value.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","clamp-function-2":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe number to clamp.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`min`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe minimum value.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`max`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe maximum value.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","clampRadians-function-1":"<Small>Public Function</Small>\\n\\nClamp radians within 0 and 2PI\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe radian value.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","compactMenuItems-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`arr`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nExclude<T, false | null | undefined>[]\\n```\\n\\n##### References\\n\\n[Exclude](/gen/Exclude-type)\\n\\n","compareRecordVersions-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordVersion\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordVersion\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\n\\nContains the size within the given box size\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`originalSize`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBoxWidthHeight\\n```\\n\\nThe size of the asset\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`containBoxSize`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBoxWidthHeight\\n```\\n\\nThe container size\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ncoreShapes: readonly [\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLGroupShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLEmbedShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLBookmarkShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLImageShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLTextShape>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`input`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","createAssetValidator-function-1":"<Small>Public Function</Small>\\n\\nCreate a validator for an asset record type.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nType\\n```\\n\\nThe type of the asset\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`props`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT.Validator<Props>\\n```\\n\\nThe validator for the asset\'s props\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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<null | TLInstancePresence>\\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":"<Small>Public Function</Small>\\n\\nCreate a record type.\\n\\n\\n\\n\\n##### Example\\n\\n\\n\\n\\n```ts\\nconst Book = createRecordType<Book>(\'book\')\\n```\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`typeName`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nR[\'typeName\']\\n```\\n\\nThe name of the type to create.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`config`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n migrations?: Migrations\\n validator?: StoreValidator<R>\\n scope: RecordScope\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nRecordType<R, keyof Omit<R, \'id\' | \'typeName\'>>\\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":"<Small>Public Function</Small>\\n\\nCreates a signal of the instance state for a given store.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`store`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLStore\\n```\\n\\nThe store to create the instance state snapshot signal for\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nSignal<null | TLSessionStateSnapshot>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeId\\n```\\n\\n##### References\\n\\n[TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n","createShapeValidator-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nType\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`props`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n [K in keyof Props]: T.Validatable<Props[K]>\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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<string, unknown>\\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":"<Small>Public Function</Small>\\n\\nCreate a TLSchema with custom shapes. Custom shapes cannot override default shapes.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ shapes }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n shapes: Record<string, SchemaShapeInfo>\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nA helper for creating a TLStore. Custom shapes cannot override default shapes.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ initialData, defaultName, ...rest }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLStoreOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n derivePresenceState?:\\n | ((\\n store: TLStore\\n ) => Signal<null | TLInstancePresence>)\\n | undefined\\n userPreferences?:\\n | Signal<TLUserPreferences, unknown>\\n | undefined\\n setUserPreferences?:\\n | ((userPreferences: TLUserPreferences) => void)\\n | undefined\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`item`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nDataTransferItem\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<string>\\n```\\n\\n##### References\\n\\n[DataTransferItem](/gen/DataTransferItem-interface), [Promise](/gen/Promise-interface)\\n\\n","dataUrlToFile-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`url`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`filename`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`mimeType`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<File>\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface), [File](/gen/File-interface)\\n\\n","decomposeMatrix2d-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`m`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nMatLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Variable</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`str`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dflt`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","defaultShapes-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ndefaultShapes: readonly [\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLDrawShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLGeoShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLLineShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLNoteShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLFrameShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLArrowShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLHighlightShape>,\\n TLShapeInfo<import(\'@tldraw/tlschema\').TLVideoShape>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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<FirstVersion, CurrentVersion>,\\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<string, BaseMigrationsInfo>\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`type`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT[\'type\']\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nOmit<TLShapeInfo<T>, \'type\'>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nTLShapeInfo<T>\\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":"<Small>Public Function</Small>\\n\\nConvert degrees to radians.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`d`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe degree in degrees.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","devFreeze-function-1":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`object`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\nThe object to freeze.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dataUrl`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`filename`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","drawShapeProps-var":"<Small>Public Readonly Variable</Small>\\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<boolean>\\n isClosed: T.Validator<boolean>\\n isPen: T.Validator<boolean>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nembedShapeProps: {\\n w: T.Validator<number>\\n h: T.Validator<number>\\n url: T.Validator<string>\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class)\\n\\n","fileToBase64-function-1":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`file`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBlob\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<string>\\n```\\n\\n##### References\\n\\n[Blob](/gen/Blob-interface), [Promise](/gen/Promise-interface)\\n\\n","findMenuItem-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`menu`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLUiMenuSchema\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`path`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSelectionHandle\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSelectionHandle\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nframeShapeProps: {\\n w: T.Validator<number>\\n h: T.Validator<number>\\n name: T.Validator<string>\\n}\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class)\\n\\n","geoShapeProps-var":"<Small>Public Readonly Variable</Small>\\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<string>\\n w: T.Validator<number>\\n h: T.Validator<number>\\n growY: T.Validator<number>\\n text: T.Validator<string>\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.Validator](/gen/validate/Validator-class)\\n\\n","getArcLength-function-1":"<Small>Public Function</Small>\\n\\nGet the length of an arc between two points on a circle\'s perimeter.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center as [x, y].\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getDefaultColorTheme-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n isDarkMode: boolean\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nTLDefaultColorTheme\\n```\\n\\n##### References\\n\\n[TLDefaultColorTheme](/gen/tlschema/TLDefaultColorTheme-type)\\n\\n","getDefaultTranslationLocale-function-1":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`outline`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`strokeWidth`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getEmbedInfo-function-1":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`inputUrl`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe URL to match\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nTLEmbedResult\\n```\\n\\n##### References\\n\\n[TLEmbedResult](/gen/editor/TLEmbedResult-type)\\n\\n","getEmbedInfoUnsafely-function-1":"<Small>Public Function</Small>\\n\\nTests whether an URL supports embedding and returns the result.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`inputUrl`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe URL to match\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nTLEmbedResult\\n```\\n\\n##### References\\n\\n[TLEmbedResult](/gen/editor/TLEmbedResult-type)\\n\\n","getFileMetaData-function-1":"<Small>Public Function</Small>\\n\\nGet some metadata about the file\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`file`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nFile\\n```\\n\\nThe file.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getImageSizeFromSrc-function-1":"<Small>Public Function</Small>\\n\\nGet the size of an image from its source.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dataURL`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe file as a string.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`name`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe name to increment.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`others`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring[]\\n```\\n\\nThe array of existing names.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","getMaxX-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMaxY-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMediaAssetFromFile-function-1":"<Small>Public Function</Small>\\n\\nGet an asset from a file.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`file`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nFile\\n```\\n\\nThe file.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<TLAsset>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMidY-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMinX-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getMinY-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getPointOnCircle-function-1":"<Small>Public Function</Small>\\n\\nGet a point on the perimeter of a circle.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe center x of the circle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cy`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe center y of the circle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe radius of the circle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe normalized point on the circle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getPolygonVertices-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`width`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`height`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`sides`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nVec2d[]\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getRecordVersion-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nUnknownRecord\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`serializedSchema`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSerializedSchema\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nGet the size of an image from its source.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`dataURLForImage`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe image file as a string.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`width`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe desired width.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`height`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe desired height.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<string>\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface)\\n\\n","getRotatedBoxShadow-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`rotation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n","getRoundedInkyPolygonPath-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getRoundedPolygonPoints-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`outline`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`offset`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`roundness`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`passes`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getSplineForLineShape-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`shape`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLLineShape\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nNonNullable<CubicSpline2d | Polyline2d>\\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":"<Small>Public Readonly Variable</Small>\\n\\nGets the width/height of a star given its input bounds.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`sides`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nNumber of sides\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`w`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nT target width\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`h`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\nTarget height\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\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</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokeOptions\\n```\\n\\nAn object with options.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`strokePoints`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokePoint[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokeOptions\\n```\\n\\nAn object with options.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`rawInputPoints`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokeOptions\\n```\\n\\nAn object with options.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`svg`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<string>\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface), [Promise](/gen/Promise-interface)\\n\\n","getSvgAsDataUrlSync-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`node`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface)\\n\\n","getSvgAsImage-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`svg`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n type: TLCopyType | TLExportType\\n quality: number\\n scale: number\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<Blob | null>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`svg`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSVGElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[SVGElement](/gen/SVGElement-interface)\\n\\n","getSvgPathFromStroke-function-1":"<Small>Public Function</Small>\\n\\nTurn an array of points into a path of quadradic curves.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVec2d[]\\n```\\n\\nThe points returned from perfect-freehand\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`closed`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether the stroke is closed\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[Vec2d](/gen/primitives/Vec2d-class)\\n\\n","getSvgPathFromStrokePoints-function-1":"<Small>Public Function</Small>\\n\\nTurn an array of stroke points into a path of quadradic curves.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokePoint[]\\n```\\n\\nThe stroke points returned from perfect-freehand\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`closed`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nboolean\\n```\\n\\nWhether the shape is closed\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nstring\\n```\\n\\n##### References\\n\\n[StrokePoint](/gen/primitives/StrokePoint-interface)\\n\\n","getSweep-function-1":"<Small>Public Function</Small>\\n\\nGet the \\"sweep\\" or short distance between two points on a circle\'s perimeter.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe center of the circle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","getTextBoundingBox-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`text`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSVGTextElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ngetValidHttpURLList: (url: string) => string[] | undefined\\n```\\n\\n","getVideoSizeFromSrc-function-1":"<Small>Public Function</Small>\\n\\nGet the size of a video from its source.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`src`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\nThe source of the video.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`pts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","hardReset-function-1":"<Small>Public Function</Small>\\n\\nClear the database of all data associated with tldraw.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ shouldReload }`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n shouldReload?: boolean | undefined\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<void>\\n```\\n\\n##### References\\n\\n[Promise](/gen/Promise-interface)\\n\\n","hardResetEditor-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","highlightShapeProps-var":"<Small>Public Readonly Variable</Small>\\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<boolean>\\n isPen: T.Validator<boolean>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nimageShapeProps: {\\n w: T.Validator<number>\\n h: T.Validator<number>\\n playing: T.Validator<boolean>\\n url: T.Validator<string>\\n assetId: T.Validator<import(\'..\').TLAssetId | null>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a circle and a circle.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe first circle\'s center.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe second circle\'s center.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a circle and a bounding box.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polygon.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a circle and a bounding box.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polyline.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a line segment and a circle.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersection between a line segment and a line segment.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe first segment\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe first segment\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe second segment\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe second segment\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a line segment and a closed polygon.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polygon.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a line segment and a polyline.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe segment\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points in the polyline.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nFind the intersections between a polygon and a bounding box.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`bounds`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nCreate a new convex polygon as the intersection of two convex polygons.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`polygonA`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points representing the first polygon.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`polygonB`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points representing the second polygon.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nIs angle c between angles a and b?\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`c`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe third angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","isAnimated-function-1":"<Small>Public Function</Small>\\n\\nChecks if buffer contains animated GIF image\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`buffer`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nArrayBuffer\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[ArrayBuffer](/gen/ArrayBuffer-interface)\\n\\n","isGIF-function-1":"<Small>Public Function</Small>\\n\\nChecks if buffer contains GIF image\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`buffer`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nArrayBuffer\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[ArrayBuffer](/gen/ArrayBuffer-interface)\\n\\n","isImage-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisImage: (ext: string) => boolean\\n```\\n\\n","isPageId-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`selection`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`value`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nany\\n```\\n\\nThe value to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","isShape-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`record`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nUnknownRecord\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisSvgText: (text: string) => boolean\\n```\\n\\n","isV1File-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`data`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nany\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","isValidHttpURL-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nisValidHttpURL: (url: string) => boolean\\n```\\n\\n","isValidUrl-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`url`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","lerpAngles-function-1":"<Small>Public Function</Small>\\n\\nInterpolate an angle between two angles.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`t`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe interpolation value.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","lineShapeProps-var":"<Small>Public Readonly Variable</Small>\\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<string, import(\'../misc/TLHandle\').TLHandle>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`B`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`D`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","loadSessionStateSnapshotIntoStore-function-1":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`store`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLStore\\n```\\n\\nThe store to load the instance state into\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`snapshot`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLSessionStateSnapshot\\n```\\n\\nThe instance state snapshot to load\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nGet the long angle distance between two angles.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","loopToHtmlElement-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`elm`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`url`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`url`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<{\\n readonlyOk: boolean\\n disabled: boolean\\n}>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`children`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(false | null | TLUiMenuChild)[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`actionItem`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLUiActionItem | TLUiToolItem\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<{\\n checked: boolean\\n disabled: boolean\\n}>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`label`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLUiTranslationKey\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`children`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(false | null | TLUiMenuChild)[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ value, migrations, fromVersion, toVersion, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n value: unknown\\n migrations: Migrations\\n fromVersion: number\\n toVersion: number\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult<T>\\n```\\n\\n##### References\\n\\n[Migrations](/gen/store/Migrations-interface), [MigrationResult](/gen/store/MigrationResult-type)\\n\\n","migrateRecord-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ record, migrations, fromVersion, toVersion, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n record: unknown\\n migrations: Migrations\\n fromVersion: number\\n toVersion: number\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nMigrationResult<R>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`event`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nReact.WheelEvent<HTMLElement> | WheelEvent\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\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<number>\\n url: T.Validator<string>\\n text: T.Validator<string>\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.Validator](/gen/validate/Validator-class)\\n\\n","openWindow-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`url`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`target`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","parentIdValidator-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nparentIdValidator: T.Validator<TLParentId>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLParentId](/gen/tlschema/TLParentId-type)\\n\\n","parseTldrawJsonFile-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`{ json, schema, }`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n{\\n schema: TLSchema\\n json: string\\n}\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nResult<TLStore, TldrawFileParseError>\\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":"<Small>Public Function</Small>\\n\\nFind the approximate perimeter of an ellipse.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`rx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s x radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ry`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s y radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","pointInBounds-function-1":"<Small>Public Function</Small>\\n\\nGet whether a point is inside of a bounds.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nBox2d\\n```\\n\\nThe bounds to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nGet whether a point is inside of a circle.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe circle\'s center point as [x, y].\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe circle\'s radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nGet whether a point is inside of an ellipse.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`C`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`rx`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s x radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`ry`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s y radius.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`rotation`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe ellipse\'s rotation.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointInPolyline-function-1":"<Small>Public Function</Small>\\n\\nHit test a point and a polyline using a minimum distance.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points that make up the polyline.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`distance`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe mininum distance that qualifies a hit.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nGet whether a point is inside of a rectangle.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`point`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe rectangle\'s top left point as [x, y].\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`size`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe rectangle\'s size as [width, height].\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointNearToLineSegment-function-1":"<Small>Public Function</Small>\\n\\nGet whether a point is within a certain distance from a line segment.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe polyline\'s first point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`p2`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe polyline\'s second point.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`distance`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe mininum distance that qualifies a hit.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","pointNearToPolyline-function-1":"<Small>Public Function</Small>\\n\\nGet whether a point is within a certain distance from a polyline.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`A`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike\\n```\\n\\nThe point to check.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nThe points that make up the polyline.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`distance`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe mininum distance that qualifies a hit.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","polygonsIntersect-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","preventDefault-function-1":"<Small>Public Function</Small>\\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<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`event`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nEvent | React.BaseSyntheticEvent\\n```\\n\\nTo prevent default on\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\nConvert radians to degrees.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe degree in radians.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","rangeIntersection-function-1":"<Small>Public Function</Small>\\n\\nFinds the intersection of two ranges.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the A range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the A range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the B range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the B range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the A range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the A range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe start point in the B range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`b1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe end point in the B range\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n True if the ranges overlap\\n\\n\\n","refreshPage-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","releasePointerCapture-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`element`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`event`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPointerEvent | React.PointerEvent<Element>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`diff`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordsDiff<any>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff<any>\\n```\\n\\n##### References\\n\\n[RecordsDiff](/gen/store/RecordsDiff-type)\\n\\n","rotateSelectionHandle-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`handle`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nSelectionHandle\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`rotation`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nSelectionHandle\\n```\\n\\n##### References\\n\\n[SelectionHandle](/gen/primitives/SelectionHandle-type)\\n\\n","runtime-var":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`store`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLStore\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<string>\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [Promise](/gen/Promise-interface)\\n\\n","serializeTldrawJsonBlob-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`store`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLStore\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nPromise<Blob>\\n```\\n\\n##### References\\n\\n[TLStore](/gen/tlschema/TLStore-type), [Promise](/gen/Promise-interface), [Blob](/gen/Blob-interface)\\n\\n","setPointerCapture-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`element`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nElement\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`event`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPointerEvent | React.PointerEvent<Element>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`input`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nPartial<typeof runtime>\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`strokePoints`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokePoint[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`options`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nStrokeOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`user`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLUserPreferences\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n##### References\\n\\n[TLUserPreferences](/gen/editor/TLUserPreferences-interface)\\n\\n","shapeIdValidator-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nshapeIdValidator: T.Validator<TLShapeId>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [TLShapeId](/gen/tlschema/TLShapeId-type)\\n\\n","shortAngleDist-function-1":"<Small>Public Function</Small>\\n\\nGet the short angle distance between two angles.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a0`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe first angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`a1`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe second angle.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","simplify-function-1":"<Small>Public Function</Small>\\n\\nSimplify a line (using Ramer-Douglas-Peucker algorithm).\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\nAn array of points as [x, y, ...][]\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`tolerance`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe minimum line distance (also called epsilon).\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`points`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nVecLike[]\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`tolerance`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nVecLike[]\\n```\\n\\n##### References\\n\\n[VecLike](/gen/primitives/VecLike-type)\\n\\n","snapAngle-function-1":"<Small>Public Function</Small>\\n\\nClamp rotation to even segments.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`r`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe rotation in radians.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`segments`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe number of segments.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","snapToGrid-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`gridSize`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","squashRecordDiffs-function-1":"<Small>Public Function</Small>\\n\\nSquash a collection of diffs into a single diff.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`diffs`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nRecordsDiff<T>[]\\n```\\n\\nAn array of diffs to squash.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nRecordsDiff<T>\\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":"<Small>Public Readonly Variable</Small>\\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<number>\\n text: T.Validator<string>\\n scale: T.Validator<number>\\n autoSize: T.Validator<boolean>\\n}\\n```\\n\\n##### References\\n\\n[EnumStyleProp](/gen/tlschema/EnumStyleProp-class), [T.Validator](/gen/validate/Validator-class)\\n\\n","toDomPrecision-function-1":"<Small>Public Function</Small>\\n\\nThe DOM likes values to be fixed to 3 decimal places\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`v`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","toFixed-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`v`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","toPrecision-function-1":"<Small>Public Function</Small>\\n\\nGet a number to a precision.\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`n`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe number.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`precision`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nnumber\\n```\\n\\nThe precision.\\n\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","toolbarItem-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`toolItem`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLUiToolItem\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\ntruncateStringWithEllipsis: (str: string, maxLength: number) => string\\n```\\n\\n","uniqueId-function-1":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nnumber\\n```\\n\\n","useCanRedo-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useCanUndo-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useContainer-function-1":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n{\\n addToast: (\\n toast: Omit<import(\'./hooks/useToastsProvider\').TLUiToast, \'id\'> & {\\n id?: string | undefined\\n }\\n ) => string\\n removeToast: (id: string) => string\\n clearToasts: () => void\\n addDialog: (\\n dialog: Omit<import(\'./hooks/useDialogsProvider\').TLUiDialog, \'id\'> & {\\n id?: string | undefined\\n }\\n ) => string\\n clearDialogs: () => void\\n removeDialog: (id: string) => string\\n updateDialog: (\\n id: string,\\n newDialogData: Partial<import(\'./hooks/useDialogsProvider\').TLUiDialog>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Readonly Variable</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\n(ids?: TLShapeId[], format?: TLExportType) => Promise<void>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","useKeyboardShortcutsSchema-function-1":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`key`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`defaultValue`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nT\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nreadonly [T, (setter: ((value: T) => T) | T) => void]\\n```\\n\\n","useMenuClipboardEvents-function-1":"<Small>Public Function</Small>\\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<void>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`id`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nstring\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`cb`\\n\\n <Small>(optional)</Small>\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\n(isOpen: boolean) => void\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\n\\n##### Returns\\n\\n\\n```ts\\nreadonly [boolean, (isOpen: boolean) => void]\\n```\\n\\n","useMenuSchema-function-1":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nvoid\\n```\\n\\n","usePrefersReducedMotion-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useReadonly-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\nNone\\n\\n##### Returns\\n\\n\\n```ts\\nboolean\\n```\\n\\n","useTLStore-function-1":"<Small>Public Function</Small>\\n\\n\\n\\n\\n##### Parameters\\n\\n\\n<ParametersTable>\\n\\n<ParametersTableRow>\\n<ParametersTableName>\\n\\n`opts`\\n\\n</ParametersTableName>\\n<ParametersTableDescription>\\n\\n```ts\\nTLStoreOptions\\n```\\n\\n\\n\\n</ParametersTableDescription>\\n</ParametersTableRow>\\n</ParametersTable>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Function</Small>\\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":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nvec2dModelValidator: T.Validator<Vec2dModel>\\n```\\n\\n##### References\\n\\n[T.Validator](/gen/validate/Validator-class), [Vec2dModel](/gen/tlschema/Vec2dModel-interface)\\n\\n","videoShapeProps-var":"<Small>Public Readonly Variable</Small>\\n\\n\\n\\n\\n##### Signature\\n\\n\\n```ts\\nvideoShapeProps: {\\n w: T.Validator<number>\\n h: T.Validator<number>\\n time: T.Validator<number>\\n playing: T.Validator<boolean>\\n url: T.Validator<string>\\n assetId: T.Validator<import(\'..\').TLAssetId | null>\\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__;
})();