@testbank-inc/excalidraw
Version:
Excalidraw as a React component
1,111 lines (1,103 loc) • 1.63 MB
JavaScript
import {
AbortError,
ExcalidrawError,
Fonts,
ImageSceneDataError,
ImageURLToFile,
SVGStringToFile,
bootstrapCanvas,
calculateScrollCenter,
canChangeRoundness,
canHaveArrowheads,
canvasToBlob,
centerScrollOn,
constrainScrollToPageBounds,
constrainZoomForPageBounds,
createFile,
dataURLToString,
drawHighlightForDiamondWithRotation,
drawHighlightForRectWithRotation,
encodePngMetadata,
exportToCanvas,
exportToSvg,
fileOpen,
fileSave,
fillCircle,
generateIdFromFile,
getDataURL,
getDataURL_sync,
getDefaultAppState,
getElementsWithinSelection,
getExportSize,
getFileFromEvent,
getFileHandleType,
getLinkHandleFromCoords,
getNormalizedCanvasDimensions,
getNormalizedGridStep,
getNormalizedZoom,
getSelectedElements,
getTargetElements,
hasBackground,
hasStrokeStyle,
hasStrokeWidth,
isEraserActive,
isHandToolActive,
isImageFileHandle,
isImageFileHandleType,
isPointHittingLink,
isPointHittingLinkIcon,
isSomeElementSelected,
isSupportedImageFile,
isSupportedImageFileType,
loadFromBlob,
loadFromJSON,
loadLibraryFromBlob,
loadSceneOrLibraryFromBlob,
nativeFileSystemSupported,
normalizeFile,
parseLibraryJSON,
renderStaticScene,
renderStaticSceneThrottled,
resizeImageFile,
restore,
restoreAppState,
restoreElements,
restoreLibraryItems,
saveAsJSON,
saveLibraryAsJSON,
serializeAsJSON,
serializeLibraryAsJSON,
strokeEllipseWithRotation,
strokeRectWithRotation
} from "./chunk-FKGZ7XFO.js";
import {
define_import_meta_env_default
} from "./chunk-LDSNT77A.js";
import {
en_default
} from "./chunk-3EBFJ4ME.js";
import {
percentages_default
} from "./chunk-MFAYKRVR.js";
import {
__export,
__glob,
__publicField
} from "./chunk-XDFCUUT6.js";
// index.tsx
import React46, { useEffect as useEffect46 } from "react";
import { DEFAULT_UI_OPTIONS, isShallowEqual as isShallowEqual9 } from "@testbank-inc/common";
// components/App.tsx
import clsx56 from "clsx";
import throttle3 from "lodash.throttle";
import React44, { useContext as useContext3 } from "react";
import { flushSync as flushSync3 } from "react-dom";
import rough3 from "roughjs/bin/rough";
import { nanoid } from "nanoid";
import {
clamp as clamp7,
pointFrom as pointFrom29,
pointDistance as pointDistance9,
vector as vector4,
pointRotateRads as pointRotateRads16,
vectorScale as vectorScale8,
vectorFromPoint as vectorFromPoint10,
vectorSubtract as vectorSubtract2,
vectorDot as vectorDot2,
vectorNormalize as vectorNormalize4
} from "@testbank-inc/math";
import {
COLOR_PALETTE as COLOR_PALETTE6,
CODES as CODES13,
shouldResizeFromCenter,
shouldMaintainAspectRatio,
shouldRotateWithDiscreteAngle as shouldRotateWithDiscreteAngle2,
isArrowKey as isArrowKey2,
KEYS as KEYS53,
APP_NAME as APP_NAME2,
CURSOR_TYPE as CURSOR_TYPE4,
DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,
DEFAULT_VERTICAL_ALIGN,
DRAGGING_THRESHOLD as DRAGGING_THRESHOLD2,
ELEMENT_SHIFT_TRANSLATE_AMOUNT,
ELEMENT_TRANSLATE_AMOUNT,
EVENT as EVENT13,
FRAME_STYLE as FRAME_STYLE4,
IMAGE_MIME_TYPES as IMAGE_MIME_TYPES2,
IMAGE_RENDER_TIMEOUT,
isBrave,
LINE_CONFIRM_THRESHOLD as LINE_CONFIRM_THRESHOLD2,
MAX_ALLOWED_FILE_BYTES,
MIME_TYPES as MIME_TYPES8,
MQ_MAX_HEIGHT_LANDSCAPE,
MQ_MAX_WIDTH_LANDSCAPE,
MQ_MAX_WIDTH_PORTRAIT,
MQ_RIGHT_SIDEBAR_MIN_WIDTH,
POINTER_BUTTON as POINTER_BUTTON2,
ROUNDNESS as ROUNDNESS6,
SCROLL_TIMEOUT,
TAP_TWICE_TIMEOUT,
TEXT_TO_CENTER_SNAP_THRESHOLD,
THEME as THEME15,
THEME_FILTER,
TOUCH_CTX_MENU_TIMEOUT,
VERTICAL_ALIGN as VERTICAL_ALIGN6,
YOUTUBE_STATES,
ZOOM_STEP as ZOOM_STEP2,
POINTER_EVENTS,
TOOL_TYPE as TOOL_TYPE3,
isIOS,
supportsResizeObserver as supportsResizeObserver2,
DEFAULT_COLLISION_THRESHOLD,
DEFAULT_TEXT_ALIGN as DEFAULT_TEXT_ALIGN2,
ARROW_TYPE as ARROW_TYPE2,
DEFAULT_REDUCED_GLOBAL_ALPHA as DEFAULT_REDUCED_GLOBAL_ALPHA2,
isSafari,
isLocalLink as isLocalLink2,
normalizeLink as normalizeLink3,
toValidURL as toValidURL2,
getGridPoint as getGridPoint2,
getLineHeight as getLineHeight5,
debounce as debounce4,
distance as distance2,
getFontString as getFontString10,
getNearestScrollableContainer,
isInputLike,
isToolIcon,
isWritableElement as isWritableElement3,
sceneCoordsToViewportCoords as sceneCoordsToViewportCoords7,
tupleToCoors as tupleToCoors5,
viewportCoordsToSceneCoords as viewportCoordsToSceneCoords4,
wrapEvent as wrapEvent2,
updateObject as updateObject2,
updateActiveTool as updateActiveTool7,
getShortcutKey as getShortcutKey15,
isTransparent as isTransparent6,
easeToValuesRAF,
muteFSAbortError as muteFSAbortError2,
isTestEnv as isTestEnv6,
isDevEnv as isDevEnv11,
easeOut as easeOut4,
updateStable,
addEventListener as addEventListener2,
normalizeEOL as normalizeEOL2,
getDateTime,
isShallowEqual as isShallowEqual8,
arrayToMap as arrayToMap27,
randomInteger as randomInteger4,
CLASSES as CLASSES7,
Emitter as Emitter3
} from "@testbank-inc/common";
import {
getObservedAppState,
getCommonBounds as getCommonBounds12,
maybeSuggestBindingsForLinearElementAtCoords as maybeSuggestBindingsForLinearElementAtCoords2,
getElementAbsoluteCoords as getElementAbsoluteCoords8,
bindOrUnbindLinearElements as bindOrUnbindLinearElements2,
fixBindingsAfterDeletion as fixBindingsAfterDeletion2,
getHoveredElementForBinding as getHoveredElementForBinding2,
isBindingEnabled as isBindingEnabled3,
shouldEnableBindingForPointerEvent,
updateBoundElements as updateBoundElements3,
getSuggestedBindingsForArrows,
LinearElementEditor as LinearElementEditor13,
newElementWith as newElementWith10,
newFrameElement as newFrameElement3,
newFreeDrawElement,
newEmbeddableElement,
newMagicFrameElement as newMagicFrameElement2,
newIframeElement,
newArrowElement as newArrowElement3,
newElement as newElement5,
newImageElement as newImageElement2,
newLinearElement as newLinearElement4,
newTextElement as newTextElement4,
refreshTextDimensions,
deepCopyElement as deepCopyElement5,
duplicateElements as duplicateElements3,
hasBoundTextElement as hasBoundTextElement9,
isArrowElement as isArrowElement12,
isBindingElement as isBindingElement3,
isBindingElementType as isBindingElementType2,
isBoundToContainer as isBoundToContainer8,
isFrameLikeElement as isFrameLikeElement16,
isImageElement as isImageElement9,
isEmbeddableElement as isEmbeddableElement4,
isInitializedImageElement as isInitializedImageElement3,
isLinearElement as isLinearElement13,
isLinearElementType as isLinearElementType2,
isUsingAdaptiveRadius as isUsingAdaptiveRadius4,
isIframeElement as isIframeElement2,
isIframeLikeElement as isIframeLikeElement2,
isMagicFrameElement as isMagicFrameElement2,
isTextBindableContainer as isTextBindableContainer3,
isElbowArrow as isElbowArrow11,
isFlowchartNodeElement as isFlowchartNodeElement2,
isBindableElement as isBindableElement2,
isTextElement as isTextElement19,
getLockedLinearCursorAlignSize as getLockedLinearCursorAlignSize2,
getNormalizedDimensions,
isElementCompletelyInViewport as isElementCompletelyInViewport2,
isElementInViewport as isElementInViewport3,
isInvisiblySmallElement as isInvisiblySmallElement2,
getCornerRadius as getCornerRadius2,
isPathALoop as isPathALoop4,
createSrcDoc,
embeddableURLValidator as embeddableURLValidator2,
maybeParseEmbedSrc,
getEmbedLink as getEmbedLink2,
getInitializedImageElements,
normalizeSVG,
updateImageCache as _updateImageCache,
getBoundTextElement as getBoundTextElement15,
getContainerCenter,
getContainerElement as getContainerElement5,
isValidTextContainer,
redrawTextBoundingBox as redrawTextBoundingBox9,
shouldShowBoundingBox as shouldShowBoundingBox2,
getFrameChildren as getFrameChildren6,
isCursorInFrame,
addElementsToFrame as addElementsToFrame2,
replaceAllElementsInFrame as replaceAllElementsInFrame4,
removeElementsFromFrame as removeElementsFromFrame2,
getElementsInResizingFrame as getElementsInResizingFrame4,
getElementsInNewFrame,
getContainingFrame as getContainingFrame3,
elementOverlapsWithFrame as elementOverlapsWithFrame2,
updateFrameMembershipOfSelectedElements as updateFrameMembershipOfSelectedElements4,
isElementInFrame,
getFrameLikeTitle,
getElementsOverlappingFrame as getElementsOverlappingFrame2,
filterElementsEligibleAsFrameChildren,
hitElementBoundText,
hitElementBoundingBoxOnly,
hitElementItself,
getVisibleSceneBounds,
FlowChartCreator,
FlowChartNavigator,
getLinkDirectionFromKey,
cropElement,
wrapText as wrapText4,
isElementLink as isElementLink2,
parseElementLinkFromURL,
isMeasureTextSupported,
normalizeText as normalizeText4,
measureText as measureText7,
getLineHeightInPx as getLineHeightInPx2,
getApproxMinLineWidth,
getApproxMinLineHeight,
getMinTextElementWidth,
ShapeCache as ShapeCache4,
getRenderOpacity,
editGroupForSelectedElement,
getElementsInGroup as getElementsInGroup9,
getSelectedGroupIdForElement,
getSelectedGroupIds as getSelectedGroupIds4,
isElementInGroup as isElementInGroup2,
isSelectedViaGroup as isSelectedViaGroup2,
selectGroupsForSelectedElements as selectGroupsForSelectedElements6,
syncInvalidIndices as syncInvalidIndices2,
syncMovedIndices as syncMovedIndices4,
excludeElementsInFramesFromSelection,
getSelectionStateForElements as getSelectionStateForElements2,
makeNextSelectedElementIds as makeNextSelectedElementIds2,
getResizeOffsetXY,
getResizeArrowDirection,
transformElements,
getCursorForResizingElement,
getElementWithTransformHandleType,
getTransformHandleTypeFromCoords,
dragNewElement,
dragSelectedElements,
getDragOffsetXY,
isNonDeletedElement,
Scene as Scene2,
Store,
CaptureUpdateAction as CaptureUpdateAction38,
hitElementBoundingBox as hitElementBoundingBox2,
isLineElement as isLineElement7,
isSimpleArrow
} from "@testbank-inc/element";
// actions/actionDeleteSelected.tsx
import { KEYS, updateActiveTool } from "@testbank-inc/common";
import { getNonDeletedElements } from "@testbank-inc/element";
import { fixBindingsAfterDeletion } from "@testbank-inc/element";
import { LinearElementEditor } from "@testbank-inc/element";
import { newElementWith } from "@testbank-inc/element";
import { getContainerElement } from "@testbank-inc/element";
import {
isBoundToContainer,
isElbowArrow,
isFrameLikeElement
} from "@testbank-inc/element";
import { getFrameChildren } from "@testbank-inc/element";
import {
getElementsInGroup,
selectGroupsForSelectedElements
} from "@testbank-inc/element";
import { CaptureUpdateAction } from "@testbank-inc/element";
// i18n.ts
import { isDevEnv } from "@testbank-inc/common";
// editor-jotai.ts
import {
atom,
createStore
} from "jotai";
import { createIsolation } from "jotai-scope";
var jotai = createIsolation();
var { useAtom, useSetAtom, useAtomValue, useStore } = jotai;
var EditorJotaiProvider = jotai.Provider;
var editorJotaiStore = createStore();
// import("./locales/**/*.json") in i18n.ts
var globImport_locales_json = __glob({
"./locales/ar-SA.json": () => import("./locales/ar-SA-XORAP2EK.js"),
"./locales/az-AZ.json": () => import("./locales/az-AZ-NAUU3Z4Y.js"),
"./locales/bg-BG.json": () => import("./locales/bg-BG-AAABLFCY.js"),
"./locales/bn-BD.json": () => import("./locales/bn-BD-PM4AC5WG.js"),
"./locales/ca-ES.json": () => import("./locales/ca-ES-YNNMFRQX.js"),
"./locales/cs-CZ.json": () => import("./locales/cs-CZ-DGZA5IKG.js"),
"./locales/da-DK.json": () => import("./locales/da-DK-N76F4QAJ.js"),
"./locales/de-DE.json": () => import("./locales/de-DE-DMRXZ2SZ.js"),
"./locales/el-GR.json": () => import("./locales/el-GR-HIKPLEXI.js"),
"./locales/en.json": () => import("./locales/en-5ZLWOUCG.js"),
"./locales/es-ES.json": () => import("./locales/es-ES-AQYVXC32.js"),
"./locales/eu-ES.json": () => import("./locales/eu-ES-3TOEU5DE.js"),
"./locales/fa-IR.json": () => import("./locales/fa-IR-527GAKUP.js"),
"./locales/fi-FI.json": () => import("./locales/fi-FI-M3WLVDFP.js"),
"./locales/fr-FR.json": () => import("./locales/fr-FR-YE4VDJFI.js"),
"./locales/gl-ES.json": () => import("./locales/gl-ES-KMXUYGUN.js"),
"./locales/he-IL.json": () => import("./locales/he-IL-4MU5N22B.js"),
"./locales/hi-IN.json": () => import("./locales/hi-IN-ZHZNZWFC.js"),
"./locales/hu-HU.json": () => import("./locales/hu-HU-VIYZI3X4.js"),
"./locales/id-ID.json": () => import("./locales/id-ID-22TWZNLA.js"),
"./locales/it-IT.json": () => import("./locales/it-IT-MDEQ2SG3.js"),
"./locales/ja-JP.json": () => import("./locales/ja-JP-K2DI4W6B.js"),
"./locales/kaa.json": () => import("./locales/kaa-6BPSNM3R.js"),
"./locales/kab-KAB.json": () => import("./locales/kab-KAB-2S7ZURK7.js"),
"./locales/kk-KZ.json": () => import("./locales/kk-KZ-UJPYGRQQ.js"),
"./locales/km-KH.json": () => import("./locales/km-KH-M5T5JKUE.js"),
"./locales/ko-KR.json": () => import("./locales/ko-KR-RQX37SNF.js"),
"./locales/ku-TR.json": () => import("./locales/ku-TR-5XJDIERL.js"),
"./locales/lt-LT.json": () => import("./locales/lt-LT-MGUBX6CA.js"),
"./locales/lv-LV.json": () => import("./locales/lv-LV-MD7N5VHD.js"),
"./locales/mr-IN.json": () => import("./locales/mr-IN-4XWMNGQC.js"),
"./locales/my-MM.json": () => import("./locales/my-MM-O4Z74GN5.js"),
"./locales/nb-NO.json": () => import("./locales/nb-NO-BMB73KRH.js"),
"./locales/nl-NL.json": () => import("./locales/nl-NL-F2257BLQ.js"),
"./locales/nn-NO.json": () => import("./locales/nn-NO-NCORG7TS.js"),
"./locales/oc-FR.json": () => import("./locales/oc-FR-ATFBDMF6.js"),
"./locales/pa-IN.json": () => import("./locales/pa-IN-D2I375G4.js"),
"./locales/percentages.json": () => import("./locales/percentages-YKFLWNK2.js"),
"./locales/pl-PL.json": () => import("./locales/pl-PL-YJHOWAAW.js"),
"./locales/pt-BR.json": () => import("./locales/pt-BR-APOPYZJ7.js"),
"./locales/pt-PT.json": () => import("./locales/pt-PT-W56WCN7P.js"),
"./locales/ro-RO.json": () => import("./locales/ro-RO-L575VRQA.js"),
"./locales/ru-RU.json": () => import("./locales/ru-RU-BLG6HZG5.js"),
"./locales/si-LK.json": () => import("./locales/si-LK-KT7GGO6D.js"),
"./locales/sk-SK.json": () => import("./locales/sk-SK-DY6IPO5U.js"),
"./locales/sl-SI.json": () => import("./locales/sl-SI-5DZSRA47.js"),
"./locales/sv-SE.json": () => import("./locales/sv-SE-V32YHALQ.js"),
"./locales/ta-IN.json": () => import("./locales/ta-IN-5JRAGQAO.js"),
"./locales/th-TH.json": () => import("./locales/th-TH-55ACRHDJ.js"),
"./locales/tr-TR.json": () => import("./locales/tr-TR-7QYBXDBO.js"),
"./locales/uk-UA.json": () => import("./locales/uk-UA-TJS2TMRH.js"),
"./locales/vi-VN.json": () => import("./locales/vi-VN-Y5CQ2EKQ.js"),
"./locales/zh-CN.json": () => import("./locales/zh-CN-4MXUOFTH.js"),
"./locales/zh-HK.json": () => import("./locales/zh-HK-RBTGIU3U.js"),
"./locales/zh-TW.json": () => import("./locales/zh-TW-U5VF4CCU.js")
});
// i18n.ts
var COMPLETION_THRESHOLD = 85;
var defaultLang = { code: "en", label: "English" };
var languages = [
defaultLang,
...[
{ code: "ar-SA", label: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629", rtl: true },
{ code: "bg-BG", label: "\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438" },
{ code: "ca-ES", label: "Catal\xE0" },
{ code: "cs-CZ", label: "\u010Cesky" },
{ code: "de-DE", label: "Deutsch" },
{ code: "el-GR", label: "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC" },
{ code: "es-ES", label: "Espa\xF1ol" },
{ code: "eu-ES", label: "Euskara" },
{ code: "fa-IR", label: "\u0641\u0627\u0631\u0633\u06CC", rtl: true },
{ code: "fi-FI", label: "Suomi" },
{ code: "fr-FR", label: "Fran\xE7ais" },
{ code: "gl-ES", label: "Galego" },
{ code: "he-IL", label: "\u05E2\u05D1\u05E8\u05D9\u05EA", rtl: true },
{ code: "hi-IN", label: "\u0939\u093F\u0928\u094D\u0926\u0940" },
{ code: "hu-HU", label: "Magyar" },
{ code: "id-ID", label: "Bahasa Indonesia" },
{ code: "it-IT", label: "Italiano" },
{ code: "ja-JP", label: "\u65E5\u672C\u8A9E" },
{ code: "kab-KAB", label: "Taqbaylit" },
{ code: "kk-KZ", label: "\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456" },
{ code: "ko-KR", label: "\uD55C\uAD6D\uC5B4" },
{ code: "ku-TR", label: "Kurd\xEE" },
{ code: "lt-LT", label: "Lietuvi\u0173" },
{ code: "lv-LV", label: "Latvie\u0161u" },
{ code: "my-MM", label: "Burmese" },
{ code: "nb-NO", label: "Norsk bokm\xE5l" },
{ code: "nl-NL", label: "Nederlands" },
{ code: "nn-NO", label: "Norsk nynorsk" },
{ code: "oc-FR", label: "Occitan" },
{ code: "pa-IN", label: "\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40" },
{ code: "pl-PL", label: "Polski" },
{ code: "pt-BR", label: "Portugu\xEAs Brasileiro" },
{ code: "pt-PT", label: "Portugu\xEAs" },
{ code: "ro-RO", label: "Rom\xE2n\u0103" },
{ code: "ru-RU", label: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439" },
{ code: "sk-SK", label: "Sloven\u010Dina" },
{ code: "sv-SE", label: "Svenska" },
{ code: "sl-SI", label: "Sloven\u0161\u010Dina" },
{ code: "tr-TR", label: "T\xFCrk\xE7e" },
{ code: "uk-UA", label: "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430" },
{ code: "zh-CN", label: "\u7B80\u4F53\u4E2D\u6587" },
{ code: "zh-TW", label: "\u7E41\u9AD4\u4E2D\u6587" },
{ code: "vi-VN", label: "Ti\u1EBFng Vi\u1EC7t" },
{ code: "mr-IN", label: "\u092E\u0930\u093E\u0920\u0940" }
].filter(
(lang) => percentages_default[lang.code] >= COMPLETION_THRESHOLD
).sort((left, right) => left.label > right.label ? 1 : -1)
];
var TEST_LANG_CODE = "__test__";
if (isDevEnv()) {
languages.unshift(
{ code: TEST_LANG_CODE, label: "test language" },
{
code: `${TEST_LANG_CODE}.rtl`,
label: "\u202Atest language (rtl)\u202C",
rtl: true
}
);
}
var currentLang = defaultLang;
var currentLangData = {};
var setLanguage = async (lang) => {
currentLang = lang;
document.documentElement.dir = currentLang.rtl ? "rtl" : "ltr";
document.documentElement.lang = currentLang.code;
if (lang.code.startsWith(TEST_LANG_CODE)) {
currentLangData = {};
} else {
try {
currentLangData = await globImport_locales_json(`./locales/${currentLang.code}.json`);
} catch (error) {
console.error(`Failed to load language ${lang.code}:`, error.message);
currentLangData = en_default;
}
}
editorJotaiStore.set(editorLangCodeAtom, lang.code);
};
var getLanguage = () => currentLang;
var findPartsForData = (data, parts) => {
for (let index = 0; index < parts.length; ++index) {
const part = parts[index];
if (data[part] === void 0) {
return void 0;
}
data = data[part];
}
if (typeof data !== "string") {
return void 0;
}
return data;
};
var t = (path, replacement, fallback) => {
if (currentLang.code.startsWith(TEST_LANG_CODE)) {
const name = replacement ? `${path}(${JSON.stringify(replacement).slice(1, -1)})` : path;
return `\u202A[[${name}]]\u202C`;
}
const parts = path.split(".");
let translation = findPartsForData(currentLangData, parts) || findPartsForData(en_default, parts) || fallback;
if (translation === void 0) {
const errorMessage = `Can't find translation for ${path}`;
if (define_import_meta_env_default.PROD) {
console.warn(errorMessage);
return "";
}
throw new Error(errorMessage);
}
if (replacement) {
for (const key in replacement) {
translation = translation.replace(`{{${key}}}`, String(replacement[key]));
}
}
return translation;
};
var editorLangCodeAtom = atom(defaultLang.code);
var useI18n = () => {
const langCode = useAtomValue(editorLangCodeAtom);
return { t, langCode };
};
// components/icons.tsx
import clsx from "clsx";
import oc from "open-color";
import React from "react";
import { THEME } from "@testbank-inc/common";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
var iconFillColor = (theme) => "var(--icon-fill-color)";
var handlerColor = (theme) => theme === THEME.LIGHT ? oc.white : "#1e1e1e";
var createIcon = (d, opts = 512) => {
const {
width = 512,
height = width,
mirror,
style,
...rest
} = typeof opts === "number" ? { width: opts } : opts;
return /* @__PURE__ */ jsx(
"svg",
{
"aria-hidden": "true",
focusable: "false",
role: "img",
viewBox: `0 0 ${width} ${height}`,
className: clsx({ "rtl-mirror": mirror }),
style,
...rest,
children: typeof d === "string" ? /* @__PURE__ */ jsx("path", { fill: "currentColor", d }) : d
}
);
};
var tablerIconProps = {
width: 24,
height: 24,
fill: "none",
strokeWidth: 2,
stroke: "currentColor",
strokeLinecap: "round",
strokeLinejoin: "round"
};
var modifiedTablerIconProps = {
width: 20,
height: 20,
fill: "none",
stroke: "currentColor",
strokeLinecap: "round",
strokeLinejoin: "round"
};
var PlusPromoIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("rect", { x: 3, y: 8, width: 18, height: 4, rx: 1 }),
/* @__PURE__ */ jsx("line", { x1: 12, y1: 8, x2: 12, y2: 21 }),
/* @__PURE__ */ jsx("path", { d: "M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7" }),
/* @__PURE__ */ jsx("path", { d: "M7.5 8a2.5 2.5 0 0 1 0 -5a4.8 8 0 0 1 4.5 5a4.8 8 0 0 1 4.5 -5a2.5 2.5 0 0 1 0 5" })
] }),
tablerIconProps
);
var LibraryIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0" }),
/* @__PURE__ */ jsx("path", { d: "M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0" }),
/* @__PURE__ */ jsx("line", { x1: "3", y1: "6", x2: "3", y2: "19" }),
/* @__PURE__ */ jsx("line", { x1: "12", y1: "6", x2: "12", y2: "19" }),
/* @__PURE__ */ jsx("line", { x1: "21", y1: "6", x2: "21", y2: "19" })
] }),
tablerIconProps
);
var PlusIcon = createIcon(
/* @__PURE__ */ jsxs("svg", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
/* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
] }),
tablerIconProps
);
var DotsIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1" }),
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "19", r: "1" }),
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "5", r: "1" })
] }),
tablerIconProps
);
var PinIcon = createIcon(
/* @__PURE__ */ jsxs("svg", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M9 4v6l-2 4v2h10v-2l-2 -4v-6" }),
/* @__PURE__ */ jsx("line", { x1: "12", y1: "16", x2: "12", y2: "21" }),
/* @__PURE__ */ jsx("line", { x1: "8", y1: "4", x2: "16", y2: "4" })
] }),
tablerIconProps
);
var polygonIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: 1.25, children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }),
/* @__PURE__ */ jsx("path", { d: "M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }),
/* @__PURE__ */ jsx("path", { d: "M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }),
/* @__PURE__ */ jsx("path", { d: "M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }),
/* @__PURE__ */ jsx("path", { d: "M6.5 9.5l3.5 -3" }),
/* @__PURE__ */ jsx("path", { d: "M14 5.5l3 1.5" }),
/* @__PURE__ */ jsx("path", { d: "M18.5 10l-2.5 7" }),
/* @__PURE__ */ jsx("path", { d: "M13.5 17.5l-7 -5" })
] }),
tablerIconProps
);
var UnlockedIcon = createIcon(
/* @__PURE__ */ jsxs("g", { children: [
/* @__PURE__ */ jsx(
"path",
{
d: "M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z",
stroke: "currentColor",
strokeWidth: "1.25"
}
),
/* @__PURE__ */ jsx(
"path",
{
d: "M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z",
stroke: "currentColor",
strokeWidth: "1.25"
}
),
/* @__PURE__ */ jsx(
"mask",
{
id: "UnlockedIcon",
style: { maskType: "alpha" },
maskUnits: "userSpaceOnUse",
x: 6,
y: 1,
width: 9,
height: 9,
children: /* @__PURE__ */ jsx(
"path",
{
stroke: "none",
d: "M6.399 9.561V5.175c0-.93.401-1.823 1.116-2.48a3.981 3.981 0 0 1 2.693-1.028c1.01 0 1.98.37 2.694 1.027.715.658 1.116 1.55 1.116 2.481",
fill: "#fff"
}
)
}
),
/* @__PURE__ */ jsx("g", { mask: "url(#UnlockedIcon)", children: /* @__PURE__ */ jsx(
"path",
{
stroke: "none",
d: "M5.149 9.561v1.25h2.5v-1.25h-2.5Zm5.06-7.894V.417v1.25Zm2.559 3.508v1.25h2.5v-1.25h-2.5ZM7.648 8.51V5.175h-2.5V8.51h2.5Zm0-3.334c0-.564.243-1.128.713-1.561L6.668 1.775c-.959.883-1.52 2.104-1.52 3.4h2.5Zm.713-1.561a2.732 2.732 0 0 1 1.847-.697v-2.5c-1.31 0-2.585.478-3.54 1.358L8.36 3.614Zm1.847-.697c.71 0 1.374.26 1.847.697l1.694-1.839a5.231 5.231 0 0 0-3.54-1.358v2.5Zm1.847.697c.47.433.713.997.713 1.561h2.5c0-1.296-.56-2.517-1.52-3.4l-1.693 1.839Z",
fill: "currentColor"
}
) })
] }),
modifiedTablerIconProps
);
var LockedIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { d: "M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z" }),
/* @__PURE__ */ jsx("path", { d: "M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z" }),
/* @__PURE__ */ jsx("path", { d: "M6.667 8.333V5.417C6.667 3.806 8.159 2.5 10 2.5c1.841 0 3.333 1.306 3.333 2.917v2.916" })
] }),
modifiedTablerIconProps
);
var LockedIconFilled = createIcon(
/* @__PURE__ */ jsx("g", { fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M12 2a5 5 0 0 1 5 5v3a3 3 0 0 1 3 3v6a3 3 0 0 1 -3 3h-10a3 3 0 0 1 -3 -3v-6a3 3 0 0 1 3 -3v-3a5 5 0 0 1 5 -5m0 12a2 2 0 0 0 -1.995 1.85l-.005 .15a2 2 0 1 0 2 -2m0 -10a3 3 0 0 0 -3 3v3h6v-3a3 3 0 0 0 -3 -3" }) }),
{
width: 24,
height: 24
}
);
var WelcomeScreenMenuArrow = createIcon(
/* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(
"path",
{
d: "M38.5 83.5c-14-2-17.833-10.473-21-22.5C14.333 48.984 12 22 12 12.5",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round"
}
),
/* @__PURE__ */ jsx(
"path",
{
fillRule: "evenodd",
clipRule: "evenodd",
d: "m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",
fill: "currentColor"
}
),
/* @__PURE__ */ jsx(
"path",
{
d: "M12.005 10.478c1.92 3.495 3.838 7 7.905 14.423m-7.905-14.423c3.11 5.683 6.23 11.368 7.905 14.423m0 0c-3.68.226-7.35.455-13.91.85m13.91-.85c-5.279.33-10.566.647-13.91.85m0 0c1.936-4.931 3.882-9.86 6.005-15.273M6 25.75c2.069-5.257 4.135-10.505 6.005-15.272",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round"
}
)
] }),
{ width: 41, height: 94, fill: "none" }
);
var WelcomeScreenHelpArrow = createIcon(
/* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(
"path",
{
d: "M18.026 1.232c-5.268 13.125-5.548 33.555 3.285 42.311 8.823 8.75 33.31 12.304 42.422 13.523",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round"
}
),
/* @__PURE__ */ jsx(
"path",
{
fillRule: "evenodd",
clipRule: "evenodd",
d: "m72.181 59.247-13.058-10-2.948 13.62 16.006-3.62Z",
fill: "currentColor"
}
),
/* @__PURE__ */ jsx(
"path",
{
d: "M72.181 59.247c-3.163-2.429-6.337-4.856-13.058-10m13.058 10c-5.145-3.936-10.292-7.882-13.058-10m0 0c-.78 3.603-1.563 7.196-2.948 13.62m2.948-13.62c-1.126 5.168-2.24 10.346-2.948 13.62m0 0c5.168-1.166 10.334-2.343 16.006-3.62m-16.006 3.62c5.51-1.248 11.01-2.495 16.006-3.62",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round"
}
)
] }),
{ width: 85, height: 71, fill: "none" }
);
var WelcomeScreenTopToolbarArrow = createIcon(
/* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(
"path",
{
d: "M1 77c14-2 31.833-11.973 35-24 3.167-12.016-6-35-9.5-43.5",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round"
}
),
/* @__PURE__ */ jsx(
"path",
{
fillRule: "evenodd",
clipRule: "evenodd",
d: "m24.165 1.093-2.132 16.309 13.27-4.258-11.138-12.05Z",
fill: "currentColor"
}
),
/* @__PURE__ */ jsx(
"path",
{
d: "M24.165 1.093c-.522 3.953-1.037 7.916-2.132 16.309m2.131-16.309c-.835 6.424-1.68 12.854-2.13 16.308m0 0c3.51-1.125 7.013-2.243 13.27-4.257m-13.27 4.257c5.038-1.608 10.08-3.232 13.27-4.257m0 0c-3.595-3.892-7.197-7.777-11.14-12.05m11.14 12.05c-3.837-4.148-7.667-8.287-11.14-12.05",
stroke: "currentColor",
strokeWidth: 2,
strokeLinecap: "round"
}
)
] }),
{ width: 38, height: 78, fill: "none" }
);
var ExcalLogo = createIcon(
/* @__PURE__ */ jsx("g", { fill: "currentColor", children: /* @__PURE__ */ jsx(
"path",
{
d: "M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",
fill: "currentColor"
}
) }),
{ width: 40, height: 40, fill: "none" }
);
var SelectionIcon = createIcon(
/* @__PURE__ */ jsxs("g", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M6 6l4.153 11.793a0.365 .365 0 0 0 .331 .207a0.366 .366 0 0 0 .332 -.207l2.184 -4.793l4.787 -1.994a0.355 .355 0 0 0 .213 -.323a0.355 .355 0 0 0 -.213 -.323l-11.787 -4.36z" }),
/* @__PURE__ */ jsx("path", { d: "M13.5 13.5l4.5 4.5" })
] }),
{ fill: "none", width: 22, height: 22, strokeWidth: 1.25 }
);
var LassoIcon = createIcon(
/* @__PURE__ */ jsxs(
"g",
{
stroke: "currentColor",
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: 1.5,
children: [
/* @__PURE__ */ jsx("path", { d: "M4.028 13.252c-.657 -.972 -1.028 -2.078 -1.028 -3.252c0 -3.866 4.03 -7 9 -7s9 3.134 9 7s-4.03 7 -9 7c-1.913 0 -3.686 -.464 -5.144 -1.255" }),
/* @__PURE__ */ jsx("path", { d: "M5 15m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }),
/* @__PURE__ */ jsx("path", { d: "M5 17c0 1.42 .316 2.805 1 4" })
]
}
),
{ fill: "none", width: 22, height: 22, strokeWidth: 1.25 }
);
var RectangleIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" })
] }),
tablerIconProps
);
var DiamondIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M10.5 20.4l-6.9 -6.9c-.781 -.781 -.781 -2.219 0 -3l6.9 -6.9c.781 -.781 2.219 -.781 3 0l6.9 6.9c.781 .781 .781 2.219 0 3l-6.9 6.9c-.781 .781 -2.219 .781 -3 0z" })
] }),
tablerIconProps
);
var EllipseIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" })
] }),
tablerIconProps
);
var ArrowIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
/* @__PURE__ */ jsx("line", { x1: "15", y1: "16", x2: "19", y2: "12" }),
/* @__PURE__ */ jsx("line", { x1: "15", y1: "8", x2: "19", y2: "12" })
] }),
tablerIconProps
);
var LineIcon = createIcon(
/* @__PURE__ */ jsx("path", { d: "M4.167 10h11.666", strokeWidth: "1.5" }),
modifiedTablerIconProps
);
var PenModeIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z" }),
/* @__PURE__ */ jsx("path", { d: "M16 7h4" }),
/* @__PURE__ */ jsx("path", { d: "M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3" })
] }),
tablerIconProps
);
var FreedrawIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx(
"path",
{
clipRule: "evenodd",
d: "m7.643 15.69 7.774-7.773a2.357 2.357 0 1 0-3.334-3.334L4.31 12.357a3.333 3.333 0 0 0-.977 2.357v1.953h1.953c.884 0 1.732-.352 2.357-.977Z"
}
),
/* @__PURE__ */ jsx("path", { d: "m11.25 5.417 3.333 3.333" })
] }),
modifiedTablerIconProps
);
var TextIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("line", { x1: "4", y1: "20", x2: "7", y2: "20" }),
/* @__PURE__ */ jsx("line", { x1: "14", y1: "20", x2: "21", y2: "20" }),
/* @__PURE__ */ jsx("line", { x1: "6.9", y1: "15", x2: "13.8", y2: "15" }),
/* @__PURE__ */ jsx("line", { x1: "10.2", y1: "6.3", x2: "16", y2: "20" }),
/* @__PURE__ */ jsx("polyline", { points: "5 20 11 4 13 4 20 20" })
] }),
tablerIconProps
);
var ImageIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { d: "M12.5 6.667h.01" }),
/* @__PURE__ */ jsx("path", { d: "M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z" }),
/* @__PURE__ */ jsx("path", { d: "m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166" }),
/* @__PURE__ */ jsx("path", { d: "m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667" })
] }),
modifiedTablerIconProps
);
var EraserIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M19 20h-10.5l-4.21 -4.3a1 1 0 0 1 0 -1.41l10 -10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41l-9.2 9.3" }),
/* @__PURE__ */ jsx("path", { d: "M18 13.3l-6.3 -6.3" })
] }),
tablerIconProps
);
var ZoomInIcon = createIcon(
/* @__PURE__ */ jsx("path", { strokeWidth: "1.25", d: "M10 4.167v11.666M4.167 10h11.666" }),
modifiedTablerIconProps
);
var ZoomOutIcon = createIcon(
/* @__PURE__ */ jsx("path", { d: "M5 10h10", strokeWidth: "1.25" }),
modifiedTablerIconProps
);
var ZoomResetIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: 1.25, children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M21 21l-6 -6" }),
/* @__PURE__ */ jsx("path", { d: "M3.268 12.043a7.017 7.017 0 0 0 6.634 4.957a7.012 7.012 0 0 0 7.043 -6.131a7 7 0 0 0 -5.314 -7.672a7.021 7.021 0 0 0 -8.241 4.403" }),
/* @__PURE__ */ jsx("path", { d: "M3 4v4h4" })
] }),
tablerIconProps
);
var TrashIcon = createIcon(
/* @__PURE__ */ jsx(
"path",
{
strokeWidth: "1.25",
d: "M3.333 5.833h13.334M8.333 9.167v5M11.667 9.167v5M4.167 5.833l.833 10c0 .92.746 1.667 1.667 1.667h6.666c.92 0 1.667-.746 1.667-1.667l.833-10M7.5 5.833v-2.5c0-.46.373-.833.833-.833h3.334c.46 0 .833.373.833.833v2.5"
}
),
modifiedTablerIconProps
);
var EmbedIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("polyline", { points: "12 16 18 10 12 4" }),
/* @__PURE__ */ jsx("polyline", { points: "8 4 2 10 8 16" })
] }),
modifiedTablerIconProps
);
var DuplicateIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { d: "M14.375 6.458H8.958a2.5 2.5 0 0 0-2.5 2.5v5.417a2.5 2.5 0 0 0 2.5 2.5h5.417a2.5 2.5 0 0 0 2.5-2.5V8.958a2.5 2.5 0 0 0-2.5-2.5Z" }),
/* @__PURE__ */ jsx(
"path",
{
clipRule: "evenodd",
d: "M11.667 3.125c.517 0 .986.21 1.325.55.34.338.55.807.55 1.325v1.458H8.333c-.485 0-.927.185-1.26.487-.343.312-.57.75-.609 1.24l-.005 5.357H5a1.87 1.87 0 0 1-1.326-.55 1.87 1.87 0 0 1-.549-1.325V5c0-.518.21-.987.55-1.326.338-.34.807-.549 1.325-.549h6.667Z"
}
)
] }),
modifiedTablerIconProps
);
var MoonIcon = createIcon(
/* @__PURE__ */ jsx(
"path",
{
clipRule: "evenodd",
d: "M10 2.5h.328a6.25 6.25 0 0 0 6.6 10.372A7.5 7.5 0 1 1 10 2.493V2.5Z",
stroke: "currentColor"
}
),
modifiedTablerIconProps
);
var SunIcon = createIcon(
/* @__PURE__ */ jsx("g", { stroke: "currentColor", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM10 4.167V2.5M14.167 5.833l1.166-1.166M15.833 10H17.5M14.167 14.167l1.166 1.166M10 15.833V17.5M5.833 14.167l-1.166 1.166M5 10H3.333M5.833 5.833 4.667 4.667" }) }),
{ ...modifiedTablerIconProps, strokeWidth: 1.5 }
);
var HamburgerMenuIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("line", { x1: "4", y1: "6", x2: "20", y2: "6" }),
/* @__PURE__ */ jsx("line", { x1: "4", y1: "12", x2: "20", y2: "12" }),
/* @__PURE__ */ jsx("line", { x1: "4", y1: "18", x2: "20", y2: "18" })
] }),
tablerIconProps
);
var ExportIcon = createIcon(
/* @__PURE__ */ jsx(
"path",
{
strokeWidth: "1.25",
d: "M3.333 14.167v1.666c0 .92.747 1.667 1.667 1.667h10c.92 0 1.667-.746 1.667-1.667v-1.666M5.833 9.167 10 13.333l4.167-4.166M10 3.333v10"
}
),
modifiedTablerIconProps
);
var HelpIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.5", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
/* @__PURE__ */ jsx("line", { x1: "12", y1: "17", x2: "12", y2: "17.01" }),
/* @__PURE__ */ jsx("path", { d: "M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4" })
] }),
tablerIconProps
);
var HelpIconThin = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
/* @__PURE__ */ jsx("line", { x1: "12", y1: "17", x2: "12", y2: "17.01" }),
/* @__PURE__ */ jsx("path", { d: "M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4" })
] }),
tablerIconProps
);
var ExternalLinkIcon = createIcon(
/* @__PURE__ */ jsx(
"path",
{
strokeWidth: "1.25",
d: "M9.167 5.833H5.833c-1.254 0-2.5 1.282-2.5 2.5v5.834c0 1.283 1.252 2.5 2.5 2.5h5.834c1.251 0 2.5-1.25 2.5-2.5v-3.334M8.333 11.667l8.334-8.334M12.5 3.333h4.167V7.5"
}
),
modifiedTablerIconProps
);
var GithubIcon = createIcon(
/* @__PURE__ */ jsx(
"path",
{
d: "M7.5 15.833c-3.583 1.167-3.583-2.083-5-2.5m10 4.167v-2.917c0-.833.083-1.166-.417-1.666 2.334-.25 4.584-1.167 4.584-5a3.833 3.833 0 0 0-1.084-2.667 3.5 3.5 0 0 0-.083-2.667s-.917-.25-2.917 1.084a10.25 10.25 0 0 0-5.166 0C5.417 2.333 4.5 2.583 4.5 2.583a3.5 3.5 0 0 0-.083 2.667 3.833 3.833 0 0 0-1.084 2.667c0 3.833 2.25 4.75 4.584 5-.5.5-.5 1-.417 1.666V17.5",
strokeWidth: "1.25"
}
),
modifiedTablerIconProps
);
var DiscordIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { d: "M7.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM12.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM6.25 6.25c2.917-.833 4.583-.833 7.5 0M5.833 13.75c2.917.833 5.417.833 8.334 0" }),
/* @__PURE__ */ jsx("path", { d: "M12.917 14.167c0 .833 1.25 2.5 1.666 2.5 1.25 0 2.361-1.39 2.917-2.5.556-1.39.417-4.861-1.25-9.584-1.214-.846-2.5-1.116-3.75-1.25l-.833 2.084M7.083 14.167c0 .833-1.13 2.5-1.526 2.5-1.191 0-2.249-1.39-2.778-2.5-.529-1.39-.397-4.861 1.19-9.584 1.157-.846 2.318-1.116 3.531-1.25l.833 2.084" })
] }),
modifiedTablerIconProps
);
var XBrandIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M4 4l11.733 16h4.267l-11.733 -16z" }),
/* @__PURE__ */ jsx("path", { d: "M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772" })
] }),
tablerIconProps
);
var checkIcon = createIcon(
/* @__PURE__ */ jsx("polyline", { fill: "none", stroke: "currentColor", points: "20 6 9 17 4 12" }),
{
width: 24,
height: 24
}
);
var LinkIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: "1.25", children: [
/* @__PURE__ */ jsx("path", { d: "M8.333 11.667a2.917 2.917 0 0 0 4.167 0l3.333-3.334a2.946 2.946 0 1 0-4.166-4.166l-.417.416" }),
/* @__PURE__ */ jsx("path", { d: "M11.667 8.333a2.917 2.917 0 0 0-4.167 0l-3.333 3.334a2.946 2.946 0 0 0 4.166 4.166l.417-.416" })
] }),
modifiedTablerIconProps
);
var save = createIcon(
"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z",
{ width: 448, height: 512 }
);
var saveAs = createIcon(
"M252 54L203 8a28 27 0 00-20-8H28C12 0 0 12 0 27v195c0 15 12 26 28 26h204c15 0 28-11 28-26V73a28 27 0 00-8-19zM130 213c-21 0-37-16-37-36 0-19 16-35 37-35 20 0 37 16 37 35 0 20-17 36-37 36zm56-169v56c0 4-4 6-7 6H44c-4 0-7-2-7-6V42c0-4 3-7 7-7h133l4 2 3 2a7 7 0 012 5z M296 201l87 95-188 205-78 9c-10 1-19-8-18-20l9-84zm141-14l-41-44a31 31 0 00-46 0l-38 41 87 95 38-42c13-14 13-36 0-50z",
{ width: 448, height: 512 }
);
var LoadIcon = createIcon(
/* @__PURE__ */ jsx(
"path",
{
d: "m9.257 6.351.183.183H15.819c.34 0 .727.182 1.051.506.323.323.505.708.505 1.05v5.819c0 .316-.183.7-.52 1.035-.337.338-.723.522-1.037.522H4.182c-.352 0-.74-.181-1.058-.5-.318-.318-.499-.705-.499-1.057V5.182c0-.351.181-.736.5-1.054.32-.321.71-.503 1.057-.503H6.53l2.726 2.726Z",
strokeWidth: "1.25"
}
),
modifiedTablerIconProps
);
var clipboard = createIcon(
"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z",
{ width: 384, height: 512 }
);
var palette = createIcon(
"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
);
var bucketFillIcon = createIcon(
/* @__PURE__ */ jsxs("g", { strokeWidth: 1.25, children: [
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
/* @__PURE__ */ jsx("path", { d: "M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z" }),
/* @__PURE__ */ jsx("path", { d: "M13.737 9.737c2.299 -2.3 3.23 -5.095 2.081 -6.245c-1.15 -1.15 -3.945 -.217 -6.244 2.082c-2.3 2.299 -3.231 5.095 -2.082 6.244c1.15 1.15 3.946 .218 6.245 -2.081z" }),
/* @__PURE__ */ jsx("path", { d: "M7.492 11.818c.362 .362 .768 .676 1.208 .934l6.895 4.047c1.078 .557 2.255 -.075 3.692 -1.512c1.437 -1.437 2.07 -2.614 1.512 -3.692c-.372 -.718 -1.72 -3.017 -4.047 -6.895a6.015 6.015 0 0 0 -.934 -1.208" })
] }),
tablerIconProps
);
var slashIcon = createIcon(
/* @__PURE__ */ jsx("g", { strokeWidth: 1.5, children: /* @__PURE__ */ jsx("path", { d: "M6 18l12 -12" })