From 31b544bc1a8ff9ec88af449b52e8a7b3a7fc5642 Mon Sep 17 00:00:00 2001 From: Thomas Plumpton Date: Thu, 3 Apr 2025 20:28:14 +0100 Subject: [PATCH 1/3] chore(log): cleared 2 roadmap items and updated package-lock.json --- README.md | 2 -- package-lock.json | 58 +++++++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 127b524c..1a218b5c 100644 --- a/README.md +++ b/README.md @@ -309,13 +309,11 @@ All components have optional props to further configure the log. - Can Zustand help us here to reduce re-renders with GitContext Provider? - Expose component override props for things like CommitNode, CommitMessage etc. - Straight line prop to turn curves into right angles? -- Node size parameter to make the graph even more compact as it will reduce the minimum column width - Line curve radius prop? - Fix React docgen in Storybook controls as its not showing the JSDoc from the interface props - Extract ThemeContext - Mobile responsiveness for the demo site - Add graph render strategy with a second option to use 2d rendering context (html canvas) -- Graph direction? Right now its renders left-right, but do want to invert it in the y-axis? - Add eslint to pipeline - Update the WIP comment in the index pseudo commit to show files added/edited etc. - Add in prop to show-hide the index pseudo commit diff --git a/package-lock.json b/package-lock.json index 71586d6a..cf3dd45e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11695,30 +11695,30 @@ "@tomplum/react-git-log": "*", "classnames": "^2.5.1", "dayjs": "^1.11.13", - "react": "^19.1.0", - "react-dom": "^19.1.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.5", - "@storybook/addon-docs": "^8.6.12", - "@storybook/addon-essentials": "^8.6.12", - "@storybook/blocks": "^8.6.12", - "@storybook/experimental-addon-test": "^8.6.12", - "@storybook/react": "^8.6.12", - "@storybook/react-vite": "^8.6.12", - "@storybook/test": "^8.6.12", - "@tanstack/react-query": "^5.71.5", - "@types/react": "^19.1.0", - "@types/react-dom": "^19.1.1", + "@storybook/addon-docs": "^8.6.6", + "@storybook/addon-essentials": "^8.6.6", + "@storybook/blocks": "^8.6.4", + "@storybook/experimental-addon-test": "^8.6.6", + "@storybook/react": "^8.6.4", + "@storybook/react-vite": "^8.6.4", + "@storybook/test": "^8.6.4", + "@tanstack/react-query": "^5.70.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", "gh-pages": "^6.3.0", "playwright": "^1.51.0", - "storybook": "^8.6.12", + "storybook": "^8.6.4", "typescript": "~5.7.2", "typescript-eslint": "^8.24.1", - "vite": "^6.2.5", + "vite": "^6.2.0", "vite-plugin-svgr": "^4.3.0", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.1.1" + "vitest": "^3.0.9" } }, "packages/demo/node_modules/react": { @@ -11772,36 +11772,40 @@ "dayjs": "^1.11.13", "fastpriorityqueue": "^0.7.5", "node-interval-tree": "^2.1.2", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0", "react-tiny-popover": "^8.1.6" }, "devDependencies": { "@testing-library/dom": "^10.4.0", - "@testing-library/react": "^16.3.0", + "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.6.1", - "@types/node": "^22.14.0", - "@types/react": "^19.1.0", - "@types/react-dom": "^19.1.1", + "@types/node": "^22.13.10", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@vitejs/plugin-react-swc": "^3.8.0", - "@vitest/browser": "^3.1.1", - "@vitest/coverage-v8": "^3.1.1", - "@vitest/ui": "^3.1.1", + "@vitest/browser": "^3.0.9", + "@vitest/coverage-v8": "^3.0.9", + "@vitest/ui": "^3.0.9", "globals": "^16.0.0", "jsdom": "^26.0.0", - "sass": "^1.86.2", + "sass": "^1.85.1", "typescript": "~5.7.2", - "vite": "^6.2.5", + "vite": "^6.2.0", "vite-bundle-analyzer": "^0.18.1", "vite-plugin-dts": "^4.5.3", "vite-plugin-lib-inject-css": "^2.2.1", "vite-plugin-svgr": "^4.3.0", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.1.1" + "vitest": "^3.0.9" }, "engines": { "node": ">=18.0.0" }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + }, "peerDependenciesMeta": { "react": { "optional": true From fcd1cfaeb083b967f9be4917ebf7c339fb20c539 Mon Sep 17 00:00:00 2001 From: Thomas Plumpton Date: Thu, 3 Apr 2025 21:36:28 +0100 Subject: [PATCH 2/3] Revert "fix(deps): update all non-major dependencies" This reverts commit 02713bd1 --- package-lock.json | 821 ++++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 324 insertions(+), 499 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf3dd45e..a52eb1aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", - "eslint-plugin-storybook": "^0.12.0", + "eslint-plugin-storybook": "^0.11.4", "typescript-eslint": "^8.24.1" } }, @@ -541,8 +541,6 @@ "integrity": "sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "cookie": "^0.7.2" } @@ -553,8 +551,6 @@ "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "statuses": "^2.0.1" } @@ -565,8 +561,6 @@ "integrity": "sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "@types/tough-cookie": "^4.0.5", "tough-cookie": "^4.1.4" @@ -578,8 +572,6 @@ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "license": "BSD-3-Clause", - "optional": true, - "peer": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -596,8 +588,6 @@ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 4.0.0" } @@ -1434,8 +1424,6 @@ "integrity": "sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@inquirer/core": "^10.1.9", "@inquirer/type": "^3.0.5" @@ -1458,8 +1446,6 @@ "integrity": "sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@inquirer/figures": "^1.0.11", "@inquirer/type": "^3.0.5", @@ -1487,9 +1473,7 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@inquirer/core/node_modules/string-width": { "version": "4.2.3", @@ -1497,8 +1481,6 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1514,8 +1496,6 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1529,8 +1509,6 @@ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1546,8 +1524,6 @@ "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">=18" } @@ -1558,8 +1534,6 @@ "integrity": "sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">=18" }, @@ -1852,8 +1826,6 @@ "integrity": "sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@open-draft/deferred-promise": "^2.2.0", "@open-draft/logger": "^0.3.0", @@ -1909,9 +1881,7 @@ "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@open-draft/logger": { "version": "0.3.0", @@ -1919,8 +1889,6 @@ "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "is-node-process": "^1.2.0", "outvariant": "^1.4.0" @@ -1931,9 +1899,7 @@ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@parcel/watcher": { "version": "2.5.1", @@ -2743,9 +2709,9 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.6.12.tgz", - "integrity": "sha512-B5kfiRvi35oJ0NIo53CGH66H471A3XTzrfaa6SxXEJsgxxSeKScG5YeXcCvLiZfvANRQ7QDsmzPUgg0o3hdMXw==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.6.8.tgz", + "integrity": "sha512-ZTlbWMTosU6kyBeJmZUA3gsMl5iiztAJ2+hE/KhxBTdEpPl2xVWxmkv8iLFmmic6MW4WIvCzVg5Qth+rJlFMzw==", "dev": true, "license": "MIT", "dependencies": { @@ -2760,13 +2726,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.6.12.tgz", - "integrity": "sha512-lmIAma9BiiCTbJ8YfdZkXjpnAIrOUcgboLkt1f6XJ78vNEMnLNzD9gnh7Tssz1qrqvm34v9daDjIb+ggdiKp3Q==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.6.8.tgz", + "integrity": "sha512-ciXOb9u9Te5XXAnE65ByaTmWfDRvMerYTZZLen1ekzN0bZonL9G3/ptkz6vzuWFv1tjytq6cbea1QZlBVBGd0A==", "dev": true, "license": "MIT", "dependencies": { @@ -2779,13 +2745,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-controls": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.6.12.tgz", - "integrity": "sha512-9VSRPJWQVb9wLp21uvpxDGNctYptyUX0gbvxIWOHMH3R2DslSoq41lsC/oQ4l4zSHVdL+nq8sCTkhBxIsjKqdQ==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.6.8.tgz", + "integrity": "sha512-rgV0EdxmqL7HWm8W8ractgcB7WjLktWPgruDJTcHMvdVbpPDP7y3+xNivZs1IqTFV4uA6GS2pPuhzBjwppwtKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2798,20 +2764,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-docs": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.6.12.tgz", - "integrity": "sha512-kEezQjAf/p3SpDzLABgg4fbT48B6dkT2LiZCKTRmCrJVtuReaAr4R9MMM6Jsph6XjbIj/SvOWf3CMeOPXOs9sg==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.6.8.tgz", + "integrity": "sha512-grtXbIzkgypOuHqeVUIhInBNogDDjTSQ9G2EHnH6EYv7lLII6cX3crZp5Ugxax3M0UX1KnQxcKb7LfUpl0Ev/g==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.6.12", - "@storybook/csf-plugin": "8.6.12", - "@storybook/react-dom-shim": "8.6.12", + "@storybook/blocks": "8.6.8", + "@storybook/csf-plugin": "8.6.8", + "@storybook/react-dom-shim": "8.6.8", "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", "ts-dedent": "^2.0.0" @@ -2821,25 +2787,25 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-essentials": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.6.12.tgz", - "integrity": "sha512-Y/7e8KFlttaNfv7q2zoHMPdX6hPXHdsuQMAjYl5NG9HOAJREu4XBy4KZpbcozRe4ApZ78rYsN/MO1EuA+bNMIA==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.6.8.tgz", + "integrity": "sha512-+lv8gSvwMTjjJRjHKIEdifVciB2/9nZ9x6HBwQRhuwVaalIzEV7od6MGJGI6g7uDiTW/hARSM8tCgw1hCzsP0g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-actions": "8.6.12", - "@storybook/addon-backgrounds": "8.6.12", - "@storybook/addon-controls": "8.6.12", - "@storybook/addon-docs": "8.6.12", - "@storybook/addon-highlight": "8.6.12", - "@storybook/addon-measure": "8.6.12", - "@storybook/addon-outline": "8.6.12", - "@storybook/addon-toolbars": "8.6.12", - "@storybook/addon-viewport": "8.6.12", + "@storybook/addon-actions": "8.6.8", + "@storybook/addon-backgrounds": "8.6.8", + "@storybook/addon-controls": "8.6.8", + "@storybook/addon-docs": "8.6.8", + "@storybook/addon-highlight": "8.6.8", + "@storybook/addon-measure": "8.6.8", + "@storybook/addon-outline": "8.6.8", + "@storybook/addon-toolbars": "8.6.8", + "@storybook/addon-viewport": "8.6.8", "ts-dedent": "^2.0.0" }, "funding": { @@ -2847,13 +2813,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-highlight": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.6.12.tgz", - "integrity": "sha512-9FITVxdoycZ+eXuAZL9ElWyML/0fPPn9UgnnAkrU7zkMi+Segq/Tx7y+WWanC5zfWZrXAuG6WTOYEXeWQdm//w==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.6.8.tgz", + "integrity": "sha512-RBsnz7oquZtZMhXr8lqVYu7oU4RNslwhz69IOj6iM+WIgT0ZB51gxCWH/zxibivwb/zDb2LNeAYc2n8u53LyYw==", "dev": true, "license": "MIT", "dependencies": { @@ -2864,13 +2830,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-measure": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.6.12.tgz", - "integrity": "sha512-tACmwqqOvutaQSduw8SMb62wICaT1rWaHtMN3vtWXuxgDPSdJQxLP+wdVyRYMAgpxhLyIO7YRf++Hfha9RHgFg==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.6.8.tgz", + "integrity": "sha512-cRnxYhAuEOGPzfxaggOQr7cpOrqMfM73hozH1TvgnYTuCaiqGHyQLCv4DD1a5ikomKhhEsgmANVI2NfwNp9dCg==", "dev": true, "license": "MIT", "dependencies": { @@ -2882,13 +2848,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-outline": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.6.12.tgz", - "integrity": "sha512-1ylwm+n1s40S91No0v9T4tCjZORu3GbnjINlyjYTDLLhQHyBQd3nWR1Y1eewU4xH4cW9SnSLcMQFS/82xHqU6A==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.6.8.tgz", + "integrity": "sha512-Zz+/ctGgp8qbml9yB4D/KrBYaHl51TJ733bfhdCWcs2vGySUDMP+FV0f5AFr6kL2mAO1ECkppBboP8cUvAPslw==", "dev": true, "license": "MIT", "dependencies": { @@ -2900,13 +2866,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.6.12.tgz", - "integrity": "sha512-HEcSzo1DyFtIu5/ikVOmh5h85C1IvK9iFKSzBR6ice33zBOaehVJK+Z5f487MOXxPsZ63uvWUytwPyViGInj+g==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.6.8.tgz", + "integrity": "sha512-E848JdbXO6CKNN/cHyovbB7OU+FxMaQy6s3xTF4yEx9zoFgaaC+Gm3AZnFdOdfZx6tuy2wvzzIrKBCEiAZktGA==", "dev": true, "license": "MIT", "funding": { @@ -2914,13 +2880,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/addon-viewport": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.6.12.tgz", - "integrity": "sha512-EXK2LArAnABsPP0leJKy78L/lbMWow+EIJfytEP5fHaW4EhMR6h7Hzaqzre6U0IMMr/jVFa1ci+m0PJ0eQc2bw==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.6.8.tgz", + "integrity": "sha512-SWhuPBYkZi5ReMvXfE+qu+trydkXz83XqDwjC8cCa/yi2SjQFxcJC66paHjPM+3SNIShVZhw3gnB9mbzZ4Yohg==", "dev": true, "license": "MIT", "dependencies": { @@ -2931,13 +2897,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/blocks": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.12.tgz", - "integrity": "sha512-DohlTq6HM1jDbHYiXL4ZvZ00VkhpUp5uftzj/CZDLY1fYHRjqtaTwWm2/OpceivMA8zDitLcq5atEZN+f+siTg==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.6.8.tgz", + "integrity": "sha512-m52Xyb/bKlbkwJ8KwhHLI8lKVs9rjYciAbIq6L0OLvK6k9b+uRDLaNihvp2W45YkGea1M8259uhZu1toNgK49w==", "dev": true, "license": "MIT", "dependencies": { @@ -2951,7 +2917,7 @@ "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": "^8.6.12" + "storybook": "^8.6.8" }, "peerDependenciesMeta": { "react": { @@ -2963,13 +2929,13 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.6.12.tgz", - "integrity": "sha512-Gju21ud/3Qw4v2vLNaa5SuJECsI9ICNRr2G0UyCCzRvCHg8jpA9lDReu2NqhLDyFIuDG+ZYT38gcaHEUoNQ8KQ==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.6.8.tgz", + "integrity": "sha512-I/lmoCWvbkCSa//nnWn75Hbp+D/+JddhSk7y4W4Of0Tq7o6GqKsj7dzH2w1JN4v8ItEZSlz5dXFJksLZBz0mbg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf-plugin": "8.6.12", + "@storybook/csf-plugin": "8.6.8", "browser-assert": "^1.2.1", "ts-dedent": "^2.0.0" }, @@ -2978,14 +2944,14 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12", + "storybook": "^8.6.8", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@storybook/components": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.6.12.tgz", - "integrity": "sha512-FiaE8xvCdvKC2arYusgtlDNZ77b8ysr8njAYQZwwaIHjy27TbR2tEpLDCmUwSbANNmivtc/xGEiDDwcNppMWlQ==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.6.8.tgz", + "integrity": "sha512-zfJcNEDrhJYFMKw6fPeeOVYqDh9cUl7Og3p+mVtMFA31ShPIlz8JFXEmMOODGalT4yLakZgFHWcp9MZn9TFUXg==", "dev": true, "license": "MIT", "funding": { @@ -2997,13 +2963,13 @@ } }, "node_modules/@storybook/core": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.12.tgz", - "integrity": "sha512-t+ZuDzAlsXKa6tLxNZT81gEAt4GNwsKP/Id2wluhmUWD/lwYW0uum1JiPUuanw8xD6TdakCW/7ULZc7aQUBLCQ==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.8.tgz", + "integrity": "sha512-CZhLIAGNRJlmf9eQ70ATgNc/MNXKIS/nvN3jiGWkp5oN69OSiqzdLukxsuZdCPUtj7gtF0XTESQ7wkkZgkYXoQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/theming": "8.6.12", + "@storybook/theming": "8.6.8", "better-opn": "^3.0.2", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", @@ -3039,9 +3005,9 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.6.12.tgz", - "integrity": "sha512-6s8CnP1aoKPb3XtC0jRLUp8M5vTA8RhGAwQDKUsFpCC7g89JR9CaKs9FY2ZSzsNbjR15uASi7b3K8BzeYumYQg==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.6.8.tgz", + "integrity": "sha512-0HEZgtk1bbWRJSFI4LZFgVW+WFI9ZTvnmtgrWysqXd/+CFJCSaAKaO+0eR/8UAAtNmkI7fM1N5BhIwJuPYnVOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3052,20 +3018,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/experimental-addon-test": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/experimental-addon-test/-/experimental-addon-test-8.6.12.tgz", - "integrity": "sha512-auc8Ql0buH0WeaKVuSSuabxIiBWvqvAyxtXCm1sVMkL68GwrX3cmpNMwviz3mvKvM//F8zKi/31HMl1PZ5UnIA==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/experimental-addon-test/-/experimental-addon-test-8.6.8.tgz", + "integrity": "sha512-S/24qEg/bkCCNUXEDOl8pyAjrmVn/o/Xju2nU9qt1WUPEqOwmEqG827lcOzA9WaH23whxu4G2Qp3cNQVMspQ+Q==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.12", - "@storybook/instrumenter": "8.6.12", - "@storybook/test": "8.6.12", + "@storybook/instrumenter": "8.6.8", + "@storybook/test": "8.6.8", "polished": "^4.2.2", "prompts": "^2.4.0", "ts-dedent": "^2.2.0" @@ -3077,7 +3043,7 @@ "peerDependencies": { "@vitest/browser": "^2.1.1 || ^3.0.0", "@vitest/runner": "^2.1.1 || ^3.0.0", - "storybook": "^8.6.12", + "storybook": "^8.6.8", "vitest": "^2.1.1 || ^3.0.0" }, "peerDependenciesMeta": { @@ -3114,9 +3080,9 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.12.tgz", - "integrity": "sha512-VK5fYAF8jMwWP/u3YsmSwKGh+FeSY8WZn78flzRUwirp2Eg1WWjsqPRubAk7yTpcqcC/km9YMF3KbqfzRv2s/A==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.8.tgz", + "integrity": "sha512-FgfIINbA5svlIIBMc+q4hdIEdLRT+8i6R76BUeKj5btD8tYxWY4LywMeItZx8uyaFGFjYlFdMKnyXCmSnFXnaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3128,13 +3094,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/manager-api": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.6.12.tgz", - "integrity": "sha512-O0SpISeJLNTQvhSBOsWzzkCgs8vCjOq1578rwqHlC6jWWm4QmtfdyXqnv7rR1Hk08kQ+Dzqh0uhwHx0nfwy4nQ==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.6.8.tgz", + "integrity": "sha512-MTyMYRXSP0iRE5xaFCNdD8ZBrhtJXTDNhQTWsjZQBmYgA94mf6FHSzsgGgOQp/sqTPzONZpBCrw7Y0aY8zxHKw==", "dev": true, "license": "MIT", "funding": { @@ -3146,9 +3112,9 @@ } }, "node_modules/@storybook/preview-api": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.6.12.tgz", - "integrity": "sha512-84FE3Hrs0AYKHqpDZOwx1S/ffOfxBdL65lhCoeI8GoWwCkzwa9zEP3kvXBo/BnEDO7nAfxvMhjASTZXbKRJh5Q==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.6.8.tgz", + "integrity": "sha512-c5Hc6Knmun+aBEesEjD+5LPuqFTQMCSLg+zS41JncH7B+agrUiihX3opma4OVZ4GibWIIq1YvIeXBLqj1MoIUw==", "dev": true, "license": "MIT", "funding": { @@ -3160,18 +3126,18 @@ } }, "node_modules/@storybook/react": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.6.12.tgz", - "integrity": "sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.6.8.tgz", + "integrity": "sha512-UVP+vuVrgC9CgUp2ZKQs3ch2JzImGAUbVUpmb+GMAOGD3DGAf9iP7qldIZc5rrNw/jNyTFTo4oX6XnXrWgOCVg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/components": "8.6.12", + "@storybook/components": "8.6.8", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "8.6.12", - "@storybook/preview-api": "8.6.12", - "@storybook/react-dom-shim": "8.6.12", - "@storybook/theming": "8.6.12" + "@storybook/manager-api": "8.6.8", + "@storybook/preview-api": "8.6.8", + "@storybook/react-dom-shim": "8.6.8", + "@storybook/theming": "8.6.8" }, "engines": { "node": ">=18.0.0" @@ -3181,10 +3147,10 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/test": "8.6.12", + "@storybook/test": "8.6.8", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.12", + "storybook": "^8.6.8", "typescript": ">= 4.2.x" }, "peerDependenciesMeta": { @@ -3197,9 +3163,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.6.12.tgz", - "integrity": "sha512-51QvoimkBzYs8s3rCYnY5h0cFqLz/Mh0vRcughwYaXckWzDBV8l67WBO5Xf5nBsukCbWyqBVPpEQLww8s7mrLA==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.6.8.tgz", + "integrity": "sha512-wp+3z5j8QJkFMVGqyE0FKcf61TL6LKLiIDxxQGxprSHKOE0RqNLGzQUTVZHWBbC3LfE018uFbGlLt02dVpUXKg==", "dev": true, "license": "MIT", "funding": { @@ -3209,20 +3175,20 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/react-vite": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.6.12.tgz", - "integrity": "sha512-UA2Kule99oyFgHdhcuhrRwCKyWu/yMbqbl9U7NwowFHNwWWFjVMMir/AmfShb/H1C1DQ3LqOad6/QwJyPLjP8g==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.6.8.tgz", + "integrity": "sha512-JcL4GhD1xGEPRuKmZOs+CL9N/xcR+bEOfa8S/FHBTbue3FAq47vSbv7xU89IFI2wwO6aFiSLlLSqa3GcdOpiHw==", "dev": true, "license": "MIT", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.5.0", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.6.12", - "@storybook/react": "8.6.12", + "@storybook/builder-vite": "8.6.8", + "@storybook/react": "8.6.8", "find-up": "^5.0.0", "magic-string": "^0.30.0", "react-docgen": "^7.0.0", @@ -3237,10 +3203,10 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/test": "8.6.12", + "@storybook/test": "8.6.8", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.12", + "storybook": "^8.6.8", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { @@ -3278,14 +3244,14 @@ } }, "node_modules/@storybook/test": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.12.tgz", - "integrity": "sha512-0BK1Eg+VD0lNMB1BtxqHE3tP9FdkUmohtvWG7cq6lWvMrbCmAmh3VWai3RMCCDOukPFpjabOr8BBRLVvhNpv2w==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.8.tgz", + "integrity": "sha512-wMJkWWcfPK374uw3JPpgMBkPYkIhYPxqRVp/KAJR/h10YIhSAXg7yiH1LYmmNAwrmvI7Uc3KZZ9fX/Qvot5uRg==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.6.12", + "@storybook/instrumenter": "8.6.8", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/user-event": "14.5.2", @@ -3297,13 +3263,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.12" + "storybook": "^8.6.8" } }, "node_modules/@storybook/theming": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.12.tgz", - "integrity": "sha512-6VjZg8HJ2Op7+KV7ihJpYrDnFtd9D1jrQnUS8LckcpuBXrIEbaut5+34ObY8ssQnSqkk2GwIZBBBQYQBCVvkOw==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.8.tgz", + "integrity": "sha512-Lgtmjudkd8s5wTxCbMvZNIY7iWOwnsWI04zejpubxbuNLFvOIvJnICVzrEzxuMYPIDg9cvPVYT3AkuE2NucUVg==", "dev": true, "license": "MIT", "funding": { @@ -3786,9 +3752,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.71.5", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.71.5.tgz", - "integrity": "sha512-XOQ5SyjCdwhxyLksGKWSL5poqyEXYPDnsrZAzJm2LgrMm4Yh6VOrfC+IFosXreDw9HNqC11YAMY3HlfHjNzuaA==", + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.70.0.tgz", + "integrity": "sha512-ZkkjQAZjI6nS5OyAmaSQafQXK180Xvp0lZYk4BzrnskkTV8On3zSJUxOIXnh0h/8EgqRkCA9i879DiJovA1kGw==", "dev": true, "license": "MIT", "funding": { @@ -3797,13 +3763,13 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.71.5", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.71.5.tgz", - "integrity": "sha512-WpxZWy4fDASjY+iAaXB+aY+LC95PQ34W6EWVkjJ0hdzWWbczFnr9nHvHkVDpwdR18I1NO8igNGQJFrLrgyzI8Q==", + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.70.0.tgz", + "integrity": "sha512-z0tx1zz2CQ6nTm+fCaOp93FqsFjNgXtOy+4mC5ifQ4B+rJiMD0AGfJrYSGh/OuefhrzTYDAbkGUAGw6JzkWy8g==", "dev": true, "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.71.5" + "@tanstack/query-core": "5.70.0" }, "funding": { "type": "github", @@ -3876,9 +3842,9 @@ "license": "MIT" }, "node_modules/@testing-library/react": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", - "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.2.0.tgz", + "integrity": "sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4003,9 +3969,7 @@ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@types/doctrine": { "version": "0.0.9", @@ -4043,19 +4007,19 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz", - "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==", + "version": "22.13.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", + "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, "node_modules/@types/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.0.tgz", - "integrity": "sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==", + "version": "19.0.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", + "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", "dev": true, "license": "MIT", "dependencies": { @@ -4063,9 +4027,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4084,18 +4048,14 @@ "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/@types/uuid": { "version": "9.0.8", @@ -4105,17 +4065,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", - "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz", + "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/type-utils": "8.29.0", - "@typescript-eslint/utils": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.27.0", + "@typescript-eslint/type-utils": "8.27.0", + "@typescript-eslint/utils": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -4135,16 +4095,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", - "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz", + "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.27.0", + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/typescript-estree": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0", "debug": "^4.3.4" }, "engines": { @@ -4160,14 +4120,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", - "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz", + "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0" + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4178,14 +4138,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", - "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz", + "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/typescript-estree": "8.27.0", + "@typescript-eslint/utils": "8.27.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -4202,9 +4162,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", - "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz", + "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==", "dev": true, "license": "MIT", "engines": { @@ -4216,14 +4176,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", - "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz", + "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4243,16 +4203,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz", + "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0" + "@typescript-eslint/scope-manager": "8.27.0", + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/typescript-estree": "8.27.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4267,13 +4227,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", - "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz", + "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/types": "8.27.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4311,17 +4271,18 @@ } }, "node_modules/@vitest/browser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.1.1.tgz", - "integrity": "sha512-A+A69mMtrj1RPh96LfXGc309KSXhy2MslvyL+cp9+Y5EVdoJD4KfXDx/3SSlRGN70+hIoJ3RRbTidTvj18PZ/A==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.0.9.tgz", + "integrity": "sha512-P9dcCeMkA3/oYGfUzRFZJLZxiOpApztxhPsQDUiZzAzLoZonWhse2+vPB0xEBP8Q0lX1WCEEmtY7HzBRi4oYBA==", "dev": true, "license": "MIT", "dependencies": { "@testing-library/dom": "^10.4.0", "@testing-library/user-event": "^14.6.1", - "@vitest/mocker": "3.1.1", - "@vitest/utils": "3.1.1", + "@vitest/mocker": "3.0.9", + "@vitest/utils": "3.0.9", "magic-string": "^0.30.17", + "msw": "^2.7.3", "sirv": "^3.0.1", "tinyrainbow": "^2.0.0", "ws": "^8.18.1" @@ -4331,7 +4292,7 @@ }, "peerDependencies": { "playwright": "*", - "vitest": "3.1.1", + "vitest": "3.0.9", "webdriverio": "^7.0.0 || ^8.0.0 || ^9.0.0" }, "peerDependenciesMeta": { @@ -4361,9 +4322,9 @@ } }, "node_modules/@vitest/browser/node_modules/@vitest/pretty-format": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.1.tgz", - "integrity": "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", + "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", "dev": true, "license": "MIT", "dependencies": { @@ -4374,13 +4335,13 @@ } }, "node_modules/@vitest/browser/node_modules/@vitest/utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.1.tgz", - "integrity": "sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", + "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.1", + "@vitest/pretty-format": "3.0.9", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -4389,9 +4350,9 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.1.1.tgz", - "integrity": "sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.9.tgz", + "integrity": "sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==", "dev": true, "license": "MIT", "dependencies": { @@ -4404,7 +4365,7 @@ "istanbul-reports": "^3.1.7", "magic-string": "^0.30.17", "magicast": "^0.3.5", - "std-env": "^3.8.1", + "std-env": "^3.8.0", "test-exclude": "^7.0.1", "tinyrainbow": "^2.0.0" }, @@ -4412,8 +4373,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.1.1", - "vitest": "3.1.1" + "@vitest/browser": "3.0.9", + "vitest": "3.0.9" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -4487,13 +4448,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.1.tgz", - "integrity": "sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz", + "integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.1.1", + "@vitest/spy": "3.0.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -4514,9 +4475,9 @@ } }, "node_modules/@vitest/mocker/node_modules/@vitest/spy": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.1.tgz", - "integrity": "sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz", + "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4560,13 +4521,13 @@ } }, "node_modules/@vitest/runner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.1.tgz", - "integrity": "sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz", + "integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.1.1", + "@vitest/utils": "3.0.9", "pathe": "^2.0.3" }, "funding": { @@ -4574,9 +4535,9 @@ } }, "node_modules/@vitest/runner/node_modules/@vitest/pretty-format": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.1.tgz", - "integrity": "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", + "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", "dev": true, "license": "MIT", "dependencies": { @@ -4587,13 +4548,13 @@ } }, "node_modules/@vitest/runner/node_modules/@vitest/utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.1.tgz", - "integrity": "sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", + "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.1", + "@vitest/pretty-format": "3.0.9", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -4602,13 +4563,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.1.tgz", - "integrity": "sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz", + "integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.1", + "@vitest/pretty-format": "3.0.9", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -4617,9 +4578,9 @@ } }, "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.1.tgz", - "integrity": "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", + "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", "dev": true, "license": "MIT", "dependencies": { @@ -4643,13 +4604,13 @@ } }, "node_modules/@vitest/ui": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-3.1.1.tgz", - "integrity": "sha512-2HpiRIYg3dlvAJBV9RtsVswFgUSJK4Sv7QhpxoP0eBGkYwzGIKP34PjaV00AULQi9Ovl6LGyZfsetxDWY5BQdQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-3.0.9.tgz", + "integrity": "sha512-FpZD4aIv/qNpwkV3XbLV6xldWFHMgoNWAJEgg5GmpObmAOLAErpYjew9dDwXdYdKOS3iZRKdwI+P3JOJcYeUBg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.1.1", + "@vitest/utils": "3.0.9", "fflate": "^0.8.2", "flatted": "^3.3.3", "pathe": "^2.0.3", @@ -4661,13 +4622,13 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "3.1.1" + "vitest": "3.0.9" } }, "node_modules/@vitest/ui/node_modules/@vitest/pretty-format": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.1.tgz", - "integrity": "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", + "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", "dev": true, "license": "MIT", "dependencies": { @@ -4678,13 +4639,13 @@ } }, "node_modules/@vitest/ui/node_modules/@vitest/utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.1.tgz", - "integrity": "sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", + "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.1", + "@vitest/pretty-format": "3.0.9", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -4919,8 +4880,6 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -4937,8 +4896,6 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", - "optional": true, - "peer": true, "engines": { "node": ">=10" }, @@ -5464,8 +5421,6 @@ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">= 12" } @@ -5476,8 +5431,6 @@ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -5492,9 +5445,7 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", @@ -5502,8 +5453,6 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5519,8 +5468,6 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5534,8 +5481,6 @@ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5632,8 +5577,6 @@ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -6465,9 +6408,9 @@ } }, "node_modules/eslint-plugin-storybook": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.12.0.tgz", - "integrity": "sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.11.6.tgz", + "integrity": "sha512-3WodYD6Bs9ACqnB+TP2TuLh774c/nacAjxSKOP9bHJ2c8rf+nrhocxjjeAWNmO9IPkFIzTKlcl0vNXI2yYpVOw==", "dev": true, "license": "MIT", "dependencies": { @@ -7020,8 +6963,6 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -7231,8 +7172,6 @@ "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -7346,9 +7285,7 @@ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", @@ -7758,9 +7695,7 @@ "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", @@ -8049,6 +7984,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -8278,18 +8214,6 @@ "dev": true, "license": "MIT" }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/loupe": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", @@ -8551,8 +8475,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@bundled-es-modules/cookie": "^2.0.1", "@bundled-es-modules/statuses": "^1.0.1", @@ -8597,8 +8519,6 @@ "integrity": "sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==", "dev": true, "license": "(MIT OR CC0-1.0)", - "optional": true, - "peer": true, "engines": { "node": ">=16" }, @@ -8619,8 +8539,6 @@ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": "^18.17.0 || >=20.5.0" } @@ -8823,9 +8741,7 @@ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/own-keys": { "version": "1.0.1", @@ -8995,9 +8911,7 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", @@ -9279,8 +9193,6 @@ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "punycode": "^2.3.1" }, @@ -9320,9 +9232,7 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -9346,13 +9256,10 @@ "license": "MIT" }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -9419,16 +9326,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-is": { @@ -9563,8 +9469,6 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -9584,9 +9488,7 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.10", @@ -9763,9 +9665,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.86.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.2.tgz", - "integrity": "sha512-Rpfn0zAIDqvnSb2DihJTDFjbhqLHu91Wqac9rxontWk7R+2txcPjuujMqu1eeoezh5kAblVCS5EdFdyr0Jmu+w==", + "version": "1.86.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz", + "integrity": "sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==", "dev": true, "license": "MIT", "dependencies": { @@ -9797,13 +9699,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/semver": { "version": "7.7.1", @@ -10069,8 +9968,6 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -10083,13 +9980,13 @@ "license": "MIT" }, "node_modules/storybook": { - "version": "8.6.12", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.12.tgz", - "integrity": "sha512-Z/nWYEHBTLK1ZBtAWdhxC0l5zf7ioJ7G4+zYqtTdYeb67gTnxNj80gehf8o8QY9L2zA2+eyMRGLC2V5fI7Z3Tw==", + "version": "8.6.8", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.8.tgz", + "integrity": "sha512-0Ze7QC0Hqx+ulms/FiQ7PNyaBgmaoxqxLOi8PQc5sOepO1+Ea8nssQGmOHS2QIX1ybb/GW56Fa5eyj+PJgsYDQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core": "8.6.12" + "@storybook/core": "8.6.8" }, "bin": { "getstorybook": "bin/index.cjs", @@ -10114,9 +10011,7 @@ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/string-argv": { "version": "0.3.2", @@ -10751,15 +10646,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.0.tgz", - "integrity": "sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz", + "integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.29.0", - "@typescript-eslint/parser": "8.29.0", - "@typescript-eslint/utils": "8.29.0" + "@typescript-eslint/eslint-plugin": "8.27.0", + "@typescript-eslint/parser": "8.27.0", + "@typescript-eslint/utils": "8.27.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10800,9 +10695,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, "license": "MIT" }, @@ -10877,8 +10772,6 @@ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -10913,9 +10806,9 @@ } }, "node_modules/vite": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", - "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", + "integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", "dev": true, "license": "MIT", "dependencies": { @@ -10995,9 +10888,9 @@ } }, "node_modules/vite-node": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.1.tgz", - "integrity": "sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz", + "integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==", "dev": true, "license": "MIT", "dependencies": { @@ -11110,31 +11003,31 @@ } }, "node_modules/vitest": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.1.tgz", - "integrity": "sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz", + "integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "3.1.1", - "@vitest/mocker": "3.1.1", - "@vitest/pretty-format": "^3.1.1", - "@vitest/runner": "3.1.1", - "@vitest/snapshot": "3.1.1", - "@vitest/spy": "3.1.1", - "@vitest/utils": "3.1.1", + "@vitest/expect": "3.0.9", + "@vitest/mocker": "3.0.9", + "@vitest/pretty-format": "^3.0.9", + "@vitest/runner": "3.0.9", + "@vitest/snapshot": "3.0.9", + "@vitest/spy": "3.0.9", + "@vitest/utils": "3.0.9", "chai": "^5.2.0", "debug": "^4.4.0", - "expect-type": "^1.2.0", + "expect-type": "^1.1.0", "magic-string": "^0.30.17", "pathe": "^2.0.3", - "std-env": "^3.8.1", + "std-env": "^3.8.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", - "vite-node": "3.1.1", + "vite-node": "3.0.9", "why-is-node-running": "^2.3.0" }, "bin": { @@ -11150,8 +11043,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.1.1", - "@vitest/ui": "3.1.1", + "@vitest/browser": "3.0.9", + "@vitest/ui": "3.0.9", "happy-dom": "*", "jsdom": "*" }, @@ -11180,14 +11073,14 @@ } }, "node_modules/vitest/node_modules/@vitest/expect": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.1.tgz", - "integrity": "sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz", + "integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.1.1", - "@vitest/utils": "3.1.1", + "@vitest/spy": "3.0.9", + "@vitest/utils": "3.0.9", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -11196,9 +11089,9 @@ } }, "node_modules/vitest/node_modules/@vitest/pretty-format": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.1.tgz", - "integrity": "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", + "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", "dev": true, "license": "MIT", "dependencies": { @@ -11209,9 +11102,9 @@ } }, "node_modules/vitest/node_modules/@vitest/spy": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.1.tgz", - "integrity": "sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz", + "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11222,13 +11115,13 @@ } }, "node_modules/vitest/node_modules/@vitest/utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.1.tgz", - "integrity": "sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", + "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.1", + "@vitest/pretty-format": "3.0.9", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -11572,8 +11465,6 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">=10" } @@ -11591,8 +11482,6 @@ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -11612,8 +11501,6 @@ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">=12" } @@ -11623,9 +11510,7 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", @@ -11633,8 +11518,6 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11650,8 +11533,6 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11678,8 +11559,6 @@ "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": ">=18" }, @@ -11715,39 +11594,12 @@ "storybook": "^8.6.4", "typescript": "~5.7.2", "typescript-eslint": "^8.24.1", - "vite": "^6.2.0", + "vite": "^6.2.4", "vite-plugin-svgr": "^4.3.0", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.0.9" } }, - "packages/demo/node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/demo/node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "packages/demo/node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, "packages/demo/node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -11764,7 +11616,7 @@ }, "packages/library": { "name": "@tomplum/react-git-log", - "version": "2.3.0", + "version": "2.2.0", "license": "Apache-2.0", "dependencies": { "@uidotdev/usehooks": "^2.4.1", @@ -11791,7 +11643,7 @@ "jsdom": "^26.0.0", "sass": "^1.85.1", "typescript": "~5.7.2", - "vite": "^6.2.0", + "vite": "^6.2.4", "vite-bundle-analyzer": "^0.18.1", "vite-plugin-dts": "^4.5.3", "vite-plugin-lib-inject-css": "^2.2.1", @@ -11843,33 +11695,6 @@ "node": ">= 14.0.0" } }, - "packages/library/node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/library/node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "packages/library/node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, "packages/library/node_modules/shallowequal": { "version": "1.1.0", "license": "MIT" diff --git a/package.json b/package.json index 139aa1cb..c78b5a7a 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", - "eslint-plugin-storybook": "^0.12.0", + "eslint-plugin-storybook": "^0.11.4", "@stylistic/eslint-plugin": "^4.2.0", "@eslint/js": "^9.21.0", "typescript-eslint": "^8.24.1" From 8625bccf7ebabac43599fb7fe3259a792fc6632f Mon Sep 17 00:00:00 2001 From: Thomas Plumpton Date: Fri, 4 Apr 2025 17:12:10 +0100 Subject: [PATCH 3/3] feat(log): added indexStatus prop to show git index status metadata in index pseudo-commit entry --- README.md | 58 +++++++------ package-lock.json | 6 +- packages/demo/src/GitLog.stories.tsx | 5 ++ packages/demo/src/GitLogPaged.stories.tsx | 5 ++ packages/library/README.md | 54 +++++++----- .../library/src/GitLog.integration.spec.tsx | 2 +- .../src/__snapshots__/GitLog.spec.tsx.snap | 12 +-- packages/library/src/_test/stubs.ts | 13 +++ packages/library/src/assets/minus.svg | 19 +++++ packages/library/src/assets/pencil.svg | 23 +++++ packages/library/src/assets/plus.svg | 27 ++++++ .../src/components/GitLogCore/GitLogCore.tsx | 17 ++-- .../library/src/context/GitContext/types.ts | 8 +- .../CommitMessageData.module.scss | 1 + .../CommitMessageData.spec.tsx | 40 +++++++++ .../CommitMessageData/CommitMessageData.tsx | 7 +- .../components/CommitMessageData/types.ts | 3 +- .../IndexStatus/IndexStatus.module.scss | 42 ++++++++++ .../IndexStatus/IndexStatus.spec.tsx | 84 +++++++++++++++++++ .../components/IndexStatus/IndexStatus.tsx | 54 ++++++++++++ .../Table/components/IndexStatus/index.ts | 1 + .../Table/components/TableRow/TableRow.tsx | 1 + packages/library/src/types.ts | 12 +++ 23 files changed, 425 insertions(+), 69 deletions(-) create mode 100644 packages/library/src/assets/minus.svg create mode 100644 packages/library/src/assets/pencil.svg create mode 100644 packages/library/src/assets/plus.svg create mode 100644 packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.spec.tsx create mode 100644 packages/library/src/modules/Table/components/IndexStatus/IndexStatus.module.scss create mode 100644 packages/library/src/modules/Table/components/IndexStatus/IndexStatus.spec.tsx create mode 100644 packages/library/src/modules/Table/components/IndexStatus/IndexStatus.tsx create mode 100644 packages/library/src/modules/Table/components/IndexStatus/index.ts diff --git a/README.md b/README.md index 1a218b5c..ae465747 100644 --- a/README.md +++ b/README.md @@ -196,34 +196,36 @@ All components have optional props to further configure the log. ### GitLog -| Property | Type | Description | -|-------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| -| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | -| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | -| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | -| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | -| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | -| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | -| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | -| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | -| `paging` | `GitLogPaging` | Optional paging settings for displaying a subset of log entries. | +| Property | Type | Description | +|-----------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| +| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | +| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | +| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | +| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | +| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | +| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | +| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | +| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | +| `paging` | `GitLogPaging` | Optional paging settings for displaying a subset of log entries. | +| `indexStatus` | `GitLogIndexStatus` | Renders information about added, deleted and modified files to the index pseudo-commit entry. | ### GitLogPaged -| Property | Type | Description | -|-------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| -| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | -| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | -| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | -| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | -| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | -| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | -| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | -| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | +| Property | Type | Description | +|-----------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| +| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | +| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | +| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | +| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | +| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | +| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | +| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | +| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | +| `indexStatus` | `GitLogIndexStatus` | Renders information about added, deleted and modified files to the index pseudo-commit entry. | -#### **GitLogStylingProps** +#### GitLogStylingProps | Property | Type | Description | |-------------------|-----------------|--------------------------------------------------------------------------------| | `containerClass` | `string` | Class name for the wrapping `
` containing branches, graph, and log table. | @@ -236,6 +238,14 @@ All components have optional props to further configure the log. | `size` | `number` | The number of rows to show per page. | | `page` | `number` | The page number to display (first page is `0`). | +#### GitLogIndexStatus + +| Prop | Type | Description | +|------------|----------|---------------------------------------------------------------------------| +| `added` | `number` | The number of added files in the git index for the checked-out branch. | +| `deleted` | `number` | The number of deleted files in the git index for the checked-out branch. | +| `modified` | `number` | The number of modified files in the git index for the checked-out branch. | + ### Graph | Property | Type | Description | @@ -315,8 +325,8 @@ All components have optional props to further configure the log. - Mobile responsiveness for the demo site - Add graph render strategy with a second option to use 2d rendering context (html canvas) - Add eslint to pipeline -- Update the WIP comment in the index pseudo commit to show files added/edited etc. - Add in prop to show-hide the index pseudo commit - Tags should be independent. Add a new optional field to the log entry / commit objects. - Branch / Tags column is fixed. Dynamically floor it to match the max tag size currently being rendered? -- Is the SS paginated log gonna accept data from multiple branches? Because then we need the HEAD commits of each branch \ No newline at end of file +- Is the SS paginated log gonna accept data from multiple branches? Because then we need the HEAD commits of each branch +- Make repository URL a function that generates the URL \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a52eb1aa..c970f7d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11594,7 +11594,7 @@ "storybook": "^8.6.4", "typescript": "~5.7.2", "typescript-eslint": "^8.24.1", - "vite": "^6.2.4", + "vite": "^6.2.0", "vite-plugin-svgr": "^4.3.0", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.0.9" @@ -11616,7 +11616,7 @@ }, "packages/library": { "name": "@tomplum/react-git-log", - "version": "2.2.0", + "version": "2.3.0", "license": "Apache-2.0", "dependencies": { "@uidotdev/usehooks": "^2.4.1", @@ -11643,7 +11643,7 @@ "jsdom": "^26.0.0", "sass": "^1.85.1", "typescript": "~5.7.2", - "vite": "^6.2.4", + "vite": "^6.2.0", "vite-bundle-analyzer": "^0.18.1", "vite-plugin-dts": "^4.5.3", "vite-plugin-lib-inject-css": "^2.2.1", diff --git a/packages/demo/src/GitLog.stories.tsx b/packages/demo/src/GitLog.stories.tsx index f0e8c256..5276dd82 100644 --- a/packages/demo/src/GitLog.stories.tsx +++ b/packages/demo/src/GitLog.stories.tsx @@ -234,6 +234,11 @@ export const Demo: Story = { }, containerClass: styles.gitLogContainer }} + indexStatus={{ + added: 2, + modified: 5, + deleted: 1 + }} > {args.showBranchesTags && ( diff --git a/packages/demo/src/GitLogPaged.stories.tsx b/packages/demo/src/GitLogPaged.stories.tsx index 98323a87..8d6c15d7 100644 --- a/packages/demo/src/GitLogPaged.stories.tsx +++ b/packages/demo/src/GitLogPaged.stories.tsx @@ -216,6 +216,11 @@ export const Demo: Story = { }, containerClass: styles.gitLogContainer }} + indexStatus={{ + added: 0, + modified: 2, + deleted: 3 + }} > void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | -| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | -| `paging` | `GitLogPaging` | Optional paging settings for displaying a subset of log entries. | +| Property | Type | Description | +|-----------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| +| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | +| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | +| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | +| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | +| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | +| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | +| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | +| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | +| `paging` | `GitLogPaging` | Optional paging settings for displaying a subset of log entries. | +| `indexStatus` | `GitLogIndexStatus` | Renders information about added, deleted and modified files to the index pseudo-commit entry. | ### GitLogPaged -| Property | Type | Description | -|-------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| -| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | -| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | -| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | -| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | -| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | -| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | -| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | -| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | +| Property | Type | Description | +|-----------------------|-----------------------------|----------------------------------------------------------------------------------------------------------| +| `theme` | `ThemeMode` | The variant of the default color theme to apply to the log. | +| `colours` | `ThemeColours \| string[]` | Array of colors used for graph elements. One per column, looping if insufficient colors are provided. | +| `showHeaders` | `boolean` | Whether to show element names like "Graph" or "Commit message" at the top of the component. | +| `rowSpacing` | `number` | The spacing between log rows, affecting branches, graph, and table. Default: `0`. | +| `githubRepositoryUrl` | `string` | URL of the GitHub repository where `entries` came from. Enables links for commits, tags, and PRs. | +| `defaultGraphWidth` | `number` | Default width of the graph in pixels. Can be changed dynamically if resizing is enabled. Default: `300`. | +| `onSelectCommit` | `(commit?: Commit) => void` | Callback function when a commit is selected. `commit` is `undefined` if unselected. | +| `classes` | `GitLogStylingProps` | CSS classes for various elements to enable custom styling. | +| `indexStatus` | `GitLogIndexStatus` | Renders information about added, deleted and modified files to the index pseudo-commit entry. | -#### **GitLogStylingProps** +#### GitLogStylingProps | Property | Type | Description | |-------------------|-----------------|--------------------------------------------------------------------------------| | `containerClass` | `string` | Class name for the wrapping `
` containing branches, graph, and log table. | @@ -194,6 +196,14 @@ All components have optional props to further configure the log. | `size` | `number` | The number of rows to show per page. | | `page` | `number` | The page number to display (first page is `0`). | +#### GitLogIndexStatus + +| Prop | Type | Description | +|------------|----------|---------------------------------------------------------------------------| +| `added` | `number` | The number of added files in the git index for the checked-out branch. | +| `deleted` | `number` | The number of deleted files in the git index for the checked-out branch. | +| `modified` | `number` | The number of modified files in the git index for the checked-out branch. | + ### Graph | Property | Type | Description | diff --git a/packages/library/src/GitLog.integration.spec.tsx b/packages/library/src/GitLog.integration.spec.tsx index 20c5d5ef..b6ecccb5 100644 --- a/packages/library/src/GitLog.integration.spec.tsx +++ b/packages/library/src/GitLog.integration.spec.tsx @@ -167,7 +167,7 @@ describe('GitLog Integration', () => { const indexTableRow = table.row({ row: 0 }) expect(indexTableRow).toBeInTheDocument() - expect(table.commitMessageData({ row: 0 })).toHaveTextContent('// Work in-progress in TomPlum/sleep...') + expect(table.commitMessageData({ row: 0 })).toHaveTextContent('// WIP') expect(table.timestampData({ row: 0 })).toHaveTextContent('-') expect(table.authorData({ row: 0 })).toHaveTextContent('-') } diff --git a/packages/library/src/__snapshots__/GitLog.spec.tsx.snap b/packages/library/src/__snapshots__/GitLog.spec.tsx.snap index 593dd7af..2683e1eb 100644 --- a/packages/library/src/__snapshots__/GitLog.spec.tsx.snap +++ b/packages/library/src/__snapshots__/GitLog.spec.tsx.snap @@ -42604,9 +42604,9 @@ exports[`GitLog > should render correctly and match the snapshot of the GitLog c data-testid="react-git-log-table-data-commit-message-0" id="react-git-log-table-data-commit-message-0" style="line-height: 40px; color: rgb(153, 153, 153); background: linear-gradient( to bottom, transparent 2px, transparent 2px, transparent 38px, transparent 38px );" - title="// Work in-progress in TomPlum/sleep..." + title="// WIP" > - // Work in-progress in TomPlum/sleep... + // WIP
should render correctly and match the snapshot of the GitLog c data-testid="react-git-log-table-data-commit-message-0" id="react-git-log-table-data-commit-message-0" style="line-height: 40px; color: rgb(153, 153, 153); background: linear-gradient( to bottom, transparent 2px, transparent 2px, transparent 38px, transparent 38px );" - title="// Work in-progress in TomPlum/sleep..." + title="// WIP" > - // Work in-progress in TomPlum/sleep... + // WIP
should render correctly and match the snapshot of the GitLog c data-testid="react-git-log-table-data-commit-message-0" id="react-git-log-table-data-commit-message-0" style="line-height: 40px; color: rgb(153, 153, 153); background: linear-gradient( to bottom, transparent 6px, transparent 6px, transparent 34px, transparent 34px );" - title="// Work in-progress in TomPlum/sleep..." + title="// WIP" > - // Work in-progress in TomPlum/sleep... + // WIP
): GitContextBag => ({ headCommit: commit({ hash: 'HEAD' }), graphData: graphData(), showHeaders: true, + graphOrientation: 'normal', + setGraphOrientation: vi.fn(), + nodeSize: 20, + setNodeSize: vi.fn(), + headCommitHash: '123', + indexStatus: { + deleted: 0, + modified: 0, + added: 0 + }, ...bag }) @@ -58,6 +68,9 @@ export const graphContextBag = (bag?: Partial): GraphContextBag nodeTheme: 'default', showCommitNodeTooltips: false, showCommitNodeHashes: false, + graphWidth: 200, + nodeSize: 20, + orientation: 'normal', ...bag }) diff --git a/packages/library/src/assets/minus.svg b/packages/library/src/assets/minus.svg new file mode 100644 index 00000000..103880af --- /dev/null +++ b/packages/library/src/assets/minus.svg @@ -0,0 +1,19 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packages/library/src/assets/pencil.svg b/packages/library/src/assets/pencil.svg new file mode 100644 index 00000000..956194f6 --- /dev/null +++ b/packages/library/src/assets/pencil.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/packages/library/src/assets/plus.svg b/packages/library/src/assets/plus.svg new file mode 100644 index 00000000..ca75b8d4 --- /dev/null +++ b/packages/library/src/assets/plus.svg @@ -0,0 +1,27 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packages/library/src/components/GitLogCore/GitLogCore.tsx b/packages/library/src/components/GitLogCore/GitLogCore.tsx index f8592ef0..24297855 100644 --- a/packages/library/src/components/GitLogCore/GitLogCore.tsx +++ b/packages/library/src/components/GitLogCore/GitLogCore.tsx @@ -26,6 +26,7 @@ export const GitLogCore = ({ paging, headCommitHash, componentName, + indexStatus, isServerSidePaginated = false }: PropsWithChildren) => { const { tags, graph, table } = useMemo(() => { @@ -132,25 +133,19 @@ export const GitLogCore = ({ return undefined } - const repositorySegments = githubRepositoryUrl?.split('/') - const slashes = repositorySegments?.length ?? 0 - const lastTwoSegments = repositorySegments?.slice(slashes - 2, slashes) - const repositoryName = lastTwoSegments?.join('/') - const withRepoMessage = ` in ${repositoryName}...` - return ({ hash: 'index', branch: headCommit.branch, parents: [headCommit.hash], children: [], authorDate: new Date().toString(), - message: `// Work in-progress${githubRepositoryUrl ? withRepoMessage : '...'}`, + message: '// WIP', committerDate: new Date().toString(), isBranchTip: false, x: 0, y: 0 }) - }, [githubRepositoryUrl, headCommit]) + }, [headCommit]) const pageIndices = useMemo(() => { const page = paging?.page ?? 0 @@ -208,7 +203,8 @@ export const GitLogCore = ({ nodeSize, setNodeSize, graphOrientation, - setGraphOrientation + setGraphOrientation, + indexStatus }), [ themeColours, classes, @@ -232,7 +228,8 @@ export const GitLogCore = ({ isServerSidePaginated, isIndexVisible, nodeSize, - graphOrientation + graphOrientation, + indexStatus ]) return ( diff --git a/packages/library/src/context/GitContext/types.ts b/packages/library/src/context/GitContext/types.ts index 8beaf645..4ecb1d29 100644 --- a/packages/library/src/context/GitContext/types.ts +++ b/packages/library/src/context/GitContext/types.ts @@ -1,7 +1,7 @@ import { Commit } from 'types/Commit' import { ThemeMode } from 'hooks/useTheme' import { GraphData } from 'data' -import { GitLogStylingProps } from '../../types' +import { GitLogIndexStatus, GitLogStylingProps } from '../../types' import { GraphOrientation } from 'modules/Graph' export interface GitContextBag { @@ -186,6 +186,12 @@ export interface GitContextBag { */ theme: ThemeMode + /** + * The status of changed files in the + * Git index. + */ + indexStatus?: GitLogIndexStatus + /** * Indicates whether the GitLogPaged * variant of the component is being used. diff --git a/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.module.scss b/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.module.scss index 15cce668..81fd308a 100644 --- a/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.module.scss +++ b/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.module.scss @@ -5,4 +5,5 @@ padding-right: 30px; padding-left: 20px; font-weight: 400; + display: flex; } \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.spec.tsx b/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.spec.tsx new file mode 100644 index 00000000..5b5da963 --- /dev/null +++ b/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.spec.tsx @@ -0,0 +1,40 @@ +import { render, screen } from '@testing-library/react' +import { CommitMessageData } from './CommitMessageData' +import * as gitContext from 'context/GitContext' +import { gitContextBag } from 'test/stubs' + +describe('CommitMessageData', () => { + it('should render the index status if isIndex is true', () => { + vi.spyOn(gitContext, 'useGitContext').mockReturnValueOnce(gitContextBag({ + indexStatus: { + modified: 4, + added: 2, + deleted: 3 + } + })) + + render( + + ) + + expect(screen.getByTestId('index-status')).toBeInTheDocument() + }) + + it('should not render the index status if isIndex is false', () => { + render( + + ) + + expect(screen.queryByTestId('index-status')).not.toBeInTheDocument() + }) +}) \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.tsx b/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.tsx index 06450fc5..aada7e2e 100644 --- a/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.tsx +++ b/packages/library/src/modules/Table/components/CommitMessageData/CommitMessageData.tsx @@ -1,7 +1,8 @@ import styles from './CommitMessageData.module.scss' import { CommitMessageDataProps } from './types' +import { IndexStatus } from 'modules/Table/components/IndexStatus' -export const CommitMessageData = ({ index, commitMessage, style }: CommitMessageDataProps) => { +export const CommitMessageData = ({ index, isIndex, commitMessage, style }: CommitMessageDataProps) => { return (
{commitMessage} + + {isIndex && ( + + )}
) } \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/CommitMessageData/types.ts b/packages/library/src/modules/Table/components/CommitMessageData/types.ts index b028e57c..3c77fdab 100644 --- a/packages/library/src/modules/Table/components/CommitMessageData/types.ts +++ b/packages/library/src/modules/Table/components/CommitMessageData/types.ts @@ -1,7 +1,8 @@ import { CSSProperties } from 'react' export interface CommitMessageDataProps { - index: number; + index: number + isIndex: boolean style: CSSProperties commitMessage: string } \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.module.scss b/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.module.scss new file mode 100644 index 00000000..89a978b5 --- /dev/null +++ b/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.module.scss @@ -0,0 +1,42 @@ +.pencil, .plus, .minus { + height: 15px; + width: 15px; + margin-left: 2px; +} + +.indexStatus { + display: flex; + align-items: center; + margin-left: 5px; + opacity: 0.8; + transition: opacity ease-in-out 0.2s; + + &:hover { + opacity: 1; + } + + .status { + display: flex; + align-items: center; + } +} + +.value { + margin-left: 15px; +} + +.iconWrapper { + margin-top: 2px; +} + +.modified { + color: #e5a935; +} + +.deleted { + color: #FF757C; +} + +.added { + color: #5dc044; +} \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.spec.tsx b/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.spec.tsx new file mode 100644 index 00000000..ce654bba --- /dev/null +++ b/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.spec.tsx @@ -0,0 +1,84 @@ +import { render, screen } from '@testing-library/react' +import { IndexStatus } from 'modules/Table/components/IndexStatus/IndexStatus' +import * as gitContext from 'context/GitContext' +import { gitContextBag } from 'test/stubs' + +describe('Index Status', () => { + it('should render the status numbers correctly', () => { + vi.spyOn(gitContext, 'useGitContext').mockReturnValueOnce(gitContextBag({ + indexStatus: { + modified: 4, + added: 2, + deleted: 3 + } + })) + + render() + + const added = screen.getByTestId('index-status-added') + expect(added).toBeInTheDocument() + expect(added).toHaveTextContent('2') + + const modified = screen.getByTestId('index-status-modified') + expect(modified).toBeInTheDocument() + expect(modified).toHaveTextContent('4') + + const deleted = screen.getByTestId('index-status-deleted') + expect(deleted).toBeInTheDocument() + expect(deleted).toHaveTextContent('3') + }) + + it('should not render the added indicator if there are 0 added files in the index status', () => { + vi.spyOn(gitContext, 'useGitContext').mockReturnValueOnce(gitContextBag({ + indexStatus: { + modified: 4, + added: 0, + deleted: 3 + } + })) + + render() + + const added = screen.queryByTestId('index-status-added') + expect(added).not.toBeInTheDocument() + + expect(screen.getByTestId('index-status-modified')).toBeInTheDocument() + expect(screen.getByTestId('index-status-deleted')).toBeInTheDocument() + }) + + it('should not render the modified indicator if there are 0 modified files in the index status', () => { + vi.spyOn(gitContext, 'useGitContext').mockReturnValueOnce(gitContextBag({ + indexStatus: { + modified: 0, + added: 1, + deleted: 3 + } + })) + + render() + + const modified = screen.queryByTestId('index-status-modified') + expect(modified).not.toBeInTheDocument() + + expect(screen.getByTestId('index-status-added')).toBeInTheDocument() + expect(screen.getByTestId('index-status-deleted')).toBeInTheDocument() + }) + + it('should not render the deleted indicator if there are 0 deleted files in the index status', () => { + vi.spyOn(gitContext, 'useGitContext').mockReturnValueOnce(gitContextBag({ + indexStatus: { + modified: 2, + added: 1, + deleted: 0 + } + })) + + render() + + const deleted = screen.queryByTestId('index-status-deleted') + expect(deleted).not.toBeInTheDocument() + + expect(screen.getByTestId('index-status-modified')).toBeInTheDocument() + expect(screen.getByTestId('index-status-added')).toBeInTheDocument() + }) +}) \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.tsx b/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.tsx new file mode 100644 index 00000000..c0cd0687 --- /dev/null +++ b/packages/library/src/modules/Table/components/IndexStatus/IndexStatus.tsx @@ -0,0 +1,54 @@ +import styles from './IndexStatus.module.scss' +import Pencil from 'assets/pencil.svg?react' +import Plus from 'assets/plus.svg?react' +import Minus from 'assets/minus.svg?react' +import { useGitContext } from 'context/GitContext' +import classNames from 'classnames' + +export const IndexStatus = () => { + const { indexStatus } = useGitContext() + + if (!indexStatus) { + return null + } + + return ( +
+ {indexStatus.modified > 0 && ( +
+ + {indexStatus.modified} + + +
+ +
+
+ )} + + {indexStatus.added > 0 && ( +
+ + {indexStatus.added} + + +
+ +
+
+ )} + + {indexStatus.deleted > 0 && ( +
+ + {indexStatus.deleted} + + +
+ +
+
+ )} +
+ ) +} \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/IndexStatus/index.ts b/packages/library/src/modules/Table/components/IndexStatus/index.ts new file mode 100644 index 00000000..0af2bce0 --- /dev/null +++ b/packages/library/src/modules/Table/components/IndexStatus/index.ts @@ -0,0 +1 @@ +export * from './IndexStatus' \ No newline at end of file diff --git a/packages/library/src/modules/Table/components/TableRow/TableRow.tsx b/packages/library/src/modules/Table/components/TableRow/TableRow.tsx index 40c16cc7..255738fc 100644 --- a/packages/library/src/modules/Table/components/TableRow/TableRow.tsx +++ b/packages/library/src/modules/Table/components/TableRow/TableRow.tsx @@ -93,6 +93,7 @@ export const TableRow = ({ index={index} style={tableDataStyle} commitMessage={commit.message} + isIndex={commit.hash === 'index'} />