) => {
- const { label, description, childNet } = data;
-
- const { loadPetriNet } = useEditorContext();
-
- return (
-
-
-
- {childNet && (
-
- {
- event.stopPropagation();
-
- loadPetriNet(childNet.childNetId);
- }}
- sx={{
- position: "absolute",
- top: 0,
- left: 0,
- "&:hover": {
- background: "transparent",
- "& svg": {
- fill: ({ palette }) => palette.blue[70],
- },
- },
- }}
- >
-
-
-
- )}
-
- {label}
-
- {description && (
-
- {description}
-
- )}
-
-
-
- );
-};
diff --git a/libs/@hashintel/petrinaut-old/src/petrinaut/types.ts b/libs/@hashintel/petrinaut-old/src/petrinaut/types.ts
deleted file mode 100644
index 7b85fa4c24f..00000000000
--- a/libs/@hashintel/petrinaut-old/src/petrinaut/types.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import type { Edge, Node } from "reactflow";
-
-export type ArcData = {
- tokenWeights: {
- [tokenTypeId: string]: number | undefined;
- };
-};
-
-export type ArcType = Omit, "style">;
-
-export type PlaceNodeData = {
- label: string;
- initialTokenCounts?: TokenCounts;
- /**
- * If the net is a child net, it represents the detail of a transition from the parent.
- * It must contain at least one each of input and output places to that parent transition.
- * This field indicates if this place corresponds to an input or output place to the transition in the parent.
- */
- parentNetNode?: {
- id: string;
- type: "input" | "output";
- };
- type: "place";
-};
-
-export type PlaceMarkingsById = Record;
-
-export type PlaceNodeType = Omit<
- Node,
- "selected" | "dragging"
->;
-
-export type TransitionCondition = {
- id: string;
- name: string;
- probability: number;
- outputEdgeId: string;
-};
-
-export type TransitionNodeData = {
- conditions?: TransitionCondition[];
- label: string;
- delay?: number;
- description?: string;
- childNet?: {
- childNetId: string;
- childNetTitle: string;
- /**
- * The IDs of the input places for this transition which are represented in the childNet (which should appear as starting places there).
- * There must be at least one, but not all input places to this transition (in the parent) must appear in the childNet.
- */
- inputPlaceIds: string[];
- /**
- * The IDs of the output places for this transition which are represented in the childNet (which should appear as ending places there).
- * There must be at least one, but not all output places to this transition (in the parent) must appear in the childNet.
- */
- outputPlaceIds: string[];
- };
- /**
- * Although a reactflow {@link Node} has a 'type' field, the library types don't discriminate on this field in all methods,
- * so we add our own discriminating field here to make it easier to narrow between Transition and Place nodes.
- */
- type: "transition";
-};
-
-export type TransitionNodeType = Omit<
- Node,
- "selected" | "dragging"
->;
-
-export type PetriNetDefinitionObject = {
- arcs: ArcType[];
- nodes: NodeType[];
- tokenTypes: TokenType[];
-};
-
-export type NodeData = PlaceNodeData | TransitionNodeData;
-
-export type NodeType = Node;
-
-export type TokenCounts = {
- [tokenTypeId: string]: number;
-};
-
-export type TokenType = {
- id: string;
- name: string;
- color: string;
-};
-
-export type MinimalNetMetadata = {
- netId: string;
- title: string;
-};
-
-export type ParentNet = {
- parentNetId: string;
- title: string;
-};
diff --git a/libs/@hashintel/petrinaut-old/src/petrinaut/use-convert-to-pnml.ts b/libs/@hashintel/petrinaut-old/src/petrinaut/use-convert-to-pnml.ts
deleted file mode 100644
index 9a9a071c4f6..00000000000
--- a/libs/@hashintel/petrinaut-old/src/petrinaut/use-convert-to-pnml.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-import type {
- PetriNetDefinitionObject,
- PlaceNodeData,
- TransitionNodeData,
-} from "./types";
-
-const escapeXml = (str: string) =>
- str
- .replace(/&/g, "&")
- .replace(//g, ">")
- .replace(/"/g, """)
- .replace(/'/g, "'");
-
-/**
- * Convert the current process to an ISO-15909-2-conformant HLPN PNML document.
- *
- * @todo the proper format is to be agreed, this current version is wrong.
- */
-export const useConvertToPnml = ({
- petriNet,
- title,
-}: {
- petriNet: PetriNetDefinitionObject;
- title: string;
-}) => {
- const { nodes, arcs, tokenTypes } = petriNet;
-
- const convertToPnml = (): string => {
- /* ---------- Header & namespaces---------- */
- let pnml = `
-
-
-
- ${escapeXml(title)}`;
-
- /* ---------- HLPN colour-set declarations ---------- */
- pnml += `
- `;
- for (const tok of tokenTypes) {
- pnml += `
-
-
- ${escapeXml(tok.name)}
-
-
-
-
- ${escapeXml(tok.color)}
-
- `;
- }
- pnml += `
- `;
-
- pnml += `
- `;
-
- /* ---------- Places & initial markings ---------- */
- for (const node of nodes) {
- if (node.type !== "place") {
- continue;
- }
- const placeData = node.data as PlaceNodeData;
-
- pnml += `
-
- ${escapeXml(placeData.label)}
-
-
- `;
-
- for (const [tokId, count] of Object.entries(
- placeData.initialTokenCounts ?? {},
- )) {
- if (count > 0) {
- pnml += `
-
- ${escapeXml(tokId)}
- `;
- }
- }
-
- pnml += `
-
-
- `;
- }
-
- /* ---------- Transitions ---------- */
- for (const node of nodes) {
- if (node.type !== "transition") {
- continue;
- }
- const transitionData = node.data as TransitionNodeData;
-
- pnml += `
-
- ${escapeXml(transitionData.label)}
- `;
-
- if (
- typeof transitionData.delay === "number" ||
- transitionData.conditions?.length ||
- transitionData.description
- ) {
- pnml += `
- `;
-
- if (transitionData.description) {
- pnml += `
- ${escapeXml(transitionData.description)}`;
- }
-
- if (typeof transitionData.delay === "number") {
- pnml += `
-
- ${transitionData.delay}
- `;
- }
-
- if (transitionData.conditions?.length) {
- pnml += `
- `;
- for (const condition of transitionData.conditions) {
- pnml += `
-
- ${escapeXml(condition.name)}
- `;
- }
- pnml += `
- `;
- }
-
- pnml += `
- `;
- }
-
- pnml += `
- `;
- }
-
- /* ---------- Arcs & HLPN inscriptions ---------- */
- for (const arc of arcs) {
- pnml += `
-
-
- `;
-
- for (const [tokId, count] of Object.entries(
- arc.data?.tokenWeights ?? {},
- )) {
- if (count) {
- pnml += `
-
- ${escapeXml(tokId)}
- `;
- }
- }
-
- pnml += `
-
-
- `;
- }
-
- pnml += `
-
-
-`;
-
- return pnml;
- };
-
- return convertToPnml;
-};
diff --git a/libs/@hashintel/petrinaut-old/src/petrinaut/use-layout-graph.ts b/libs/@hashintel/petrinaut-old/src/petrinaut/use-layout-graph.ts
deleted file mode 100644
index 2010072c486..00000000000
--- a/libs/@hashintel/petrinaut-old/src/petrinaut/use-layout-graph.ts
+++ /dev/null
@@ -1,117 +0,0 @@
-import type { ElkNode } from "elkjs";
-import ELK from "elkjs";
-import { useCallback } from "react";
-import { useReactFlow } from "reactflow";
-
-import { useEditorContext } from "./editor-context";
-import { nodeDimensions } from "./styling";
-import type { ArcType, NodeType } from "./types";
-
-/**
- * @see https://eclipse.dev/elk/documentation/tooldevelopers
- * @see https://rtsys.informatik.uni-kiel.de/elklive/json.html for JSON playground
- */
-const elk = new ELK();
-
-const graphPadding = 30;
-
-/**
- * @see https://eclipse.dev/elk/reference.html
- */
-const elkLayoutOptions: ElkNode["layoutOptions"] = {
- "elk.algorithm": "layered",
- "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers": "100",
- "elk.direction": "RIGHT",
- "elk.padding": `[left=${graphPadding},top=${
- graphPadding
- },right=${graphPadding},bottom=${graphPadding}]`,
-};
-
-export const useLayoutGraph = () => {
- const { fitView } = useReactFlow();
-
- const { mutatePetriNetDefinition } = useEditorContext();
-
- const layoutGraph = useCallback(
- ({
- nodes,
- arcs,
- animationDuration,
- }: {
- nodes: NodeType[];
- arcs: ArcType[];
- animationDuration: number;
- }) => {
- if (nodes.length === 0) {
- return;
- }
-
- const graph: ElkNode = {
- id: "root",
- children: JSON.parse(
- JSON.stringify(
- nodes.map((node) => ({
- ...node,
- /**
- * If we are loading a graph in full (e.g. from an example or PNML file), we need to set the visible width and height,
- * so that ELK knows how much space to reserve for the node.
- *
- * @todo encode width/height as part of the graph data
- */
- width: nodeDimensions[node.data.type].width,
- height: nodeDimensions[node.data.type].height,
- })),
- ),
- ) as ElkNode["children"],
- edges: JSON.parse(JSON.stringify(arcs)) as ElkNode["edges"],
- layoutOptions: elkLayoutOptions,
- };
-
- void elk.layout(graph).then((updatedElements) => {
- mutatePetriNetDefinition((petriNet) => {
- const nodesById = petriNet.nodes.reduce(
- (acc, node) => {
- acc[node.id] = node;
- return acc;
- },
- {} as Record,
- );
-
- /**
- * ELK inserts the calculated position as a root 'x' and 'y'.
- */
- for (const { x, y, id } of updatedElements.children ?? []) {
- const node = nodesById[id];
-
- if (!node) {
- continue;
- }
-
- if (x && node.position.x !== x) {
- node.position.x = x;
- }
-
- if (y && node.position.y !== y) {
- node.position.y = y;
- }
- }
- });
-
- setTimeout(
- () =>
- window.requestAnimationFrame(() =>
- fitView({
- duration: animationDuration,
- padding: 0.03,
- maxZoom: 1,
- }),
- ),
- 300,
- );
- });
- },
- [mutatePetriNetDefinition, fitView],
- );
-
- return layoutGraph;
-};
diff --git a/libs/@hashintel/petrinaut-old/src/petrinaut/use-load-from-pnml.ts b/libs/@hashintel/petrinaut-old/src/petrinaut/use-load-from-pnml.ts
deleted file mode 100644
index af20288e1a1..00000000000
--- a/libs/@hashintel/petrinaut-old/src/petrinaut/use-load-from-pnml.ts
+++ /dev/null
@@ -1,195 +0,0 @@
-import { useCallback } from "react";
-import type { Edge, Node } from "reactflow";
-
-import type {
- ArcData,
- ArcType,
- NodeType,
- PetriNetDefinitionObject,
- PlaceNodeData,
- TokenCounts,
- TokenType,
- TransitionCondition,
- TransitionNodeData,
-} from "./types";
-
-const elementToText = (el: Element | null): string =>
- el?.textContent.trim() ?? "";
-
-const getElementsBySelector = (selector: string, parentNode: ParentNode) =>
- Array.from(parentNode.querySelectorAll(selector));
-
-const readMultiset = (multiset: Element | null): TokenCounts => {
- const counts: TokenCounts = {};
-
- if (!multiset) {
- return counts;
- }
-
- for (const el of getElementsBySelector("element", multiset)) {
- const tokId = elementToText(el.querySelector("constant"));
- const mult = parseInt(el.getAttribute("multiplicity") ?? "1", 10);
- counts[tokId] = (counts[tokId] ?? 0) + mult;
- }
- return counts;
-};
-
-/**
- * Parse a PNML document that follows the HASH “HLPN + toolspecific” dialect back into a {@link PetriNetDefinitionObject}.
- *
- * @todo this dialect is wrong and needs updating once we have agreed on the format.
- */
-const parsePnml = (
- xml: string,
-): {
- nodes: NodeType[];
- arcs: ArcType[];
- title: string;
- tokenTypes: TokenType[];
-} => {
- const document = new DOMParser().parseFromString(xml, "application/xml");
-
- const titleElement = document.querySelector("pnml > net > name > text");
- const title = elementToText(titleElement);
-
- const tokenTypes: TokenType[] = getElementsBySelector("colset", document).map(
- (colset) => {
- const id = colset.getAttribute("id") ?? "";
- const name = elementToText(colset.querySelector("atom"));
- const color = elementToText(
- colset.querySelector('toolspecific[tool="HASH"] > color'),
- );
- return { id, name, color };
- },
- );
-
- const placeNodes: Node[] = getElementsBySelector(
- "place",
- document,
- ).map((placeNode) => {
- const id = placeNode.getAttribute("id")!;
-
- const posEl = placeNode.querySelector("graphics > position");
- const position = {
- x: parseFloat(posEl?.getAttribute("x") ?? "0"),
- y: parseFloat(posEl?.getAttribute("y") ?? "0"),
- };
-
- const label = elementToText(placeNode.querySelector("name > text"));
-
- const tokenCounts = readMultiset(
- placeNode.querySelector("initialMarking > multiset"),
- );
-
- const data: PlaceNodeData = {
- label,
- initialTokenCounts: tokenCounts,
- type: "place",
- };
-
- return { id, type: "place", position, data };
- });
-
- const transitionNodes: Node[] = getElementsBySelector(
- "transition",
- document,
- ).map((transitionNode) => {
- const id = transitionNode.getAttribute("id")!;
-
- const posEl = transitionNode.querySelector("graphics > position");
- const position = {
- x: parseFloat(posEl?.getAttribute("x") ?? "0"),
- y: parseFloat(posEl?.getAttribute("y") ?? "0"),
- };
-
- const label = elementToText(transitionNode.querySelector("name > text"));
-
- const toolSpecificContainer = transitionNode.querySelector(
- 'toolspecific[tool="HASH"]',
- );
-
- const description = elementToText(
- toolSpecificContainer?.querySelector("description") ?? null,
- );
-
- const delay = toolSpecificContainer
- ? parseFloat(
- elementToText(toolSpecificContainer.querySelector("timing > delay")),
- )
- : undefined;
-
- const conditions: TransitionCondition[] = toolSpecificContainer
- ? getElementsBySelector("routing > branch", toolSpecificContainer).map(
- (b) => ({
- id: b.getAttribute("id") ?? "",
- name: elementToText(b.querySelector("name > text")),
- probability: parseFloat(b.getAttribute("probability") ?? "0"),
- outputEdgeId: b.getAttribute("outputArc") ?? "",
- }),
- )
- : [];
-
- const data: TransitionNodeData = {
- label,
- delay: Number.isNaN(delay) ? undefined : delay,
- description,
- conditions: conditions.length ? conditions : undefined,
- type: "transition",
- };
-
- return { id, type: "transition", position, data };
- });
-
- const arcs: Edge[] = getElementsBySelector("arc", document).map(
- (a): ArcType => {
- const id = a.getAttribute("id") ?? "";
- const source = a.getAttribute("source") ?? "";
- const target = a.getAttribute("target") ?? "";
-
- const tokenWeights = readMultiset(
- a.querySelector("inscription > multiset"),
- );
-
- return {
- id,
- source,
- target,
- data: { tokenWeights },
- };
- },
- );
-
- return {
- nodes: [...placeNodes, ...transitionNodes],
- arcs,
- tokenTypes,
- title,
- };
-};
-
-export const useLoadFromPnml = ({
- createNewNet,
-}: {
- createNewNet: (params: {
- petriNetDefinition: PetriNetDefinitionObject;
- title: string;
- }) => void;
-}) => {
- const load = useCallback(
- (xml: string) => {
- const { nodes, arcs, tokenTypes, title } = parsePnml(xml);
-
- createNewNet({
- petriNetDefinition: {
- arcs,
- nodes,
- tokenTypes,
- },
- title,
- });
- },
- [createNewNet],
- );
-
- return load;
-};
diff --git a/libs/@hashintel/petrinaut-old/theme-override.d.ts b/libs/@hashintel/petrinaut-old/theme-override.d.ts
deleted file mode 100644
index c9349a94364..00000000000
--- a/libs/@hashintel/petrinaut-old/theme-override.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import "@hashintel/design-system/theme-override";
diff --git a/libs/@hashintel/petrinaut-old/tsconfig.json b/libs/@hashintel/petrinaut-old/tsconfig.json
deleted file mode 100644
index a9a3e52ffdb..00000000000
--- a/libs/@hashintel/petrinaut-old/tsconfig.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "@local/tsconfig/legacy-base-tsconfig-to-refactor.json",
- "compilerOptions": {
- "jsx": "preserve",
- "lib": ["dom", "dom.iterable", "ESNext"],
- "noEmit": true
- },
- "include": ["theme-override.d.ts", "./src/"],
- "exclude": ["./src/petrinaut-sdcpn"]
-}
diff --git a/libs/@hashintel/petrinaut/assets.d.ts b/libs/@hashintel/petrinaut/assets.d.ts
deleted file mode 100644
index cbe652dbe00..00000000000
--- a/libs/@hashintel/petrinaut/assets.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-declare module "*.css";
diff --git a/libs/@hashintel/petrinaut/eslint.config.js b/libs/@hashintel/petrinaut/eslint.config.js
index 2051a37a9de..8a36311150a 100644
--- a/libs/@hashintel/petrinaut/eslint.config.js
+++ b/libs/@hashintel/petrinaut/eslint.config.js
@@ -7,10 +7,10 @@ export default [
parserOptions: {
projectService: {
allowDefaultProject: [
- "assets.d.ts",
"panda.config.ts",
"postcss.config.cjs",
"vite.config.ts",
+ "vite.site.config.ts",
],
},
tsconfigRootDir: import.meta.dirname,
@@ -43,10 +43,6 @@ export default [
"error",
{
patterns: [
- {
- group: ["@mui/material/*"],
- message: "Please import from @mui/material instead",
- },
{
group: ["@local/*"],
message:
diff --git a/libs/@hashintel/petrinaut/package.json b/libs/@hashintel/petrinaut/package.json
index 9f71018773d..f7d5a4ce172 100644
--- a/libs/@hashintel/petrinaut/package.json
+++ b/libs/@hashintel/petrinaut/package.json
@@ -8,6 +8,7 @@
"url": "git+https://github.com/hashintel/hash.git",
"directory": "libs/@hashintel/petrinaut"
},
+ "style": "dist/main.css",
"files": [
"dist",
"CHANGELOG.md",
@@ -24,14 +25,13 @@
"main": "dist/main.js",
"types": "dist/main.d.ts",
"scripts": {
- "build": "vite build --mode=lib",
- "build:site": "vite build",
- "dev": "vite",
+ "build": "vite build",
+ "build:site": "vite build --config vite.site.config.ts",
+ "dev": "vite --config vite.site.config.ts",
"fix:eslint": "eslint --fix .",
"lint:eslint": "eslint --report-unused-disable-directives .",
- "lint:tsc": "tsc --noEmit",
+ "lint:tsc": "tsgo --noEmit",
"prepublishOnly": "turbo run build",
- "preview": "vite preview",
"test:unit": "vitest"
},
"dependencies": {
@@ -47,7 +47,6 @@
"@hashintel/refractive": "workspace:^",
"@mantine/hooks": "8.3.5",
"@monaco-editor/react": "4.8.0-rc.3",
- "@mui/material": "5.18.0",
"d3-array": "3.2.4",
"d3-scale": "4.0.2",
"elkjs": "0.11.0",
@@ -70,15 +69,15 @@
"@types/d3-scale": "4.0.9",
"@types/react": "19.2.7",
"@types/react-dom": "19.2.3",
- "@vitejs/plugin-react": "5.0.4",
+ "@typescript/native-preview": "7.0.0-dev.20260216.1",
+ "@vitejs/plugin-react": "5.1.4",
"babel-plugin-react-compiler": "1.0.0",
"eslint": "9.39.2",
"immer": "10.1.3",
"jsdom": "24.1.3",
"react": "19.2.3",
"react-dom": "19.2.3",
- "typescript": "5.9.3",
- "vite": "7.1.11",
+ "vite": "8.0.0-beta.14",
"vite-plugin-dts": "4.5.4",
"vitest": "4.0.18"
},
diff --git a/libs/@hashintel/petrinaut/panda.config.ts b/libs/@hashintel/petrinaut/panda.config.ts
index 40f895ecacc..31258ac9396 100644
--- a/libs/@hashintel/petrinaut/panda.config.ts
+++ b/libs/@hashintel/petrinaut/panda.config.ts
@@ -4,6 +4,21 @@ export default defineConfig({
// Whether to use css reset
preflight: { scope: ".petrinaut-root" },
+ // Prefix all utility classes (e.g. `.d_flex` → `.pn_d_flex`)
+ // prefix: "pn",
+
+ // Scope CSS variables to petrinaut root instead of :root
+ cssVarRoot: ".petrinaut-root",
+
+ // Override light/dark conditions from ds-theme preset so that
+ // conditional tokens (colors) are scoped to .petrinaut-root instead of :root.
+ conditions: {
+ extend: {
+ light: ".petrinaut-root &",
+ dark: ".dark .petrinaut-root &, [data-theme='dark'] .petrinaut-root &",
+ },
+ },
+
// Where to look for css declarations
include: ["./src/**/*.{js,jsx,ts,tsx}"],
@@ -26,6 +41,10 @@ export default defineConfig({
},
},
+ // Polyfill CSS @layer for embedding in HASH, where unlayered global
+ // resets (* { padding: 0 }) would otherwise override layered utilities.
+ polyfill: true,
+
importMap: "@hashintel/ds-helpers",
presets: ["@hashintel/ds-theme"],
});
diff --git a/libs/@hashintel/petrinaut/src/components/tooltip.tsx b/libs/@hashintel/petrinaut/src/components/tooltip.tsx
index 67bec7e6fe8..325679a3ab8 100644
--- a/libs/@hashintel/petrinaut/src/components/tooltip.tsx
+++ b/libs/@hashintel/petrinaut/src/components/tooltip.tsx
@@ -1,9 +1,7 @@
import { ark } from "@ark-ui/react/factory";
import { Tooltip as ArkTooltip } from "@ark-ui/react/tooltip";
import { css, cva, cx } from "@hashintel/ds-helpers/css";
-import type { SvgIconProps } from "@mui/material";
-import { SvgIcon, Tooltip as MuiTooltip } from "@mui/material";
-import type { FunctionComponent, ReactNode } from "react";
+import type { ReactNode } from "react";
const tooltipContentStyle = css({
backgroundColor: "neutral.s120",
@@ -13,6 +11,12 @@ const tooltipContentStyle = css({
zIndex: "[10000]",
boxShadow: "[0 2px 8px rgba(0, 0, 0, 0.15)]",
padding: "[6px 10px]",
+ maxWidth: "[min(300px, var(--available-width))]",
+ wordWrap: "break-word",
+ fontWeight: "normal",
+ textAlign: "left",
+ textTransform: "none",
+ letterSpacing: "normal",
});
const triggerWrapperStyle = cva({
@@ -71,7 +75,12 @@ export const Tooltip: React.FC = ({
@@ -87,40 +96,33 @@ export const Tooltip: React.FC = ({
);
};
-const CircleInfoIcon: FunctionComponent = (props) => {
+const circleInfoIconStyle = css({
+ display: "inline-block",
+ width: "[11px]",
+ height: "[11px]",
+ marginLeft: "[6.4px]",
+ marginBottom: "[1.6px]",
+ color: "[rgb(160, 160, 160)]",
+ verticalAlign: "middle",
+ fill: "[currentColor]",
+});
+
+const CircleInfoIcon = () => {
return (
-
-
+
);
};
export const InfoIconTooltip = ({ tooltip }: { tooltip: string }) => {
return (
-
-
-
+
+
+
);
};
diff --git a/libs/@hashintel/petrinaut/src/index.css b/libs/@hashintel/petrinaut/src/index.css
index 0cd81926fa4..db7789981b3 100644
--- a/libs/@hashintel/petrinaut/src/index.css
+++ b/libs/@hashintel/petrinaut/src/index.css
@@ -1,5 +1,6 @@
@layer reset, base, tokens, recipes, utilities;
.petrinaut-root {
+ position: relative;
background-color: #fafafa;
}
diff --git a/libs/@hashintel/petrinaut/src/lib/deep-equal.test.ts b/libs/@hashintel/petrinaut/src/lib/deep-equal.test.ts
new file mode 100644
index 00000000000..2947827008d
--- /dev/null
+++ b/libs/@hashintel/petrinaut/src/lib/deep-equal.test.ts
@@ -0,0 +1,117 @@
+import { describe, expect, it } from "vitest";
+
+import type { SDCPN } from "../core/types/sdcpn";
+import { isSDCPNEqual } from "./deep-equal";
+
+const emptyNet: SDCPN = {
+ places: [],
+ transitions: [],
+ types: [],
+ differentialEquations: [],
+ parameters: [],
+};
+
+const sampleNet: SDCPN = {
+ places: [
+ {
+ id: "p1",
+ name: "Place 1",
+ colorId: "c1",
+ dynamicsEnabled: false,
+ differentialEquationId: null,
+ x: 100,
+ y: 200,
+ },
+ ],
+ transitions: [
+ {
+ id: "t1",
+ name: "Transition 1",
+ inputArcs: [{ placeId: "p1", weight: 1 }],
+ outputArcs: [{ placeId: "p1", weight: 2 }],
+ lambdaType: "predicate",
+ lambdaCode: "return true;",
+ transitionKernelCode: "return input;",
+ x: 300,
+ y: 200,
+ },
+ ],
+ types: [
+ {
+ id: "c1",
+ name: "Token",
+ iconSlug: "circle",
+ displayColor: "#FF0000",
+ elements: [{ elementId: "e1", name: "value", type: "real" }],
+ },
+ ],
+ differentialEquations: [],
+ parameters: [
+ {
+ id: "param1",
+ name: "Rate",
+ variableName: "rate",
+ type: "real",
+ defaultValue: "1.0",
+ },
+ ],
+};
+
+describe("isSDCPNEqual", () => {
+ it("returns true for two empty nets", () => {
+ expect(isSDCPNEqual(emptyNet, { ...emptyNet })).toBe(true);
+ });
+
+ it("returns true for identical nets", () => {
+ const copy = JSON.parse(JSON.stringify(sampleNet)) as SDCPN;
+ expect(isSDCPNEqual(sampleNet, copy)).toBe(true);
+ });
+
+ it("returns true for same reference", () => {
+ expect(isSDCPNEqual(sampleNet, sampleNet)).toBe(true);
+ });
+
+ it("returns false when a place differs", () => {
+ const modified = JSON.parse(JSON.stringify(sampleNet)) as SDCPN;
+ modified.places[0]!.name = "Renamed";
+ expect(isSDCPNEqual(sampleNet, modified)).toBe(false);
+ });
+
+ it("returns false when a transition arc weight differs", () => {
+ const modified = JSON.parse(JSON.stringify(sampleNet)) as SDCPN;
+ modified.transitions[0]!.outputArcs[0]!.weight = 99;
+ expect(isSDCPNEqual(sampleNet, modified)).toBe(false);
+ });
+
+ it("returns false when a parameter is added", () => {
+ const modified = JSON.parse(JSON.stringify(sampleNet)) as SDCPN;
+ modified.parameters.push({
+ id: "param2",
+ name: "Extra",
+ variableName: "extra",
+ type: "integer",
+ defaultValue: "0",
+ });
+ expect(isSDCPNEqual(sampleNet, modified)).toBe(false);
+ });
+
+ it("returns false when a color element differs", () => {
+ const modified = JSON.parse(JSON.stringify(sampleNet)) as SDCPN;
+ modified.types[0]!.elements[0]!.type = "boolean";
+ expect(isSDCPNEqual(sampleNet, modified)).toBe(false);
+ });
+
+ it("returns false when places array has different length", () => {
+ const modified = JSON.parse(JSON.stringify(sampleNet)) as SDCPN;
+ modified.places.push({
+ id: "p2",
+ name: "Place 2",
+ colorId: null,
+ dynamicsEnabled: false,
+ differentialEquationId: null,
+ x: 0,
+ y: 0,
+ });
+ expect(isSDCPNEqual(sampleNet, modified)).toBe(false);
+ });
+});
diff --git a/libs/@hashintel/petrinaut/src/lib/deep-equal.ts b/libs/@hashintel/petrinaut/src/lib/deep-equal.ts
new file mode 100644
index 00000000000..e6a7e871112
--- /dev/null
+++ b/libs/@hashintel/petrinaut/src/lib/deep-equal.ts
@@ -0,0 +1,74 @@
+import type { SDCPN } from "../core/types/sdcpn";
+
+/**
+ * Recursively compare two values for structural equality.
+ *
+ * Handles primitives, arrays, and plain objects. Does not handle
+ * special types like Date, RegExp, Map, Set, etc. — those are not
+ * used in SDCPN definitions.
+ */
+const deepEqual = (a: unknown, b: unknown): boolean => {
+ // Same reference or identical primitive
+ if (a === b) {
+ return true;
+ }
+
+ // Different types can never be equal
+ if (typeof a !== typeof b) {
+ return false;
+ }
+
+ // One is null but not the other (both-null is caught by `a === b` above)
+ if (a === null || b === null) {
+ return false;
+ }
+
+ // Compare arrays element-by-element
+ if (Array.isArray(a)) {
+ if (!Array.isArray(b) || a.length !== b.length) {
+ return false;
+ }
+ for (let i = 0; i < a.length; i++) {
+ if (!deepEqual(a[i], b[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ // Compare plain objects by own properties
+ if (typeof a === "object") {
+ const objA = a as Record;
+ const objB = b as Record;
+
+ const propsA = Object.getOwnPropertyNames(objA);
+ const propsB = Object.getOwnPropertyNames(objB);
+
+ // Different number of properties means not equal
+ if (propsA.length !== propsB.length) {
+ return false;
+ }
+
+ // Every property in `a` must exist in `b` with the same value
+ for (const prop of propsA) {
+ if (
+ !Object.prototype.hasOwnProperty.call(objB, prop) ||
+ !deepEqual(objA[prop], objB[prop])
+ ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ return false;
+};
+
+/**
+ * Check if two SDCPN definitions are structurally identical.
+ *
+ * Performs a recursive deep comparison of all fields, so that
+ * additions to the SDCPN type are automatically covered.
+ */
+export const isSDCPNEqual = (a: SDCPN, b: SDCPN): boolean => deepEqual(a, b);
diff --git a/libs/@hashintel/petrinaut/src/petrinaut.tsx b/libs/@hashintel/petrinaut/src/petrinaut.tsx
index f054df4ae0d..c56d600da35 100644
--- a/libs/@hashintel/petrinaut/src/petrinaut.tsx
+++ b/libs/@hashintel/petrinaut/src/petrinaut.tsx
@@ -20,6 +20,8 @@ import { EditorProvider } from "./state/editor-provider";
import { SDCPNProvider } from "./state/sdcpn-provider";
import { EditorView } from "./views/Editor/editor-view";
+export { isSDCPNEqual } from "./lib/deep-equal";
+
export type {
Color,
DifferentialEquation,
diff --git a/libs/@hashintel/petrinaut/src/views/Editor/components/BottomBar/bottom-bar.tsx b/libs/@hashintel/petrinaut/src/views/Editor/components/BottomBar/bottom-bar.tsx
index f15b35acd8f..0fca9f54bce 100644
--- a/libs/@hashintel/petrinaut/src/views/Editor/components/BottomBar/bottom-bar.tsx
+++ b/libs/@hashintel/petrinaut/src/views/Editor/components/BottomBar/bottom-bar.tsx
@@ -40,7 +40,7 @@ const dividerStyle = css({
});
const bottomBarPositionStyle = css({
- position: "fixed",
+ position: "absolute",
left: "[50%]",
transform: "translateX(-50%)",
zIndex: 1000,
diff --git a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/panel.tsx b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/panel.tsx
index 92c62ccb7aa..a87b59dfc11 100644
--- a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/panel.tsx
+++ b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/panel.tsx
@@ -141,7 +141,7 @@ export const BottomPanel: React.FC = () => {
> = (props) => {
const { selectedResourceId, propertiesPanelWidth } = use(EditorContext);
const isPropertiesPanelVisible = selectedResourceId !== null;
- const rightOffset = isPropertiesPanelVisible
- ? propertiesPanelWidth + PANEL_MARGIN * 2
- : PANEL_MARGIN;
+ const minimapOffset = 12;
+ const panelOffset = isPropertiesPanelVisible
+ ? propertiesPanelWidth + PANEL_MARGIN
+ : 0;
return (
> = (props) => {
ariaLabel=""
className={miniMapClassName}
style={{
- top: 0,
- right: rightOffset,
+ top: minimapOffset,
+ right: minimapOffset + panelOffset,
bottom: "auto",
left: "auto",
width: 130,
diff --git a/libs/@hashintel/petrinaut/tsconfig.json b/libs/@hashintel/petrinaut/tsconfig.json
index dfc5e99a75e..82a6a739f89 100644
--- a/libs/@hashintel/petrinaut/tsconfig.json
+++ b/libs/@hashintel/petrinaut/tsconfig.json
@@ -1,11 +1,21 @@
{
- "extends": "@local/tsconfig/legacy-base-tsconfig-to-refactor.json",
"compilerOptions": {
"jsx": "react-jsx",
+ "target": "es2024",
"lib": ["dom", "dom.iterable", "ESNext"],
+ "module": "preserve",
"moduleResolution": "bundler",
+ "strict": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedIndexedAccess": true,
+ "resolveJsonModule": true,
"noEmit": true,
- "skipLibCheck": true
+ "skipLibCheck": true,
+ "declaration": true,
+ "emitDeclarationOnly": true,
+ "isolatedModules": true
},
"include": ["src", "demo-site"],
"exclude": ["demo-site/dist/**/*"]
diff --git a/libs/@hashintel/petrinaut/vite.config.ts b/libs/@hashintel/petrinaut/vite.config.ts
index a1da6dc726e..744ed2004b9 100644
--- a/libs/@hashintel/petrinaut/vite.config.ts
+++ b/libs/@hashintel/petrinaut/vite.config.ts
@@ -1,85 +1,98 @@
-import path from "node:path";
-
import react from "@vitejs/plugin-react";
-import { defineConfig } from "vite";
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { replacePlugin } from "rolldown/plugins";
+import { defineConfig, esmExternalRequirePlugin } from "vite";
import dts from "vite-plugin-dts";
-export default defineConfig(({ mode }) => {
- const isLibMode = mode === "lib" || !!process.env.VITEST;
-
- const environment = process.env.VITE_VERCEL_ENV ?? "development";
- const sentryDsn: string | undefined = process.env.SENTRY_DSN;
-
- return {
- root: isLibMode ? undefined : "demo-site",
-
- build: isLibMode
- ? // Library build
- {
- lib: {
- entry: path.resolve(__dirname, "src/main.ts"),
- name: "Petrinaut",
- fileName: "main",
- formats: ["es"],
- },
- rollupOptions: {
- external: [
- "@hashintel/ds-components",
- "@hashintel/ds-helpers",
- "elkjs",
- "react",
- "react-dom",
- "reactflow",
- ],
- output: {
- globals: {
- react: "React",
- "react-dom": "ReactDOM",
- },
- },
- },
- sourcemap: true,
- emptyOutDir: true,
- minify: false,
- }
- : // Website build
- {
- outDir: "dist",
+/**
+ * Library build config
+ */
+export default defineConfig({
+ build: {
+ lib: {
+ entry: "src/main.ts",
+ fileName: "main",
+ formats: ["es"],
+ },
+ rolldownOptions: {
+ external: [
+ "@hashintel/ds-components",
+ "@hashintel/ds-helpers",
+ "react",
+ "react-dom",
+ "reactflow",
+ "typescript",
+ "monaco-editor",
+ "@babel/standalone",
+ ],
+ output: {
+ globals: {
+ react: "React",
+ "react-dom": "ReactDOM",
},
+ },
+ },
+ sourcemap: true,
+ minify: true,
+ // Use esbuild for CSS minification. Vite 8 defaults to LightningCSS which
+ // strips the standard `backdrop-filter` in favour of `-webkit-backdrop-filter`
+ // based on its browser-target heuristics.
+ // https://github.com/parcel-bundler/lightningcss/issues/695
+ cssMinify: false,
+ },
- plugins: [
- react({
- babel: {
- plugins: ["babel-plugin-react-compiler"],
- },
+ worker: {
+ plugins: () => [
+ replacePlugin({
+ // Consumer Webpack config seem to `define` `typeof window` to `"object"` by default.
+ // This causes crashes in Web Workers, since `window` is not defined there.
+ // To prevent this, we do this resolution on our side.
+ "typeof window": '"undefined"',
}),
-
- isLibMode &&
- dts({
- rollupTypes: true,
- insertTypesEntry: true,
- exclude: [
- "**/*.test.*",
- "**/*.spec.*",
- "playground/**",
- "stories/**",
- ".storybook/**",
- "styled-system/**",
- "demo-site/**",
- ],
- copyDtsFiles: false,
- outDir: "dist",
- }),
],
+ },
- define: {
- __ENVIRONMENT__: JSON.stringify(environment),
- __SENTRY_DSN__: JSON.stringify(sentryDsn),
- // Provide minimal process shim for TypeScript language service in browser
- "process.versions": JSON.stringify({ pnp: undefined }),
- },
- optimizeDeps: {
- include: ["@babel/standalone"],
+ plugins: [
+ esmExternalRequirePlugin({
+ external: [
+ "elkjs",
+ "react/compiler-runtime",
+ "react/jsx-runtime",
+ "react/jsx-dev-runtime",
+ ],
+ }),
+
+ react({
+ babel: {
+ plugins: ["babel-plugin-react-compiler"],
+ },
+ }),
+
+ dts({
+ rollupTypes: true,
+ insertTypesEntry: true,
+ exclude: [
+ "**/*.test.*",
+ "**/*.spec.*",
+ "playground/**",
+ "stories/**",
+ ".storybook/**",
+ "styled-system/**",
+ "demo-site/**",
+ ],
+ copyDtsFiles: false,
+ outDir: "dist",
+ }),
+ ],
+
+ experimental: {
+ renderBuiltUrl: (filename) => {
+ // Fix worker URL for Webpack consumers
+ // Using `config.base` adds `"" +` prefix to the URL, which breaks the worker URL
+ if (filename.includes(".worker")) {
+ return `./${filename}`;
+ }
+ return filename;
},
- };
+ },
});
diff --git a/libs/@hashintel/petrinaut/vite.site.config.ts b/libs/@hashintel/petrinaut/vite.site.config.ts
new file mode 100644
index 00000000000..324ba33585e
--- /dev/null
+++ b/libs/@hashintel/petrinaut/vite.site.config.ts
@@ -0,0 +1,28 @@
+import react from "@vitejs/plugin-react";
+import { defineConfig } from "vite";
+
+/** Demo site dev server and production build config. */
+export default defineConfig(() => {
+ const environment = process.env.VITE_VERCEL_ENV ?? "development";
+ const sentryDsn: string | undefined = process.env.SENTRY_DSN;
+
+ return {
+ root: "demo-site",
+
+ define: {
+ __ENVIRONMENT__: JSON.stringify(environment),
+ __SENTRY_DSN__: JSON.stringify(sentryDsn),
+
+ // This part could be in the library config
+ "process.versions": JSON.stringify({ pnp: undefined }),
+ },
+
+ plugins: [
+ react({
+ babel: {
+ plugins: ["babel-plugin-react-compiler"],
+ },
+ }),
+ ],
+ };
+});
diff --git a/yarn.config.cjs b/yarn.config.cjs
index 043302f9e3c..6c5e2f9faa4 100644
--- a/yarn.config.cjs
+++ b/yarn.config.cjs
@@ -17,7 +17,10 @@ const enforcedDevDependencies = {
const ignoredDependencies = [
"@sentry/webpack-plugin",
- // Petrinaut SDCPN uses multiple packages which are many versions behind in other workspaces
+ // Petrinaut uses Vite 8
+ "vite",
+ "@vitejs/plugin-react",
+ // Petrinaut uses multiple packages which are many versions behind in other workspaces
// To be un-ignored once H-5639 completed
"vitest",
"@dnd-kit/sortable",
diff --git a/yarn.lock b/yarn.lock
index dbde6892e85..43c23acf4c3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -556,7 +556,9 @@ __metadata:
"@graphql-codegen/typescript-operations": "npm:2.5.13"
"@hashintel/block-design-system": "workspace:*"
"@hashintel/design-system": "workspace:*"
- "@hashintel/petrinaut-old": "workspace:*"
+ "@hashintel/ds-components": "workspace:*"
+ "@hashintel/ds-helpers": "workspace:*"
+ "@hashintel/petrinaut": "workspace:*"
"@hashintel/query-editor": "workspace:*"
"@hashintel/type-editor": "workspace:*"
"@lit-labs/react": "npm:1.2.1"
@@ -3275,14 +3277,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/code-frame@npm:7.28.6"
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0":
+ version: 7.29.0
+ resolution: "@babel/code-frame@npm:7.29.0"
dependencies:
"@babel/helper-validator-identifier": "npm:^7.28.5"
js-tokens: "npm:^4.0.0"
picocolors: "npm:^1.1.1"
- checksum: 10c0/ed5d57f99455e3b1c23e75ebb8430c6b9800b4ecd0121b4348b97cecb65406a47778d6db61f0d538a4958bb01b4b277e90348a68d39bd3beff1d7c940ed6dd66
+ checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d
languageName: node
linkType: hard
@@ -3339,26 +3341,26 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.14.0, @babel/core@npm:^7.16.0, @babel/core@npm:^7.18.5, @babel/core@npm:^7.21.3, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.0, @babel/core@npm:^7.28.0, @babel/core@npm:^7.28.4":
- version: 7.28.6
- resolution: "@babel/core@npm:7.28.6"
+"@babel/core@npm:^7.14.0, @babel/core@npm:^7.16.0, @babel/core@npm:^7.18.5, @babel/core@npm:^7.21.3, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.0, @babel/core@npm:^7.28.0, @babel/core@npm:^7.28.4, @babel/core@npm:^7.29.0":
+ version: 7.29.0
+ resolution: "@babel/core@npm:7.29.0"
dependencies:
- "@babel/code-frame": "npm:^7.28.6"
- "@babel/generator": "npm:^7.28.6"
+ "@babel/code-frame": "npm:^7.29.0"
+ "@babel/generator": "npm:^7.29.0"
"@babel/helper-compilation-targets": "npm:^7.28.6"
"@babel/helper-module-transforms": "npm:^7.28.6"
"@babel/helpers": "npm:^7.28.6"
- "@babel/parser": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.29.0"
"@babel/template": "npm:^7.28.6"
- "@babel/traverse": "npm:^7.28.6"
- "@babel/types": "npm:^7.28.6"
+ "@babel/traverse": "npm:^7.29.0"
+ "@babel/types": "npm:^7.29.0"
"@jridgewell/remapping": "npm:^2.3.5"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
- checksum: 10c0/716b88b1ab057aa53ffa40f2b2fb7e4ab7a35cd6a065fa60e55ca13d2a666672592329f7ea9269aec17e90cc7ce29f42eda566d07859bfd998329a9f283faadb
+ checksum: 10c0/5127d2e8e842ae409e11bcbb5c2dff9874abf5415e8026925af7308e903f4f43397341467a130490d1a39884f461bc2b67f3063bce0be44340db89687fd852aa
languageName: node
linkType: hard
@@ -3376,16 +3378,16 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.28.3, @babel/generator@npm:^7.28.5, @babel/generator@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/generator@npm:7.28.6"
+"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.28.3, @babel/generator@npm:^7.28.5, @babel/generator@npm:^7.29.0":
+ version: 7.29.1
+ resolution: "@babel/generator@npm:7.29.1"
dependencies:
- "@babel/parser": "npm:^7.28.6"
- "@babel/types": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.29.0"
+ "@babel/types": "npm:^7.29.0"
"@jridgewell/gen-mapping": "npm:^0.3.12"
"@jridgewell/trace-mapping": "npm:^0.3.28"
jsesc: "npm:^3.0.2"
- checksum: 10c0/162fa358484a9a18e8da1235d998f10ea77c63bab408c8d3e327d5833f120631a77ff022c5ed1d838ee00523f8bb75df1f08196d3657d0bca9f2cfeb8503cc12
+ checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551
languageName: node
linkType: hard
@@ -3590,14 +3592,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.6, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3, @babel/parser@npm:^7.26.7, @babel/parser@npm:^7.28.4, @babel/parser@npm:^7.28.5, @babel/parser@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/parser@npm:7.28.6"
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.6, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3, @babel/parser@npm:^7.26.7, @babel/parser@npm:^7.28.4, @babel/parser@npm:^7.28.5, @babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0":
+ version: 7.29.0
+ resolution: "@babel/parser@npm:7.29.0"
dependencies:
- "@babel/types": "npm:^7.28.6"
+ "@babel/types": "npm:^7.29.0"
bin:
parser: ./bin/babel-parser.js
- checksum: 10c0/d6bfe8aa8e067ef58909e9905496157312372ca65d8d2a4f2b40afbea48d59250163755bba8ae626a615da53d192b084bcfc8c9dad8b01e315b96967600de581
+ checksum: 10c0/333b2aa761264b91577a74bee86141ef733f9f9f6d4fc52548e4847dc35dfbf821f58c46832c637bfa761a6d9909d6a68f7d1ed59e17e4ffbb958dc510c17b62
languageName: node
linkType: hard
@@ -4840,28 +4842,28 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.4, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/traverse@npm:7.28.6"
+"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.4, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0":
+ version: 7.29.0
+ resolution: "@babel/traverse@npm:7.29.0"
dependencies:
- "@babel/code-frame": "npm:^7.28.6"
- "@babel/generator": "npm:^7.28.6"
+ "@babel/code-frame": "npm:^7.29.0"
+ "@babel/generator": "npm:^7.29.0"
"@babel/helper-globals": "npm:^7.28.0"
- "@babel/parser": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.29.0"
"@babel/template": "npm:^7.28.6"
- "@babel/types": "npm:^7.28.6"
+ "@babel/types": "npm:^7.29.0"
debug: "npm:^4.3.1"
- checksum: 10c0/ed5deb9c3f03e2d1ad2d44b9c92c84cce24593245c3f7871ce27ee1b36d98034e6cd895fa98a94eb44ebabe1d22f51b10b09432939d1c51a0fcaab98f17a97bc
+ checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.5, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.6, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.4, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.4.4":
- version: 7.28.6
- resolution: "@babel/types@npm:7.28.6"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.5, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.6, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.4, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0, @babel/types@npm:^7.4.4":
+ version: 7.29.0
+ resolution: "@babel/types@npm:7.29.0"
dependencies:
"@babel/helper-string-parser": "npm:^7.27.1"
"@babel/helper-validator-identifier": "npm:^7.28.5"
- checksum: 10c0/54a6a9813e48ef6f35aa73c03b3c1572cad7fa32b61b35dd07e4230bc77b559194519c8a4d8106a041a27cc7a94052579e238a30a32d5509aa4da4d6fd83d990
+ checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f
languageName: node
linkType: hard
@@ -7534,15 +7536,6 @@ __metadata:
languageName: node
linkType: hard
-"@handsontable/react@npm:16.1.1":
- version: 16.1.1
- resolution: "@handsontable/react@npm:16.1.1"
- peerDependencies:
- handsontable: ">=16.0.0"
- checksum: 10c0/e09d98485896dbecf5af42ae02d63ac8a0540e06b3ba5aab56175f7eb18b938c14663aa87736da2f0d6c7f30fe3a07b57a8f59bc2928d7360d74244ab3c3dd82
- languageName: node
- linkType: hard
-
"@hapi/address@npm:^5.1.1":
version: 5.1.1
resolution: "@hapi/address@npm:5.1.1"
@@ -7672,7 +7665,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@hashintel/ds-components@workspace:^, @hashintel/ds-components@workspace:libs/@hashintel/ds-components":
+"@hashintel/ds-components@workspace:*, @hashintel/ds-components@workspace:^, @hashintel/ds-components@workspace:libs/@hashintel/ds-components":
version: 0.0.0-use.local
resolution: "@hashintel/ds-components@workspace:libs/@hashintel/ds-components"
dependencies:
@@ -7768,40 +7761,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@hashintel/petrinaut-old@workspace:*, @hashintel/petrinaut-old@workspace:libs/@hashintel/petrinaut-old":
- version: 0.0.0-use.local
- resolution: "@hashintel/petrinaut-old@workspace:libs/@hashintel/petrinaut-old"
- dependencies:
- "@emotion/react": "npm:11.14.0"
- "@fortawesome/free-solid-svg-icons": "npm:6.7.2"
- "@handsontable/react": "npm:16.1.1"
- "@hashintel/block-design-system": "workspace:*"
- "@hashintel/design-system": "workspace:*"
- "@local/eslint": "workspace:*"
- "@mantine/hooks": "npm:8.3.5"
- "@mui/material": "npm:5.18.0"
- "@mui/system": "npm:5.18.0"
- "@types/react": "npm:19.2.7"
- "@types/react-dom": "npm:19.2.3"
- "@vitejs/plugin-react": "npm:5.0.4"
- elkjs: "npm:0.11.0"
- eslint: "npm:9.39.2"
- immer: "npm:10.1.3"
- react: "npm:19.2.3"
- react-dom: "npm:19.2.3"
- reactflow: "npm:11.11.4"
- typescript: "npm:5.9.3"
- uuid: "npm:13.0.0"
- vite: "npm:7.1.11"
- web-worker: "npm:1.4.1"
- zustand: "npm:5.0.8"
- peerDependencies:
- react: ^19.0.0
- react-dom: ^19.0.0
- languageName: unknown
- linkType: soft
-
-"@hashintel/petrinaut@workspace:libs/@hashintel/petrinaut":
+"@hashintel/petrinaut@workspace:*, @hashintel/petrinaut@workspace:libs/@hashintel/petrinaut":
version: 0.0.0-use.local
resolution: "@hashintel/petrinaut@workspace:libs/@hashintel/petrinaut"
dependencies:
@@ -7818,7 +7778,6 @@ __metadata:
"@local/eslint": "workspace:*"
"@mantine/hooks": "npm:8.3.5"
"@monaco-editor/react": "npm:4.8.0-rc.3"
- "@mui/material": "npm:5.18.0"
"@pandacss/dev": "npm:1.4.3"
"@sentry/react": "npm:10.22.0"
"@testing-library/dom": "npm:10.4.1"
@@ -7828,7 +7787,8 @@ __metadata:
"@types/d3-scale": "npm:4.0.9"
"@types/react": "npm:19.2.7"
"@types/react-dom": "npm:19.2.3"
- "@vitejs/plugin-react": "npm:5.0.4"
+ "@typescript/native-preview": "npm:7.0.0-dev.20260216.1"
+ "@vitejs/plugin-react": "npm:5.1.4"
babel-plugin-react-compiler: "npm:1.0.0"
d3-array: "npm:3.2.4"
d3-scale: "npm:4.0.2"
@@ -7843,7 +7803,7 @@ __metadata:
reactflow: "npm:11.11.4"
typescript: "npm:5.9.3"
uuid: "npm:13.0.0"
- vite: "npm:7.1.11"
+ vite: "npm:8.0.0-beta.14"
vite-plugin-dts: "npm:4.5.4"
vitest: "npm:4.0.18"
web-worker: "npm:1.4.1"
@@ -11717,6 +11677,13 @@ __metadata:
languageName: node
linkType: hard
+"@oxc-project/runtime@npm:0.113.0":
+ version: 0.113.0
+ resolution: "@oxc-project/runtime@npm:0.113.0"
+ checksum: 10c0/3a9a3f595986812c83ef5dcb29fa55fc0c8e0e873ab99d95c381b7e54b88f57030cd954a87a24b980dfb9eff5bc2f66426aa86ebdcd7b4dd9773be621517d5a0
+ languageName: node
+ linkType: hard
+
"@oxc-project/types@npm:=0.103.0":
version: 0.103.0
resolution: "@oxc-project/types@npm:0.103.0"
@@ -11731,6 +11698,13 @@ __metadata:
languageName: node
linkType: hard
+"@oxc-project/types@npm:=0.113.0":
+ version: 0.113.0
+ resolution: "@oxc-project/types@npm:0.113.0"
+ checksum: 10c0/a5172494732d6f79eaa73246065e0c5ecfff94900191b930a6bc28f0eaced91b93276a971fdf088db902775ed3d3ea7dca9f45fa2795b69ec8ccc0c35dacaa0d
+ languageName: node
+ linkType: hard
+
"@pandacss/config@npm:1.4.3, @pandacss/config@npm:^1.4.3":
version: 1.4.3
resolution: "@pandacss/config@npm:1.4.3"
@@ -13808,6 +13782,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-android-arm64@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.4"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-darwin-arm64@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-beta.57"
@@ -13822,6 +13803,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.4"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-darwin-x64@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-beta.57"
@@ -13836,6 +13824,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-darwin-x64@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.4"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-freebsd-x64@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-beta.57"
@@ -13850,6 +13845,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.4"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-beta.57"
@@ -13864,6 +13866,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.4"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-beta.57"
@@ -13878,6 +13887,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.4"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-linux-arm64-musl@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-beta.57"
@@ -13892,6 +13908,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.4"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-linux-x64-gnu@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-beta.57"
@@ -13906,6 +13929,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.4"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-linux-x64-musl@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-beta.57"
@@ -13920,6 +13950,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.4"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-openharmony-arm64@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-beta.57"
@@ -13934,6 +13971,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.4"
+ conditions: os=openharmony & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-wasm32-wasi@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-beta.57"
@@ -13952,6 +13996,15 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.4"
+ dependencies:
+ "@napi-rs/wasm-runtime": "npm:^1.1.1"
+ conditions: cpu=wasm32
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-beta.57"
@@ -13966,6 +14019,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.4"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rolldown/binding-win32-x64-msvc@npm:1.0.0-beta.57":
version: 1.0.0-beta.57
resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-beta.57"
@@ -13980,6 +14040,13 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.4"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rolldown/pluginutils@npm:1.0.0-beta.27":
version: 1.0.0-beta.27
resolution: "@rolldown/pluginutils@npm:1.0.0-beta.27"
@@ -14008,6 +14075,20 @@ __metadata:
languageName: node
linkType: hard
+"@rolldown/pluginutils@npm:1.0.0-rc.3":
+ version: 1.0.0-rc.3
+ resolution: "@rolldown/pluginutils@npm:1.0.0-rc.3"
+ checksum: 10c0/3928b6282a30f307d1b075d2f217180ae173ea9e00638ce46ab65f089bd5f7a0b2c488ae1ce530f509387793c656a2910337c4cd68fa9d37d7e439365989e699
+ languageName: node
+ linkType: hard
+
+"@rolldown/pluginutils@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "@rolldown/pluginutils@npm:1.0.0-rc.4"
+ checksum: 10c0/c3a4e8c3a4cda43294d04fbaa5066476b933c75b0b5dbee66aaa4ea9bbcf34675dbddd53ffaaf6160b244f1a868a42282aec85a00942fd5a166652f4e2fca192
+ languageName: node
+ linkType: hard
+
"@rollup/plugin-commonjs@npm:28.0.1":
version: 28.0.1
resolution: "@rollup/plugin-commonjs@npm:28.0.1"
@@ -19041,6 +19122,87 @@ __metadata:
languageName: node
linkType: hard
+"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260216.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260216.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260216.1"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260216.1"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260216.1"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260216.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260216.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview@npm:7.0.0-dev.20260216.1":
+ version: 7.0.0-dev.20260216.1
+ resolution: "@typescript/native-preview@npm:7.0.0-dev.20260216.1"
+ dependencies:
+ "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260216.1"
+ "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260216.1"
+ "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260216.1"
+ "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260216.1"
+ "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260216.1"
+ "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260216.1"
+ "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260216.1"
+ dependenciesMeta:
+ "@typescript/native-preview-darwin-arm64":
+ optional: true
+ "@typescript/native-preview-darwin-x64":
+ optional: true
+ "@typescript/native-preview-linux-arm":
+ optional: true
+ "@typescript/native-preview-linux-arm64":
+ optional: true
+ "@typescript/native-preview-linux-x64":
+ optional: true
+ "@typescript/native-preview-win32-arm64":
+ optional: true
+ "@typescript/native-preview-win32-x64":
+ optional: true
+ bin:
+ tsgo: bin/tsgo.js
+ checksum: 10c0/db461ea3c92cf34f865e37418498aa6af38375af71d747550121468e310f8a1cc3e74467a61c240ad55b33d5c4728dc2be8eb3a1b2ee718d8c783af710df3c68
+ languageName: node
+ linkType: hard
+
"@typespec/ts-http-runtime@npm:^0.3.0":
version: 0.3.1
resolution: "@typespec/ts-http-runtime@npm:0.3.1"
@@ -19265,6 +19427,22 @@ __metadata:
languageName: node
linkType: hard
+"@vitejs/plugin-react@npm:5.1.4":
+ version: 5.1.4
+ resolution: "@vitejs/plugin-react@npm:5.1.4"
+ dependencies:
+ "@babel/core": "npm:^7.29.0"
+ "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1"
+ "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1"
+ "@rolldown/pluginutils": "npm:1.0.0-rc.3"
+ "@types/babel__core": "npm:^7.20.5"
+ react-refresh: "npm:^0.18.0"
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
+ checksum: 10c0/dd7b8f40717ecd4a5ab18f467134ea8135f9a443359333d71e4114aeacfc8b679be9fd36dc12290d076c78883a02e708bfe1f0d93411c06c9659da0879b952e3
+ languageName: node
+ linkType: hard
+
"@vitejs/plugin-react@npm:^4.3.4":
version: 4.7.0
resolution: "@vitejs/plugin-react@npm:4.7.0"
@@ -25196,7 +25374,7 @@ __metadata:
languageName: node
linkType: hard
-"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1, detect-libc@npm:^2.0.4":
+"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1, detect-libc@npm:^2.0.3, detect-libc@npm:^2.0.4":
version: 2.0.4
resolution: "detect-libc@npm:2.0.4"
checksum: 10c0/c15541f836eba4b1f521e4eecc28eefefdbc10a94d3b8cb4c507689f332cc111babb95deda66f2de050b22122113189986d5190be97d51b5a2b23b938415e67c
@@ -32998,6 +33176,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-android-arm64@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-android-arm64@npm:1.31.1"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
"lightningcss-darwin-arm64@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-darwin-arm64@npm:1.25.1"
@@ -33005,6 +33190,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-darwin-arm64@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-darwin-arm64@npm:1.31.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
"lightningcss-darwin-x64@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-darwin-x64@npm:1.25.1"
@@ -33012,6 +33204,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-darwin-x64@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-darwin-x64@npm:1.31.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
"lightningcss-freebsd-x64@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-freebsd-x64@npm:1.25.1"
@@ -33019,6 +33218,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-freebsd-x64@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-freebsd-x64@npm:1.31.1"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-arm-gnueabihf@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-linux-arm-gnueabihf@npm:1.25.1"
@@ -33026,6 +33232,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-arm-gnueabihf@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-linux-arm-gnueabihf@npm:1.31.1"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-arm64-gnu@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-linux-arm64-gnu@npm:1.25.1"
@@ -33033,6 +33246,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-arm64-gnu@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-linux-arm64-gnu@npm:1.31.1"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-arm64-musl@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-linux-arm64-musl@npm:1.25.1"
@@ -33040,6 +33260,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-arm64-musl@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-linux-arm64-musl@npm:1.31.1"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-x64-gnu@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-linux-x64-gnu@npm:1.25.1"
@@ -33047,6 +33274,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-x64-gnu@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-linux-x64-gnu@npm:1.31.1"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"lightningcss-linux-x64-musl@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-linux-x64-musl@npm:1.25.1"
@@ -33054,6 +33288,20 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-linux-x64-musl@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-linux-x64-musl@npm:1.31.1"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-win32-arm64-msvc@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-win32-arm64-msvc@npm:1.31.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
"lightningcss-win32-x64-msvc@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss-win32-x64-msvc@npm:1.25.1"
@@ -33061,6 +33309,13 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss-win32-x64-msvc@npm:1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss-win32-x64-msvc@npm:1.31.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"lightningcss@npm:1.25.1":
version: 1.25.1
resolution: "lightningcss@npm:1.25.1"
@@ -33098,6 +33353,49 @@ __metadata:
languageName: node
linkType: hard
+"lightningcss@npm:^1.31.1":
+ version: 1.31.1
+ resolution: "lightningcss@npm:1.31.1"
+ dependencies:
+ detect-libc: "npm:^2.0.3"
+ lightningcss-android-arm64: "npm:1.31.1"
+ lightningcss-darwin-arm64: "npm:1.31.1"
+ lightningcss-darwin-x64: "npm:1.31.1"
+ lightningcss-freebsd-x64: "npm:1.31.1"
+ lightningcss-linux-arm-gnueabihf: "npm:1.31.1"
+ lightningcss-linux-arm64-gnu: "npm:1.31.1"
+ lightningcss-linux-arm64-musl: "npm:1.31.1"
+ lightningcss-linux-x64-gnu: "npm:1.31.1"
+ lightningcss-linux-x64-musl: "npm:1.31.1"
+ lightningcss-win32-arm64-msvc: "npm:1.31.1"
+ lightningcss-win32-x64-msvc: "npm:1.31.1"
+ dependenciesMeta:
+ lightningcss-android-arm64:
+ optional: true
+ lightningcss-darwin-arm64:
+ optional: true
+ lightningcss-darwin-x64:
+ optional: true
+ lightningcss-freebsd-x64:
+ optional: true
+ lightningcss-linux-arm-gnueabihf:
+ optional: true
+ lightningcss-linux-arm64-gnu:
+ optional: true
+ lightningcss-linux-arm64-musl:
+ optional: true
+ lightningcss-linux-x64-gnu:
+ optional: true
+ lightningcss-linux-x64-musl:
+ optional: true
+ lightningcss-win32-arm64-msvc:
+ optional: true
+ lightningcss-win32-x64-msvc:
+ optional: true
+ checksum: 10c0/c6754b305d4a73652e472fc0d7d65384a6e16c336ea61068eca60de2a45bd5c30abbf012358b82eac56ee98b5d88028932cda5268ff61967cffa400b9e7ee2ba
+ languageName: node
+ linkType: hard
+
"lilconfig@npm:^3.1.3":
version: 3.1.3
resolution: "lilconfig@npm:3.1.3"
@@ -38931,7 +39229,7 @@ __metadata:
languageName: node
linkType: hard
-"react-refresh@npm:0.18.0":
+"react-refresh@npm:0.18.0, react-refresh@npm:^0.18.0":
version: 0.18.0
resolution: "react-refresh@npm:0.18.0"
checksum: 10c0/34a262f7fd803433a534f50deb27a148112a81adcae440c7d1cbae7ef14d21ea8f2b3d783e858cb7698968183b77755a38b4d4b5b1d79b4f4689c2f6d358fff2
@@ -40210,6 +40508,58 @@ __metadata:
languageName: node
linkType: hard
+"rolldown@npm:1.0.0-rc.4":
+ version: 1.0.0-rc.4
+ resolution: "rolldown@npm:1.0.0-rc.4"
+ dependencies:
+ "@oxc-project/types": "npm:=0.113.0"
+ "@rolldown/binding-android-arm64": "npm:1.0.0-rc.4"
+ "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.4"
+ "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.4"
+ "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.4"
+ "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.4"
+ "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.4"
+ "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.4"
+ "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.4"
+ "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.4"
+ "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.4"
+ "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.4"
+ "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.4"
+ "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.4"
+ "@rolldown/pluginutils": "npm:1.0.0-rc.4"
+ dependenciesMeta:
+ "@rolldown/binding-android-arm64":
+ optional: true
+ "@rolldown/binding-darwin-arm64":
+ optional: true
+ "@rolldown/binding-darwin-x64":
+ optional: true
+ "@rolldown/binding-freebsd-x64":
+ optional: true
+ "@rolldown/binding-linux-arm-gnueabihf":
+ optional: true
+ "@rolldown/binding-linux-arm64-gnu":
+ optional: true
+ "@rolldown/binding-linux-arm64-musl":
+ optional: true
+ "@rolldown/binding-linux-x64-gnu":
+ optional: true
+ "@rolldown/binding-linux-x64-musl":
+ optional: true
+ "@rolldown/binding-openharmony-arm64":
+ optional: true
+ "@rolldown/binding-wasm32-wasi":
+ optional: true
+ "@rolldown/binding-win32-arm64-msvc":
+ optional: true
+ "@rolldown/binding-win32-x64-msvc":
+ optional: true
+ bin:
+ rolldown: bin/cli.mjs
+ checksum: 10c0/1336aedae71b5885036aeff6bbe9d6c58af205f72e8686edb2a3b27e6b4eb056f2f528b50373ad91567696369501f5b18eb99a926343bdb3012b7495962ddcfb
+ languageName: node
+ linkType: hard
+
"rollup@npm:4.55.3, rollup@npm:^4.34.9, rollup@npm:^4.35.0, rollup@npm:^4.43.0":
version: 4.55.3
resolution: "rollup@npm:4.55.3"
@@ -44671,6 +45021,65 @@ __metadata:
languageName: node
linkType: hard
+"vite@npm:8.0.0-beta.14":
+ version: 8.0.0-beta.14
+ resolution: "vite@npm:8.0.0-beta.14"
+ dependencies:
+ "@oxc-project/runtime": "npm:0.113.0"
+ fdir: "npm:^6.5.0"
+ fsevents: "npm:~2.3.3"
+ lightningcss: "npm:^1.31.1"
+ picomatch: "npm:^4.0.3"
+ postcss: "npm:^8.5.6"
+ rolldown: "npm:1.0.0-rc.4"
+ tinyglobby: "npm:^0.2.15"
+ peerDependencies:
+ "@types/node": ^20.19.0 || >=22.12.0
+ "@vitejs/devtools": ^0.0.0-alpha.31
+ esbuild: ^0.27.0
+ jiti: ">=1.21.0"
+ less: ^4.0.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: ">=0.54.8"
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ "@vitejs/devtools":
+ optional: true
+ esbuild:
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+ bin:
+ vite: bin/vite.js
+ checksum: 10c0/e00e30071444a419f4cd35775af64c2fce5208a95eb05d50c9f646d6c32962bb0aa969dd07d44bc284f7c145846eaea98994864fd5100f45e7432db59e322c38
+ languageName: node
+ linkType: hard
+
"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0, vite@npm:^6.0.0 || ^7.0.0":
version: 7.1.12
resolution: "vite@npm:7.1.12"
@@ -46158,27 +46567,6 @@ __metadata:
languageName: node
linkType: hard
-"zustand@npm:5.0.8":
- version: 5.0.8
- resolution: "zustand@npm:5.0.8"
- peerDependencies:
- "@types/react": ">=18.0.0"
- immer: ">=9.0.6"
- react: ">=18.0.0"
- use-sync-external-store: ">=1.2.0"
- peerDependenciesMeta:
- "@types/react":
- optional: true
- immer:
- optional: true
- react:
- optional: true
- use-sync-external-store:
- optional: true
- checksum: 10c0/e865a6f7f1c0e03571701db5904151aaa7acefd6f85541a117085e129bf16e8f60b11f8cc82f277472de5c7ad5dcb201e1b0a89035ea0b40c9d9aab3cd24c8ad
- languageName: node
- linkType: hard
-
"zustand@npm:^4.4.1":
version: 4.5.5
resolution: "zustand@npm:4.5.5"