diff --git a/package-lock.json b/package-lock.json index ca5ea976b..d442f2d3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "genesys-ui", - "version": "11.1.1", + "version": "12.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "genesys-ui", - "version": "11.1.1", + "version": "12.0.0", "hasInstallScript": true, "license": "MIT", "workspaces": [ @@ -40,20 +40,21 @@ "@stryker-mutator/vitest-runner": "^8.5.0", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", + "@testing-library/user-event": "^14.5.2", "@types/js-cookie": "^3.0.6", - "@types/node": "^22.5.5", + "@types/node": "^22.7.0", "@vitejs/plugin-react": "^4.3.1", "@vitest/coverage-v8": "^2.1.1", "babel-plugin-styled-components": "^2.1.4", - "dependency-cruiser": "^16.4.1", + "dependency-cruiser": "^16.4.2", "dpdm": "^3.14.0", - "framer-motion": "^11.5.4", + "framer-motion": "^11.7.0", "happy-dom": "^15.7.4", "identity-obj-proxy": "^3.0.0", "js-cookie": "^3.0.5", "lodash": "^4.17.21", "mermaid": "^11.2.1", - "oxlint": "^0.9.6", + "oxlint": "^0.9.8", "polished": "^4.3.1", "prettier": "^3.3.3", "react": "^18.3.1", @@ -61,14 +62,14 @@ "react-syntax-highlighter": "^15.5.0", "release-it": "^17.6.0", "remark-gfm": "^4.0.0", - "sass": "^1.79.1", + "sass": "^1.79.3", "storybook": "^8.3.1", "tocbot": "^4.29.0", "ts-node": "^10.9.2", "typescript": "^5.6.2", - "vite": "^5.4.6", - "vite-bundle-analyzer": "^0.11.0", - "vite-plugin-dts": "^4.2.1", + "vite": "^5.4.8", + "vite-bundle-visualizer": "^1.2.1", + "vite-plugin-dts": "^4.2.2", "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1", "viz.js": "^2.1.2" @@ -2378,9 +2379,9 @@ } }, "node_modules/@oxlint/darwin-arm64": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-0.9.6.tgz", - "integrity": "sha512-dw0JMjgymvvYQE38D2sexcV+SNER2PL2TrUyYiy1YuhHSPeH8UX/c+iJstl02K03RRiNJIAmEdYv3a98+t/x5Q==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-0.9.8.tgz", + "integrity": "sha512-4wuEraeF9euP50sLYEB77tPKVuxNVnRK963CQ64ITkItbopTyZ2Fxh6PT8UyENqUojDXmLmCdwxMPP4sbexxwg==", "cpu": [ "arm64" ], @@ -2391,9 +2392,9 @@ ] }, "node_modules/@oxlint/darwin-x64": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-0.9.6.tgz", - "integrity": "sha512-fvXgv9eI6U1uRXUmdpWbcX1Tkv2VeYiIwrwBDARuYqI+YbxiuCsBx8RbRrw1C6SrKuZnihAPZIhebH/YRz/ZkQ==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-0.9.8.tgz", + "integrity": "sha512-SZsmFT9SOjQCqULb4gDh6P7xnIb9zxD0rPolH/ytGcpHtqe9eZGupEeLWBHjbjAhNiBgkuqULkUO27vUJ+6cPA==", "cpu": [ "x64" ], @@ -2404,9 +2405,9 @@ ] }, "node_modules/@oxlint/linux-arm64-gnu": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-0.9.6.tgz", - "integrity": "sha512-9PIH+6ebuLlPFPguzpusnS0n0MbilvSdQ5CpHIFa9lA5qXAIX1UrKUwRz8MwXY9JZYY9YEHOqnHLQvJtY4r2Ag==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-0.9.8.tgz", + "integrity": "sha512-UOI88tlIuc4bfBPmLJn9vTfWqePWpk+NoA4Spwkt1Iz+kCgtftL2EmNRapn95ye+JUKBV+zOHTNjnpIjRHv6Xw==", "cpu": [ "arm64" ], @@ -2417,9 +2418,9 @@ ] }, "node_modules/@oxlint/linux-arm64-musl": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-0.9.6.tgz", - "integrity": "sha512-2TQ0Ln0GzW0U8UZJqhgXWr5yncZraDqx8ylSCE6o6VYiO5CkFUSqLnornH+OYQwOLyIgnxneITnFI7mCWC3/Yw==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-0.9.8.tgz", + "integrity": "sha512-pHb5zjBwzQt++6CBFC0mw7sc5wXsvWf7GYugA8JW1Satei9SZaPkbfJPYMPKru+yAlFmm6GggUFKF1A2k20OMQ==", "cpu": [ "arm64" ], @@ -2430,9 +2431,9 @@ ] }, "node_modules/@oxlint/linux-x64-gnu": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-0.9.6.tgz", - "integrity": "sha512-jlZSjZ1Qu7EQmGFZn1+HKqlQvgW5L+qkF5r1W4g03/b35I1XwaGaij5bw07cRsy70oIQOvUE+5wWGqqIxwtpDA==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-0.9.8.tgz", + "integrity": "sha512-9aGoJLGKSnx8HrU7pacfKqxHNuZdSfXCDIlJWOcfDX1ecYrti+taNDPhk9KepkUW1mkVv73HCoXyvMC88am9fA==", "cpu": [ "x64" ], @@ -2443,9 +2444,9 @@ ] }, "node_modules/@oxlint/linux-x64-musl": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-0.9.6.tgz", - "integrity": "sha512-mPwnz8PTZTv7Swc3KPl2MdTjGxBLN8R1gjSWaWd8PAR8zQ9TFiz48hpI1m0MJV5KY9oOSUGFt8MmknD2BOqZ6A==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-0.9.8.tgz", + "integrity": "sha512-49QJtguJT+DovDKALR57WBKMuLlCZ0n2DKZIe/ehaSD824K7Ovk9kcoCN8M9FjzktOPSwZ/0udqNfZv01OEu3Q==", "cpu": [ "x64" ], @@ -2456,9 +2457,9 @@ ] }, "node_modules/@oxlint/win32-arm64": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-0.9.6.tgz", - "integrity": "sha512-gLS/kJh4TsbynN71O6moaXbdS7hfilmLAbMy3itanxta1+oW+W1b5yMn3XnYQKXZ4z48ERi2qf0Khe21VFXCZw==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-0.9.8.tgz", + "integrity": "sha512-5CqY88g/y50olp7WfHXfezjClNa9ztCYqNKzKNJR3hkBJTa03f74M526KnS0fkSaOC2tr8WjqNZ+vDS3Zhx27Q==", "cpu": [ "arm64" ], @@ -2469,9 +2470,9 @@ ] }, "node_modules/@oxlint/win32-x64": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-0.9.6.tgz", - "integrity": "sha512-z8m0EiG4UtVr58b/7HenBSyaEo2dZNUVW57nx1DMO+XXQF/jg+SqYPbuDzMOD8Ygwjo1nhf8up5WiUcl/8ELAw==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-0.9.8.tgz", + "integrity": "sha512-wPa3vQb73Pl0z6nkEVmY6G4sO+2xf6QXPqAxDtd7kzxrGrSkTXvTNS/gKIxmvuUy+KjKDcSC2pfJL/074yE6aQ==", "cpu": [ "x64" ], @@ -2611,9 +2612,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", - "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -2624,9 +2625,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz", - "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -2637,9 +2638,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz", - "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -2650,9 +2651,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz", - "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -2663,9 +2664,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz", - "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "cpu": [ "arm" ], @@ -2676,9 +2677,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz", - "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -2689,9 +2690,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz", - "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -2702,9 +2703,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz", - "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -2715,9 +2716,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz", - "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -2728,9 +2729,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz", - "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -2741,9 +2742,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz", - "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -2754,9 +2755,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz", - "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -2767,9 +2768,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz", - "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -2780,9 +2781,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz", - "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -2793,9 +2794,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz", - "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -2806,9 +2807,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz", - "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -4163,9 +4164,9 @@ } }, "node_modules/@types/node": { - "version": "22.5.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", - "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", + "version": "22.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.0.tgz", + "integrity": "sha512-MOdOibwBs6KW1vfqz2uKMlxq5xAfAZ98SZjO8e3XnAbFnTJtAspqhWk7hrdSAs9/Y14ZWMiy7/MxMUzAOadYEw==", "dev": true, "dependencies": { "undici-types": "~6.19.2" @@ -7426,25 +7427,25 @@ } }, "node_modules/dependency-cruiser": { - "version": "16.4.1", - "resolved": "https://registry.npmjs.org/dependency-cruiser/-/dependency-cruiser-16.4.1.tgz", - "integrity": "sha512-tmByrPhRMdjg/FsE3eT24QSXKhrZpo9APpDCg5Wgg0ReAhZughE3iKseD++UtSYsLQIjD1aYNSeNiAvqbcup9Q==", + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/dependency-cruiser/-/dependency-cruiser-16.4.2.tgz", + "integrity": "sha512-mQZM95WwIvKzYYdj+1RgIBuJ6qbr1cfyzTt62dDJVrWAShfhV9IEkG/Xv4S2iD5sT+Gt3oFWyZjwNufAhcbtWA==", "dev": true, "dependencies": { "acorn": "^8.12.1", "acorn-jsx": "^5.3.2", "acorn-jsx-walk": "^2.0.0", "acorn-loose": "^8.4.0", - "acorn-walk": "^8.3.3", + "acorn-walk": "^8.3.4", "ajv": "^8.17.1", "commander": "^12.1.0", "enhanced-resolve": "^5.17.1", - "ignore": "^5.3.2", + "ignore": "^6.0.2", "interpret": "^3.1.1", "is-installed-globally": "^1.0.0", "json5": "^2.2.3", "memoize": "^10.0.0", - "picocolors": "^1.0.1", + "picocolors": "^1.1.0", "picomatch": "^4.0.2", "prompts": "^2.4.2", "rechoir": "^0.8.0", @@ -7490,6 +7491,15 @@ "node": ">=0.4.0" } }, + "node_modules/dependency-cruiser/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/dependency-cruiser/node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", @@ -8444,9 +8454,9 @@ } }, "node_modules/framer-motion": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.5.4.tgz", - "integrity": "sha512-E+tb3/G6SO69POkdJT+3EpdMuhmtCh9EWuK4I1DnIC23L7tFPrl8vxP+LSovwaw6uUr73rUbpb4FgK011wbRJQ==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.7.0.tgz", + "integrity": "sha512-m+1E3mMzDIQ5DsVghMvXyC+jSkZSm5RHBLA2gHa/LczcXwW6JbQK4Uz48LsuCTGV8bZFVUezcauHj3M33tY/5w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -9413,6 +9423,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-from-esm": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz", + "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "import-meta-resolve": "^4.0.0" + }, + "engines": { + "node": ">=16.20" + } + }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -9422,6 +9445,16 @@ "node": ">=8" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -12322,9 +12355,9 @@ } }, "node_modules/oxlint": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-0.9.6.tgz", - "integrity": "sha512-5UeXQK7n6qIktK9JTG7Nh8mH1NM9A/jssdCMw0P02mob6DwM13ycgeZtrD7Z22J7QSJKfGnfu41S2YSJJN3zaQ==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-0.9.8.tgz", + "integrity": "sha512-FnRcPEerznjvFuAD6fvg04ZwXuihzWZa/ciN2g7o2/rV0uRJGGl4hazrFpetf8uv2pnUr3n5TJ6u4d5rSvaapQ==", "dev": true, "bin": { "oxlint": "bin/oxlint" @@ -12336,14 +12369,14 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxlint/darwin-arm64": "0.9.6", - "@oxlint/darwin-x64": "0.9.6", - "@oxlint/linux-arm64-gnu": "0.9.6", - "@oxlint/linux-arm64-musl": "0.9.6", - "@oxlint/linux-x64-gnu": "0.9.6", - "@oxlint/linux-x64-musl": "0.9.6", - "@oxlint/win32-arm64": "0.9.6", - "@oxlint/win32-x64": "0.9.6" + "@oxlint/darwin-arm64": "0.9.8", + "@oxlint/darwin-x64": "0.9.8", + "@oxlint/linux-arm64-gnu": "0.9.8", + "@oxlint/linux-arm64-musl": "0.9.8", + "@oxlint/linux-x64-gnu": "0.9.8", + "@oxlint/linux-x64-musl": "0.9.8", + "@oxlint/win32-arm64": "0.9.8", + "@oxlint/win32-x64": "0.9.8" } }, "node_modules/p-cancelable": { @@ -14405,9 +14438,9 @@ "dev": true }, "node_modules/rollup": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz", - "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -14420,25 +14453,104 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.3", - "@rollup/rollup-android-arm64": "4.21.3", - "@rollup/rollup-darwin-arm64": "4.21.3", - "@rollup/rollup-darwin-x64": "4.21.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.3", - "@rollup/rollup-linux-arm-musleabihf": "4.21.3", - "@rollup/rollup-linux-arm64-gnu": "4.21.3", - "@rollup/rollup-linux-arm64-musl": "4.21.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3", - "@rollup/rollup-linux-riscv64-gnu": "4.21.3", - "@rollup/rollup-linux-s390x-gnu": "4.21.3", - "@rollup/rollup-linux-x64-gnu": "4.21.3", - "@rollup/rollup-linux-x64-musl": "4.21.3", - "@rollup/rollup-win32-arm64-msvc": "4.21.3", - "@rollup/rollup-win32-ia32-msvc": "4.21.3", - "@rollup/rollup-win32-x64-msvc": "4.21.3", + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", + "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "dev": true, + "dependencies": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/rollup/node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -14552,9 +14664,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.79.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.1.tgz", - "integrity": "sha512-+mA7svoNKeL0DiJqZGeR/ZGUu8he4I8o3jyUcOFyo4eBJrwNgIMmAEwCMo/N2Y3wdjOBcRzoNxZIOtrtMX8EXg==", + "version": "1.79.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.3.tgz", + "integrity": "sha512-m7dZxh0W9EZ3cw50Me5GOuYm/tVAJAn91SUnohLRo9cXBixGUOdvmryN+dXpwR831bhoY3Zv7rEFt85PUwTmzA==", "dev": true, "dependencies": { "chokidar": "^4.0.0", @@ -16359,9 +16471,9 @@ "dev": true }, "node_modules/vite": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", - "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", "dev": true, "dependencies": { "esbuild": "^0.21.3", @@ -16417,11 +16529,32 @@ } } }, - "node_modules/vite-bundle-analyzer": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-0.11.0.tgz", - "integrity": "sha512-UgRP6XxXJGh+Q9fu8Cm8sBIdzDmGQjO/5I8bnV0C6ZkVeqjj79hkeCbJziV8yI9+dm4gpPemeot5KJ6wlHDOSQ==", - "dev": true + "node_modules/vite-bundle-visualizer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vite-bundle-visualizer/-/vite-bundle-visualizer-1.2.1.tgz", + "integrity": "sha512-cwz/Pg6+95YbgIDp+RPwEToc4TKxfsFWSG/tsl2DSZd9YZicUag1tQXjJ5xcL7ydvEoaC2FOZeaXOU60t9BRXw==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "import-from-esm": "^1.3.3", + "rollup-plugin-visualizer": "^5.11.0", + "tmp": "^0.2.1" + }, + "bin": { + "vite-bundle-visualizer": "bin.js" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + } + }, + "node_modules/vite-bundle-visualizer/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } }, "node_modules/vite-node": { "version": "2.1.1", @@ -16445,9 +16578,9 @@ } }, "node_modules/vite-plugin-dts": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.2.1.tgz", - "integrity": "sha512-/QlYvgUMiv8+ZTEerhNCYnYaZMM07cdlX6hQCR/w/g/nTh0tUXPoYwbT6SitizLJ9BybT1lnrcZgqheI6wromQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.2.2.tgz", + "integrity": "sha512-USwTMReZFf8yXV+cKkm4WOMqmFjbReAvkyxON5xzdnZzJEBnFgax6BBDZIGGr9WMJYvhHdpaIHLrOjXDcla4OA==", "dev": true, "dependencies": { "@microsoft/api-extractor": "7.47.7", @@ -17763,7 +17896,7 @@ }, "packages/code": { "name": "@devoinc/genesys-ui-code", - "version": "11.1.1", + "version": "12.0.0", "license": "MIT", "devDependencies": { "@types/file-saver": "^2.0.7", @@ -17771,7 +17904,7 @@ }, "peerDependencies": { "@devoinc/genesys-brand-devo": "6.x.x", - "@devoinc/genesys-ui": "^11.1.1", + "@devoinc/genesys-ui": "^12.0.0", "ahooks": "3.x.x", "monaco-editor-core": "0.x.x", "react": "16.x || 17.x || 18.x", @@ -17780,10 +17913,10 @@ }, "packages/color": { "name": "@devoinc/genesys-ui-color", - "version": "11.1.1", + "version": "12.0.0", "license": "MIT", "peerDependencies": { - "@devoinc/genesys-ui": "^11.1.1", + "@devoinc/genesys-ui": "^12.0.0", "polished": "4.x.x", "react": "16.x || 17.x || 18.x", "react-color": "2.x.x", @@ -17792,7 +17925,7 @@ }, "packages/core": { "name": "@devoinc/genesys-ui", - "version": "11.1.1", + "version": "12.0.0", "license": "MIT", "peerDependencies": { "@devoinc/genesys-icons": "4.x.x || 5.x.x || 6.x.x", @@ -17817,11 +17950,11 @@ }, "packages/datetime": { "name": "@devoinc/genesys-ui-datetime", - "version": "11.1.1", + "version": "12.0.0", "license": "MIT", "peerDependencies": { "@devoinc/genesys-icons": "4.x.x || 5.x.x || 6.x.x", - "@devoinc/genesys-ui": "^11.1.1", + "@devoinc/genesys-ui": "^12.0.0", "date-fns": "2.x.x", "react": "16.x || 17.x || 18.x", "react-popper": "2.x.x", @@ -17830,12 +17963,12 @@ }, "packages/table": { "name": "@devoinc/genesys-ui-table", - "version": "11.1.1", + "version": "12.0.0", "license": "MIT", "peerDependencies": { "@devoinc/genesys-icons": "^4.x.x || ^5.x.x || ^6.x.x", - "@devoinc/genesys-ui": "^11.1.1", - "@devoinc/genesys-ui-datetime": "^11.1.1", + "@devoinc/genesys-ui": "^12.0.0", + "@devoinc/genesys-ui-datetime": "^12.0.0", "@tanstack/react-virtual": "3.x.x", "date-fns": "2.x.x", "date-fns-tz": "2.x.x", @@ -17845,11 +17978,11 @@ }, "packages/upload": { "name": "@devoinc/genesys-ui-upload", - "version": "11.1.1", + "version": "12.0.0", "license": "MIT", "peerDependencies": { "@devoinc/genesys-icons": "4.x.x || 5.x.x || 6.x.x", - "@devoinc/genesys-ui": "^11.1.1", + "@devoinc/genesys-ui": "^12.0.0", "filepond-plugin-file-validate-size": "2.x.x", "filepond-plugin-file-validate-type": "1.x.x", "filepond-plugin-image-preview": "4.x.x", diff --git a/package.json b/package.json index c8affc470..ed758208e 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "stryker": "npm run stryker -ws --if-present", "analyzer": "npm run analyzer -ws --if-present", "test": "vitest", - "test:ci": "vitest --coverage", + "test:ci": "npm run test -ws --if-present -- --coverage --watch=false", "dpdm": "npm run dpdm -ws --if-present", "release": "release-it --dry-run", "release:ci": "release-it --ci", @@ -51,20 +51,21 @@ "@stryker-mutator/vitest-runner": "^8.5.0", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", + "@testing-library/user-event": "^14.5.2", "@types/js-cookie": "^3.0.6", - "@types/node": "^22.5.5", + "@types/node": "^22.7.0", "@vitejs/plugin-react": "^4.3.1", "@vitest/coverage-v8": "^2.1.1", "babel-plugin-styled-components": "^2.1.4", - "dependency-cruiser": "^16.4.1", + "dependency-cruiser": "^16.4.2", "dpdm": "^3.14.0", - "framer-motion": "^11.5.4", + "framer-motion": "^11.7.0", "happy-dom": "^15.7.4", "identity-obj-proxy": "^3.0.0", "js-cookie": "^3.0.5", "lodash": "^4.17.21", "mermaid": "^11.2.1", - "oxlint": "^0.9.6", + "oxlint": "^0.9.8", "polished": "^4.3.1", "prettier": "^3.3.3", "react": "^18.3.1", @@ -72,14 +73,14 @@ "react-syntax-highlighter": "^15.5.0", "release-it": "^17.6.0", "remark-gfm": "^4.0.0", - "sass": "^1.79.1", + "sass": "^1.79.3", "storybook": "^8.3.1", "tocbot": "^4.29.0", "ts-node": "^10.9.2", "typescript": "^5.6.2", - "vite": "^5.4.6", - "vite-bundle-analyzer": "^0.11.0", - "vite-plugin-dts": "^4.2.1", + "vite": "^5.4.8", + "vite-bundle-visualizer": "^1.2.1", + "vite-plugin-dts": "^4.2.2", "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1", "viz.js": "^2.1.2" diff --git a/packages/code/package.json b/packages/code/package.json index 11a570d90..749948b63 100644 --- a/packages/code/package.json +++ b/packages/code/package.json @@ -25,7 +25,7 @@ "build": "vite build", "build:watch": "vite build --watch", "depcruise": "sh ../../depcruise.sh \"$npm_package_name\"", - "analyzer": "npx vite-bundle-visualizer -o 'dist/stats.html'", + "analyzer": "vite-bundle-visualizer -o 'dist/stats.html'", "stryker": "npx stryker run", "dpdm": "dpdm --exit-code circular:1 ./src/index.ts" }, diff --git a/packages/code/src/components/Editor/Editor.mdx b/packages/code/src/components/Editor/Editor.mdx index d732b7b0f..cf2abd2b1 100644 --- a/packages/code/src/components/Editor/Editor.mdx +++ b/packages/code/src/components/Editor/Editor.mdx @@ -46,19 +46,19 @@ import { Editor, useEditorTheme } from '@devoinc/genesys-ui-code'; export const CustomThemed = () => { const editorTheme = useEditorTheme(); -return ( - - - - - - -); + return ( + + + + + + + ); }; `} /> @@ -87,41 +87,41 @@ import { Editor, registerLanguage } from '@devoinc/genesys-ui-code'; const languageId = 'myLang'; const language = { -keywords: ['"keyword"'], -tokenizer: { -root: [ -[ -/"[A-Za-z0-9_]_"/, -{ -cases: { -'@keywords': 'keyword', -'@default': 'default', -}, -}, -], -[/:\\s"((.|-|\\n|\\r)_)"/, 'value'], -], -}, + keywords: ['"keyword"'], + tokenizer: { + root: [ + [ + /"[A-Za-z0-9_]_"/, + { + cases: { + '@keywords': 'keyword', + '@default': 'default', + }, + }, + ], + [/:\\s"((.|-|\\n|\\r)_)"/, 'value'], + ], + }, }; const completionProvider = { -provideCompletionItems: (model, position) => { -const word = model.getWordUntilPosition(position); -const suggestions = [ -{ -label: 'keyword', -kind: monaco.languages.CompletionItemKind.Field, -insertText: '"keyword"', -range: { -startLineNumber: position.lineNumber, -endLineNumber: position.lineNumber, -startColumn: word.startColumn, -endColumn: word.endColumn, -}, -}, -]; -return { suggestions: suggestions }; -}, + provideCompletionItems: (model, position) => { + const word = model.getWordUntilPosition(position); + const suggestions = [ + { + label: 'keyword', + kind: monaco.languages.CompletionItemKind.Field, + insertText: '"keyword"', + range: { + startLineNumber: position.lineNumber, + endLineNumber: position.lineNumber, + startColumn: word.startColumn, + endColumn: word.endColumn, + }, + }, + ]; + return { suggestions: suggestions }; + }, }; export const CustomLang = () => { @@ -133,15 +133,15 @@ export const CustomLang = () => { .registerCompletionProvider(completionProvider); }; -return ( - -); + return ( + + ); }; `} /> @@ -164,26 +164,27 @@ import { export const CustomThemed = () => { const editorTheme = useEditorTheme(); -const { containerRef } = useEditor({ -originalValue: 'Hey there!', -modifiedValue: 'Hey hey!', -theme: editorTheme, -language: '', -beforeMount: () => console.log('beforeMount'), -onMount: () => console.log('onMount'), -onChange: () => console.log('onChange'), -onValidate: () => console.log('onValidate'), -options: {}, -}); - -return ( - - - - - - -); + const { containerRef } = useEditor({ + originalValue: 'Hey there!', + modifiedValue: 'Hey hey!', + theme: editorTheme, + language: '', + beforeMount: () => console.log('beforeMount'), + onMount: () => console.log('onMount'), + onChange: () => console.log('onChange'), + onValidate: () => console.log('onValidate'), + options: {}, + }); + + return ( + + + + + + + + ); }; `} /> @@ -215,19 +216,19 @@ export const CustomThemed = () => { }, }; -return ( - - - - - - -); + return ( + + + + + + + ); }; `} /> diff --git a/packages/code/vite.config.ts b/packages/code/vite.config.ts index 607955319..ef267cc40 100644 --- a/packages/code/vite.config.ts +++ b/packages/code/vite.config.ts @@ -53,5 +53,14 @@ export default defineConfig({ test: { environment: 'happy-dom', include: ['{src,stories}/**/*.test.ts?(x)'], + coverage: { + provider: 'v8', + include: ['{src,stories}/**/*'], + }, + server: { + deps: { + inline: [/\/@devoinc\/genesys-ui\//], + }, + }, }, }); diff --git a/packages/color/package.json b/packages/color/package.json index 5bf4855dc..fdae867e2 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -9,7 +9,7 @@ "build": "vite build", "build:watch": "vite build --watch", "depcruise": "sh ../../depcruise.sh \"$npm_package_name\"", - "analyzer": "npx vite-bundle-visualizer -o 'dist/stats.html'", + "analyzer": "vite-bundle-visualizer -o 'dist/stats.html'", "stryker": "npx stryker run", "dpdm": "dpdm --exit-code circular:1 ./src/index.ts" }, diff --git a/packages/color/vite.config.ts b/packages/color/vite.config.ts index a3f99235e..2a4ecd416 100644 --- a/packages/color/vite.config.ts +++ b/packages/color/vite.config.ts @@ -54,5 +54,14 @@ export default defineConfig({ test: { environment: 'happy-dom', include: ['{src,stories}/**/*.test.ts?(x)'], + coverage: { + provider: 'v8', + include: ['{src,stories}/**/*'], + }, + server: { + deps: { + inline: [/\/@devoinc\/genesys-ui\//], + }, + }, }, }); diff --git a/packages/core/package.json b/packages/core/package.json index b317cd1cf..aea757a90 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -18,10 +18,11 @@ "scripts": { "compile": "tsc --project tsconfig.json", "compile:watch": "npm run compile -- --watch", + "test": "vitest", "build": "vite build", "build:watch": "vite build --watch", "depcruise": "sh ../../depcruise.sh \"$npm_package_name\"", - "analyzer": "npx vite-bundle-visualizer -o 'dist/stats.html'", + "analyzer": "vite-bundle-visualizer -o 'dist/stats.html'", "stryker": "npx stryker run", "dpdm": "dpdm --exit-code circular:1 ./src/index.ts" }, diff --git a/packages/core/src/components/Panel/Panel.tsx b/packages/core/src/components/Panel/Panel.tsx index 435377d64..ee488939e 100644 --- a/packages/core/src/components/Panel/Panel.tsx +++ b/packages/core/src/components/Panel/Panel.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { useTheme } from 'styled-components'; -import { useDetectScroll } from '../../hooks'; +import { useIsOverflow } from '../../hooks'; import type { TPanelSize } from './declarations'; import type { IStyledOverloadCss, @@ -47,12 +47,14 @@ const InternalPanel = React.forwardRef( style, size = 'md', children, + removeContentSpace, ...restBoxProps }, ref, ) => { const theme = useTheme(); - const { hasScroll, targetElRef } = useDetectScroll(); + const targetElRef = React.useRef(null); + const { hasScroll } = useIsOverflow(targetElRef); return ( ( )} > {children} diff --git a/packages/core/src/components/Panel/components/PanelBody/PanelBody.tsx b/packages/core/src/components/Panel/components/PanelBody/PanelBody.tsx index 8c31681c2..ccb1c09af 100644 --- a/packages/core/src/components/Panel/components/PanelBody/PanelBody.tsx +++ b/packages/core/src/components/Panel/components/PanelBody/PanelBody.tsx @@ -19,6 +19,8 @@ export const PanelBody = React.forwardRef( const theme = useTheme(); const context = React.useContext(PanelContext); const evalSize = size || context.size || 'md'; + const removeContentSpace = + removeSpace ?? context?.removeContentSpace ?? false; return ( ( style={mergeStyles( panelBodyMixin({ hasScrollSpacing: hasScrollSpacing ?? context.scrolledBodyContent, - removeSpace, + removeSpace: removeContentSpace, size: evalSize, theme, }), diff --git a/packages/core/src/components/Panel/components/PanelBody/helpers.ts b/packages/core/src/components/Panel/components/PanelBody/helpers.ts index 7f4036e12..3d2b8b5f1 100644 --- a/packages/core/src/components/Panel/components/PanelBody/helpers.ts +++ b/packages/core/src/components/Panel/components/PanelBody/helpers.ts @@ -22,22 +22,13 @@ export const panelBodyMixin = ({ theme, }: PanelBodyMixinProps) => { const panelBodyTokens = theme.cmp.panel.content; - let trackRadius: string; - let padding = panelBodyTokens.space.padding[size]; + let padding = removeSpace ? 0 : panelBodyTokens.space.padding[size]; const margin = hasScrollSpacing ? panelBodyTokens.space.margin[size] : undefined; - if (!hasScrollSpacing) { - trackRadius = '0'; - } - - if (removeSpace) { - padding = '0'; - } - return css` - ${scrollbars({ $trackRadius: trackRadius, theme })}; + ${scrollbars({ $trackRadius: !hasScrollSpacing && '0', theme })}; padding: ${padding}; margin: ${margin}; `; diff --git a/packages/core/src/components/Panel/context.ts b/packages/core/src/components/Panel/context.ts index af9ec443f..c4ad33161 100644 --- a/packages/core/src/components/Panel/context.ts +++ b/packages/core/src/components/Panel/context.ts @@ -5,7 +5,8 @@ import type { TPanelSize } from './declarations'; export interface PanelContextProps { scrolledBodyContent?: boolean; size?: TPanelSize; - bodyRef?: (node: HTMLElement) => void; + bodyRef?: React.RefObject; + removeContentSpace?: boolean; } export const PanelContext = React.createContext({}); diff --git a/packages/core/src/components/PanelSection/PanelSection.tsx b/packages/core/src/components/PanelSection/PanelSection.tsx index 23875a1a2..9d523035b 100644 --- a/packages/core/src/components/PanelSection/PanelSection.tsx +++ b/packages/core/src/components/PanelSection/PanelSection.tsx @@ -9,7 +9,7 @@ import type { IPanelHelpAttrs, } from '../Panel/declarations'; import type { IPanelHeadingAttrs } from '../Panel/components/PanelHeader/declarations'; -import { useDetectScroll } from '../../hooks'; +import { useIsOverflow } from '../../hooks'; import { panelSectionBodyMixin, panelSectionFooterMixin, @@ -86,7 +86,8 @@ export const PanelSection: React.FC = ({ ...dataProps }) => { const theme = useTheme(); - const { hasScroll, targetElRef } = useDetectScroll(); + const targetElRef = React.useRef(null); + const { hasScroll } = useIsOverflow(targetElRef); return ( { - return css` - padding: ${getPanelSectionBodySpacing({ - hasScroll, - removeSpace, - theme, - }).contentPadding}; - margin: ${getPanelSectionBodySpacing({ - hasScroll, - removeSpace, - theme, - }).contentMargin}; - `; -}; +}: getPanelSectionBodySpacingProps) => css` + padding: ${getPanelSectionBodySpacing({ + hasScroll, + removeSpace, + theme, + }).contentPadding}; + margin: ${getPanelSectionBodySpacing({ + hasScroll, + removeSpace, + theme, + }).contentMargin}; +`; /** * Get the specific styles for PanelFooter component when it's used inside a PanelSection diff --git a/packages/core/src/hooks/index.ts b/packages/core/src/hooks/index.ts index 56e479372..61379daa3 100644 --- a/packages/core/src/hooks/index.ts +++ b/packages/core/src/hooks/index.ts @@ -2,5 +2,4 @@ export * from './useAddPropsToChildren'; export * from './useOnEventOutside'; export * from './useStateFromProps'; export * from './useWindowSize'; -export * from './useContainerDimensions'; -export * from './useDetectScroll'; +export * from './useIsOverflow'; diff --git a/packages/core/src/hooks/useContainerDimensions.ts b/packages/core/src/hooks/useContainerDimensions.ts deleted file mode 100644 index d177f161d..000000000 --- a/packages/core/src/hooks/useContainerDimensions.ts +++ /dev/null @@ -1,70 +0,0 @@ -import * as React from 'react'; -import { throttle } from 'lodash'; -import type { IClientSize } from '../declarations/dom'; - -const DEFAULT_PROPS = { delay: 0 }; - -export const useContainerDimensions = ({ delay } = DEFAULT_PROPS): { - size: IClientSize; - setRef: (node: HTMLDivElement) => void; - nodeRef: React.RefObject; -} => { - const [size, setSize] = React.useState(null); - const nodeRef = React.useRef(null); - - const updateSize = React.useCallback(() => { - if (nodeRef?.current) { - const HTMLElement: Partial = nodeRef?.current; - setSize({ - ...HTMLElement.getBoundingClientRect?.(), - clientHeight: HTMLElement.clientHeight, - clientWidth: HTMLElement.clientWidth, - scrollHeight: HTMLElement.scrollHeight, - scrollWidth: HTMLElement.scrollWidth, - }); - } - }, []); - - const handleResize = React.useMemo( - () => throttle(() => updateSize(), delay), - [updateSize, delay], - ); - - // eslint-disable-next-line consistent-return - const resizeObserver = React.useMemo(() => { - if (typeof window !== 'undefined') { - return new ResizeObserver(handleResize); - } - }, [handleResize]); - - /** - * The callback ref will be called only when the component mounts and - * unmounts. - * Note that we pass [resizeObserver] as a dependency array to useCallback. - * This ensures that our ref callback doesn’t change between the re-renders, - * only if resizeObserver has changed and so React won’t call it - * unnecessarily. - */ - const setRef = React.useCallback( - (node) => { - if (typeof window !== 'undefined') { - //Component unmount - if (nodeRef.current) { - setSize(null); - resizeObserver.unobserve(nodeRef.current); - } - - nodeRef.current = node; - - //Component mount - if (nodeRef.current) { - updateSize(); - resizeObserver.observe(nodeRef.current); - } - } - }, - [updateSize, resizeObserver], - ); - - return { setRef, size, nodeRef }; -}; diff --git a/packages/core/src/hooks/useDetectScroll.ts b/packages/core/src/hooks/useDetectScroll.ts deleted file mode 100644 index cd62e4734..000000000 --- a/packages/core/src/hooks/useDetectScroll.ts +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from 'react'; -import { updateHasScroll } from '../utils/scroll'; -import { useContainerDimensions } from './useContainerDimensions'; - -export const useDetectScroll = () => { - const { setRef: targetElRef, size: measures } = useContainerDimensions(); - - const [hasScroll, setHasScroll] = React.useState(false); - - React.useLayoutEffect( - () => updateHasScroll(measures, hasScroll, setHasScroll), - [measures, hasScroll, setHasScroll], - ); - - return { targetElRef, hasScroll }; -}; diff --git a/packages/core/src/hooks/useIsOverflow.ts b/packages/core/src/hooks/useIsOverflow.ts new file mode 100644 index 000000000..cf0ff0fbc --- /dev/null +++ b/packages/core/src/hooks/useIsOverflow.ts @@ -0,0 +1,23 @@ +import * as React from 'react'; +import { useSize } from 'ahooks'; + +export const useIsOverflow = (ref: React.RefObject) => { + const [isOverflow, setIsOverflow] = React.useState(undefined); + const size = useSize(ref); + + React.useLayoutEffect(() => { + const { current } = ref; + + const trigger = () => { + const hasOverflow = current.scrollHeight > current.clientHeight; + + setIsOverflow(hasOverflow); + }; + + if (current) { + trigger(); + } + }, [ref, size?.width, size?.height]); + + return { hasScroll: isOverflow }; +}; diff --git a/packages/core/vite.config.ts b/packages/core/vite.config.ts index d9d68f453..53ccb6a69 100644 --- a/packages/core/vite.config.ts +++ b/packages/core/vite.config.ts @@ -66,5 +66,9 @@ export default defineConfig({ test: { environment: 'happy-dom', include: ['{src,stories}/**/*.test.ts?(x)'], + coverage: { + provider: 'v8', + include: ['{src,stories}/**/*'], + }, }, }); diff --git a/packages/datetime/package.json b/packages/datetime/package.json index 66b142a47..109ca9718 100644 --- a/packages/datetime/package.json +++ b/packages/datetime/package.json @@ -6,10 +6,11 @@ "scripts": { "compile": "tsc --project tsconfig.json", "compile:watch": "npm run compile -- --watch", + "test": "vitest", "build": "vite build", "build:watch": "vite build --watch", "depcruise": "sh ../../depcruise.sh \"$npm_package_name\"", - "analyzer": "npx vite-bundle-visualizer -o 'dist/stats.html'", + "analyzer": "vite-bundle-visualizer -o 'dist/stats.html'", "stryker": "npx stryker run", "dpdm": "dpdm --exit-code circular:1 ./src/index.ts" }, diff --git a/packages/datetime/src/components/Time/Time.stories.tsx b/packages/datetime/src/components/Time/Time.stories.tsx index 87b69a707..0eb778802 100644 --- a/packages/datetime/src/components/Time/Time.stories.tsx +++ b/packages/datetime/src/components/Time/Time.stories.tsx @@ -14,7 +14,21 @@ type Story = StoryObj; export const Base: Story = { args: { value: new Date(), + hasMillis: true, }, + render: (args) => + ((props) => { + const [value, setValue] = React.useState(props.value); + return ( +