diff --git a/apps/hash-frontend/package.json b/apps/hash-frontend/package.json index c35a443e752..46dc6fa419d 100644 --- a/apps/hash-frontend/package.json +++ b/apps/hash-frontend/package.json @@ -127,7 +127,8 @@ "signia-react": "0.1.5", "url-regex-safe": "4.0.0", "use-font-face-observer": "1.3.0", - "uuid": "13.0.0" + "uuid": "13.0.0", + "web-worker": "1.4.1" }, "devDependencies": { "@graphql-codegen/cli": "^5.0.3", diff --git a/apps/petrinaut-website/.oxlintrc.json b/apps/petrinaut-website/.oxlintrc.json new file mode 100644 index 00000000000..33073c8c929 --- /dev/null +++ b/apps/petrinaut-website/.oxlintrc.json @@ -0,0 +1,153 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["import", "react", "jsx-a11y", "unicorn", "typescript"], + "categories": { + "correctness": "error" + }, + "env": { + "builtin": true, + "es2026": true, + "browser": true + }, + "rules": { + "array-callback-return": ["error", { "allowImplicit": true }], + "default-case-last": "error", + "default-param-last": "error", + "eqeqeq": ["error", "always", { "null": "ignore" }], + "guard-for-in": "error", + "no-alert": "error", + "no-cond-assign": ["error", "always"], + "no-extend-native": "error", + "no-loop-func": "error", + "no-new": "error", + "no-param-reassign": [ + "error", + { + "props": true, + "ignorePropertyModificationsForRegex": ["^existing", "draft"] + } + ], + "no-return-assign": ["error", "always"], + "no-self-compare": "error", + "no-sequences": "error", + "no-template-curly-in-string": "error", + "no-unsafe-optional-chaining": [ + "error", + { "disallowArithmeticOperators": true } + ], + "no-unused-vars": [ + "error", + { + "args": "all", + "argsIgnorePattern": "^_+", + "varsIgnorePattern": "^_+" + } + ], + "no-void": ["error", { "allowAsStatement": true }], + + "no-console": "error", + "new-cap": "error", + "no-new-func": "error", + "func-names": "error", + "no-bitwise": "error", + "no-multi-assign": "error", + + "no-restricted-globals": [ + "error", + { "name": "isFinite", "message": "Use Number.isFinite instead" }, + { "name": "isNaN", "message": "Use Number.isNaN instead" }, + "event", + "name", + "length", + "status" + ], + "no-shadow": "error", + "no-use-before-define": "error", + + "import/no-named-as-default": "error", + "import/no-named-as-default-member": "error", + "import/no-mutable-exports": "error", + "import/no-duplicates": "error", + "import/no-named-default": "error", + "import/no-self-import": "error", + "import/no-cycle": "error", + + "react/jsx-pascal-case": ["error", { "allowAllCaps": true }], + "react/no-danger": "error", + "react/jsx-no-target-blank": ["error", { "enforceDynamicLinks": "always" }], + "react/jsx-no-comment-textnodes": "error", + "react/no-array-index-key": "error", + "react/button-has-type": [ + "error", + { "button": true, "submit": true, "reset": false } + ], + + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "off", + + "jsx-a11y/prefer-tag-over-role": "off", + "jsx-a11y/aria-role": ["error", { "ignoreNonDOM": false }], + "jsx-a11y/no-noninteractive-tabindex": [ + "error", + { "tags": [], "roles": ["tabpanel"] } + ], + "jsx-a11y/label-has-associated-control": "error", + "jsx-a11y/no-static-element-interactions": [ + "error", + { + "handlers": [ + "onClick", + "onMouseDown", + "onMouseUp", + "onKeyPress", + "onKeyDown", + "onKeyUp" + ] + } + ], + + "@typescript-eslint/ban-ts-comment": [ + "error", + { + "ts-expect-error": "allow-with-description", + "minimumDescriptionLength": 10 + } + ], + "@typescript-eslint/no-empty-object-type": "error", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/no-unnecessary-type-constraint": "error", + "@typescript-eslint/no-implied-eval": "error", + "@typescript-eslint/no-misused-promises": "error", + "@typescript-eslint/no-unnecessary-condition": "error", + "@typescript-eslint/no-unsafe-assignment": "error", + "@typescript-eslint/no-unsafe-call": "error", + "@typescript-eslint/no-unsafe-function-type": "error", + + "unicorn/no-new-array": "off", + "unicorn/filename-case": "error", + + "constructor-super": "off", + "no-class-assign": "off", + "no-const-assign": "off", + "no-dupe-keys": "off", + "no-func-assign": "off", + "no-import-assign": "off", + "no-obj-calls": "off", + "no-redeclare": "off", + "no-setter-return": "off", + "no-this-before-super": "off", + "no-unsafe-negation": "off", + "no-constant-condition": "off", + "no-throw-literal": "off", + "prefer-promise-reject-errors": "off" + }, + "ignorePatterns": [ + "dist/**", + "build/**", + "coverage/**", + "*.gen.*", + "*.tsbuildinfo", + ".turbo/**" + ] +} diff --git a/apps/petrinaut-website/eslint.config.js b/apps/petrinaut-website/eslint.config.js deleted file mode 100644 index 668199a212b..00000000000 --- a/apps/petrinaut-website/eslint.config.js +++ /dev/null @@ -1,23 +0,0 @@ -import { createBase } from "@local/eslint/deprecated"; - -export default [ - ...createBase(import.meta.dirname), - { - languageOptions: { - parserOptions: { - projectService: { - allowDefaultProject: ["vite.config.ts"], - }, - tsconfigRootDir: import.meta.dirname, - }, - }, - }, - { - rules: { - // Disabled because React Compiler handles optimization automatically - "react/jsx-no-bind": "off", - "react/jsx-no-constructed-context-values": "off", - "react-hooks/exhaustive-deps": "off", - }, - }, -]; diff --git a/apps/petrinaut-website/package.json b/apps/petrinaut-website/package.json index f8e24cbb8aa..65b78ea7f3b 100644 --- a/apps/petrinaut-website/package.json +++ b/apps/petrinaut-website/package.json @@ -6,9 +6,9 @@ "scripts": { "build": "vite build", "dev": "vite", - "fix:eslint": "eslint --fix .", - "lint:eslint": "eslint --report-unused-disable-directives .", - "lint:tsc": "tsgo --noEmit" + "lint:tsc": "tsgo --noEmit", + "lint:eslint": "oxlint --type-aware --report-unused-disable-directives-severity=error .", + "fix:eslint": "oxlint --fix --type-aware --report-unused-disable-directives-severity=error ." }, "dependencies": { "@hashintel/petrinaut": "workspace:*", @@ -19,13 +19,14 @@ "react-dom": "19.2.3" }, "devDependencies": { - "@local/eslint": "workspace:*", + "@rolldown/plugin-babel": "0.2.1", "@types/react": "19.2.7", "@types/react-dom": "19.2.3", - "@typescript/native-preview": "7.0.0-dev.20260309.1", - "@vitejs/plugin-react": "5.1.4", + "@typescript/native-preview": "7.0.0-dev.20260315.1", + "@vitejs/plugin-react": "6.0.1", "babel-plugin-react-compiler": "1.0.0", - "eslint": "9.39.3", - "vite": "8.0.0-beta.18" + "oxlint": "1.55.0", + "oxlint-tsgolint": "0.17.0", + "vite": "8.0.0" } } diff --git a/apps/petrinaut-website/turbo.json b/apps/petrinaut-website/turbo.json new file mode 100644 index 00000000000..2696357a0dc --- /dev/null +++ b/apps/petrinaut-website/turbo.json @@ -0,0 +1,8 @@ +{ + "extends": ["//"], + "tasks": { + "lint:eslint": { + "dependsOn": [] + } + } +} diff --git a/apps/petrinaut-website/vite.config.ts b/apps/petrinaut-website/vite.config.ts index e5814c9b46a..9b8bc9209ba 100644 --- a/apps/petrinaut-website/vite.config.ts +++ b/apps/petrinaut-website/vite.config.ts @@ -1,4 +1,5 @@ -import react from "@vitejs/plugin-react"; +import babel from "@rolldown/plugin-babel"; +import react, { reactCompilerPreset } from "@vitejs/plugin-react"; import { defineConfig } from "vite"; /** Petrinaut website dev server and production build config. */ @@ -13,10 +14,16 @@ export default defineConfig(() => { }, plugins: [ - react({ - babel: { - plugins: ["babel-plugin-react-compiler"], - }, + react(), + babel({ + presets: [ + reactCompilerPreset({ + target: "19", + compilationMode: "infer", + // @ts-expect-error - panicThreshold is accepted at runtime + panicThreshold: "critical_errors", + }), + ], }), ], }; diff --git a/libs/@hashintel/petrinaut/.oxlintrc.json b/libs/@hashintel/petrinaut/.oxlintrc.json new file mode 100644 index 00000000000..1f31575fedf --- /dev/null +++ b/libs/@hashintel/petrinaut/.oxlintrc.json @@ -0,0 +1,165 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["import", "react", "jsx-a11y", "unicorn", "typescript"], + "categories": { + "correctness": "error" + }, + "env": { + "builtin": true, + "es2026": true, + "browser": true + }, + "rules": { + "array-callback-return": ["error", { "allowImplicit": true }], + "default-case-last": "error", + "default-param-last": "error", + "eqeqeq": ["error", "always", { "null": "ignore" }], + "guard-for-in": "error", + "no-alert": "error", + "no-cond-assign": ["error", "always"], + "no-extend-native": "error", + "no-loop-func": "error", + "no-new": "error", + "no-param-reassign": [ + "error", + { + "props": true, + "ignorePropertyModificationsForRegex": ["^existing", "draft"] + } + ], + "no-return-assign": ["error", "always"], + "no-self-compare": "error", + "no-sequences": "error", + "no-template-curly-in-string": "error", + "no-unsafe-optional-chaining": [ + "error", + { "disallowArithmeticOperators": true } + ], + "no-unused-vars": [ + "error", + { + "args": "all", + "argsIgnorePattern": "^_+", + "varsIgnorePattern": "^_+" + } + ], + "no-void": ["error", { "allowAsStatement": true }], + + "no-console": "error", + "new-cap": "error", + "no-new-func": "error", + "func-names": "error", + "no-bitwise": "error", + "no-multi-assign": "error", + + "no-restricted-globals": [ + "error", + { "name": "isFinite", "message": "Use Number.isFinite instead" }, + { "name": "isNaN", "message": "Use Number.isNaN instead" }, + "event", + "name", + "length", + "status" + ], + "no-shadow": "error", + "no-use-before-define": "error", + + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["@local/*"], + "message": "You cannot use unpublished local packages in a published package." + } + ] + } + ], + + "import/no-named-as-default": "error", + "import/no-named-as-default-member": "error", + "import/no-mutable-exports": "error", + "import/no-duplicates": "error", + "import/no-named-default": "error", + "import/no-self-import": "error", + "import/no-cycle": "error", + + "react/jsx-pascal-case": ["error", { "allowAllCaps": true }], + "react/no-danger": "error", + "react/jsx-no-target-blank": ["error", { "enforceDynamicLinks": "always" }], + "react/jsx-no-comment-textnodes": "error", + "react/no-array-index-key": "error", + "react/button-has-type": [ + "error", + { "button": true, "submit": true, "reset": false } + ], + + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "off", + + "jsx-a11y/prefer-tag-over-role": "off", + "jsx-a11y/aria-role": ["error", { "ignoreNonDOM": false }], + "jsx-a11y/no-noninteractive-tabindex": [ + "error", + { "tags": [], "roles": ["tabpanel"] } + ], + "jsx-a11y/label-has-associated-control": "error", + "jsx-a11y/no-static-element-interactions": [ + "error", + { + "handlers": [ + "onClick", + "onMouseDown", + "onMouseUp", + "onKeyPress", + "onKeyDown", + "onKeyUp" + ] + } + ], + + "@typescript-eslint/ban-ts-comment": [ + "error", + { + "ts-expect-error": "allow-with-description", + "minimumDescriptionLength": 10 + } + ], + "@typescript-eslint/no-empty-object-type": "error", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/no-unnecessary-type-constraint": "error", + "@typescript-eslint/no-implied-eval": "error", + "@typescript-eslint/no-misused-promises": "error", + "@typescript-eslint/no-unnecessary-condition": "error", + "@typescript-eslint/no-unsafe-assignment": "error", + "@typescript-eslint/no-unsafe-call": "error", + "@typescript-eslint/no-unsafe-function-type": "error", + + "unicorn/no-new-array": "off", + "unicorn/filename-case": "error", + + "constructor-super": "off", + "no-class-assign": "off", + "no-const-assign": "off", + "no-dupe-keys": "off", + "no-func-assign": "off", + "no-import-assign": "off", + "no-obj-calls": "off", + "no-redeclare": "off", + "no-setter-return": "off", + "no-this-before-super": "off", + "no-unsafe-negation": "off", + "no-constant-condition": "off", + "no-throw-literal": "off", + "prefer-promise-reject-errors": "off" + }, + "ignorePatterns": [ + "dist/**", + "build/**", + "coverage/**", + "*.gen.*", + "*.tsbuildinfo", + ".turbo/**" + ] +} diff --git a/libs/@hashintel/petrinaut/CLAUDE.md b/libs/@hashintel/petrinaut/CLAUDE.md new file mode 100644 index 00000000000..53783a85746 --- /dev/null +++ b/libs/@hashintel/petrinaut/CLAUDE.md @@ -0,0 +1,47 @@ +# Petrinaut + +Visual editor for Stochastic Dynamic Colored Petri Nets (SDCPN). Published npm package (`@hashintel/petrinaut`). + +## Stack + +- React 19 with React Compiler (babel-plugin-react-compiler) +- TypeScript (type-checked with `tsgo`) +- Vite 8 + Rolldown (library build + demo site) +- Panda CSS for styling +- oxlint for linting +- vitest for testing + +## React Compiler + +React Compiler is enabled — it automatically memoizes components and hooks. + +**Do not use `useMemo`, `useCallback`, or `React.memo` unless there is a specific reason the compiler cannot handle it.** The compiler makes manual memoization unnecessary in the vast majority of cases. + +When code is genuinely incompatible (e.g. writing to refs during render), opt out with: + +```ts +function useMyHook() { + "use no memo"; // + // ... +} +``` + +The compiler runs with `panicThreshold: "critical_errors"` — the build fails if it encounters critical errors not opted out via `"use no memo"`. + +## Commands + +```sh +yarn dev # Dev server (demo site) +yarn build # Library build +yarn lint:eslint # Lint with oxlint +yarn lint:tsc # Type check with tsgo +yarn test:unit # Unit tests (vitest) +``` + +## Conventions + +- Function components only (no class components except error boundaries) +- `use()` for context consumption (React 19), not `useContext()` +- Styles via Panda CSS (`css()`, `cva()` from `@hashintel/ds-helpers/css`) +- No `@local/*` imports — this is a published package +- Prefix unused parameters with `_` diff --git a/libs/@hashintel/petrinaut/eslint.config.js b/libs/@hashintel/petrinaut/eslint.config.js deleted file mode 100644 index b030e11bed3..00000000000 --- a/libs/@hashintel/petrinaut/eslint.config.js +++ /dev/null @@ -1,49 +0,0 @@ -import { createBase } from "@local/eslint/deprecated"; - -export default [ - ...createBase(import.meta.dirname), - { - languageOptions: { - parserOptions: { - projectService: { - allowDefaultProject: [ - "panda.config.ts", - "postcss.config.cjs", - "vite.config.ts", - ".storybook/main.ts", - ".storybook/manager.tsx", - ".storybook/preview.tsx", - ], - }, - tsconfigRootDir: import.meta.dirname, - }, - }, - }, - { - rules: { - // Disabled because React Compiler handles optimization automatically - "react/jsx-no-bind": "off", - "react/jsx-no-constructed-context-values": "off", - "react-hooks/exhaustive-deps": "off", - "no-restricted-imports": [ - "error", - { - patterns: [ - { - group: ["@local/*"], - message: - "You cannot use unpublished local packages in a published package.", - }, - ], - }, - ], - "no-param-reassign": [ - "error", - { - props: true, - ignorePropertyModificationsForRegex: ["^existing", "draft"], - }, - ], - }, - }, -]; diff --git a/libs/@hashintel/petrinaut/package.json b/libs/@hashintel/petrinaut/package.json index d605562371d..af121e1142d 100644 --- a/libs/@hashintel/petrinaut/package.json +++ b/libs/@hashintel/petrinaut/package.json @@ -27,28 +27,21 @@ "scripts": { "build": "vite build", "dev": "storybook dev", - "fix:eslint": "eslint --fix .", - "lint:eslint": "eslint --report-unused-disable-directives .", "lint:tsc": "tsgo --noEmit", + "lint:eslint": "oxlint --type-aware --report-unused-disable-directives-severity=error .", + "fix:eslint": "oxlint --fix --type-aware --report-unused-disable-directives-severity=error .", "prepublishOnly": "turbo run build", "test:unit": "vitest" }, "dependencies": { "@ark-ui/react": "5.26.2", - "@babel/core": "7.26.0", - "@babel/plugin-transform-typescript": "7.25.9", "@babel/standalone": "7.28.5", - "@dnd-kit/core": "6.3.1", - "@dnd-kit/sortable": "10.0.0", - "@dnd-kit/utilities": "3.2.2", "@fontsource-variable/jetbrains-mono": "5.2.8", "@hashintel/ds-components": "workspace:^", "@hashintel/ds-helpers": "workspace:^", "@hashintel/refractive": "workspace:^", - "@mantine/hooks": "8.3.5", "@monaco-editor/react": "4.8.0-rc.3", "@xyflow/react": "12.10.1", - "d3-array": "3.2.4", "d3-scale": "4.0.2", "elkjs": "0.11.0", "monaco-editor": "0.55.1", @@ -61,29 +54,28 @@ }, "devDependencies": { "@hashintel/ds-helpers": "workspace:*", - "@local/eslint": "workspace:*", "@pandacss/dev": "1.4.3", - "@storybook/react-vite": "10.2.13", + "@rolldown/plugin-babel": "0.2.1", + "@storybook/react-vite": "10.2.19", "@testing-library/dom": "10.4.1", "@testing-library/react": "16.3.2", "@types/babel__standalone": "7.1.9", - "@types/d3-array": "3.2.2", "@types/d3-scale": "4.0.9", "@types/react": "19.2.7", "@types/react-dom": "19.2.3", - "@typescript/native-preview": "7.0.0-dev.20260309.1", - "@vitejs/plugin-react": "5.1.4", + "@typescript/native-preview": "7.0.0-dev.20260315.1", + "@vitejs/plugin-react": "6.0.1", "babel-plugin-react-compiler": "1.0.0", - "eslint": "9.39.3", "jsdom": "24.1.3", + "oxlint": "1.55.0", + "oxlint-tsgolint": "0.17.0", "react": "19.2.3", "react-dom": "19.2.3", - "rolldown": "1.0.0-rc.8", - "rolldown-plugin-dts": "0.22.4", - "storybook": "10.2.13", - "vite": "8.0.0-beta.18", - "vite-plugin-dts": "4.5.4", - "vitest": "4.0.18" + "rolldown": "1.0.0-rc.9", + "rolldown-plugin-dts": "0.22.5", + "storybook": "10.2.19", + "vite": "8.0.0", + "vitest": "4.1.0" }, "peerDependencies": { "@hashintel/ds-components": "workspace:^", diff --git a/libs/@hashintel/petrinaut/src/components/menu.tsx b/libs/@hashintel/petrinaut/src/components/menu.tsx index b9aa1f85712..c7d6bfc3b85 100644 --- a/libs/@hashintel/petrinaut/src/components/menu.tsx +++ b/libs/@hashintel/petrinaut/src/components/menu.tsx @@ -198,6 +198,7 @@ export interface MenuItem { } export interface MenuGroup { + id: string; title?: string; items: MenuItem[]; } @@ -242,7 +243,7 @@ function normalizeToGroups(items: MenuItem[] | MenuGroup[]): MenuGroup[] { if (isMenuGroupArray(items)) { return items; } - return [{ items }]; + return [{ id: "default", items }]; } // -- Subcomponents ------------------------------------------------------------ @@ -294,7 +295,7 @@ export const Menu: React.FC = ({ style={maxHeight ? { maxHeight, overflowY: "auto" } : undefined} > {groups.map((group, groupIndex) => ( -
+
{groupIndex > 0 &&
}
{group.title && ( diff --git a/libs/@hashintel/petrinaut/src/constants/ui-subviews.ts b/libs/@hashintel/petrinaut/src/constants/ui-subviews.ts new file mode 100644 index 00000000000..d063d571f81 --- /dev/null +++ b/libs/@hashintel/petrinaut/src/constants/ui-subviews.ts @@ -0,0 +1,31 @@ +/** + * SubView registries for the Petrinaut editor panels. + * + * Separated from ui.ts to avoid import cycles: view files that define SubViews + * also consume EditorContext, which imports numeric constants from ui.ts. + */ + +import type { SubView } from "../components/sub-view/types"; +import { diagnosticsSubView } from "../views/Editor/panels/BottomPanel/subviews/diagnostics"; +import { simulationSettingsSubView } from "../views/Editor/panels/BottomPanel/subviews/simulation-settings"; +import { simulationTimelineSubView } from "../views/Editor/panels/BottomPanel/subviews/simulation-timeline"; +import { differentialEquationsListSubView } from "../views/Editor/panels/LeftSideBar/subviews/differential-equations-list"; +import { nodesListSubView } from "../views/Editor/panels/LeftSideBar/subviews/nodes-list"; +import { parametersListSubView } from "../views/Editor/panels/LeftSideBar/subviews/parameters-list"; +import { typesListSubView } from "../views/Editor/panels/LeftSideBar/subviews/types-list"; + +export const LEFT_SIDEBAR_SUBVIEWS: SubView[] = [ + typesListSubView, + differentialEquationsListSubView, + parametersListSubView, + nodesListSubView, +]; + +// Base subviews always visible in the bottom panel +export const BOTTOM_PANEL_SUBVIEWS: SubView[] = [ + diagnosticsSubView, + simulationSettingsSubView, +]; + +// Subviews only visible when simulation is running/paused +export const SIMULATION_ONLY_SUBVIEWS: SubView[] = [simulationTimelineSubView]; diff --git a/libs/@hashintel/petrinaut/src/constants/ui.ts b/libs/@hashintel/petrinaut/src/constants/ui.ts index a8403415a35..5e095b64f0c 100644 --- a/libs/@hashintel/petrinaut/src/constants/ui.ts +++ b/libs/@hashintel/petrinaut/src/constants/ui.ts @@ -1,16 +1,9 @@ /** * UI-related constants for the Petrinaut editor. + * + * NOTE: SubView registries live in ./ui-subviews.ts to avoid import cycles. */ -import type { SubView } from "../components/sub-view/types"; -import { diagnosticsSubView } from "../views/Editor/panels/BottomPanel/subviews/diagnostics"; -import { simulationSettingsSubView } from "../views/Editor/panels/BottomPanel/subviews/simulation-settings"; -import { simulationTimelineSubView } from "../views/Editor/panels/BottomPanel/subviews/simulation-timeline"; -import { differentialEquationsListSubView } from "../views/Editor/panels/LeftSideBar/subviews/differential-equations-list"; -import { nodesListSubView } from "../views/Editor/panels/LeftSideBar/subviews/nodes-list"; -import { parametersListSubView } from "../views/Editor/panels/LeftSideBar/subviews/parameters-list"; -import { typesListSubView } from "../views/Editor/panels/LeftSideBar/subviews/types-list"; - // Panel margin (spacing around panels) export const PANEL_MARGIN = 0; @@ -32,23 +25,3 @@ export const MAX_PROPERTIES_PANEL_WIDTH = 800; export const DEFAULT_BOTTOM_PANEL_HEIGHT = 180; export const MIN_BOTTOM_PANEL_HEIGHT = 100; export const MAX_BOTTOM_PANEL_HEIGHT = 600; - -// -// SubViews -// - -export const LEFT_SIDEBAR_SUBVIEWS: SubView[] = [ - typesListSubView, - differentialEquationsListSubView, - parametersListSubView, - nodesListSubView, -]; - -// Base subviews always visible in the bottom panel -export const BOTTOM_PANEL_SUBVIEWS: SubView[] = [ - diagnosticsSubView, - simulationSettingsSubView, -]; - -// Subviews only visible when simulation is running/paused -export const SIMULATION_ONLY_SUBVIEWS: SubView[] = [simulationTimelineSubView]; diff --git a/libs/@hashintel/petrinaut/src/hooks/use-latest.ts b/libs/@hashintel/petrinaut/src/hooks/use-latest.ts index 3c070969847..5cbd49511e6 100644 --- a/libs/@hashintel/petrinaut/src/hooks/use-latest.ts +++ b/libs/@hashintel/petrinaut/src/hooks/use-latest.ts @@ -25,6 +25,7 @@ import { useRef } from "react"; * @returns A ref object whose `.current` property is always the latest value */ export function useLatest(value: T): React.RefObject { + "use no memo"; // Intentionally writes ref during render — incompatible with React Compiler const ref = useRef(value); // Update synchronously during render (not in effect) so the ref is diff --git a/libs/@hashintel/petrinaut/src/hooks/use-stable-callback.ts b/libs/@hashintel/petrinaut/src/hooks/use-stable-callback.ts index 687a5f55d03..5b45c597c70 100644 --- a/libs/@hashintel/petrinaut/src/hooks/use-stable-callback.ts +++ b/libs/@hashintel/petrinaut/src/hooks/use-stable-callback.ts @@ -23,6 +23,7 @@ import { useCallback, useEffect, useRef } from "react"; export function useStableCallback unknown>( callback: T, ): T { + "use no memo"; // useCallback with `as T` cast is not an inline function expression — incompatible with React Compiler const ref = useRef(callback); useEffect(() => { diff --git a/libs/@hashintel/petrinaut/src/lib/hsl-color.ts b/libs/@hashintel/petrinaut/src/lib/hsl-color.ts index 89597ff82a4..8dc9959a131 100644 --- a/libs/@hashintel/petrinaut/src/lib/hsl-color.ts +++ b/libs/@hashintel/petrinaut/src/lib/hsl-color.ts @@ -1,4 +1,3 @@ -/* eslint-disable id-length */ /** * Utility for creating and manipulating HSL colors. * diff --git a/libs/@hashintel/petrinaut/src/lsp/worker/language-server.worker.ts b/libs/@hashintel/petrinaut/src/lsp/worker/language-server.worker.ts index abb584c388f..b955e7c45ed 100644 --- a/libs/@hashintel/petrinaut/src/lsp/worker/language-server.worker.ts +++ b/libs/@hashintel/petrinaut/src/lsp/worker/language-server.worker.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-restricted-globals */ /** * Language Server WebWorker — runs TypeScript validation off the main thread. * diff --git a/libs/@hashintel/petrinaut/src/resize/use-resize-drag.ts b/libs/@hashintel/petrinaut/src/resize/use-resize-drag.ts index 5bf60d1c0c5..56ca16bf07c 100644 --- a/libs/@hashintel/petrinaut/src/resize/use-resize-drag.ts +++ b/libs/@hashintel/petrinaut/src/resize/use-resize-drag.ts @@ -41,6 +41,7 @@ export const useResizeDrag = ({ onDragEnd, direction, }: UseResizeDragOptions) => { + "use no memo"; // Intentionally writes refs during render — incompatible with React Compiler const [isResizing, setIsResizing] = useState(false); const startPosRef = useRef(0); const overlayRef = useRef(null); diff --git a/libs/@hashintel/petrinaut/src/simulation/simulator/compile-user-code.ts b/libs/@hashintel/petrinaut/src/simulation/simulator/compile-user-code.ts index e4b13065f3f..2cb553acda6 100644 --- a/libs/@hashintel/petrinaut/src/simulation/simulator/compile-user-code.ts +++ b/libs/@hashintel/petrinaut/src/simulation/simulator/compile-user-code.ts @@ -87,7 +87,7 @@ export function compileUserCode( `; // Use Function constructor to create and execute the module - // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func, @typescript-eslint/no-unsafe-call + // eslint-disable-next-line no-new-func, @typescript-eslint/no-implied-eval, @typescript-eslint/no-unsafe-call const compiledFunction = new Function(executableCode)() as ( ...args: T ) => unknown; diff --git a/libs/@hashintel/petrinaut/src/simulation/simulator/compile-visualizer.ts b/libs/@hashintel/petrinaut/src/simulation/simulator/compile-visualizer.ts index 95343083b88..d761d6b83cb 100644 --- a/libs/@hashintel/petrinaut/src/simulation/simulator/compile-visualizer.ts +++ b/libs/@hashintel/petrinaut/src/simulation/simulator/compile-visualizer.ts @@ -70,7 +70,7 @@ export function compileVisualizer(code: string): VisualizerComponent { // Use Function constructor to create and execute the module // We need to provide React in scope for React.createElement calls - // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func, @typescript-eslint/no-unsafe-call + // eslint-disable-next-line no-new-func, @typescript-eslint/no-implied-eval, @typescript-eslint/no-unsafe-call const compiledComponent = new Function("React", executableCode)( // Provide a minimal React object with createElement { createElement }, diff --git a/libs/@hashintel/petrinaut/src/simulation/simulator/enumerate-weighted-markings.ts b/libs/@hashintel/petrinaut/src/simulation/simulator/enumerate-weighted-markings.ts index 8f8db4566fa..9df9f6ae9c4 100644 --- a/libs/@hashintel/petrinaut/src/simulation/simulator/enumerate-weighted-markings.ts +++ b/libs/@hashintel/petrinaut/src/simulation/simulator/enumerate-weighted-markings.ts @@ -1,4 +1,3 @@ -/* eslint-disable id-length */ type PlaceSpec = { count: number; // number of tokens in this place weight: number; // how many tokens to pick diff --git a/libs/@hashintel/petrinaut/src/simulation/worker/simulation.worker.ts b/libs/@hashintel/petrinaut/src/simulation/worker/simulation.worker.ts index 0c30c45b1ad..b8bb767faa5 100644 --- a/libs/@hashintel/petrinaut/src/simulation/worker/simulation.worker.ts +++ b/libs/@hashintel/petrinaut/src/simulation/worker/simulation.worker.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-restricted-globals */ /** * Simulation WebWorker * 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 49bd65b1c1d..572131d24bf 100644 --- a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/panel.tsx +++ b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/panel.tsx @@ -10,12 +10,14 @@ import { HorizontalTabsHeaderAction, } from "../../../../components/sub-view/horizontal/horizontal-tabs-container"; import { - BOTTOM_PANEL_SUBVIEWS, MAX_BOTTOM_PANEL_HEIGHT, MIN_BOTTOM_PANEL_HEIGHT, PANEL_MARGIN, - SIMULATION_ONLY_SUBVIEWS, } from "../../../../constants/ui"; +import { + BOTTOM_PANEL_SUBVIEWS, + SIMULATION_ONLY_SUBVIEWS, +} from "../../../../constants/ui-subviews"; import { SimulationContext } from "../../../../simulation/context"; import { type BottomPanelTab, diff --git a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-settings.tsx b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-settings.tsx index c3a69e5d369..5093adcf144 100644 --- a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-settings.tsx +++ b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-settings.tsx @@ -211,7 +211,6 @@ const SimulationSettingsContent: React.FC = () => {
{/* Time Step Input */}
- {/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}
{/* ODE Solver Method Select */}
- {/* eslint-disable-next-line jsx-a11y/label-has-associated-control */} diff --git a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-timeline.tsx b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-timeline.tsx index 65b23c3e4c1..304cefa0a4b 100644 --- a/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-timeline.tsx +++ b/libs/@hashintel/petrinaut/src/views/Editor/panels/BottomPanel/subviews/simulation-timeline.tsx @@ -640,6 +640,7 @@ const CompartmentTimeSeries: React.FC = ({ onTooltipChange, onPlaceHover, }) => { + "use no memo"; // Complex chart with manual memoization — compiler cannot preserve existing useMemo/useCallback patterns const { totalFrames } = use(SimulationContext); const { setCurrentViewedFrame } = use(PlaybackContext); @@ -836,6 +837,7 @@ const CompartmentTimeSeries: React.FC = ({ ); return ( + // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- interactive chart SVG = ({ onTooltipChange, onPlaceHover, }) => { + "use no memo"; // Complex chart with manual memoization — compiler cannot preserve existing useMemo/useCallback patterns const { totalFrames } = use(SimulationContext); const { setCurrentViewedFrame } = use(PlaybackContext); @@ -1211,6 +1214,7 @@ const StackedAreaChart: React.FC = ({ } return ( + // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- interactive chart SVG > = ({ tokenCount = marking?.count ?? 0; } + // Split label into segments with unique keys (handles duplicate segments) + const labelSegments = splitPascalCase(data.label).reduce< + { key: string; text: string }[] + >((acc, segment) => { + const count = acc.filter((entry) => entry.text === segment).length; + acc.push({ + key: count > 0 ? `${segment}-${String(count)}` : segment, + text: segment, + }); + return acc; + }, []); + // Determine selection state const isInSelection = isSelected(id); const selectionVariant = isInSelection @@ -162,12 +174,9 @@ export const ClassicPlaceNode: React.FC> = ({ )}
- {splitPascalCase(data.label).map((segment, index) => ( - - {segment} + {labelSegments.map(({ key, text }) => ( + + {text} ))}
diff --git a/libs/@hashintel/petrinaut/src/views/SDCPN/components/viewport-controls.tsx b/libs/@hashintel/petrinaut/src/views/SDCPN/components/viewport-controls.tsx index e079354dcd8..478e80d0ec5 100644 --- a/libs/@hashintel/petrinaut/src/views/SDCPN/components/viewport-controls.tsx +++ b/libs/@hashintel/petrinaut/src/views/SDCPN/components/viewport-controls.tsx @@ -64,6 +64,7 @@ export const ViewportControls: React.FC = () => { variant="outline" aria-label="Zoom in" tooltip="Zoom in" + // eslint-disable-next-line @typescript-eslint/no-misused-promises onClick={() => zoomIn()} > @@ -73,6 +74,7 @@ export const ViewportControls: React.FC = () => { variant="outline" aria-label="Zoom out" tooltip="Zoom out" + // eslint-disable-next-line @typescript-eslint/no-misused-promises onClick={() => zoomOut()} > diff --git a/libs/@hashintel/petrinaut/src/views/SDCPN/hooks/use-firing-delta.ts b/libs/@hashintel/petrinaut/src/views/SDCPN/hooks/use-firing-delta.ts index aacc4ea2f1d..f029f20d98e 100644 --- a/libs/@hashintel/petrinaut/src/views/SDCPN/hooks/use-firing-delta.ts +++ b/libs/@hashintel/petrinaut/src/views/SDCPN/hooks/use-firing-delta.ts @@ -4,6 +4,7 @@ import { useEffect, useRef } from "react"; * Hook to track the previous firingCount and compute the delta. */ export function useFiringDelta(firingCount: number | null): number | null { + "use no memo"; // Intentionally reads ref during render — incompatible with React Compiler const prevFiringCountRef = useRef(null); useEffect(() => { diff --git a/libs/@hashintel/petrinaut/turbo.json b/libs/@hashintel/petrinaut/turbo.json index 6d9a1d1f9e5..8f4b0ef1bfa 100644 --- a/libs/@hashintel/petrinaut/turbo.json +++ b/libs/@hashintel/petrinaut/turbo.json @@ -5,6 +5,9 @@ "dependsOn": ["^build"], "outputs": ["dist/**"], "cache": false + }, + "lint:eslint": { + "dependsOn": [] } } } diff --git a/libs/@hashintel/petrinaut/vite.config.ts b/libs/@hashintel/petrinaut/vite.config.ts index aa305fc5e9c..f7cf907aaee 100644 --- a/libs/@hashintel/petrinaut/vite.config.ts +++ b/libs/@hashintel/petrinaut/vite.config.ts @@ -1,4 +1,5 @@ -import react from "@vitejs/plugin-react"; +import babel from "@rolldown/plugin-babel"; +import react, { reactCompilerPreset } from "@vitejs/plugin-react"; import { replacePlugin } from "rolldown/plugins"; import { dts } from "rolldown-plugin-dts"; import { defineConfig, esmExternalRequirePlugin } from "vite"; @@ -73,10 +74,16 @@ export default defineConfig(({ command }) => ({ ], }), - react({ - babel: { - plugins: ["babel-plugin-react-compiler"], - }, + react(), + babel({ + presets: [ + reactCompilerPreset({ + target: "19", + compilationMode: "infer", + // @ts-expect-error - panicThreshold is accepted at runtime + panicThreshold: "critical_errors", + }), + ], }), command === "build" && diff --git a/yarn.lock b/yarn.lock index 91438205e9f..7fc32e3440a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,16 +12,6 @@ __metadata: languageName: node linkType: hard -"@ampproject/remapping@npm:^2.2.0": - version: 2.3.0 - resolution: "@ampproject/remapping@npm:2.3.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed - languageName: node - linkType: hard - "@anthropic-ai/bedrock-sdk@npm:0.26.3": version: 0.26.3 resolution: "@anthropic-ai/bedrock-sdk@npm:0.26.3" @@ -671,6 +661,7 @@ __metadata: use-font-face-observer: "npm:1.3.0" uuid: "npm:13.0.0" wait-on: "npm:9.0.1" + web-worker: "npm:1.4.1" webpack: "npm:5.104.1" languageName: unknown linkType: soft @@ -781,19 +772,20 @@ __metadata: resolution: "@apps/petrinaut-website@workspace:apps/petrinaut-website" dependencies: "@hashintel/petrinaut": "workspace:*" - "@local/eslint": "workspace:*" "@mantine/hooks": "npm:8.3.5" + "@rolldown/plugin-babel": "npm:0.2.1" "@sentry/react": "npm:10.22.0" "@types/react": "npm:19.2.7" "@types/react-dom": "npm:19.2.3" - "@typescript/native-preview": "npm:7.0.0-dev.20260309.1" - "@vitejs/plugin-react": "npm:5.1.4" + "@typescript/native-preview": "npm:7.0.0-dev.20260315.1" + "@vitejs/plugin-react": "npm:6.0.1" babel-plugin-react-compiler: "npm:1.0.0" - eslint: "npm:9.39.3" immer: "npm:10.1.3" + oxlint: "npm:1.55.0" + oxlint-tsgolint: "npm:0.17.0" react: "npm:19.2.3" react-dom: "npm:19.2.3" - vite: "npm:8.0.0-beta.18" + vite: "npm:8.0.0" languageName: unknown linkType: soft @@ -3297,7 +3289,7 @@ __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, @babel/code-frame@npm:^7.29.0": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @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: @@ -3315,29 +3307,6 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.26.0": - version: 7.26.0 - resolution: "@babel/core@npm:7.26.0" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.26.0" - "@babel/generator": "npm:^7.26.0" - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helpers": "npm:^7.26.0" - "@babel/parser": "npm:^7.26.0" - "@babel/template": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.26.0" - 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/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e - languageName: node - linkType: hard - "@babel/core@npm:7.28.4": version: 7.28.4 resolution: "@babel/core@npm:7.28.4" @@ -3361,7 +3330,7 @@ __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, @babel/core@npm:^7.29.0": +"@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.29.0 resolution: "@babel/core@npm:7.29.0" dependencies: @@ -3412,7 +3381,7 @@ __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.29.0": +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.22.9, @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: @@ -3425,7 +3394,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.25.9, @babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": +"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": version: 7.27.3 resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" dependencies: @@ -3434,7 +3403,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.25.9, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2, @babel/helper-compilation-targets@npm:^7.28.6": +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2, @babel/helper-compilation-targets@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-compilation-targets@npm:7.28.6" dependencies: @@ -3519,7 +3488,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3, @babel/helper-module-transforms@npm:^7.28.6": +"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3, @babel/helper-module-transforms@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-transforms@npm:7.28.6" dependencies: @@ -3574,7 +3543,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9, @babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" dependencies: @@ -3630,7 +3599,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.26.0, @babel/helpers@npm:^7.28.4, @babel/helpers@npm:^7.28.6": +"@babel/helpers@npm:^7.28.4, @babel/helpers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helpers@npm:7.28.6" dependencies: @@ -3651,7 +3620,7 @@ __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, @babel/parser@npm:^7.29.0": +"@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.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: @@ -3988,7 +3957,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.25.9, @babel/plugin-syntax-typescript@npm:^7.27.1": +"@babel/plugin-syntax-typescript@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" dependencies: @@ -4675,21 +4644,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-typescript@npm:7.25.9" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - "@babel/plugin-syntax-typescript": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/c607ddb45f7e33cfcb928aad05cb1b18b1ecb564d2329d8f8e427f75192511aa821dee42d26871f1bdffbd883853e150ba81436664646c6e6b13063e65ce1475 - languageName: node - linkType: hard - "@babel/plugin-transform-typescript@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-transform-typescript@npm:7.28.5" @@ -4901,7 +4855,7 @@ __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, @babel/traverse@npm:^7.29.0": +"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.22.8, @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: @@ -5700,19 +5654,6 @@ __metadata: languageName: node linkType: hard -"@dnd-kit/sortable@npm:10.0.0": - version: 10.0.0 - resolution: "@dnd-kit/sortable@npm:10.0.0" - dependencies: - "@dnd-kit/utilities": "npm:^3.2.2" - tslib: "npm:^2.0.0" - peerDependencies: - "@dnd-kit/core": ^6.3.0 - react: ">=16.8.0" - checksum: 10c0/37ee48bc6789fb512dc0e4c374a96d19abe5b2b76dc34856a5883aaa96c3297891b94cc77bbc409e074dcce70967ebcb9feb40cd9abadb8716fc280b4c7f99af - languageName: node - linkType: hard - "@dnd-kit/sortable@npm:7.0.2": version: 7.0.2 resolution: "@dnd-kit/sortable@npm:7.0.2" @@ -8002,50 +7943,42 @@ __metadata: resolution: "@hashintel/petrinaut@workspace:libs/@hashintel/petrinaut" dependencies: "@ark-ui/react": "npm:5.26.2" - "@babel/core": "npm:7.26.0" - "@babel/plugin-transform-typescript": "npm:7.25.9" "@babel/standalone": "npm:7.28.5" - "@dnd-kit/core": "npm:6.3.1" - "@dnd-kit/sortable": "npm:10.0.0" - "@dnd-kit/utilities": "npm:3.2.2" "@fontsource-variable/jetbrains-mono": "npm:5.2.8" "@hashintel/ds-components": "workspace:^" "@hashintel/ds-helpers": "workspace:*" "@hashintel/refractive": "workspace:^" - "@local/eslint": "workspace:*" - "@mantine/hooks": "npm:8.3.5" "@monaco-editor/react": "npm:4.8.0-rc.3" "@pandacss/dev": "npm:1.4.3" - "@storybook/react-vite": "npm:10.2.13" + "@rolldown/plugin-babel": "npm:0.2.1" + "@storybook/react-vite": "npm:10.2.19" "@testing-library/dom": "npm:10.4.1" "@testing-library/react": "npm:16.3.2" "@types/babel__standalone": "npm:7.1.9" - "@types/d3-array": "npm:3.2.2" "@types/d3-scale": "npm:4.0.9" "@types/react": "npm:19.2.7" "@types/react-dom": "npm:19.2.3" - "@typescript/native-preview": "npm:7.0.0-dev.20260309.1" - "@vitejs/plugin-react": "npm:5.1.4" + "@typescript/native-preview": "npm:7.0.0-dev.20260315.1" + "@vitejs/plugin-react": "npm:6.0.1" "@xyflow/react": "npm:12.10.1" babel-plugin-react-compiler: "npm:1.0.0" - d3-array: "npm:3.2.4" d3-scale: "npm:4.0.2" elkjs: "npm:0.11.0" - eslint: "npm:9.39.3" jsdom: "npm:24.1.3" monaco-editor: "npm:0.55.1" + oxlint: "npm:1.55.0" + oxlint-tsgolint: "npm:0.17.0" react: "npm:19.2.3" react-dom: "npm:19.2.3" react-icons: "npm:5.5.0" react-resizable-panels: "npm:4.6.5" - rolldown: "npm:1.0.0-rc.8" - rolldown-plugin-dts: "npm:0.22.4" - storybook: "npm:10.2.13" + rolldown: "npm:1.0.0-rc.9" + rolldown-plugin-dts: "npm:0.22.5" + storybook: "npm:10.2.19" typescript: "npm:5.9.3" uuid: "npm:13.0.0" - vite: "npm:8.0.0-beta.18" - vite-plugin-dts: "npm:4.5.4" - vitest: "npm:4.0.18" + vite: "npm:8.0.0" + vitest: "npm:4.1.0" vscode-languageserver-types: "npm:3.17.5" web-worker: "npm:1.4.1" peerDependencies: @@ -11929,6 +11862,181 @@ __metadata: languageName: node linkType: hard +"@oxlint-tsgolint/darwin-arm64@npm:0.17.0": + version: 0.17.0 + resolution: "@oxlint-tsgolint/darwin-arm64@npm:0.17.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/darwin-x64@npm:0.17.0": + version: 0.17.0 + resolution: "@oxlint-tsgolint/darwin-x64@npm:0.17.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-arm64@npm:0.17.0": + version: 0.17.0 + resolution: "@oxlint-tsgolint/linux-arm64@npm:0.17.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/linux-x64@npm:0.17.0": + version: 0.17.0 + resolution: "@oxlint-tsgolint/linux-x64@npm:0.17.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-arm64@npm:0.17.0": + version: 0.17.0 + resolution: "@oxlint-tsgolint/win32-arm64@npm:0.17.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint-tsgolint/win32-x64@npm:0.17.0": + version: 0.17.0 + resolution: "@oxlint-tsgolint/win32-x64@npm:0.17.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-android-arm-eabi@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.55.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-android-arm64@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-android-arm64@npm:1.55.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-arm64@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.55.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-x64@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.55.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-freebsd-x64@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.55.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-gnueabihf@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.55.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-musleabihf@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.55.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-gnu@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.55.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-musl@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.55.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-ppc64-gnu@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.55.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-gnu@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.55.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-musl@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.55.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-s390x-gnu@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.55.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-gnu@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.55.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-musl@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.55.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-openharmony-arm64@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.55.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-arm64-msvc@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.55.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-ia32-msvc@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.55.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxlint/binding-win32-x64-msvc@npm:1.55.0": + version: 1.55.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.55.0" + conditions: os=win32 & cpu=x64 + 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" @@ -14006,9 +14114,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-android-arm64@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.8" +"@rolldown/binding-android-arm64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.9" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -14027,9 +14135,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.8" +"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.9" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -14048,9 +14156,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-darwin-x64@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.8" +"@rolldown/binding-darwin-x64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.9" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -14069,9 +14177,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.8" +"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.9" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -14090,9 +14198,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.8" +"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.9" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -14111,9 +14219,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.8" +"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.9" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -14132,23 +14240,23 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.8" +"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.9" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.8" +"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.9" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.8" +"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.9" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -14167,9 +14275,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.8" +"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.9" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -14188,9 +14296,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.8" +"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.9" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -14209,9 +14317,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.8" +"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.9" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard @@ -14234,9 +14342,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.8" +"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.9" dependencies: "@napi-rs/wasm-runtime": "npm:^1.1.1" conditions: cpu=wasm32 @@ -14257,9 +14365,9 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.8" +"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.9" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -14278,13 +14386,35 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.8" +"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.9" conditions: os=win32 & cpu=x64 languageName: node linkType: hard +"@rolldown/plugin-babel@npm:0.2.1": + version: 0.2.1 + resolution: "@rolldown/plugin-babel@npm:0.2.1" + dependencies: + picomatch: "npm:^4.0.3" + peerDependencies: + "@babel/core": ^7.29.0 || ^8.0.0-rc.1 + "@babel/plugin-transform-runtime": ^7.29.0 || ^8.0.0-rc.1 + "@babel/runtime": ^7.27.0 || ^8.0.0-rc.1 + rolldown: ^1.0.0-rc.5 + vite: ^8.0.0 + peerDependenciesMeta: + "@babel/plugin-transform-runtime": + optional: true + "@babel/runtime": + optional: true + vite: + optional: true + checksum: 10c0/b58539302de92a5105da903b8c13c57dfc49dc5550db9b5781292d0a355c1e2cf10148e5cdaf5a130fe90037c8b0942dea667a51140d44a6fa4c08d600e419cd + 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" @@ -14313,17 +14443,17 @@ __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 +"@rolldown/pluginutils@npm:1.0.0-rc.7": + version: 1.0.0-rc.7 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.7" + checksum: 10c0/9d5490b5805b25bcd1720ca01c4c032b55a0ef953dab36a8dd42c568e82214576baa464f3027cd5dff3fabcfbe3bf3db2251d12b60220f5d1cd2ffde5ee37082 languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.8" - checksum: 10c0/a451e422ec1b5c867231e13c35f8ca9fda50f56340c76ef75e23c2ece0731ca2fe6393854ca874b0ba326421cced705c752cfb8592e8481397d3b23206b1e8ef +"@rolldown/pluginutils@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.9" + checksum: 10c0/fca488fb96b134ccf95b42632b6112b4abb8b3a9688f166fbd627410def2538ee201953717d234ddecbff62dfe4edc4e72c657b01a9d0750134608d767eea5fd languageName: node linkType: hard @@ -16774,10 +16904,10 @@ __metadata: languageName: node linkType: hard -"@standard-schema/spec@npm:^1.0.0": - version: 1.0.0 - resolution: "@standard-schema/spec@npm:1.0.0" - checksum: 10c0/a1ab9a8bdc09b5b47aa8365d0e0ec40cc2df6437be02853696a0e377321653b0d3ac6f079a8c67d5ddbe9821025584b1fb71d9cc041a6666a96f1fadf2ece15f +"@standard-schema/spec@npm:^1.0.0, @standard-schema/spec@npm:^1.1.0": + version: 1.1.0 + resolution: "@standard-schema/spec@npm:1.1.0" + checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526 languageName: node linkType: hard @@ -16798,16 +16928,16 @@ __metadata: languageName: node linkType: hard -"@storybook/builder-vite@npm:10.2.13": - version: 10.2.13 - resolution: "@storybook/builder-vite@npm:10.2.13" +"@storybook/builder-vite@npm:10.2.19": + version: 10.2.19 + resolution: "@storybook/builder-vite@npm:10.2.19" dependencies: - "@storybook/csf-plugin": "npm:10.2.13" + "@storybook/csf-plugin": "npm:10.2.19" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^10.2.13 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 10c0/0510e57d86ea7f81ba49ffd3643645e94e082f18544bd506bdcd800c003414707d3572c204704dfe429a3e02fa1bdf6111d309abbd20a294200cb9ba87ea7972 + storybook: ^10.2.19 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/9a6345516b85201a6ef61c6f0688d39e6780bb622d50462ae6dd615642be3c1d307582e342a6942cb5e3978a25de32caa9e817f2208335da5cdc03a89ec58875 languageName: node linkType: hard @@ -16824,15 +16954,15 @@ __metadata: languageName: node linkType: hard -"@storybook/csf-plugin@npm:10.2.13": - version: 10.2.13 - resolution: "@storybook/csf-plugin@npm:10.2.13" +"@storybook/csf-plugin@npm:10.2.19": + version: 10.2.19 + resolution: "@storybook/csf-plugin@npm:10.2.19" dependencies: unplugin: "npm:^2.3.5" peerDependencies: esbuild: "*" rollup: "*" - storybook: ^10.2.13 + storybook: ^10.2.19 vite: "*" webpack: "*" peerDependenciesMeta: @@ -16844,7 +16974,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/e799f9630cfc50ef3c85304f74ffb54372e57f291112d7459de99f4fa21da814374807ac6af312141af11f5e0c746963735e1e41566dd62d0ac7eeb8cf0053ba + checksum: 10c0/ea6daa261cf7cd5752919af63c1b68fa97371961f3382cd32f5305e1cea89da2a3198c00ae80f3687c16c2f17e69a95ca1350310cd5f2a72ea4e17aed7296063 languageName: node linkType: hard @@ -16895,14 +17025,14 @@ __metadata: languageName: node linkType: hard -"@storybook/react-dom-shim@npm:10.2.13": - version: 10.2.13 - resolution: "@storybook/react-dom-shim@npm:10.2.13" +"@storybook/react-dom-shim@npm:10.2.19": + version: 10.2.19 + resolution: "@storybook/react-dom-shim@npm:10.2.19" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.2.13 - checksum: 10c0/78c9788748aae81541727e3cfe32dc1c14aef10af0a5c979d307ec1910d15d5105341ce1c2d5d27ae9ad40dec6de6c0c9c85dfbf12f90c14da678eee5581a3cf + storybook: ^10.2.19 + checksum: 10c0/2713f4aee8543c9d3435f8363f5a5d9550455028287e96298471068c031c8c54cebf7254686c3368aed346e2e73dd11980438bf6e5908a4e250473ecb7e789e0 languageName: node linkType: hard @@ -16917,14 +17047,14 @@ __metadata: languageName: node linkType: hard -"@storybook/react-vite@npm:10.2.13": - version: 10.2.13 - resolution: "@storybook/react-vite@npm:10.2.13" +"@storybook/react-vite@npm:10.2.19": + version: 10.2.19 + resolution: "@storybook/react-vite@npm:10.2.19" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": "npm:^0.6.4" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:10.2.13" - "@storybook/react": "npm:10.2.13" + "@storybook/builder-vite": "npm:10.2.19" + "@storybook/react": "npm:10.2.19" empathic: "npm:^2.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^8.0.0" @@ -16933,9 +17063,9 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.2.13 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 10c0/b231b6c393007a34171ed6159a0d0a9b0870ab9058f387f714a6579ba1dbc2b533064dd6d3ba2b2d4ae48ef2b252de14344da9d0f239aee486b2dcaf3f463c66 + storybook: ^10.2.19 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/923da98497d8a078d42f2569d91103c12d87dcffca431bbd97b152110abc0b0d49087c252cc14d568b6a6a0ce0d49462783614eab692c61373d509729a614e43 languageName: node linkType: hard @@ -16961,22 +17091,22 @@ __metadata: languageName: node linkType: hard -"@storybook/react@npm:10.2.13": - version: 10.2.13 - resolution: "@storybook/react@npm:10.2.13" +"@storybook/react@npm:10.2.19": + version: 10.2.19 + resolution: "@storybook/react@npm:10.2.19" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/react-dom-shim": "npm:10.2.13" + "@storybook/react-dom-shim": "npm:10.2.19" react-docgen: "npm:^8.0.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.2.13 + storybook: ^10.2.19 typescript: ">= 4.9.x" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/1b2fe05730605cc785bceb8ca4f538ef69c149d54c7bd9dd6981366c38801c4f632ab2343f3e358b79bde5d0a088f38bba78d9efca169e6369a5b3fbf4153726 + checksum: 10c0/436d2eb5be06cfc96bda1666e3c0edb098d4ec3cfdcb1454f5adab75566ae4b1fbb17a253ec7f3df5895e3222c59f1b890f739d2ebb769082e4f7ce9caace522 languageName: node linkType: hard @@ -18009,7 +18139,7 @@ __metadata: languageName: node linkType: hard -"@types/d3-array@npm:*, @types/d3-array@npm:3.2.2": +"@types/d3-array@npm:*": version: 3.2.2 resolution: "@types/d3-array@npm:3.2.2" checksum: 10c0/6137cb97302f8a4f18ca22c0560c585cfcb823f276b23d89f2c0c005d72697ec13bca671c08e68b4b0cabd622e3f0e91782ee221580d6774074050be96dd7028 @@ -19572,66 +19702,66 @@ __metadata: languageName: node linkType: hard -"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260315.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260315.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260315.1" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260315.1" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260315.1" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260315.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260315.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@typescript/native-preview@npm:7.0.0-dev.20260309.1": - version: 7.0.0-dev.20260309.1 - resolution: "@typescript/native-preview@npm:7.0.0-dev.20260309.1" +"@typescript/native-preview@npm:7.0.0-dev.20260315.1": + version: 7.0.0-dev.20260315.1 + resolution: "@typescript/native-preview@npm:7.0.0-dev.20260315.1" dependencies: - "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260309.1" - "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260309.1" - "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260309.1" - "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260309.1" - "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260309.1" - "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260309.1" - "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260309.1" + "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260315.1" + "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260315.1" + "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260315.1" + "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260315.1" + "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260315.1" + "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260315.1" + "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260315.1" dependenciesMeta: "@typescript/native-preview-darwin-arm64": optional: true @@ -19649,7 +19779,7 @@ __metadata: optional: true bin: tsgo: bin/tsgo.js - checksum: 10c0/55a5e1c1afa2a227a5b095bbcd48c6c7028745a316bff93959c89cced24247277a4d2d4fcf8d43fac6787de67b04031491f427725f145a6ddbc7c263f85585fe + checksum: 10c0/d017002bd72e0993d007f661fee11ccdf56a2067edd5f9f81ed4497e652d4e6aada5e6d9cbb480bd3277226fd385355f0269f2c03093cd11e956768a59cd5318 languageName: node linkType: hard @@ -19877,19 +20007,21 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:5.1.4": - version: 5.1.4 - resolution: "@vitejs/plugin-react@npm:5.1.4" +"@vitejs/plugin-react@npm:6.0.1": + version: 6.0.1 + resolution: "@vitejs/plugin-react@npm:6.0.1" 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" + "@rolldown/pluginutils": "npm:1.0.0-rc.7" peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 10c0/dd7b8f40717ecd4a5ab18f467134ea8135f9a443359333d71e4114aeacfc8b679be9fd36dc12290d076c78883a02e708bfe1f0d93411c06c9659da0879b952e3 + "@rolldown/plugin-babel": ^0.1.7 || ^0.2.0 + babel-plugin-react-compiler: ^1.0.0 + vite: ^8.0.0 + peerDependenciesMeta: + "@rolldown/plugin-babel": + optional: true + babel-plugin-react-compiler: + optional: true + checksum: 10c0/6c42f53a970cb6b0776ba5b4203bb01690ac564c56fca706d4037b50aec965ddc0f11530ab58ab2cd0fbe8c12e14cff6966b22d90391283b4a53294e3ddd478d languageName: node linkType: hard @@ -19994,17 +20126,17 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:4.0.18": - version: 4.0.18 - resolution: "@vitest/expect@npm:4.0.18" +"@vitest/expect@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/expect@npm:4.1.0" dependencies: - "@standard-schema/spec": "npm:^1.0.0" + "@standard-schema/spec": "npm:^1.1.0" "@types/chai": "npm:^5.2.2" - "@vitest/spy": "npm:4.0.18" - "@vitest/utils": "npm:4.0.18" - chai: "npm:^6.2.1" + "@vitest/spy": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" + chai: "npm:^6.2.2" tinyrainbow: "npm:^3.0.3" - checksum: 10c0/123b0aa111682e82ec5289186df18037b1a1768700e468ee0f9879709aaa320cf790463c15c0d8ee10df92b402f4394baf5d27797e604d78e674766d87bcaadc + checksum: 10c0/91cd7bb036401df5dfd9204f3de9a0afdb21dea6ee154622e5ed849e87a0df68b74258d490559c7046d3c03bc7aa634e9b0c166942a21d5e475c86c971486091 languageName: node linkType: hard @@ -20046,6 +20178,25 @@ __metadata: languageName: node linkType: hard +"@vitest/mocker@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/mocker@npm:4.1.0" + dependencies: + "@vitest/spy": "npm:4.1.0" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.21" + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/f61d3df6461008eb1e62ba465172207b29bd0d9866ff6bc88cd40fc99cd5d215ad89e2894ba6de87068e33f75de903b28a65ccc6074edf3de1fbead6a4a369cc + languageName: node + linkType: hard + "@vitest/pretty-format@npm:3.2.4, @vitest/pretty-format@npm:^3.2.4": version: 3.2.4 resolution: "@vitest/pretty-format@npm:3.2.4" @@ -20064,6 +20215,15 @@ __metadata: languageName: node linkType: hard +"@vitest/pretty-format@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/pretty-format@npm:4.1.0" + dependencies: + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/638077f53b5f24ff2d4bc062e69931fa718141db28ddafe435de98a402586b82e8c3cadfc580c0ad233d7f0203aa22d866ac2adca98b83038dbd5423c3d7fe27 + languageName: node + linkType: hard + "@vitest/runner@npm:3.2.4": version: 3.2.4 resolution: "@vitest/runner@npm:3.2.4" @@ -20075,13 +20235,13 @@ __metadata: languageName: node linkType: hard -"@vitest/runner@npm:4.0.18": - version: 4.0.18 - resolution: "@vitest/runner@npm:4.0.18" +"@vitest/runner@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/runner@npm:4.1.0" dependencies: - "@vitest/utils": "npm:4.0.18" + "@vitest/utils": "npm:4.1.0" pathe: "npm:^2.0.3" - checksum: 10c0/fdb4afa411475133c05ba266c8092eaf1e56cbd5fb601f92ec6ccb9bab7ca52e06733ee8626599355cba4ee71cb3a8f28c84d3b69dc972e41047edc50229bc01 + checksum: 10c0/9e09ca1b9070d3fe26c9bd48443d21b9fe2cb9abb2f694300bd9e5065f4e904f7322c07cd4bafadfed6fb11adfb50e4d1535f327ac6d24b6c373e92be90510bc languageName: node linkType: hard @@ -20096,14 +20256,15 @@ __metadata: languageName: node linkType: hard -"@vitest/snapshot@npm:4.0.18": - version: 4.0.18 - resolution: "@vitest/snapshot@npm:4.0.18" +"@vitest/snapshot@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/snapshot@npm:4.1.0" dependencies: - "@vitest/pretty-format": "npm:4.0.18" + "@vitest/pretty-format": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" magic-string: "npm:^0.30.21" pathe: "npm:^2.0.3" - checksum: 10c0/d3bfefa558db9a69a66886ace6575eb96903a5ba59f4d9a5d0fecb4acc2bb8dbb443ef409f5ac1475f2e1add30bd1d71280f98912da35e89c75829df9e84ea43 + checksum: 10c0/582c22988c47a99d93dd17ef660427fefe101f67ae4394b64fe58ec103ddc55fc5993626b4a2b556e0a38d40552abaca78196907455e794805ba197b3d56860f languageName: node linkType: hard @@ -20123,6 +20284,13 @@ __metadata: languageName: node linkType: hard +"@vitest/spy@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/spy@npm:4.1.0" + checksum: 10c0/363776bbffda45af76ff500deacb9b1a35ad8b889462c1be9ebe5f29578ce1dd2c4bd7858c8188614a7db9699a5c802b7beb72e5a18ab5130a70326817961446 + languageName: node + linkType: hard + "@vitest/utils@npm:3.2.4": version: 3.2.4 resolution: "@vitest/utils@npm:3.2.4" @@ -20144,6 +20312,17 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/utils@npm:4.1.0" + dependencies: + "@vitest/pretty-format": "npm:4.1.0" + convert-source-map: "npm:^2.0.0" + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/222afbdef4f680a554bb6c3d946a4a879a441ebfb8597295cb7554d295e0e2624f3d4c2920b5767bbb8961a9f8a16756270ffc84032f5ea432cdce080ccab050 + languageName: node + linkType: hard + "@volar/language-core@npm:2.4.23, @volar/language-core@npm:~2.4.11": version: 2.4.23 resolution: "@volar/language-core@npm:2.4.23" @@ -23624,10 +23803,10 @@ __metadata: languageName: node linkType: hard -"chai@npm:^6.2.1": - version: 6.2.1 - resolution: "chai@npm:6.2.1" - checksum: 10c0/0c2d84392d7c6d44ca5d14d94204f1760e22af68b83d1f4278b5c4d301dabfc0242da70954dd86b1eda01e438f42950de6cf9d569df2103678538e4014abe50b +"chai@npm:^6.2.2": + version: 6.2.2 + resolution: "chai@npm:6.2.2" + checksum: 10c0/e6c69e5f0c11dffe6ea13d0290936ebb68fcc1ad688b8e952e131df6a6d5797d5e860bc55cef1aca2e950c3e1f96daf79e9d5a70fb7dbaab4e46355e2635ed53 languageName: node linkType: hard @@ -25050,7 +25229,7 @@ __metadata: languageName: node linkType: hard -"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:3.2.4": +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3": version: 3.2.4 resolution: "d3-array@npm:3.2.4" dependencies: @@ -28204,10 +28383,10 @@ __metadata: languageName: node linkType: hard -"expect-type@npm:^1.2.1, expect-type@npm:^1.2.2": - version: 1.2.2 - resolution: "expect-type@npm:1.2.2" - checksum: 10c0/6019019566063bbc7a690d9281d920b1a91284a4a093c2d55d71ffade5ac890cf37a51e1da4602546c4b56569d2ad2fc175a2ccee77d1ae06cb3af91ef84f44b +"expect-type@npm:^1.2.1, expect-type@npm:^1.3.0": + version: 1.3.0 + resolution: "expect-type@npm:1.3.0" + checksum: 10c0/8412b3fe4f392c420ab41dae220b09700e4e47c639a29ba7ba2e83cc6cffd2b4926f7ac9e47d7e277e8f4f02acda76fd6931cb81fd2b382fa9477ef9ada953fd languageName: node linkType: hard @@ -33575,9 +33754,9 @@ __metadata: languageName: node linkType: hard -"lightningcss-android-arm64@npm:1.31.1": - version: 1.31.1 - resolution: "lightningcss-android-arm64@npm:1.31.1" +"lightningcss-android-arm64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-android-arm64@npm:1.32.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -33589,9 +33768,9 @@ __metadata: languageName: node linkType: hard -"lightningcss-darwin-arm64@npm:1.31.1": - version: 1.31.1 - resolution: "lightningcss-darwin-arm64@npm:1.31.1" +"lightningcss-darwin-arm64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-darwin-arm64@npm:1.32.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -33603,9 +33782,9 @@ __metadata: languageName: node linkType: hard -"lightningcss-darwin-x64@npm:1.31.1": - version: 1.31.1 - resolution: "lightningcss-darwin-x64@npm:1.31.1" +"lightningcss-darwin-x64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-darwin-x64@npm:1.32.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -33617,9 +33796,9 @@ __metadata: languageName: node linkType: hard -"lightningcss-freebsd-x64@npm:1.31.1": - version: 1.31.1 - resolution: "lightningcss-freebsd-x64@npm:1.31.1" +"lightningcss-freebsd-x64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-freebsd-x64@npm:1.32.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -33631,9 +33810,9 @@ __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" +"lightningcss-linux-arm-gnueabihf@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.32.0" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -33645,9 +33824,9 @@ __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" +"lightningcss-linux-arm64-gnu@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm64-gnu@npm:1.32.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -33659,9 +33838,9 @@ __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" +"lightningcss-linux-arm64-musl@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm64-musl@npm:1.32.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -33673,9 +33852,9 @@ __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" +"lightningcss-linux-x64-gnu@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-x64-gnu@npm:1.32.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -33687,16 +33866,16 @@ __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" +"lightningcss-linux-x64-musl@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-x64-musl@npm:1.32.0" 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" +"lightningcss-win32-arm64-msvc@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-win32-arm64-msvc@npm:1.32.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -33708,9 +33887,9 @@ __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" +"lightningcss-win32-x64-msvc@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-win32-x64-msvc@npm:1.32.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -33752,22 +33931,22 @@ __metadata: languageName: node linkType: hard -"lightningcss@npm:^1.31.1": - version: 1.31.1 - resolution: "lightningcss@npm:1.31.1" +"lightningcss@npm:^1.32.0": + version: 1.32.0 + resolution: "lightningcss@npm:1.32.0" 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" + lightningcss-android-arm64: "npm:1.32.0" + lightningcss-darwin-arm64: "npm:1.32.0" + lightningcss-darwin-x64: "npm:1.32.0" + lightningcss-freebsd-x64: "npm:1.32.0" + lightningcss-linux-arm-gnueabihf: "npm:1.32.0" + lightningcss-linux-arm64-gnu: "npm:1.32.0" + lightningcss-linux-arm64-musl: "npm:1.32.0" + lightningcss-linux-x64-gnu: "npm:1.32.0" + lightningcss-linux-x64-musl: "npm:1.32.0" + lightningcss-win32-arm64-msvc: "npm:1.32.0" + lightningcss-win32-x64-msvc: "npm:1.32.0" dependenciesMeta: lightningcss-android-arm64: optional: true @@ -33791,7 +33970,7 @@ __metadata: optional: true lightningcss-win32-x64-msvc: optional: true - checksum: 10c0/c6754b305d4a73652e472fc0d7d65384a6e16c336ea61068eca60de2a45bd5c30abbf012358b82eac56ee98b5d88028932cda5268ff61967cffa400b9e7ee2ba + checksum: 10c0/70945bd55097af46fc9fab7f5ed09cd5869d85940a2acab7ee06d0117004a1d68155708a2d462531cea2fc3c67aefc9333a7068c80b0b78dd404c16838809e03 languageName: node linkType: hard @@ -37162,6 +37341,108 @@ __metadata: languageName: node linkType: hard +"oxlint-tsgolint@npm:0.17.0": + version: 0.17.0 + resolution: "oxlint-tsgolint@npm:0.17.0" + dependencies: + "@oxlint-tsgolint/darwin-arm64": "npm:0.17.0" + "@oxlint-tsgolint/darwin-x64": "npm:0.17.0" + "@oxlint-tsgolint/linux-arm64": "npm:0.17.0" + "@oxlint-tsgolint/linux-x64": "npm:0.17.0" + "@oxlint-tsgolint/win32-arm64": "npm:0.17.0" + "@oxlint-tsgolint/win32-x64": "npm:0.17.0" + dependenciesMeta: + "@oxlint-tsgolint/darwin-arm64": + optional: true + "@oxlint-tsgolint/darwin-x64": + optional: true + "@oxlint-tsgolint/linux-arm64": + optional: true + "@oxlint-tsgolint/linux-x64": + optional: true + "@oxlint-tsgolint/win32-arm64": + optional: true + "@oxlint-tsgolint/win32-x64": + optional: true + bin: + tsgolint: bin/tsgolint.js + checksum: 10c0/8a01a5bfad70a66fea3ca94d38aad8af1fdcc8ed7a2ca7b24d1a975de906c3d2bc7b4616c83411141429da4b13d72b26b02a3526d8d34933a0b2839d8aa7b66a + languageName: node + linkType: hard + +"oxlint@npm:1.55.0": + version: 1.55.0 + resolution: "oxlint@npm:1.55.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.55.0" + "@oxlint/binding-android-arm64": "npm:1.55.0" + "@oxlint/binding-darwin-arm64": "npm:1.55.0" + "@oxlint/binding-darwin-x64": "npm:1.55.0" + "@oxlint/binding-freebsd-x64": "npm:1.55.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.55.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.55.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.55.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.55.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.55.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.55.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.55.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.55.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.55.0" + "@oxlint/binding-linux-x64-musl": "npm:1.55.0" + "@oxlint/binding-openharmony-arm64": "npm:1.55.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.55.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.55.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.55.0" + peerDependencies: + oxlint-tsgolint: ">=0.15.0" + dependenciesMeta: + "@oxlint/binding-android-arm-eabi": + optional: true + "@oxlint/binding-android-arm64": + optional: true + "@oxlint/binding-darwin-arm64": + optional: true + "@oxlint/binding-darwin-x64": + optional: true + "@oxlint/binding-freebsd-x64": + optional: true + "@oxlint/binding-linux-arm-gnueabihf": + optional: true + "@oxlint/binding-linux-arm-musleabihf": + optional: true + "@oxlint/binding-linux-arm64-gnu": + optional: true + "@oxlint/binding-linux-arm64-musl": + optional: true + "@oxlint/binding-linux-ppc64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-musl": + optional: true + "@oxlint/binding-linux-s390x-gnu": + optional: true + "@oxlint/binding-linux-x64-gnu": + optional: true + "@oxlint/binding-linux-x64-musl": + optional: true + "@oxlint/binding-openharmony-arm64": + optional: true + "@oxlint/binding-win32-arm64-msvc": + optional: true + "@oxlint/binding-win32-ia32-msvc": + optional: true + "@oxlint/binding-win32-x64-msvc": + optional: true + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + bin: + oxlint: bin/oxlint + checksum: 10c0/ea0a16c2c70c2756ff30ade960e98892b6687c13defdfb4b7a92f8e5396d636ce35815c71f878eb28822cf26f0be9b5600e80313a0d03a37822c21a533b10571 + languageName: node + linkType: hard + "p-cancelable@npm:^2.0.0": version: 2.1.1 resolution: "p-cancelable@npm:2.1.1" @@ -38391,7 +38672,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.5.6, postcss@npm:^8.3.11, postcss@npm:^8.4.14, postcss@npm:^8.4.33, postcss@npm:^8.5.1, postcss@npm:^8.5.3, postcss@npm:^8.5.6": +"postcss@npm:8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -38402,6 +38683,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.3.11, postcss@npm:^8.4.14, postcss@npm:^8.4.33, postcss@npm:^8.5.1, postcss@npm:^8.5.3, postcss@npm:^8.5.6, postcss@npm:^8.5.8": + version: 8.5.8 + resolution: "postcss@npm:8.5.8" + dependencies: + nanoid: "npm:^3.3.11" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c + languageName: node + linkType: hard + "postgres-array@npm:^3.0.1": version: 3.0.2 resolution: "postgres-array@npm:3.0.2" @@ -39499,7 +39791,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 @@ -40645,9 +40937,9 @@ __metadata: languageName: node linkType: hard -"rolldown-plugin-dts@npm:0.22.4": - version: 0.22.4 - resolution: "rolldown-plugin-dts@npm:0.22.4" +"rolldown-plugin-dts@npm:0.22.5": + version: 0.22.5 + resolution: "rolldown-plugin-dts@npm:0.22.5" dependencies: "@babel/generator": "npm:8.0.0-rc.2" "@babel/helper-validator-identifier": "npm:8.0.0-rc.2" @@ -40673,7 +40965,7 @@ __metadata: optional: true vue-tsc: optional: true - checksum: 10c0/2ddc8f421d2b2811546f0cbbb4e4efd7515ebecc11cc0fc3a7d6444f36816759e79582999b0973b3ef520c3fb09318c2c846a3bd3f8550defb3c2447fc94d88b + checksum: 10c0/43940457abc0576833a50da2fe90d4993f5b4171910875da1d540954ba14aac9b41e72920caa11c1ffee0e439c0bd5b950706036f56c7220c5ad7cf178559236 languageName: node linkType: hard @@ -40812,27 +41104,27 @@ __metadata: languageName: node linkType: hard -"rolldown@npm:1.0.0-rc.8": - version: 1.0.0-rc.8 - resolution: "rolldown@npm:1.0.0-rc.8" +"rolldown@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "rolldown@npm:1.0.0-rc.9" dependencies: "@oxc-project/types": "npm:=0.115.0" - "@rolldown/binding-android-arm64": "npm:1.0.0-rc.8" - "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.8" - "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.8" - "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.8" - "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.8" - "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.8" - "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.8" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.8" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.8" - "@rolldown/pluginutils": "npm:1.0.0-rc.8" + "@rolldown/binding-android-arm64": "npm:1.0.0-rc.9" + "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.9" + "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.9" + "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.9" + "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.9" + "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.9" + "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.9" + "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.9" + "@rolldown/pluginutils": "npm:1.0.0-rc.9" dependenciesMeta: "@rolldown/binding-android-arm64": optional: true @@ -40866,7 +41158,7 @@ __metadata: optional: true bin: rolldown: bin/cli.mjs - checksum: 10c0/791354cc0248e4cd9c303b311041995a99631f6136bc3f63b080d840caff2519fbdad0ed3594f4667d50101859a887cddd265a5b3795193714e8ec8f3005f261 + checksum: 10c0/d19af14dccf569dc25c0c3c2f1142b7a6f7cec291d55bba80cea71099f89c6d634145bb1b6487626ddd41d578f183f7065ed68067e49d2b964ad6242693b0f79 languageName: node linkType: hard @@ -42324,13 +42616,20 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.10.0, std-env@npm:^3.9.0": +"std-env@npm:^3.9.0": version: 3.10.0 resolution: "std-env@npm:3.10.0" checksum: 10c0/1814927a45004d36dde6707eaf17552a546769bc79a6421be2c16ce77d238158dfe5de30910b78ec30d95135cc1c59ea73ee22d2ca170f8b9753f84da34c427f languageName: node linkType: hard +"std-env@npm:^4.0.0-rc.1": + version: 4.0.0 + resolution: "std-env@npm:4.0.0" + checksum: 10c0/63b1716eae27947adde49e21b7225a0f75fb2c3d410273ae9de8333c07c7d5fc7a0628ae4c8af6b4b49b4274ed46c2bf118ed69b64f1261c9d8213d76ed1c16c + languageName: node + linkType: hard + "stop-iteration-iterator@npm:^1.1.0": version: 1.1.0 resolution: "stop-iteration-iterator@npm:1.1.0" @@ -42348,9 +42647,9 @@ __metadata: languageName: node linkType: hard -"storybook@npm:10.2.13": - version: 10.2.13 - resolution: "storybook@npm:10.2.13" +"storybook@npm:10.2.19": + version: 10.2.19 + resolution: "storybook@npm:10.2.19" dependencies: "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^2.0.1" @@ -42371,7 +42670,7 @@ __metadata: optional: true bin: storybook: ./dist/bin/dispatcher.js - checksum: 10c0/5ca338b707c3e7e94c16ecdcb00ca3c450157dceec758c15c416649e346e628a0e034d2265656650fc4fee4680631de7cc588e1a244e42cbb41af9416281a998 + checksum: 10c0/e2cff3bc713c5a70c8f5f4193cca698d3588382d8277c017f63b957d6f5ab8e4cb1aa3ab00479cf568af732c25a58a4e1c1b25facd828ad492df0b3ae043378c languageName: node linkType: hard @@ -45262,16 +45561,16 @@ __metadata: languageName: node linkType: hard -"vite@npm:8.0.0-beta.18": - version: 8.0.0-beta.18 - resolution: "vite@npm:8.0.0-beta.18" +"vite@npm:8.0.0, vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0-0": + version: 8.0.0 + resolution: "vite@npm:8.0.0" dependencies: "@oxc-project/runtime": "npm:0.115.0" fsevents: "npm:~2.3.3" - lightningcss: "npm:^1.31.1" + lightningcss: "npm:^1.32.0" picomatch: "npm:^4.0.3" - postcss: "npm:^8.5.6" - rolldown: "npm:1.0.0-rc.8" + postcss: "npm:^8.5.8" + rolldown: "npm:1.0.0-rc.9" tinyglobby: "npm:^0.2.15" peerDependencies: "@types/node": ^20.19.0 || >=22.12.0 @@ -45316,11 +45615,11 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/b96e38e49032ac4290c314fe0e13dc7e8e3cbad046b9242b069e090e63f01a6e3b90501d63cc921b52d06466e09deb50bd7f6f7c09b9fa9902107f560bcde64d + checksum: 10c0/2246d3d54788dcd53c39da82da3f934a760756642ba9a575c84c5ef9f310bc47697f7f9fde6721fa566675e93e408736b4ac068008d2ddbd75b0ed99c7fd4c67 languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0, vite@npm:^6.0.0 || ^7.0.0": +"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0": version: 7.1.12 resolution: "vite@npm:7.1.12" dependencies: @@ -45504,40 +45803,41 @@ __metadata: languageName: node linkType: hard -"vitest@npm:4.0.18, vitest@npm:^4.0.16": - version: 4.0.18 - resolution: "vitest@npm:4.0.18" - dependencies: - "@vitest/expect": "npm:4.0.18" - "@vitest/mocker": "npm:4.0.18" - "@vitest/pretty-format": "npm:4.0.18" - "@vitest/runner": "npm:4.0.18" - "@vitest/snapshot": "npm:4.0.18" - "@vitest/spy": "npm:4.0.18" - "@vitest/utils": "npm:4.0.18" - es-module-lexer: "npm:^1.7.0" - expect-type: "npm:^1.2.2" +"vitest@npm:4.1.0, vitest@npm:^4.0.16": + version: 4.1.0 + resolution: "vitest@npm:4.1.0" + dependencies: + "@vitest/expect": "npm:4.1.0" + "@vitest/mocker": "npm:4.1.0" + "@vitest/pretty-format": "npm:4.1.0" + "@vitest/runner": "npm:4.1.0" + "@vitest/snapshot": "npm:4.1.0" + "@vitest/spy": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" + es-module-lexer: "npm:^2.0.0" + expect-type: "npm:^1.3.0" magic-string: "npm:^0.30.21" obug: "npm:^2.1.1" pathe: "npm:^2.0.3" picomatch: "npm:^4.0.3" - std-env: "npm:^3.10.0" + std-env: "npm:^4.0.0-rc.1" tinybench: "npm:^2.9.0" tinyexec: "npm:^1.0.2" tinyglobby: "npm:^0.2.15" tinyrainbow: "npm:^3.0.3" - vite: "npm:^6.0.0 || ^7.0.0" + vite: "npm:^6.0.0 || ^7.0.0 || ^8.0.0-0" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@opentelemetry/api": ^1.9.0 "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 - "@vitest/browser-playwright": 4.0.18 - "@vitest/browser-preview": 4.0.18 - "@vitest/browser-webdriverio": 4.0.18 - "@vitest/ui": 4.0.18 + "@vitest/browser-playwright": 4.1.0 + "@vitest/browser-preview": 4.1.0 + "@vitest/browser-webdriverio": 4.1.0 + "@vitest/ui": 4.1.0 happy-dom: "*" jsdom: "*" + vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 peerDependenciesMeta: "@edge-runtime/vm": optional: true @@ -45557,9 +45857,11 @@ __metadata: optional: true jsdom: optional: true + vite: + optional: false bin: vitest: vitest.mjs - checksum: 10c0/b913cd32032c95f29ff08c931f4b4c6fd6d2da498908d6770952c561a1b8d75c62499a1f04cadf82fb89cc0f9a33f29fb5dfdb899f6dbb27686a9d91571be5fa + checksum: 10c0/48048e4391e4e8190aa12b1c868bef4ad8d346214631b4506e0dc1f3241ecb8bcb24f296c38a7d98eae712a042375ae209da4b35165db38f9a9bc79a3a9e2a04 languageName: node linkType: hard