From 0bdf5f206e6b5da6aaf28b638cb416c5177a498e Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Tue, 17 Jun 2025 08:56:21 +0200 Subject: [PATCH 1/4] Update to latest shlink-frontend-kit and shlink-web-component --- package-lock.json | 256 ++++++------------ package.json | 6 +- src/app/App.tsx | 10 +- src/common/AppUpdateBanner.tsx | 13 +- src/common/ErrorHandler.tsx | 2 +- src/common/ErrorLayout.tsx | 6 +- src/common/Home.tsx | 22 +- src/common/MainHeader.tsx | 10 +- src/common/NoMenuLayout.tsx | 2 +- src/common/NotFound.tsx | 2 +- src/common/ShlinkVersions.tsx | 4 +- src/common/ShlinkVersionsContainer.tsx | 2 +- src/common/img/ShlinkLogo.tsx | 4 +- src/index.scss | 6 - src/index.tsx | 1 - src/servers/CreateServer.tsx | 14 +- src/servers/DeleteServerButton.tsx | 4 +- src/servers/DeleteServerModal.tsx | 6 +- src/servers/EditServer.tsx | 3 +- src/servers/ManageServers.tsx | 20 +- src/servers/ManageServersRow.tsx | 12 +- src/servers/ManageServersRowDropdown.tsx | 13 +- src/servers/ServersDropdown.tsx | 4 +- src/servers/ServersListGroup.tsx | 14 +- .../helpers/DuplicatedServersModal.tsx | 4 +- src/servers/helpers/ImportServersBtn.tsx | 7 +- src/servers/helpers/ServerError.tsx | 12 +- src/servers/helpers/ServerForm.tsx | 22 +- src/servers/helpers/withSelectedServer.tsx | 2 +- src/tailwind.css | 6 +- test/app/App.test.tsx | 4 +- test/common/ShlinkVersionsContainer.test.tsx | 4 +- test/common/img/ShlinkLogo.test.tsx | 4 +- test/servers/ManageServersRow.test.tsx | 2 +- test/servers/ServersListGroup.test.tsx | 4 +- .../DeleteServerButton.test.tsx.snap | 6 +- .../ManageServersRow.test.tsx.snap | 38 +-- .../ManageServersRowDropdown.test.tsx.snap | 8 +- 38 files changed, 222 insertions(+), 337 deletions(-) delete mode 100644 src/index.scss diff --git a/package-lock.json b/package-lock.json index 0fb506c1..2cb39dd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,10 +16,9 @@ "@json2csv/plainjs": "^7.0.6", "@reduxjs/toolkit": "^2.8.2", "@shlinkio/data-manipulation": "^1.0.3", - "@shlinkio/shlink-frontend-kit": "^0.9.13", + "@shlinkio/shlink-frontend-kit": "^1.0.0", "@shlinkio/shlink-js-sdk": "^2.1.0", - "@shlinkio/shlink-web-component": "^0.14.3", - "bootstrap": "5.2.3", + "@shlinkio/shlink-web-component": "^0.15.0", "bottlejs": "^2.0.1", "clsx": "^2.1.1", "compare-versions": "^6.1.1", @@ -62,7 +61,6 @@ "eslint-plugin-simple-import-sort": "^12.1.1", "history": "^5.3.0", "playwright": "^1.53.0", - "sass": "^1.89.2", "tailwindcss": "^4.1.3", "typescript": "^5.8.3", "typescript-eslint": "^8.34.0", @@ -2783,6 +2781,7 @@ "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", "dev": true, "optional": true, + "peer": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -2823,6 +2822,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2843,6 +2843,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2863,6 +2864,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2883,6 +2885,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2903,6 +2906,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2923,6 +2927,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2943,6 +2948,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2963,6 +2969,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2983,6 +2990,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -3003,6 +3011,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -3023,6 +3032,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -3043,6 +3053,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -3068,16 +3079,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, "node_modules/@reduxjs/toolkit": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", @@ -3516,9 +3517,9 @@ } }, "node_modules/@shlinkio/shlink-frontend-kit": { - "version": "0.9.13", - "resolved": "https://registry.npmjs.org/@shlinkio/shlink-frontend-kit/-/shlink-frontend-kit-0.9.13.tgz", - "integrity": "sha512-qiEDmrzYA/rmHPdLI9znaYqMKD16ITWon/vG66LlUeDL3zR0Psppy79FjM5k3CmIGsCCZdekXQle6U19YSOQLA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@shlinkio/shlink-frontend-kit/-/shlink-frontend-kit-1.0.0.tgz", + "integrity": "sha512-S8gY2bKYj/Mfv94VoSWsT8/uAq/03XoPB0jbphwts1stLvNv6HX1uczirmw1GkeLrZ05KwcbryajpSOQDrKNGA==", "license": "MIT", "dependencies": { "@floating-ui/react": "^0.27.12", @@ -3534,7 +3535,6 @@ "react": "^18.3 || ^19.0", "react-dom": "^18.3 || ^19.0", "react-router": "^7.0.2", - "reactstrap": "^9.2.0", "tailwindcss": "^4.0.1" }, "peerDependenciesMeta": { @@ -3550,9 +3550,9 @@ "license": "MIT" }, "node_modules/@shlinkio/shlink-web-component": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@shlinkio/shlink-web-component/-/shlink-web-component-0.14.3.tgz", - "integrity": "sha512-IgTHJYkxp6Pqo4E8waouBXbpytiRasqPyMAMQ5vYfGXU5Y53D4QNkRwPsILkEVTb7B+qwQegyNax4YKjRi/hgA==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@shlinkio/shlink-web-component/-/shlink-web-component-0.15.0.tgz", + "integrity": "sha512-B4eTlE5fuXFmJyk4pAJbTeiGlHCdAIZ69AV6A5KCQd1dKwDGRp4Lf/At3MT1nIIu98fkvrM/RPrGtaht63o0MA==", "license": "MIT", "dependencies": { "@formkit/drag-and-drop": "^0.5.3", @@ -3578,7 +3578,7 @@ "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/react-fontawesome": "^0.2.2", "@reduxjs/toolkit": "^2.5.0", - "@shlinkio/shlink-frontend-kit": "^0.9.11", + "@shlinkio/shlink-frontend-kit": "^1.0.0", "@shlinkio/shlink-js-sdk": "^2.0.0", "react": "^18.3 || ^19.0", "react-dom": "^18.3 || ^19.0", @@ -5252,24 +5252,6 @@ "version": "3.7.2", "license": "MIT" }, - "node_modules/bootstrap": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", - "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "peerDependencies": { - "@popperjs/core": "^2.11.6" - } - }, "node_modules/bottlejs": { "version": "2.0.1", "license": "MIT" @@ -5470,6 +5452,8 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.0.tgz", "integrity": "sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "readdirp": "^4.0.1" }, @@ -5490,11 +5474,6 @@ "node": ">=18" } }, - "node_modules/classnames": { - "version": "2.3.2", - "license": "MIT", - "peer": true - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -5988,6 +5967,7 @@ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, "optional": true, + "peer": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -7435,7 +7415,9 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.2.tgz", "integrity": "sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/import-fresh": { "version": "3.3.1", @@ -8768,7 +8750,8 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "node_modules/node-releases": { "version": "2.0.18", @@ -9312,13 +9295,6 @@ "react-dom": "^19.0 || ^18.0" } }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT", - "peer": true - }, "node_modules/react-is": { "version": "16.13.1", "license": "MIT" @@ -9417,45 +9393,13 @@ "react-dom": ">=16.6.0" } }, - "node_modules/reactstrap": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-9.2.3.tgz", - "integrity": "sha512-1nXy7FIBIoOgXr3AIHOpgzcZXdj6rZE5YvNSPd1hYgwv8X64m6TAJsU0ExlieJdlRXhaRfTYRSZoTWa127b0gw==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@popperjs/core": "^2.6.0", - "classnames": "^2.2.3", - "prop-types": "^15.5.8", - "react-popper": "^2.2.4", - "react-transition-group": "^4.4.2" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/reactstrap/node_modules/react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" - } - }, "node_modules/readdirp": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 14.16.0" }, @@ -9845,6 +9789,8 @@ "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -11307,16 +11253,6 @@ "node": ">=18" } }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -13723,6 +13659,7 @@ "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", "dev": true, "optional": true, + "peer": true, "requires": { "@parcel/watcher-android-arm64": "2.4.1", "@parcel/watcher-darwin-arm64": "2.4.1", @@ -13747,84 +13684,96 @@ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-darwin-arm64": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-darwin-x64": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-freebsd-x64": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-linux-arm-glibc": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-linux-arm64-glibc": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-linux-arm64-musl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-linux-x64-glibc": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-linux-x64-musl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-win32-arm64": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-win32-ia32": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@parcel/watcher-win32-x64": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "@pkgjs/parseargs": { "version": "0.11.0", @@ -13839,12 +13788,6 @@ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "dev": true }, - "@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true - }, "@reduxjs/toolkit": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", @@ -14066,9 +14009,9 @@ "requires": {} }, "@shlinkio/shlink-frontend-kit": { - "version": "0.9.13", - "resolved": "https://registry.npmjs.org/@shlinkio/shlink-frontend-kit/-/shlink-frontend-kit-0.9.13.tgz", - "integrity": "sha512-qiEDmrzYA/rmHPdLI9znaYqMKD16ITWon/vG66LlUeDL3zR0Psppy79FjM5k3CmIGsCCZdekXQle6U19YSOQLA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@shlinkio/shlink-frontend-kit/-/shlink-frontend-kit-1.0.0.tgz", + "integrity": "sha512-S8gY2bKYj/Mfv94VoSWsT8/uAq/03XoPB0jbphwts1stLvNv6HX1uczirmw1GkeLrZ05KwcbryajpSOQDrKNGA==", "requires": { "@floating-ui/react": "^0.27.12", "clsx": "^2.1.1" @@ -14080,9 +14023,9 @@ "integrity": "sha512-K6zmA/A7Ux9hTn+ZjAm85YmMl7/v5XgZBM62syCxCsK7Tdw7Gg4+C06cZ2gUv+HWrHtv5IXsi4ax00++8Kg5vw==" }, "@shlinkio/shlink-web-component": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@shlinkio/shlink-web-component/-/shlink-web-component-0.14.3.tgz", - "integrity": "sha512-IgTHJYkxp6Pqo4E8waouBXbpytiRasqPyMAMQ5vYfGXU5Y53D4QNkRwPsILkEVTb7B+qwQegyNax4YKjRi/hgA==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@shlinkio/shlink-web-component/-/shlink-web-component-0.15.0.tgz", + "integrity": "sha512-B4eTlE5fuXFmJyk4pAJbTeiGlHCdAIZ69AV6A5KCQd1dKwDGRp4Lf/At3MT1nIIu98fkvrM/RPrGtaht63o0MA==", "requires": { "@formkit/drag-and-drop": "^0.5.3", "@json2csv/plainjs": "^7.0.6", @@ -15227,12 +15170,6 @@ "bluebird": { "version": "3.7.2" }, - "bootstrap": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", - "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", - "requires": {} - }, "bottlejs": { "version": "2.0.1" }, @@ -15352,6 +15289,8 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.0.tgz", "integrity": "sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==", "dev": true, + "optional": true, + "peer": true, "requires": { "readdirp": "^4.0.1" } @@ -15362,10 +15301,6 @@ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true }, - "classnames": { - "version": "2.3.2", - "peer": true - }, "clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -15709,7 +15644,8 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "doctrine": { "version": "2.1.0", @@ -16776,7 +16712,9 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.2.tgz", "integrity": "sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "import-fresh": { "version": "3.3.1", @@ -17607,7 +17545,8 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "node-releases": { "version": "2.0.18", @@ -17959,12 +17898,6 @@ "integrity": "sha512-YEPZEMntlG42lHyOnep6J86LQYA/eZB4aH5Hd2tKxtN1qcNwp8cpR0rDgL/0Ar3F3os6qkglWy8IMwBkwc9kDA==", "requires": {} }, - "react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "peer": true - }, "react-is": { "version": "16.13.1" }, @@ -18019,37 +17952,13 @@ "prop-types": "^15.6.2" } }, - "reactstrap": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-9.2.3.tgz", - "integrity": "sha512-1nXy7FIBIoOgXr3AIHOpgzcZXdj6rZE5YvNSPd1hYgwv8X64m6TAJsU0ExlieJdlRXhaRfTYRSZoTWa127b0gw==", - "peer": true, - "requires": { - "@babel/runtime": "^7.12.5", - "@popperjs/core": "^2.6.0", - "classnames": "^2.2.3", - "prop-types": "^15.5.8", - "react-popper": "^2.2.4", - "react-transition-group": "^4.4.2" - }, - "dependencies": { - "react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "peer": true, - "requires": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - } - } - } - }, "readdirp": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "recharts": { "version": "2.15.3", @@ -18319,6 +18228,8 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", "dev": true, + "optional": true, + "peer": true, "requires": { "@parcel/watcher": "^2.4.1", "chokidar": "^4.0.0", @@ -19273,15 +19184,6 @@ "xml-name-validator": "^5.0.0" } }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "peer": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, "webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", diff --git a/package.json b/package.json index 236b227b..2fb9da60 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,9 @@ "@json2csv/plainjs": "^7.0.6", "@reduxjs/toolkit": "^2.8.2", "@shlinkio/data-manipulation": "^1.0.3", - "@shlinkio/shlink-frontend-kit": "^0.9.13", + "@shlinkio/shlink-frontend-kit": "^1.0.0", "@shlinkio/shlink-js-sdk": "^2.1.0", - "@shlinkio/shlink-web-component": "^0.14.3", - "bootstrap": "5.2.3", + "@shlinkio/shlink-web-component": "^0.15.0", "bottlejs": "^2.0.1", "clsx": "^2.1.1", "compare-versions": "^6.1.1", @@ -75,7 +74,6 @@ "eslint-plugin-simple-import-sort": "^12.1.1", "history": "^5.3.0", "playwright": "^1.53.0", - "sass": "^1.89.2", "tailwindcss": "^4.1.3", "typescript": "^5.8.3", "typescript-eslint": "^8.34.0", diff --git a/src/app/App.tsx b/src/app/App.tsx index 89761e84..f6cb2f84 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -61,15 +61,15 @@ const App: FCWithDeps = ( }, [settings.ui?.theme]); return ( -
+
-
+
@@ -87,7 +87,7 @@ const App: FCWithDeps = (
-
+
diff --git a/src/common/AppUpdateBanner.tsx b/src/common/AppUpdateBanner.tsx index 5e1f0226..b509f605 100644 --- a/src/common/AppUpdateBanner.tsx +++ b/src/common/AppUpdateBanner.tsx @@ -1,7 +1,6 @@ import { faSyncAlt as reloadIcon } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useToggle } from '@shlinkio/shlink-frontend-kit'; -import { Button, Card, CloseButton } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Button, Card, CloseButton,useToggle } from '@shlinkio/shlink-frontend-kit'; import { clsx } from 'clsx'; import type { FC } from 'react'; import { useCallback } from 'react'; @@ -13,7 +12,7 @@ interface AppUpdateBannerProps { } export const AppUpdateBanner: FC = ({ isOpen, onClose, forceUpdate }) => { - const { flag: isUpdating, setToTrue: setUpdating } = useToggle(false, true); + const { flag: isUpdating, setToTrue: setUpdating } = useToggle(); const update = useCallback(() => { setUpdating(); forceUpdate(); @@ -27,15 +26,15 @@ export const AppUpdateBanner: FC = ({ isOpen, onClose, for - +
This app has just been updated!
- + Restart it to enjoy the new features. diff --git a/src/servers/DeleteServerModal.tsx b/src/servers/DeleteServerModal.tsx index 1f1b65b0..b0218707 100644 --- a/src/servers/DeleteServerModal.tsx +++ b/src/servers/DeleteServerModal.tsx @@ -1,5 +1,5 @@ -import type { ExitAction } from '@shlinkio/shlink-frontend-kit/tailwind'; -import { CardModal } from '@shlinkio/shlink-frontend-kit/tailwind'; +import type { ExitAction } from '@shlinkio/shlink-frontend-kit'; +import { CardModal } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import { useCallback } from 'react'; import type { ServerWithId } from './data'; @@ -31,7 +31,7 @@ export const DeleteServerModal: FC = ({ server, o onClosed={onClosed} confirmText="Delete" > -
+

Are you sure you want to remove {server ? server.name : ''}?

diff --git a/src/servers/EditServer.tsx b/src/servers/EditServer.tsx index cb7d969a..0c959964 100644 --- a/src/servers/EditServer.tsx +++ b/src/servers/EditServer.tsx @@ -1,5 +1,4 @@ -import { useParsedQuery } from '@shlinkio/shlink-frontend-kit'; -import { Button } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Button,useParsedQuery } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import { NoMenuLayout } from '../common/NoMenuLayout'; import type { FCWithDeps } from '../container/utils'; diff --git a/src/servers/ManageServers.tsx b/src/servers/ManageServers.tsx index 04966585..f4c3725d 100644 --- a/src/servers/ManageServers.tsx +++ b/src/servers/ManageServers.tsx @@ -1,7 +1,7 @@ import { faFileDownload as exportIcon, faPlus as plusIcon } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import type { TimeoutToggle } from '@shlinkio/shlink-frontend-kit'; -import { Button, Result, SearchInput, SimpleCard, Table } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Button, Result, SearchInput, SimpleCard, Table } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import { useMemo, useState } from 'react'; import { NoMenuLayout } from '../common/NoMenuLayout'; @@ -40,22 +40,22 @@ const ManageServers: FCWithDeps = ({ serv ); const hasAutoConnect = allServers.some(({ autoConnect }) => !!autoConnect); // eslint-disable-next-line react-compiler/react-compiler - const [errorImporting, setErrorImporting] = useTimeoutToggle(false, SHOW_IMPORT_MSG_TIME); + const [errorImporting, setErrorImporting] = useTimeoutToggle({ delay: SHOW_IMPORT_MSG_TIME }); return ( - + -

-
- Import servers +
+
+ Import servers {filteredServers.length > 0 && ( - )}
-
@@ -64,7 +64,7 @@ const ManageServers: FCWithDeps = ({ serv {hasAutoConnect && ( - Auto-connect + Auto-connect )} NameBase URL @@ -72,7 +72,7 @@ const ManageServers: FCWithDeps = ({ serv )}> {!filteredServers.length && ( - No servers found. + No servers found. )} {filteredServers.map((server) => ( diff --git a/src/servers/ManageServersRow.tsx b/src/servers/ManageServersRow.tsx index 6f537d4f..1181b4f3 100644 --- a/src/servers/ManageServersRow.tsx +++ b/src/servers/ManageServersRow.tsx @@ -1,6 +1,6 @@ import { faCheck as checkIcon } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Table, Tooltip, useTooltip } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Table, Tooltip, useTooltip } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import { Link } from 'react-router'; import type { FCWithDeps } from '../container/utils'; @@ -22,14 +22,14 @@ const ManageServersRow: FCWithDeps const { anchor, tooltip } = useTooltip(); return ( - + {hasAutoConnect && ( {server.autoConnect && ( <> Auto-connect to this server @@ -37,11 +37,11 @@ const ManageServersRow: FCWithDeps )} )} - + {server.name} - {server.url} - + {server.url} + diff --git a/src/servers/ManageServersRowDropdown.tsx b/src/servers/ManageServersRowDropdown.tsx index c8afe490..b74d3cd4 100644 --- a/src/servers/ManageServersRowDropdown.tsx +++ b/src/servers/ManageServersRowDropdown.tsx @@ -6,8 +6,7 @@ import { faPlug as connectIcon, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useToggle } from '@shlinkio/shlink-frontend-kit'; -import { RowDropdown } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { RowDropdown,useToggle } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import type { FCWithDeps } from '../container/utils'; import { componentFactory, useDependencies } from '../container/utils'; @@ -30,7 +29,7 @@ const ManageServersRowDropdown: FCWithDeps { const { DeleteServerModal } = useDependencies(ManageServersRowDropdown); - const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle(false, true); + const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle(); const serverUrl = `/server/${server.id}`; const { autoConnect: isAutoConnect } = server; const autoConnectIcon = isAutoConnect ? toggleOffIcon : toggleOnIcon; @@ -38,17 +37,17 @@ const ManageServersRowDropdown: FCWithDeps - + Connect - + Edit server - setAutoConnect(server, !isAutoConnect)} className="tw:gap-1.5"> + setAutoConnect(server, !isAutoConnect)} className="gap-1.5"> {isAutoConnect ? 'Do not a' : 'A'}uto-connect - + Remove server diff --git a/src/servers/ServersDropdown.tsx b/src/servers/ServersDropdown.tsx index 4db7fb99..7e343221 100644 --- a/src/servers/ServersDropdown.tsx +++ b/src/servers/ServersDropdown.tsx @@ -1,6 +1,6 @@ import { faPlus as plusIcon, faServer as serverIcon } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Dropdown, NavBar } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Dropdown, NavBar } from '@shlinkio/shlink-frontend-kit'; import type { SelectedServer, ServersMap } from './data'; import { getServerId } from './data'; @@ -14,7 +14,7 @@ export const ServersDropdown = ({ servers, selectedServer }: ServersDropdownProp return ( + Servers )}> diff --git a/src/servers/ServersListGroup.tsx b/src/servers/ServersListGroup.tsx index eed7824f..bf991640 100644 --- a/src/servers/ServersListGroup.tsx +++ b/src/servers/ServersListGroup.tsx @@ -15,12 +15,12 @@ const ServerListItem = ({ id, name }: { id: string; name: string }) => ( to={`/server/${id}`} className={clsx( 'servers-list__server-item', - 'tw:flex tw:items-center tw:justify-between tw:gap-x-2 tw:px-4 tw:py-3', - 'tw:rounded-none tw:hover:bg-lm-secondary tw:hover:dark:bg-dm-secondary', - 'tw:border-b tw:last:border-0 tw:border-lm-border tw:dark:border-dm-border', + 'flex items-center justify-between gap-x-2 px-4 py-3', + 'rounded-none hover:bg-lm-secondary hover:dark:bg-dm-secondary', + 'border-b last:border-0 border-lm-border dark:border-dm-border', )} > - {name} + {name} ); @@ -31,9 +31,9 @@ export const ServersListGroup: FC = ({ servers, borderles
{servers.map(({ id, name }) => )} diff --git a/src/servers/helpers/DuplicatedServersModal.tsx b/src/servers/helpers/DuplicatedServersModal.tsx index f8ba67b9..07708c85 100644 --- a/src/servers/helpers/DuplicatedServersModal.tsx +++ b/src/servers/helpers/DuplicatedServersModal.tsx @@ -1,4 +1,4 @@ -import { CardModal } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { CardModal } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import { Fragment } from 'react'; import type { ServerData } from '../data'; @@ -26,7 +26,7 @@ export const DuplicatedServersModal: FC = ( cancelText={hasMultipleServers ? 'Ignore duplicates' : 'Discard'} >

{hasMultipleServers ? 'The next servers already exist:' : 'There is already a server with:'}

-
    +
      {duplicatedServers.map(({ url, apiKey }, index) => (!hasMultipleServers ? (
    • URL: {url}
    • diff --git a/src/servers/helpers/ImportServersBtn.tsx b/src/servers/helpers/ImportServersBtn.tsx index 038414b1..ec5c9005 100644 --- a/src/servers/helpers/ImportServersBtn.tsx +++ b/src/servers/helpers/ImportServersBtn.tsx @@ -1,7 +1,6 @@ import { faFileUpload as importIcon } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useToggle } from '@shlinkio/shlink-frontend-kit'; -import { Button, Tooltip, useTooltip } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Button, Tooltip, useToggle , useTooltip } from '@shlinkio/shlink-frontend-kit'; import type { ChangeEvent, PropsWithChildren } from 'react'; import { useCallback, useRef, useState } from 'react'; import type { FCWithDeps } from '../../container/utils'; @@ -40,7 +39,7 @@ const ImportServersBtn: FCWithDeps(null); const { anchor, tooltip } = useTooltip({ placement: tooltipPlacement }); const [duplicatedServers, setDuplicatedServers] = useState([]); - const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle(false, true); + const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle(); const newServersCreatedRef = useRef(false); const onFile = useCallback( @@ -94,7 +93,7 @@ const ImportServersBtn: FCWithDeps = ({ servers, s return ( -
      - +
      + {!isServerWithId(selectedServer) && 'Could not find this Shlink server.'} {isServerWithId(selectedServer) && ( <> @@ -34,16 +34,16 @@ const ServerError: FCWithDeps = ({ servers, s )} -

      +

      These are the Shlink servers currently configured. Choose one of them or add a new one.

      - + {isServerWithId(selectedServer) && ( -

      +

      Alternatively, if you think you may have misconfigured this server, you can remove it or  diff --git a/src/servers/helpers/ServerForm.tsx b/src/servers/helpers/ServerForm.tsx index 523c0a73..aa7d3ef0 100644 --- a/src/servers/helpers/ServerForm.tsx +++ b/src/servers/helpers/ServerForm.tsx @@ -1,12 +1,11 @@ -import { useToggle } from '@shlinkio/shlink-frontend-kit'; -import { - Checkbox, +import { Checkbox, Details, Label, LabelledInput, LabelledRevealablePasswordInput, SimpleCard, -} from '@shlinkio/shlink-frontend-kit/tailwind'; + useToggle , +} from '@shlinkio/shlink-frontend-kit'; import type { FC, PropsWithChildren, ReactNode } from 'react'; import { useState } from 'react'; import { usePreventDefault } from '../../utils/utils'; @@ -24,13 +23,12 @@ export const ServerForm: FC = ({ onSubmit, initialValues, child const [apiKey, setApiKey] = useState(initialValues?.apiKey ?? ''); const { flag: forwardCredentials, toggle: toggleForwardCredentials } = useToggle( initialValues?.forwardCredentials ?? false, - true, ); const handleSubmit = usePreventDefault(() => onSubmit({ name, url, apiKey, forwardCredentials })); return (
      - + setName(e.target.value)} required /> setUrl(e.target.value)} required /> = ({ onSubmit, initialValues, child required />

      -
      -
      -
      {children}
      +
      {children}
      ); }; diff --git a/src/servers/helpers/withSelectedServer.tsx b/src/servers/helpers/withSelectedServer.tsx index b1b86b66..e1b41ba1 100644 --- a/src/servers/helpers/withSelectedServer.tsx +++ b/src/servers/helpers/withSelectedServer.tsx @@ -1,4 +1,4 @@ -import { Message } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Message } from '@shlinkio/shlink-frontend-kit'; import type { FC } from 'react'; import { useEffect } from 'react'; import { useParams } from 'react-router'; diff --git a/src/tailwind.css b/src/tailwind.css index e92ade35..d1ffef4d 100644 --- a/src/tailwind.css +++ b/src/tailwind.css @@ -1,4 +1,4 @@ -@import 'tailwindcss' prefix(tw) important; +@import 'tailwindcss'; @import '@shlinkio/shlink-frontend-kit/tailwind.preset.css'; @import '@shlinkio/shlink-web-component/tailwind.preset.css'; @source '../node_modules/@shlinkio/shlink-frontend-kit'; @@ -8,7 +8,7 @@ :root { --footer-height: 2.3rem; --footer-margin: .8rem; - /* Temp alias fo header-height to tw-header-height, so that shlink-web-component uses the right value */ - --header-height: var(--tw-header-height); + /* FIXME Remove this once updated to shlink-web-component 0.15.1 */ + --header-height: 52px; } } diff --git a/test/app/App.test.tsx b/test/app/App.test.tsx index bb1a49cf..51aef3ae 100644 --- a/test/app/App.test.tsx +++ b/test/app/App.test.tsx @@ -62,9 +62,9 @@ describe('', () => { const shlinkWrapper = screen.getByTestId('shlink-wrapper'); if (isFlex) { - expect(shlinkWrapper).toHaveClass('tw:flex'); + expect(shlinkWrapper).toHaveClass('flex'); } else { - expect(shlinkWrapper).not.toHaveClass('tw:flex'); + expect(shlinkWrapper).not.toHaveClass('flex'); } }); }); diff --git a/test/common/ShlinkVersionsContainer.test.tsx b/test/common/ShlinkVersionsContainer.test.tsx index 07776265..2b092d46 100644 --- a/test/common/ShlinkVersionsContainer.test.tsx +++ b/test/common/ShlinkVersionsContainer.test.tsx @@ -23,9 +23,9 @@ describe('', () => { const { container } = setUp(selectedServer); if (shouldAddMargin) { - expect(container.firstChild).toHaveClass('tw:md:ml-(--aside-menu-width)'); + expect(container.firstChild).toHaveClass('md:ml-(--aside-menu-width)'); } else { - expect(container.firstChild).not.toHaveClass('tw:md:ml-(--aside-menu-width)'); + expect(container.firstChild).not.toHaveClass('md:ml-(--aside-menu-width)'); } }); }); diff --git a/test/common/img/ShlinkLogo.test.tsx b/test/common/img/ShlinkLogo.test.tsx index 99b9aee9..4b4fbd55 100644 --- a/test/common/img/ShlinkLogo.test.tsx +++ b/test/common/img/ShlinkLogo.test.tsx @@ -1,4 +1,4 @@ -import { MAIN_COLOR } from '@shlinkio/shlink-frontend-kit'; +import { brandColor } from '@shlinkio/shlink-frontend-kit'; import { render } from '@testing-library/react'; import type { ShlinkLogoProps } from '../../../src/common/img/ShlinkLogo'; import { ShlinkLogo } from '../../../src/common/img/ShlinkLogo'; @@ -10,7 +10,7 @@ describe('', () => { it('passes a11y checks', () => checkAccessibility(setUp())); it.each([ - [undefined, MAIN_COLOR], + [undefined, brandColor()], ['red', 'red'], ['white', 'white'], ])('renders expected color', (color, expectedColor) => { diff --git a/test/servers/ManageServersRow.test.tsx b/test/servers/ManageServersRow.test.tsx index fb3b4e9d..9a97d405 100644 --- a/test/servers/ManageServersRow.test.tsx +++ b/test/servers/ManageServersRow.test.tsx @@ -1,4 +1,4 @@ -import { Table } from '@shlinkio/shlink-frontend-kit/tailwind'; +import { Table } from '@shlinkio/shlink-frontend-kit'; import { render, screen } from '@testing-library/react'; import { fromPartial } from '@total-typescript/shoehorn'; import { MemoryRouter } from 'react-router'; diff --git a/test/servers/ServersListGroup.test.tsx b/test/servers/ServersListGroup.test.tsx index 274d6f90..3dfe208a 100644 --- a/test/servers/ServersListGroup.test.tsx +++ b/test/servers/ServersListGroup.test.tsx @@ -41,9 +41,9 @@ describe('', () => { const list = screen.getByTestId('list'); if (!borderless) { - expect(list).toHaveClass('tw:border-y'); + expect(list).toHaveClass('border-y'); } else { - expect(list).not.toHaveClass('tw:border-y'); + expect(list).not.toHaveClass('border-y'); } }); }); diff --git a/test/servers/__snapshots__/DeleteServerButton.test.tsx.snap b/test/servers/__snapshots__/DeleteServerButton.test.tsx.snap index c012b222..ee668f29 100644 --- a/test/servers/__snapshots__/DeleteServerButton.test.tsx.snap +++ b/test/servers/__snapshots__/DeleteServerButton.test.tsx.snap @@ -2,7 +2,7 @@ exports[` > renders expected content 1`] = `
> renders auto-connect icon only if server is auto > renders auto-connect icon only if server is auto https://example.com ManageServersRowDropdown @@ -71,27 +71,27 @@ exports[` > renders auto-connect icon only if server is auto exports[` > renders auto-connect icon only if server is autoConnect 2`] = `
> renders auto-connect icon only if server is auto https://example.com ManageServersRowDropdown diff --git a/test/servers/__snapshots__/ManageServersRowDropdown.test.tsx.snap b/test/servers/__snapshots__/ManageServersRowDropdown.test.tsx.snap index fd20c768..83f120cb 100644 --- a/test/servers/__snapshots__/ManageServersRowDropdown.test.tsx.snap +++ b/test/servers/__snapshots__/ManageServersRowDropdown.test.tsx.snap @@ -3,14 +3,14 @@ exports[` > renders expected size and icon 1`] = `