diff --git a/apps/client/package.json b/apps/client/package.json
index c101dbe5a..e269fd112 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -51,8 +51,7 @@
"mind-elixir": "4.6.0",
"normalize.css": "8.0.1",
"panzoom": "9.4.3",
- "react": "19.1.0",
- "react-dom": "19.1.0",
+ "preact": "10.26.8",
"split.js": "1.6.5",
"svg-pan-zoom": "3.6.2",
"vanilla-js-wheel-zoom": "9.0.4"
@@ -64,8 +63,6 @@
"@types/leaflet": "1.9.18",
"@types/leaflet-gpx": "1.3.7",
"@types/mark.js": "8.11.12",
- "@types/react": "19.1.7",
- "@types/react-dom": "19.1.6",
"copy-webpack-plugin": "13.0.0",
"happy-dom": "18.0.1",
"script-loader": "0.7.2",
@@ -75,7 +72,9 @@
"name": "client",
"targets": {
"serve": {
- "dependsOn": ["^build"]
+ "dependsOn": [
+ "^build"
+ ]
}
}
}
diff --git a/apps/client/src/types-assets.d.ts b/apps/client/src/types-assets.d.ts
index 34a964be8..010ec6b44 100644
--- a/apps/client/src/types-assets.d.ts
+++ b/apps/client/src/types-assets.d.ts
@@ -3,7 +3,7 @@ declare module "*.png" {
export default path;
}
-declare module "@triliumnext/ckeditor5/emoji_definitions/en.json?url" {
+declare module "*?url" {
var path: string;
export default path;
}
diff --git a/apps/client/src/types.d.ts b/apps/client/src/types.d.ts
index 113b94d76..be42284c7 100644
--- a/apps/client/src/types.d.ts
+++ b/apps/client/src/types.d.ts
@@ -57,6 +57,8 @@ declare global {
process?: ElectronProcess;
glob?: CustomGlobals;
+
+ EXCALIDRAW_ASSET_PATH?: string;
}
interface AutoCompleteConfig {
diff --git a/apps/client/src/widgets/type_widgets/canvas.ts b/apps/client/src/widgets/type_widgets/canvas.ts
index 53c940970..a15715c64 100644
--- a/apps/client/src/widgets/type_widgets/canvas.ts
+++ b/apps/client/src/widgets/type_widgets/canvas.ts
@@ -1,16 +1,11 @@
import TypeWidget from "./type_widget.js";
-import utils from "../../services/utils.js";
-import linkService from "../../services/link.js";
import server from "../../services/server.js";
import type FNote from "../../entities/fnote.js";
import options from "../../services/options.js";
-import type { ExcalidrawElement, Theme } from "@excalidraw/excalidraw/element/types";
-import type { AppState, BinaryFileData, ExcalidrawImperativeAPI, ExcalidrawProps, LibraryItem, SceneData } from "@excalidraw/excalidraw/types";
-import type { JSX } from "react";
-import type React from "react";
-import type { Root } from "react-dom/client";
-import "@excalidraw/excalidraw/index.css";
-import asset_path from "../../asset_path.js";
+import type { LibraryItem } from "@excalidraw/excalidraw/types";
+import type { Theme } from "@excalidraw/excalidraw/element/types";
+import type Canvas from "./canvas_el.js";
+import { CanvasContent } from "./canvas_el.js";
const TPL = /*html*/`
@@ -28,6 +23,7 @@ const TPL = /*html*/`
.excalidraw-wrapper {
height: 100%;
+ }
:root[dir="ltr"]
.excalidraw
@@ -51,11 +47,7 @@ const TPL = /*html*/`
`;
-interface CanvasContent {
- elements: ExcalidrawElement[];
- files: BinaryFileData[];
- appState: Partial;
-}
+
interface AttachmentMetadata {
title: string;
@@ -107,37 +99,22 @@ interface AttachmentMetadata {
*/
export default class ExcalidrawTypeWidget extends TypeWidget {
- private readonly SCENE_VERSION_INITIAL: number;
- private readonly SCENE_VERSION_ERROR: number;
-
private currentNoteId: string;
- private currentSceneVersion: number;
+
private libraryChanged: boolean;
private librarycache: LibraryItem[];
private attachmentMetadata: AttachmentMetadata[];
private themeStyle!: Theme;
- private excalidrawLib!: typeof import("@excalidraw/excalidraw");
- private excalidrawApi!: ExcalidrawImperativeAPI;
- private excalidrawWrapperRef!: React.RefObject;
private $render!: JQuery;
- private root?: Root;
private reactHandlers!: JQuery;
+ private canvasInstance!: Canvas;
constructor() {
super();
- // constants
- this.SCENE_VERSION_INITIAL = -1; // -1 indicates that it is fresh. excalidraw scene version is always >0
- this.SCENE_VERSION_ERROR = -2; // -2 indicates error
-
- // currently required by excalidraw, in order to allows self-hosting fonts locally.
- // this avoids making excalidraw load the fonts from an external CDN.
- (window as any).EXCALIDRAW_ASSET_PATH = `${window.location.pathname}/node_modules/@excalidraw/excalidraw/dist/prod`;
-
// temporary vars
this.currentNoteId = "";
- this.currentSceneVersion = this.SCENE_VERSION_INITIAL;
// will be overwritten
this.$render;
@@ -182,34 +159,48 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
throw new Error("Unable to find element to render.");
}
- // See https://github.com/excalidraw/excalidraw/issues/7899.
- if (!window.process) {
- (window.process as any) = {};
- }
- if (!window.process.env) {
- window.process.env = {};
- }
- (window.process.env as any).PREACT = false;
+ const Canvas = (await import("./canvas_el.js")).default;
+ this.canvasInstance = new Canvas({
+ // this makes sure that 1) manual theme switch button is hidden 2) theme stays as it should after opening menu
+ theme: this.themeStyle,
+ onChange: () => this.onChangeHandler(),
+ viewModeEnabled: options.is("databaseReadonly"),
+ zenModeEnabled: false,
+ gridModeEnabled: false,
+ isCollaborating: false,
+ detectScroll: false,
+ handleKeyboardGlobally: false,
+ autoFocus: false,
+ UIOptions: {
+ canvasActions: {
+ saveToActiveFile: false,
+ export: false
+ }
+ },
+ onLibraryChange: () => {
+ this.libraryChanged = true;
- const excalidraw = await import("@excalidraw/excalidraw");
- this.excalidrawLib = excalidraw;
+ this.saveData();
+ },
+ });
- const { createRoot } = await import("react-dom/client");
- const React = (await import("react")).default;
- this.root?.unmount();
- this.root = createRoot(renderElement);
- this.root.render(React.createElement(() => this.createExcalidrawReactApp(React, excalidraw.Excalidraw)));
+ await setupFonts();
+ this.canvasInstance.renderCanvas(renderElement);
}
/**
* called to populate the widget container with the note content
*/
async doRefresh(note: FNote) {
+ if (!this.canvasInstance) {
+ await this.#init();
+ }
+
// see if the note changed, since we do not get a new class for a new note
const noteChanged = this.currentNoteId !== note.noteId;
if (noteChanged) {
// reset the scene to omit unnecessary onchange handler
- this.currentSceneVersion = this.SCENE_VERSION_INITIAL;
+ this.canvasInstance.resetSceneVersion();
}
this.currentNoteId = note.noteId;
@@ -217,10 +208,7 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
const blob = await note.getBlob();
// before we load content into excalidraw, make sure excalidraw has loaded
- while (!this.excalidrawApi) {
- console.log("excalidrawApi not yet loaded, sleep 200ms...");
- await utils.sleep(200);
- }
+ await this.canvasInstance.waitForApiToBecomeAvailable();
/**
* new and empty note - make sure that canvas is empty.
@@ -229,15 +217,7 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
* newly instantiated?
*/
if (!blob?.content?.trim()) {
- const sceneData: SceneData = {
- elements: [],
- appState: {
- theme: this.themeStyle
- }
- };
-
- // TODO: Props mismatch.
- this.excalidrawApi.updateScene(sceneData as any);
+ this.canvasInstance.resetScene(this.themeStyle);
} else if (blob.content) {
let content: CanvasContent;
@@ -254,36 +234,7 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
};
}
- const { elements, files } = content;
- const appState: Partial = content.appState ?? {};
-
- appState.theme = this.themeStyle;
-
- if (this.excalidrawWrapperRef.current) {
- const boundingClientRect = this.excalidrawWrapperRef.current.getBoundingClientRect();
- appState.width = boundingClientRect.width;
- appState.height = boundingClientRect.height;
- appState.offsetLeft = boundingClientRect.left;
- appState.offsetTop = boundingClientRect.top;
- }
-
- const sceneData: SceneData = {
- elements,
- appState
- };
-
- // files are expected in an array when loading. they are stored as a key-index object
- // see example for loading here:
- // https://github.com/excalidraw/excalidraw/blob/c5a7723185f6ca05e0ceb0b0d45c4e3fbcb81b2a/src/packages/excalidraw/example/App.js#L68
- const fileArray: BinaryFileData[] = [];
- for (const fileId in files) {
- const file = files[fileId];
- // TODO: dataURL is replaceable with a trilium image url
- // maybe we can save normal images (pasted) with base64 data url, and trilium images
- // with their respective url! nice
- // file.dataURL = "http://localhost:8080/api/images/ltjOiU8nwoZx/start.png";
- fileArray.push(file);
- }
+ this.canvasInstance.loadData(content, this.themeStyle);
Promise.all(
(await note.getAttachmentsByRole("canvasLibraryItem")).map(async (attachment) => {
@@ -310,23 +261,19 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
const metadata = results.map((result) => result.metadata);
// Update the library and save to independent variables
- this.excalidrawApi.updateLibrary({ libraryItems, merge: false });
+ this.canvasInstance.updateLibrary(libraryItems);
// save state of library to compare it to the new state later.
this.librarycache = libraryItems;
this.attachmentMetadata = metadata;
});
- // Update the scene
- // TODO: Fix type of sceneData
- this.excalidrawApi.updateScene(sceneData as any);
- this.excalidrawApi.addFiles(fileArray);
- this.excalidrawApi.history.clear();
+
}
// set initial scene version
- if (this.currentSceneVersion === this.SCENE_VERSION_INITIAL) {
- this.currentSceneVersion = this.getSceneVersion();
+ if (this.canvasInstance.isInitialScene()) {
+ this.canvasInstance.updateSceneVersion();
}
}
@@ -335,56 +282,14 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
* this is automatically called after this.saveData();
*/
async getData() {
- const elements = this.excalidrawApi.getSceneElements();
- const appState = this.excalidrawApi.getAppState();
-
- /**
- * A file is not deleted, even though removed from canvas. Therefore, we only keep
- * files that are referenced by an element. Maybe this will change with a new excalidraw version?
- */
- const files = this.excalidrawApi.getFiles();
-
- // parallel svg export to combat bitrot and enable rendering image for note inclusion, preview, and share
- const svg = await this.excalidrawLib.exportToSvg({
- elements,
- appState,
- exportPadding: 5, // 5 px padding
- files
- });
- const svgString = svg.outerHTML;
-
- const activeFiles: Record = {};
- // TODO: Used any where upstream typings appear to be broken.
- elements.forEach((element: any) => {
- if ("fileId" in element && element.fileId) {
- activeFiles[element.fileId] = files[element.fileId];
- }
- });
-
- const content = {
- type: "excalidraw",
- version: 2,
- elements,
- files: activeFiles,
- appState: {
- scrollX: appState.scrollX,
- scrollY: appState.scrollY,
- zoom: appState.zoom
- }
- };
-
- const attachments = [{ role: "image", title: "canvas-export.svg", mime: "image/svg+xml", content: svgString, position: 0 }];
+ const { content, svg } = await this.canvasInstance.getData();
+ const attachments = [{ role: "image", title: "canvas-export.svg", mime: "image/svg+xml", content: svg, position: 0 }];
if (this.libraryChanged) {
// this.libraryChanged is unset in dataSaved()
// there's no separate method to get library items, so have to abuse this one
- const libraryItems = await this.excalidrawApi.updateLibrary({
- libraryItems() {
- return [];
- },
- merge: true
- });
+ const libraryItems = await this.canvasInstance.getLibraryItems();
// excalidraw saves the library as a own state. the items are saved to libraryItems. then we compare the library right now with a libraryitemcache. The cache is filled when we first load the Library into the note.
//We need the cache to delete old attachments later in the server.
@@ -453,146 +358,39 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
}
// changeHandler is called upon any tiny change in excalidraw. button clicked, hover, etc.
// make sure only when a new element is added, we actually save something.
- const isNewSceneVersion = this.isNewSceneVersion();
+ const isNewSceneVersion = this.canvasInstance.isNewSceneVersion();
/**
* FIXME: however, we might want to make an exception, if viewport changed, since viewport
* is desired to save? (add) and appState background, and some things
*/
// upon updateScene, onchange is called, even though "nothing really changed" that is worth saving
- const isNotInitialScene = this.currentSceneVersion !== this.SCENE_VERSION_INITIAL;
-
+ const isNotInitialScene = !this.canvasInstance.isInitialScene();
const shouldSave = isNewSceneVersion && isNotInitialScene;
if (shouldSave) {
- this.updateSceneVersion();
+ this.canvasInstance.updateSceneVersion();
this.saveData();
}
}
- createExcalidrawReactApp(react: typeof React, excalidrawComponent: React.MemoExoticComponent<(props: ExcalidrawProps) => JSX.Element>) {
- const excalidrawWrapperRef = react.useRef(null);
- this.excalidrawWrapperRef = excalidrawWrapperRef;
- const [dimensions, setDimensions] = react.useState<{ width?: number; height?: number }>({
- width: undefined,
- height: undefined
- });
-
- react.useEffect(() => {
- if (excalidrawWrapperRef.current) {
- const dimensions = {
- width: excalidrawWrapperRef.current.getBoundingClientRect().width,
- height: excalidrawWrapperRef.current.getBoundingClientRect().height
- };
- setDimensions(dimensions);
- }
-
- const onResize = () => {
- if (this.note?.type !== "canvas") {
- return;
- }
-
- if (excalidrawWrapperRef.current) {
- const dimensions = {
- width: excalidrawWrapperRef.current.getBoundingClientRect().width,
- height: excalidrawWrapperRef.current.getBoundingClientRect().height
- };
- setDimensions(dimensions);
- }
- };
-
- window.addEventListener("resize", onResize);
-
- return () => window.removeEventListener("resize", onResize);
- }, [excalidrawWrapperRef]);
-
- const onLinkOpen = react.useCallback>((element, event) => {
- let link = element.link;
- if (!link) {
- return false;
- }
-
- if (link.startsWith("root/")) {
- link = "#" + link;
- }
-
- const { nativeEvent } = event.detail;
-
- event.preventDefault();
-
- return linkService.goToLinkExt(nativeEvent, link, null);
- }, []);
-
- return react.createElement(
- react.Fragment,
- null,
- react.createElement(
- "div",
- {
- className: "excalidraw-wrapper",
- ref: excalidrawWrapperRef
- },
- react.createElement(excalidrawComponent, {
- // this makes sure that 1) manual theme switch button is hidden 2) theme stays as it should after opening menu
- theme: this.themeStyle,
- excalidrawAPI: (api: ExcalidrawImperativeAPI) => {
- this.excalidrawApi = api;
- },
- onLibraryChange: () => {
- this.libraryChanged = true;
-
- this.saveData();
- },
- onChange: () => this.onChangeHandler(),
- viewModeEnabled: options.is("databaseReadonly"),
- zenModeEnabled: false,
- gridModeEnabled: false,
- isCollaborating: false,
- detectScroll: false,
- handleKeyboardGlobally: false,
- autoFocus: false,
- onLinkOpen,
- UIOptions: {
- canvasActions: {
- saveToActiveFile: false,
- export: false
- }
- }
- })
- )
- );
- }
-
- /**
- * needed to ensure, that multipleOnChangeHandler calls do not trigger a save.
- * we compare the scene version as suggested in:
- * https://github.com/excalidraw/excalidraw/issues/3014#issuecomment-778115329
- *
- * info: sceneVersions are not incrementing. it seems to be a pseudo-random number
- */
- isNewSceneVersion() {
- if (options.is("databaseReadonly")) {
- return false;
- }
-
- const sceneVersion = this.getSceneVersion();
-
- return (
- this.currentSceneVersion === this.SCENE_VERSION_INITIAL || // initial scene version update
- this.currentSceneVersion !== sceneVersion
- ); // ensure scene changed
- }
-
- getSceneVersion() {
- if (this.excalidrawApi) {
- const elements = this.excalidrawApi.getSceneElements();
- return this.excalidrawLib.getSceneVersion(elements);
- } else {
- return this.SCENE_VERSION_ERROR;
- }
- }
-
- updateSceneVersion() {
- this.currentSceneVersion = this.getSceneVersion();
- }
+}
+
+async function setupFonts() {
+ if (window.EXCALIDRAW_ASSET_PATH) {
+ return;
+ }
+
+ // currently required by excalidraw, in order to allows self-hosting fonts locally.
+ // this avoids making excalidraw load the fonts from an external CDN.
+ let path: string;
+ if (!glob.isDev) {
+ path = `${window.location.pathname}/node_modules/@excalidraw/excalidraw/dist/prod`;
+ } else {
+ path = (await import("../../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2?url")).default;
+ let pathComponents = path.split("/");
+ path = pathComponents.slice(0, pathComponents.length - 2).join("/");
+ }
+
+ window.EXCALIDRAW_ASSET_PATH = path;
}
diff --git a/apps/client/src/widgets/type_widgets/canvas_el.ts b/apps/client/src/widgets/type_widgets/canvas_el.ts
new file mode 100644
index 000000000..1ba54d2c2
--- /dev/null
+++ b/apps/client/src/widgets/type_widgets/canvas_el.ts
@@ -0,0 +1,179 @@
+import "@excalidraw/excalidraw/index.css";
+import { Excalidraw, getSceneVersion, exportToSvg } from "@excalidraw/excalidraw";
+import { createElement, render, unmountComponentAtNode } from "preact/compat";
+import { AppState, BinaryFileData, ExcalidrawImperativeAPI, ExcalidrawProps, LibraryItem } from "@excalidraw/excalidraw/types";
+import type { ComponentType } from "preact";
+import { ExcalidrawElement, NonDeletedExcalidrawElement, Theme } from "@excalidraw/excalidraw/element/types";
+
+export interface CanvasContent {
+ elements: ExcalidrawElement[];
+ files: BinaryFileData[];
+ appState: Partial;
+}
+
+/** Indicates that it is fresh. excalidraw scene version is always >0 */
+const SCENE_VERSION_INITIAL = -1;
+
+export default class Canvas {
+
+ private currentSceneVersion: number;
+ private opts: ExcalidrawProps;
+ private excalidrawApi!: ExcalidrawImperativeAPI;
+ private initializedPromise: JQuery.Deferred;
+
+ constructor(opts: ExcalidrawProps) {
+ this.opts = opts;
+ this.currentSceneVersion = SCENE_VERSION_INITIAL;
+ this.initializedPromise = $.Deferred();
+ }
+
+ renderCanvas(targetEl: HTMLElement) {
+ unmountComponentAtNode(targetEl);
+ render(this.createCanvasElement({
+ ...this.opts,
+ excalidrawAPI: (api: ExcalidrawImperativeAPI) => {
+ this.excalidrawApi = api;
+ this.initializedPromise.resolve();
+ },
+ }), targetEl);
+ }
+
+ async waitForApiToBecomeAvailable() {
+ while (!this.excalidrawApi) {
+ await this.initializedPromise;
+ }
+ }
+
+ private createCanvasElement(opts: ExcalidrawProps) {
+ return createElement("div", { className: "excalidraw-wrapper", },
+ createElement(Excalidraw as ComponentType, opts)
+ );
+ }
+
+ /**
+ * needed to ensure, that multipleOnChangeHandler calls do not trigger a save.
+ * we compare the scene version as suggested in:
+ * https://github.com/excalidraw/excalidraw/issues/3014#issuecomment-778115329
+ *
+ * info: sceneVersions are not incrementing. it seems to be a pseudo-random number
+ */
+ isNewSceneVersion() {
+ const sceneVersion = this.getSceneVersion();
+
+ return (
+ this.currentSceneVersion === SCENE_VERSION_INITIAL || // initial scene version update
+ this.currentSceneVersion !== sceneVersion
+ ); // ensure scene changed
+ }
+
+ getSceneVersion() {
+ const elements = this.excalidrawApi.getSceneElements();
+ return getSceneVersion(elements);
+ }
+
+ updateSceneVersion() {
+ this.currentSceneVersion = this.getSceneVersion();
+ }
+
+ resetSceneVersion() {
+ this.currentSceneVersion = SCENE_VERSION_INITIAL;
+ }
+
+ isInitialScene() {
+ return this.currentSceneVersion === SCENE_VERSION_INITIAL;
+ }
+
+ resetScene(theme: Theme) {
+ this.excalidrawApi.updateScene({
+ elements: [],
+ appState: {
+ theme
+ }
+ });
+ }
+
+ loadData(content: CanvasContent, theme: Theme) {
+ const { elements, files } = content;
+ const appState: Partial = content.appState ?? {};
+ appState.theme = theme;
+
+ // files are expected in an array when loading. they are stored as a key-index object
+ // see example for loading here:
+ // https://github.com/excalidraw/excalidraw/blob/c5a7723185f6ca05e0ceb0b0d45c4e3fbcb81b2a/src/packages/excalidraw/example/App.js#L68
+ const fileArray: BinaryFileData[] = [];
+ for (const fileId in files) {
+ const file = files[fileId];
+ // TODO: dataURL is replaceable with a trilium image url
+ // maybe we can save normal images (pasted) with base64 data url, and trilium images
+ // with their respective url! nice
+ // file.dataURL = "http://localhost:8080/api/images/ltjOiU8nwoZx/start.png";
+ fileArray.push(file);
+ }
+
+ // Update the scene
+ // TODO: Fix type of sceneData
+ this.excalidrawApi.updateScene({
+ elements,
+ appState: appState as AppState
+ });
+ this.excalidrawApi.addFiles(fileArray);
+ this.excalidrawApi.history.clear();
+ }
+
+ async getData() {
+ const elements = this.excalidrawApi.getSceneElements();
+ const appState = this.excalidrawApi.getAppState();
+
+ /**
+ * A file is not deleted, even though removed from canvas. Therefore, we only keep
+ * files that are referenced by an element. Maybe this will change with a new excalidraw version?
+ */
+ const files = this.excalidrawApi.getFiles();
+ // parallel svg export to combat bitrot and enable rendering image for note inclusion, preview, and share
+ const svg = await exportToSvg({
+ elements,
+ appState,
+ exportPadding: 5, // 5 px padding
+ files
+ });
+ const svgString = svg.outerHTML;
+
+ const activeFiles: Record = {};
+ elements.forEach((element: NonDeletedExcalidrawElement) => {
+ if ("fileId" in element && element.fileId) {
+ activeFiles[element.fileId] = files[element.fileId];
+ }
+ });
+
+ const content = {
+ type: "excalidraw",
+ version: 2,
+ elements,
+ files: activeFiles,
+ appState: {
+ scrollX: appState.scrollX,
+ scrollY: appState.scrollY,
+ zoom: appState.zoom
+ }
+ };
+
+ return {
+ content,
+ svg: svgString
+ }
+ }
+
+ async getLibraryItems() {
+ return this.excalidrawApi.updateLibrary({
+ libraryItems() {
+ return [];
+ },
+ merge: true
+ });
+ }
+
+ async updateLibrary(libraryItems: LibraryItem[]) {
+ this.excalidrawApi.updateLibrary({ libraryItems, merge: false });
+ }
+
+}
diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts
index 05dd85e53..a3f00a714 100644
--- a/apps/client/vite.config.mts
+++ b/apps/client/vite.config.mts
@@ -43,11 +43,22 @@ export default defineConfig(() => ({
{
find: "@triliumnext/highlightjs",
replacement: resolve(__dirname, "node_modules/@triliumnext/highlightjs/dist")
+ },
+ {
+ find: "react",
+ replacement: "preact/compat"
+ },
+ {
+ find: "react-dom",
+ replacement: "preact/compat"
}
],
dedupe: [
"react",
- "react-dom"
+ "react-dom",
+ "preact",
+ "preact/compat",
+ "preact/hooks"
]
},
// Uncomment this if you are using workers.
@@ -97,5 +108,8 @@ export default defineConfig(() => ({
},
commonjsOptions: {
transformMixedEsModules: true,
+ },
+ define: {
+ "process.env.IS_PREACT": JSON.stringify("true"),
}
}));
diff --git a/package.json b/package.json
index d154dfd0a..58db587a3 100644
--- a/package.json
+++ b/package.json
@@ -92,6 +92,9 @@
},
"overrides": {
"node-abi": "4.9.0",
+ "mermaid": "11.6.0",
+ "preact": "10.26.8",
+ "roughjs": "4.6.6",
"@types/express-serve-static-core": "5.0.6",
"flat@<5.0.1": ">=5.0.1",
"debug@>=3.2.0 <3.2.7": ">=3.2.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0188eaa33..934e48765 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,6 +6,9 @@ settings:
overrides:
node-abi: 4.9.0
+ mermaid: 11.6.0
+ preact: 10.26.8
+ roughjs: 4.6.6
'@types/express-serve-static-core': 5.0.6
flat@<5.0.1: '>=5.0.1'
debug@>=3.2.0 <3.2.7: '>=3.2.7'
@@ -158,7 +161,7 @@ importers:
version: 9.28.0
'@excalidraw/excalidraw':
specifier: 0.18.0
- version: 0.18.0(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 0.18.0(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
'@fullcalendar/core':
specifier: 6.1.17
version: 6.1.17
@@ -276,12 +279,9 @@ importers:
panzoom:
specifier: 9.4.3
version: 9.4.3
- react:
- specifier: 19.1.0
- version: 19.1.0
- react-dom:
- specifier: 19.1.0
- version: 19.1.0(react@19.1.0)
+ preact:
+ specifier: 10.26.8
+ version: 10.26.8
split.js:
specifier: 1.6.5
version: 1.6.5
@@ -310,12 +310,6 @@ importers:
'@types/mark.js':
specifier: 8.11.12
version: 8.11.12
- '@types/react':
- specifier: 19.1.7
- version: 19.1.7
- '@types/react-dom':
- specifier: 19.1.6
- version: 19.1.6(@types/react@19.1.7)
copy-webpack-plugin:
specifier: 13.0.0
version: 13.0.0(webpack@5.99.9(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.25.5))
@@ -3284,7 +3278,7 @@ packages:
'@mermaid-js/layout-elk@0.1.7':
resolution: {integrity: sha512-G3AJ2jMaCAqky2CT3z/sf3pK5UuS3tne98GsXDl3PkKByCmPmOYmJPf+6oX5PUlV3HNWWHuSgtZ9NU/CZDSuHQ==}
peerDependencies:
- mermaid: ^11.0.0
+ mermaid: 11.6.0
'@mermaid-js/parser@0.4.0':
resolution: {integrity: sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==}
@@ -4648,9 +4642,6 @@ packages:
'@types/marked@4.3.2':
resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==}
- '@types/mdast@3.0.15':
- resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
-
'@types/methods@1.1.4':
resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
@@ -4794,9 +4785,6 @@ packages:
'@types/turndown@5.0.5':
resolution: {integrity: sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==}
- '@types/unist@2.0.11':
- resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
-
'@types/whatwg-mimetype@3.0.2':
resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==}
@@ -5865,9 +5853,6 @@ packages:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
- character-entities@2.0.2:
- resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
-
chardet@2.1.0:
resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
@@ -6597,9 +6582,6 @@ packages:
resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
engines: {node: '>=12'}
- dagre-d3-es@7.0.10:
- resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==}
-
dagre-d3-es@7.0.11:
resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==}
@@ -6693,9 +6675,6 @@ packages:
decimal.js@10.5.0:
resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==}
- decode-named-character-reference@1.1.0:
- resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==}
-
decode-uri-component@0.2.2:
resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
engines: {node: '>=0.10'}
@@ -8863,10 +8842,6 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
- kleur@4.1.5:
- resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
- engines: {node: '>=6'}
-
klona@2.0.6:
resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
engines: {node: '>= 8'}
@@ -9146,12 +9121,6 @@ packages:
mathml-tag-names@2.1.3:
resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
- mdast-util-from-markdown@1.3.1:
- resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==}
-
- mdast-util-to-string@3.2.0:
- resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==}
-
mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
@@ -9198,9 +9167,6 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- mermaid@10.9.3:
- resolution: {integrity: sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==}
-
mermaid@11.6.0:
resolution: {integrity: sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==}
@@ -9208,69 +9174,6 @@ packages:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
- micromark-core-commonmark@1.1.0:
- resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==}
-
- micromark-factory-destination@1.1.0:
- resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==}
-
- micromark-factory-label@1.1.0:
- resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==}
-
- micromark-factory-space@1.1.0:
- resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
-
- micromark-factory-title@1.1.0:
- resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==}
-
- micromark-factory-whitespace@1.1.0:
- resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==}
-
- micromark-util-character@1.2.0:
- resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
-
- micromark-util-chunked@1.1.0:
- resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==}
-
- micromark-util-classify-character@1.1.0:
- resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==}
-
- micromark-util-combine-extensions@1.1.0:
- resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==}
-
- micromark-util-decode-numeric-character-reference@1.1.0:
- resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==}
-
- micromark-util-decode-string@1.1.0:
- resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==}
-
- micromark-util-encode@1.1.0:
- resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==}
-
- micromark-util-html-tag-name@1.2.0:
- resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==}
-
- micromark-util-normalize-identifier@1.1.0:
- resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==}
-
- micromark-util-resolve-all@1.1.0:
- resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==}
-
- micromark-util-sanitize-uri@1.2.0:
- resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==}
-
- micromark-util-subtokenize@1.1.0:
- resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==}
-
- micromark-util-symbol@1.1.0:
- resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
-
- micromark-util-types@1.1.0:
- resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
-
- micromark@3.2.0:
- resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
-
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
@@ -9448,10 +9351,6 @@ packages:
resolution: {integrity: sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==}
engines: {node: '>= 0.4'}
- mri@1.2.0:
- resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
- engines: {node: '>=4'}
-
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
@@ -9615,9 +9514,6 @@ packages:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
- non-layered-tidy-tree-layout@2.0.2:
- resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==}
-
nopt@5.0.0:
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
engines: {node: '>=6'}
@@ -10746,11 +10642,8 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
- preact@10.12.1:
- resolution: {integrity: sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==}
-
- preact@10.26.5:
- resolution: {integrity: sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==}
+ preact@10.26.8:
+ resolution: {integrity: sha512-1nMfdFjucm5hKvq0IClqZwK4FJkGXhRrQstOQ3P4vp8HxKrJEMFcY6RdBRVTdfQS/UlnX6gfbPuTvaqx/bDoeQ==}
prebuild-install@7.1.3:
resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
@@ -10984,10 +10877,6 @@ packages:
resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==}
engines: {node: '>=0.10.0'}
- react@19.1.0:
- resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
- engines: {node: '>=0.10.0'}
-
read-binary-file-arch@1.0.6:
resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==}
hasBin: true
@@ -11216,9 +11105,6 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
- roughjs@4.6.4:
- resolution: {integrity: sha512-s6EZ0BntezkFYMf/9mGn7M8XGIoaav9QQBCnJROWB3brUWQ683Q2LbRD/hq0Z3bAJ/9NVpU/5LpiTWvQMyLDhw==}
-
roughjs@4.6.6:
resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==}
@@ -11242,10 +11128,6 @@ packages:
rxjs@7.8.2:
resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
- sade@1.8.1:
- resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
- engines: {node: '>=6'}
-
safaridriver@1.0.0:
resolution: {integrity: sha512-J92IFbskyo7OYB3Dt4aTdyhag1GlInrfbPCmMteb7aBK7PwlnGz1HI0+oyNN97j7pV9DqUAVoVgkNRMrfY47mQ==}
engines: {node: '>=18.0.0'}
@@ -12512,9 +12394,6 @@ packages:
resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==}
engines: {node: ^18.17.0 || >=20.5.0}
- unist-util-stringify-position@3.0.3:
- resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
-
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
@@ -12619,15 +12498,6 @@ packages:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
- uuid@9.0.1:
- resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
- hasBin: true
-
- uvu@0.5.6:
- resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
- engines: {node: '>=8'}
- hasBin: true
-
v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
@@ -12852,9 +12722,6 @@ packages:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
- web-worker@1.5.0:
- resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==}
-
webdriver@9.15.0:
resolution: {integrity: sha512-JCW5xvhZtL6kjbckdePgVYMOlvWbh22F1VFkIf9pw3prwXI2EHED5Eq/nfDnNfHiqr0AfFKWmIDPziSafrVv4Q==}
engines: {node: '>=18.20.0'}
@@ -15511,14 +15378,14 @@ snapshots:
'@eslint/core': 0.14.0
levn: 0.4.1
- '@excalidraw/excalidraw@0.18.0(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@excalidraw/excalidraw@0.18.0(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@braintree/sanitize-url': 6.0.2
'@excalidraw/laser-pointer': 1.3.1
'@excalidraw/mermaid-to-excalidraw': 1.1.2
'@excalidraw/random-username': 1.1.0
- '@radix-ui/react-popover': 1.1.6(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-tabs': 1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-popover': 1.1.6(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-tabs': 1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
browser-fs-access: 0.29.1
canvas-roundrect-polyfill: 0.0.1
clsx: 1.1.1
@@ -15527,8 +15394,8 @@ snapshots:
fractional-indexing: 3.2.0
fuzzy: 0.1.3
image-blob-reduce: 3.0.1
- jotai: 2.11.0(@types/react@19.1.7)(react@19.1.0)
- jotai-scope: 0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@19.1.0))(react@19.1.0)
+ jotai: 2.11.0(@types/react@19.1.7)(react@16.14.0)
+ jotai-scope: 0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@16.14.0))(react@16.14.0)
lodash.debounce: 4.0.8
lodash.throttle: 4.1.1
nanoid: 4.0.2
@@ -15541,11 +15408,11 @@ snapshots:
png-chunks-extract: 1.0.0
points-on-curve: 1.0.1
pwacompat: 2.0.17
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- roughjs: 4.6.4
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
+ roughjs: 4.6.6
sass: 1.51.0
- tunnel-rat: 0.1.2(@types/react@19.1.7)(react@19.1.0)
+ tunnel-rat: 0.1.2(@types/react@19.1.7)(react@16.14.0)
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
@@ -15559,7 +15426,7 @@ snapshots:
'@excalidraw/mermaid-to-excalidraw@1.1.2':
dependencies:
'@excalidraw/markdown-to-text': 0.1.2
- mermaid: 10.9.3
+ mermaid: 11.6.0
nanoid: 5.1.5
transitivePeerDependencies:
- supports-color
@@ -15582,11 +15449,11 @@ snapshots:
'@floating-ui/core': 1.6.9
'@floating-ui/utils': 0.2.9
- '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@floating-ui/dom': 1.6.13
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
'@floating-ui/utils@0.2.9': {}
@@ -15753,7 +15620,7 @@ snapshots:
'@fullcalendar/core@6.1.17':
dependencies:
- preact: 10.12.1
+ preact: 10.26.8
'@fullcalendar/daygrid@6.1.17(@fullcalendar/core@6.1.17)':
dependencies:
@@ -16908,275 +16775,275 @@ snapshots:
'@radix-ui/primitive@1.1.1': {}
- '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
- '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-collection@1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-collection@1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0)
- '@radix-ui/react-context': 1.0.0(react@19.1.0)
- '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.0.1(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0)
+ '@radix-ui/react-context': 1.0.0(react@16.14.0)
+ '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-slot': 1.0.1(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
- '@radix-ui/react-compose-refs@1.0.0(react@19.1.0)':
+ '@radix-ui/react-compose-refs@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- react: 19.1.0
+ react: 16.14.0
- '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- react: 19.1.0
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-context@1.0.0(react@19.1.0)':
+ '@radix-ui/react-context@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- react: 19.1.0
+ react: 16.14.0
- '@radix-ui/react-context@1.1.1(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-context@1.1.1(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- react: 19.1.0
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-direction@1.0.0(react@19.1.0)':
+ '@radix-ui/react-direction@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- react: 19.1.0
+ react: 16.14.0
- '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@radix-ui/primitive': 1.1.1
- '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-focus-guards@1.1.1(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- react: 19.1.0
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-id@1.0.0(react@19.1.0)':
+ '@radix-ui/react-id@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-layout-effect': 1.0.0(react@16.14.0)
+ react: 16.14.0
- '@radix-ui/react-id@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-id@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-popover@1.1.6(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-popover@1.1.6(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@radix-ui/primitive': 1.1.1
- '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.1.7)(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-id': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.1.7)(react@16.14.0)
aria-hidden: 1.2.4
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@19.1.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
+ react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-popper@1.2.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-popper@1.2.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
- '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-use-rect': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.0(@types/react@19.1.7)(react@19.1.0)
+ '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-context': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@19.1.7)(react@16.14.0)
'@radix-ui/rect': 1.1.0
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-portal@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-portal@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
- '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-presence@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-presence@1.0.0(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.0.0(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0)
+ '@radix-ui/react-use-layout-effect': 1.0.0(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
- '@radix-ui/react-presence@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-presence@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-primitive@1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-primitive@1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- '@radix-ui/react-slot': 1.0.1(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-slot': 1.0.1(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
- '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
- '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-slot': 1.1.2(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
'@types/react-dom': 19.1.6(@types/react@19.1.7)
- '@radix-ui/react-roving-focus@1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-roving-focus@1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
'@radix-ui/primitive': 1.0.0
- '@radix-ui/react-collection': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0)
- '@radix-ui/react-context': 1.0.0(react@19.1.0)
- '@radix-ui/react-direction': 1.0.0(react@19.1.0)
- '@radix-ui/react-id': 1.0.0(react@19.1.0)
- '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.0.0(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0)
+ '@radix-ui/react-context': 1.0.0(react@16.14.0)
+ '@radix-ui/react-direction': 1.0.0(react@16.14.0)
+ '@radix-ui/react-id': 1.0.0(react@16.14.0)
+ '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-use-callback-ref': 1.0.0(react@16.14.0)
+ '@radix-ui/react-use-controllable-state': 1.0.0(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
- '@radix-ui/react-slot@1.0.1(react@19.1.0)':
+ '@radix-ui/react-slot@1.0.1(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- '@radix-ui/react-compose-refs': 1.0.0(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-compose-refs': 1.0.0(react@16.14.0)
+ react: 16.14.0
- '@radix-ui/react-slot@1.1.2(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-slot@1.1.2(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-tabs@1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-tabs@1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
'@radix-ui/primitive': 1.0.0
- '@radix-ui/react-context': 1.0.0(react@19.1.0)
- '@radix-ui/react-direction': 1.0.0(react@19.1.0)
- '@radix-ui/react-id': 1.0.0(react@19.1.0)
- '@radix-ui/react-presence': 1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.0.0(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.0.0(react@16.14.0)
+ '@radix-ui/react-direction': 1.0.0(react@16.14.0)
+ '@radix-ui/react-id': 1.0.0(react@16.14.0)
+ '@radix-ui/react-presence': 1.0.0(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-primitive': 1.0.1(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-roving-focus': 1.0.2(react-dom@19.1.0(react@16.14.0))(react@16.14.0)
+ '@radix-ui/react-use-controllable-state': 1.0.0(react@16.14.0)
+ react: 16.14.0
+ react-dom: 19.1.0(react@16.14.0)
- '@radix-ui/react-use-callback-ref@1.0.0(react@19.1.0)':
+ '@radix-ui/react-use-callback-ref@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- react: 19.1.0
+ react: 16.14.0
- '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- react: 19.1.0
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-use-controllable-state@1.0.0(react@19.1.0)':
+ '@radix-ui/react-use-controllable-state@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- '@radix-ui/react-use-callback-ref': 1.0.0(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-callback-ref': 1.0.0(react@16.14.0)
+ react: 16.14.0
- '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-use-layout-effect@1.0.0(react@19.1.0)':
+ '@radix-ui/react-use-layout-effect@1.0.0(react@16.14.0)':
dependencies:
'@babel/runtime': 7.27.1
- react: 19.1.0
+ react: 16.14.0
- '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- react: 19.1.0
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-use-rect@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-use-rect@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
'@radix-ui/rect': 1.1.0
- react: 19.1.0
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
- '@radix-ui/react-use-size@1.1.0(@types/react@19.1.7)(react@19.1.0)':
+ '@radix-ui/react-use-size@1.1.0(@types/react@19.1.7)(react@16.14.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
optionalDependencies:
'@types/react': 19.1.7
@@ -17766,6 +17633,7 @@ snapshots:
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
+ optional: true
'@types/deep-eql@4.0.2': {}
@@ -17900,10 +17768,6 @@ snapshots:
'@types/marked@4.3.2': {}
- '@types/mdast@3.0.15':
- dependencies:
- '@types/unist': 2.0.11
-
'@types/methods@1.1.4': {}
'@types/mime-types@3.0.0': {}
@@ -17914,7 +17778,8 @@ snapshots:
'@types/minimatch@5.1.2': {}
- '@types/ms@2.1.0': {}
+ '@types/ms@2.1.0':
+ optional: true
'@types/multer@1.4.13':
dependencies:
@@ -17955,10 +17820,12 @@ snapshots:
'@types/react-dom@19.1.6(@types/react@19.1.7)':
dependencies:
'@types/react': 19.1.7
+ optional: true
'@types/react@19.1.7':
dependencies:
csstype: 3.1.3
+ optional: true
'@types/readdir-glob@1.1.5':
dependencies:
@@ -18058,8 +17925,6 @@ snapshots:
'@types/turndown@5.0.5': {}
- '@types/unist@2.0.11': {}
-
'@types/whatwg-mimetype@3.0.2': {}
'@types/which@2.0.2': {}
@@ -19475,8 +19340,6 @@ snapshots:
char-regex@1.0.2: {}
- character-entities@2.0.2: {}
-
chardet@2.1.0: {}
check-error@2.1.1: {}
@@ -20220,7 +20083,8 @@ snapshots:
'@asamuzakjp/css-color': 3.1.4
rrweb-cssom: 0.8.0
- csstype@3.1.3: {}
+ csstype@3.1.3:
+ optional: true
cytoscape-cose-bilkent@4.1.0(cytoscape@3.31.2):
dependencies:
@@ -20413,11 +20277,6 @@ snapshots:
d3-transition: 3.0.1(d3-selection@3.0.0)
d3-zoom: 3.0.0
- dagre-d3-es@7.0.10:
- dependencies:
- d3: 7.9.0
- lodash-es: 4.17.21
-
dagre-d3-es@7.0.11:
dependencies:
d3: 7.9.0
@@ -20496,10 +20355,6 @@ snapshots:
decimal.js@10.5.0: {}
- decode-named-character-reference@1.1.0:
- dependencies:
- character-entities: 2.0.2
-
decode-uri-component@0.2.2: {}
decompress-response@6.0.0:
@@ -21576,7 +21431,7 @@ snapshots:
dependencies:
d3-selection: 3.0.0
kapsule: 1.16.3
- preact: 10.26.5
+ preact: 10.26.8
flora-colossus@2.0.0:
dependencies:
@@ -23019,15 +22874,15 @@ snapshots:
dependencies:
'@panva/asn1.js': 1.0.0
- jotai-scope@0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@19.1.0))(react@19.1.0):
+ jotai-scope@0.7.2(jotai@2.11.0(@types/react@19.1.7)(react@16.14.0))(react@16.14.0):
dependencies:
- jotai: 2.11.0(@types/react@19.1.7)(react@19.1.0)
- react: 19.1.0
+ jotai: 2.11.0(@types/react@19.1.7)(react@16.14.0)
+ react: 16.14.0
- jotai@2.11.0(@types/react@19.1.7)(react@19.1.0):
+ jotai@2.11.0(@types/react@19.1.7)(react@16.14.0):
optionalDependencies:
'@types/react': 19.1.7
- react: 19.1.0
+ react: 16.14.0
jpeg-js@0.4.4: {}
@@ -23203,8 +23058,6 @@ snapshots:
kind-of@6.0.3: {}
- kleur@4.1.5: {}
-
klona@2.0.6: {}
knockout@3.5.1: {}
@@ -23544,27 +23397,6 @@ snapshots:
mathml-tag-names@2.1.3: {}
- mdast-util-from-markdown@1.3.1:
- dependencies:
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.11
- decode-named-character-reference: 1.1.0
- mdast-util-to-string: 3.2.0
- micromark: 3.2.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-decode-string: 1.1.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- unist-util-stringify-position: 3.0.3
- uvu: 0.5.6
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-to-string@3.2.0:
- dependencies:
- '@types/mdast': 3.0.15
-
mdn-data@2.0.14: {}
mdn-data@2.0.28: {}
@@ -23600,31 +23432,6 @@ snapshots:
merge2@1.4.1: {}
- mermaid@10.9.3:
- dependencies:
- '@braintree/sanitize-url': 6.0.2
- '@types/d3-scale': 4.0.9
- '@types/d3-scale-chromatic': 3.1.0
- cytoscape: 3.31.2
- cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.2)
- d3: 7.9.0
- d3-sankey: 0.12.3
- dagre-d3-es: 7.0.10
- dayjs: 1.11.13
- dompurify: 3.2.5
- elkjs: 0.9.3
- katex: 0.16.22
- khroma: 2.1.0
- lodash-es: 4.17.21
- mdast-util-from-markdown: 1.3.1
- non-layered-tidy-tree-layout: 2.0.2
- stylis: 4.3.6
- ts-dedent: 2.2.0
- uuid: 9.0.1
- web-worker: 1.5.0
- transitivePeerDependencies:
- - supports-color
-
mermaid@11.6.0:
dependencies:
'@braintree/sanitize-url': 7.1.1
@@ -23652,139 +23459,6 @@ snapshots:
methods@1.1.2: {}
- micromark-core-commonmark@1.1.0:
- dependencies:
- decode-named-character-reference: 1.1.0
- micromark-factory-destination: 1.1.0
- micromark-factory-label: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-factory-title: 1.1.0
- micromark-factory-whitespace: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-chunked: 1.1.0
- micromark-util-classify-character: 1.1.0
- micromark-util-html-tag-name: 1.2.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-subtokenize: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
-
- micromark-factory-destination@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-factory-label@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
-
- micromark-factory-space@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-types: 1.1.0
-
- micromark-factory-title@1.1.0:
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-factory-whitespace@1.1.0:
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-character@1.2.0:
- dependencies:
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-chunked@1.1.0:
- dependencies:
- micromark-util-symbol: 1.1.0
-
- micromark-util-classify-character@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-combine-extensions@1.1.0:
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-decode-numeric-character-reference@1.1.0:
- dependencies:
- micromark-util-symbol: 1.1.0
-
- micromark-util-decode-string@1.1.0:
- dependencies:
- decode-named-character-reference: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-symbol: 1.1.0
-
- micromark-util-encode@1.1.0: {}
-
- micromark-util-html-tag-name@1.2.0: {}
-
- micromark-util-normalize-identifier@1.1.0:
- dependencies:
- micromark-util-symbol: 1.1.0
-
- micromark-util-resolve-all@1.1.0:
- dependencies:
- micromark-util-types: 1.1.0
-
- micromark-util-sanitize-uri@1.2.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-encode: 1.1.0
- micromark-util-symbol: 1.1.0
-
- micromark-util-subtokenize@1.1.0:
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
-
- micromark-util-symbol@1.1.0: {}
-
- micromark-util-types@1.1.0: {}
-
- micromark@3.2.0:
- dependencies:
- '@types/debug': 4.1.12
- debug: 4.4.1(supports-color@6.0.0)
- decode-named-character-reference: 1.1.0
- micromark-core-commonmark: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-chunked: 1.1.0
- micromark-util-combine-extensions: 1.1.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-encode: 1.1.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-sanitize-uri: 1.2.0
- micromark-util-subtokenize: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- transitivePeerDependencies:
- - supports-color
-
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -23993,8 +23667,6 @@ snapshots:
hasown: 2.0.2
isarray: 2.0.5
- mri@1.2.0: {}
-
mrmime@2.0.1: {}
ms@2.0.0: {}
@@ -24170,8 +23842,6 @@ snapshots:
node-releases@2.0.19: {}
- non-layered-tidy-tree-layout@2.0.2: {}
-
nopt@5.0.0:
dependencies:
abbrev: 1.1.1
@@ -25311,9 +24981,7 @@ snapshots:
dependencies:
commander: 9.5.0
- preact@10.12.1: {}
-
- preact@10.26.5: {}
+ preact@10.26.8: {}
prebuild-install@7.1.3:
dependencies:
@@ -25496,9 +25164,9 @@ snapshots:
react: 16.14.0
scheduler: 0.19.1
- react-dom@19.1.0(react@19.1.0):
+ react-dom@19.1.0(react@16.14.0):
dependencies:
- react: 19.1.0
+ react: 16.14.0
scheduler: 0.26.0
react-interactive@0.8.3(react@16.14.0):
@@ -25516,22 +25184,22 @@ snapshots:
react-refresh@0.17.0: {}
- react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@19.1.0):
+ react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@16.14.0):
dependencies:
- react: 19.1.0
- react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0)
+ react: 16.14.0
+ react-style-singleton: 2.2.3(@types/react@19.1.7)(react@16.14.0)
tslib: 2.8.1
optionalDependencies:
'@types/react': 19.1.7
- react-remove-scroll@2.6.3(@types/react@19.1.7)(react@19.1.0):
+ react-remove-scroll@2.6.3(@types/react@19.1.7)(react@16.14.0):
dependencies:
- react: 19.1.0
- react-remove-scroll-bar: 2.3.8(@types/react@19.1.7)(react@19.1.0)
- react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0)
+ react: 16.14.0
+ react-remove-scroll-bar: 2.3.8(@types/react@19.1.7)(react@16.14.0)
+ react-style-singleton: 2.2.3(@types/react@19.1.7)(react@16.14.0)
tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.1.7)(react@19.1.0)
- use-sidecar: 1.1.3(@types/react@19.1.7)(react@19.1.0)
+ use-callback-ref: 1.3.3(@types/react@19.1.7)(react@16.14.0)
+ use-sidecar: 1.1.3(@types/react@19.1.7)(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
@@ -25556,10 +25224,10 @@ snapshots:
react: 16.14.0
warning: 4.0.3
- react-style-singleton@2.2.3(@types/react@19.1.7)(react@19.1.0):
+ react-style-singleton@2.2.3(@types/react@19.1.7)(react@16.14.0):
dependencies:
get-nonce: 1.0.1
- react: 19.1.0
+ react: 16.14.0
tslib: 2.8.1
optionalDependencies:
'@types/react': 19.1.7
@@ -25570,8 +25238,6 @@ snapshots:
object-assign: 4.1.1
prop-types: 15.8.1
- react@19.1.0: {}
-
read-binary-file-arch@1.0.6:
dependencies:
debug: 4.4.1(supports-color@6.0.0)
@@ -25844,13 +25510,6 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.40.0
fsevents: 2.3.3
- roughjs@4.6.4:
- dependencies:
- hachure-fill: 0.5.2
- path-data-parser: 0.1.0
- points-on-curve: 0.2.0
- points-on-path: 0.2.1
-
roughjs@4.6.6:
dependencies:
hachure-fill: 0.5.2
@@ -25883,10 +25542,6 @@ snapshots:
tslib: 2.8.1
optional: true
- sade@1.8.1:
- dependencies:
- mri: 1.2.0
-
safaridriver@1.0.0: {}
safe-array-concat@1.1.3:
@@ -27224,9 +26879,9 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- tunnel-rat@0.1.2(@types/react@19.1.7)(react@19.1.0):
+ tunnel-rat@0.1.2(@types/react@19.1.7)(react@16.14.0):
dependencies:
- zustand: 4.5.6(@types/react@19.1.7)(react@19.1.0)
+ zustand: 4.5.6(@types/react@19.1.7)(react@16.14.0)
transitivePeerDependencies:
- '@types/react'
- immer
@@ -27404,10 +27059,6 @@ snapshots:
dependencies:
imurmurhash: 0.1.4
- unist-util-stringify-position@3.0.3:
- dependencies:
- '@types/unist': 2.0.11
-
universalify@0.1.2: {}
universalify@0.2.0: {}
@@ -27445,24 +27096,24 @@ snapshots:
urlpattern-polyfill@10.0.0: {}
- use-callback-ref@1.3.3(@types/react@19.1.7)(react@19.1.0):
+ use-callback-ref@1.3.3(@types/react@19.1.7)(react@16.14.0):
dependencies:
- react: 19.1.0
+ react: 16.14.0
tslib: 2.8.1
optionalDependencies:
'@types/react': 19.1.7
- use-sidecar@1.1.3(@types/react@19.1.7)(react@19.1.0):
+ use-sidecar@1.1.3(@types/react@19.1.7)(react@16.14.0):
dependencies:
detect-node-es: 1.1.0
- react: 19.1.0
+ react: 16.14.0
tslib: 2.8.1
optionalDependencies:
'@types/react': 19.1.7
- use-sync-external-store@1.5.0(react@19.1.0):
+ use-sync-external-store@1.5.0(react@16.14.0):
dependencies:
- react: 19.1.0
+ react: 16.14.0
userhome@1.0.1: {}
@@ -27490,15 +27141,6 @@ snapshots:
uuid@8.3.2: {}
- uuid@9.0.1: {}
-
- uvu@0.5.6:
- dependencies:
- dequal: 2.0.3
- diff: 5.2.0
- kleur: 4.1.5
- sade: 1.8.1
-
v8-compile-cache-lib@3.0.1: {}
v8-to-istanbul@9.3.0:
@@ -27606,11 +27248,11 @@ snapshots:
vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.8.0):
dependencies:
esbuild: 0.25.5
- fdir: 6.4.4(picomatch@4.0.2)
+ fdir: 6.4.6(picomatch@4.0.2)
picomatch: 4.0.2
postcss: 8.5.3
rollup: 4.40.0
- tinyglobby: 0.2.13
+ tinyglobby: 0.2.14
optionalDependencies:
'@types/node': 22.15.31
fsevents: 2.3.3
@@ -27779,8 +27421,6 @@ snapshots:
web-streams-polyfill@3.3.3: {}
- web-worker@1.5.0: {}
-
webdriver@9.15.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
dependencies:
'@types/node': 20.17.32
@@ -28245,9 +27885,9 @@ snapshots:
zod@3.24.4: {}
- zustand@4.5.6(@types/react@19.1.7)(react@19.1.0):
+ zustand@4.5.6(@types/react@19.1.7)(react@16.14.0):
dependencies:
- use-sync-external-store: 1.5.0(react@19.1.0)
+ use-sync-external-store: 1.5.0(react@16.14.0)
optionalDependencies:
'@types/react': 19.1.7
- react: 19.1.0
+ react: 16.14.0