diff --git a/.idea/runConfigurations/start.xml b/.idea/runConfigurations/start.xml
deleted file mode 100644
index 0ac61971e..000000000
--- a/.idea/runConfigurations/start.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/jest-setup.ts b/jest-setup.ts
index a74c593f3..227166be7 100644
--- a/jest-setup.ts
+++ b/jest-setup.ts
@@ -23,7 +23,9 @@ import { handleGetConvRequest } from './src/tests/mocks/network/msw/handle-get-c
import { handleGetMsgRequest } from './src/tests/mocks/network/msw/handle-get-msg';
failOnConsole({
- ...getFailOnConsoleDefaultConfig()
+ ...getFailOnConsoleDefaultConfig(),
+ allowMessage: (message) =>
+ message.includes('React does not recognize the `isGeneric` prop on a DOM element')
});
beforeAll(() => {
diff --git a/package-lock.json b/package-lock.json
index fc18df53c..d3b172e2a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,8 +16,8 @@
"@reduxjs/toolkit": "^1.9.3",
"@types/webpack": "^5.28.2",
"@types/webpack-env": "^1.18.1",
- "@zextras/carbonio-design-system": "^8.1.0",
- "@zextras/carbonio-shell-ui": "devel",
+ "@zextras/carbonio-design-system": "9.0.0-devel.7",
+ "@zextras/carbonio-shell-ui": "9.0.0-devel.1734599897864",
"@zextras/carbonio-ui-preview": "^3.1.0",
"axios": "^1.6.7",
"babel-jest": "^29.4.3",
@@ -39,7 +39,7 @@
"react-i18next": "^12.2.0",
"react-redux": "^8.0.5",
"react-router-dom": "^5.3.4",
- "styled-components": "^5.3.6",
+ "styled-components": "^6.1.13",
"uuid": "^9.0.0",
"zustand": "^4.5.2"
},
@@ -60,10 +60,13 @@
"@types/jest": "^29.5.12",
"@types/lodash": "^4.17.4",
"@types/react": "^18.3.2",
+ "@types/react-dom": "^18.3.1",
"@types/react-redux": "^7.1.25",
"@types/react-router-dom": "^5.3.3",
"@types/styled-components": "^5.1.26",
- "@zextras/carbonio-ui-configs": "^1.0.0",
+ "@types/uuid": "^10.0.0",
+ "@zextras/carbonio-search-ui": "github:zextras/carbonio-search-ui#devel",
+ "@zextras/carbonio-ui-configs": "^2.0.1",
"@zextras/carbonio-ui-sdk": "^1.7.7",
"babel-plugin-styled-components": "^2.0.7",
"babel-plugin-transform-import-meta": "^2.2.0",
@@ -79,7 +82,7 @@
"msw": "^2.2.3",
"npm": "^10.5.0",
"ts-node": "^10.9.1",
- "typescript": "^4.9.5"
+ "typescript": "^5.7.2"
},
"engines": {
"node": "v18",
@@ -171,6 +174,7 @@
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz",
"integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==",
+ "dev": true,
"dependencies": {
"@babel/types": "^7.25.7"
},
@@ -669,6 +673,7 @@
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz",
"integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==",
+ "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.25.7"
},
@@ -2338,11 +2343,6 @@
}
}
},
- "node_modules/@emotion/stylis": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
- "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
- },
"node_modules/@emotion/unitless": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
@@ -2512,6 +2512,32 @@
"@floating-ui/utils": "^0.2.8"
}
},
+ "node_modules/@floating-ui/react": {
+ "version": "0.26.27",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.27.tgz",
+ "integrity": "sha512-jLP72x0Kr2CgY6eTYi/ra3VA9LOkTo4C+DUTrbFgFOExKy3omYVmwMjNKqxAHdsnyLS96BIDLcO2SlnsNf8KUQ==",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.1.2",
+ "@floating-ui/utils": "^0.2.8",
+ "tabbable": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
+ "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
"node_modules/@floating-ui/utils": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz",
@@ -3856,6 +3882,7 @@
"version": "1.21.0",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz",
"integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==",
+ "license": "MIT",
"engines": {
"node": ">=14.0.0"
}
@@ -4615,6 +4642,16 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/react-redux": {
"version": "7.1.34",
"resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz",
@@ -4754,6 +4791,12 @@
"resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz",
"integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
},
+ "node_modules/@types/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
+ "dev": true
+ },
"node_modules/@types/webpack": {
"version": "5.28.5",
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.5.tgz",
@@ -5198,36 +5241,121 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
"node_modules/@zextras/carbonio-design-system": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@zextras/carbonio-design-system/-/carbonio-design-system-8.1.0.tgz",
- "integrity": "sha512-PxiPPetc3YCKr7NsxiM83TWZhthdCsUkg6r3Njc5zOQVIE0SAMbv4fjDcPMTtDnqx8TV9e0EVZtGA0TZADmnaQ==",
+ "version": "9.0.0-devel.7",
+ "resolved": "https://registry.npmjs.org/@zextras/carbonio-design-system/-/carbonio-design-system-9.0.0-devel.7.tgz",
+ "integrity": "sha512-HOEqVm28nPSShr3uyKqzny7kodLeiXjuYy8QSEA/aFTYNyC5sBOd9q/BTpe1qHuUwSMuSNIE4ZLfMGUiu+3Pcw==",
"dependencies": {
- "@floating-ui/dom": "^1.5.3",
+ "@floating-ui/dom": "^1.6.11",
"core-js": "^3.38.1",
- "darkreader": "^4.9.58",
- "polished": "^4.2.2",
- "react-datepicker": "^4.25.0"
+ "darkreader": "^4.9.92",
+ "polished": "^4.3.1",
+ "react-datepicker": "^7.5.0"
},
"peerDependencies": {
+ "date-fns": "^4.1.0",
"lodash": "^4.17.21",
- "react": "^18.0.0",
- "react-dom": "^18.0.0",
- "styled-components": "^5.3.11"
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "styled-components": "^6.1.13"
+ }
+ },
+ "node_modules/@zextras/carbonio-search-ui": {
+ "version": "0.0.0",
+ "resolved": "git+ssh://git@github.com/zextras/carbonio-search-ui.git#44c387d8c6a7c0f985191e4b7c265a56d5b38076",
+ "dev": true,
+ "license": "AGPL-3.0-only",
+ "dependencies": {
+ "@zextras/carbonio-design-system": "9.0.0-devel.12",
+ "@zextras/carbonio-shell-ui": "devel",
+ "core-js": "^3.39.0",
+ "i18next": "^22.5.1",
+ "immer": "^10.1.1",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-i18next": "^12.3.1",
+ "react-router-dom": "^5.3.4",
+ "styled-components": "^6.1.13",
+ "zustand": "^5.0.2"
+ }
+ },
+ "node_modules/@zextras/carbonio-search-ui/node_modules/@zextras/carbonio-design-system": {
+ "version": "9.0.0-devel.12",
+ "resolved": "https://registry.npmjs.org/@zextras/carbonio-design-system/-/carbonio-design-system-9.0.0-devel.12.tgz",
+ "integrity": "sha512-syGN2E5pdhqTzmuyC5SODbbNp/4y33/ZHE80RYfLUAHitWo0QEJEJ9Cu8dMnXnBzGpC92B2M5u5N6m0bHbvm6Q==",
+ "dev": true,
+ "license": "AGPL-3.0-only",
+ "dependencies": {
+ "@floating-ui/dom": "^1.6.11",
+ "core-js": "^3.38.1",
+ "darkreader": "^4.9.92",
+ "polished": "^4.3.1",
+ "react-datepicker": "^7.5.0"
+ },
+ "peerDependencies": {
+ "date-fns": "^4.1.0",
+ "lodash": "^4.17.21",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "styled-components": "^6.1.13"
+ }
+ },
+ "node_modules/@zextras/carbonio-search-ui/node_modules/immer": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz",
+ "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
+ "node_modules/@zextras/carbonio-search-ui/node_modules/zustand": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.2.tgz",
+ "integrity": "sha512-8qNdnJVJlHlrKXi50LDqqUNmUbuBjoKLrYQBnoChIbVph7vni+sY+YpvdjXG9YLd/Bxr6scMcR+rm5H3aSqPaw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
}
},
"node_modules/@zextras/carbonio-shell-ui": {
- "version": "9.0.0-devel.1732702780906",
- "resolved": "https://registry.npmjs.org/@zextras/carbonio-shell-ui/-/carbonio-shell-ui-9.0.0-devel.1732702780906.tgz",
- "integrity": "sha512-JuX0KGiXsLGMixE9XqkG1I4Z47D2EKBihXOwD3x5cX2tsJmYegvlq1516ueNkLJ6vJX2WuN+xdL5PoAPD8B+uQ==",
+ "version": "9.0.0-devel.1734599897864",
+ "resolved": "https://registry.npmjs.org/@zextras/carbonio-shell-ui/-/carbonio-shell-ui-9.0.0-devel.1734599897864.tgz",
+ "integrity": "sha512-j6k/cOmUk/THnOPYCa0p/CREsgJBxD87RGrYCSps05pd6qjnG+J9as3MecfsdEwCl6llIxSITJ2lB7g1H3ugfg==",
+ "license": "AGPL-3.0-only",
"dependencies": {
"@fontsource/roboto": "^5.0.8",
"@sentry/browser": "^7.103.0",
"@tinymce/tinymce-react": "^4.3.2",
- "@zextras/carbonio-design-system": "9.0.0-devel.2",
- "@zextras/carbonio-ui-preview": "^3.1.0-devel.1",
+ "@zextras/carbonio-design-system": "9.0.0-devel.7",
+ "@zextras/carbonio-ui-preview": "^3.1.0",
"darkreader": "^4.9.79",
+ "date-fns": "^4.1.0",
"history": "^5.3.0",
"i18next": "^22.5.1",
+ "i18next-chained-backend": "^4.6.2",
"i18next-http-backend": "^2.5.0",
"immer": "^10.0.3",
"lodash": "^4.17.21",
@@ -5247,9 +5375,9 @@
"npm": "v10"
},
"peerDependencies": {
- "@zextras/carbonio-design-system": "9.1.0-devel.2",
+ "@zextras/carbonio-design-system": "9.0.0-devel.7",
"@zextras/carbonio-ui-preview": "^3.1.0",
- "core-js": "^3.31.1",
+ "core-js": "^3.39.0",
"lodash": "^4.17.21",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@@ -5284,42 +5412,6 @@
}
}
},
- "node_modules/@zextras/carbonio-shell-ui/node_modules/@emotion/is-prop-valid": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
- "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
- "dependencies": {
- "@emotion/memoize": "^0.8.1"
- }
- },
- "node_modules/@zextras/carbonio-shell-ui/node_modules/@emotion/memoize": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz",
- "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
- },
- "node_modules/@zextras/carbonio-shell-ui/node_modules/@emotion/unitless": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
- "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
- },
- "node_modules/@zextras/carbonio-shell-ui/node_modules/@zextras/carbonio-design-system": {
- "version": "9.0.0-devel.2",
- "resolved": "https://registry.npmjs.org/@zextras/carbonio-design-system/-/carbonio-design-system-9.0.0-devel.2.tgz",
- "integrity": "sha512-WxQ4lPP7MO5Nyba7Ck+8N6XH52ZnsVzeY+Kf2JP1jKuw9xOgIkSy9PRyrNJLxuZdPMdZLlbbFycKzNcjH13QnQ==",
- "dependencies": {
- "@floating-ui/dom": "^1.6.11",
- "core-js": "^3.38.1",
- "darkreader": "^4.9.92",
- "polished": "^4.3.1",
- "react-datepicker": "^4.25.0"
- },
- "peerDependencies": {
- "lodash": "^4.17.21",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "styled-components": "^6.1.13"
- }
- },
"node_modules/@zextras/carbonio-shell-ui/node_modules/immer": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz",
@@ -5329,75 +5421,12 @@
"url": "https://opencollective.com/immer"
}
},
- "node_modules/@zextras/carbonio-shell-ui/node_modules/postcss": {
- "version": "8.4.38",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
- "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/@zextras/carbonio-shell-ui/node_modules/styled-components": {
- "version": "6.1.13",
- "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz",
- "integrity": "sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==",
- "dependencies": {
- "@emotion/is-prop-valid": "1.2.2",
- "@emotion/unitless": "0.8.1",
- "@types/stylis": "4.2.5",
- "css-to-react-native": "3.2.0",
- "csstype": "3.1.3",
- "postcss": "8.4.38",
- "shallowequal": "1.1.0",
- "stylis": "4.3.2",
- "tslib": "2.6.2"
- },
- "engines": {
- "node": ">= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/styled-components"
- },
- "peerDependencies": {
- "react": ">= 16.8.0",
- "react-dom": ">= 16.8.0"
- }
- },
- "node_modules/@zextras/carbonio-shell-ui/node_modules/stylis": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
- "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
- },
- "node_modules/@zextras/carbonio-shell-ui/node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
"node_modules/@zextras/carbonio-ui-configs": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@zextras/carbonio-ui-configs/-/carbonio-ui-configs-1.0.3.tgz",
- "integrity": "sha512-TcIUjhwd/s2/YyWbpdNFKe1m7VNo3QOAnJuYDNWM7P1t9iQ6kI2hUO+UJfN/UVpM2OaCfJtlInRJ1U4LeT/msQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@zextras/carbonio-ui-configs/-/carbonio-ui-configs-2.0.1.tgz",
+ "integrity": "sha512-oSIp/EDtp4/tVWITJvKqaYwuh7hxNNyxcCJ3A90gBp29zJvxzO9jNegIeQLZQSxb8jO32ZWBxs6abTVMhVoQWA==",
"dev": true,
+ "license": "AGPL-3.0-only",
"dependencies": {
"@typescript-eslint/eslint-plugin": "^6.3.0",
"@typescript-eslint/parser": "^6.3.0",
@@ -5413,11 +5442,14 @@
"eslint-plugin-react": "^7.33.1",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-sonarjs": "^0.21.0",
- "eslint-plugin-testing-library": "^6.1.0",
+ "eslint-plugin-testing-library": "^7.0.0",
"eslint-plugin-unused-imports": "^3.0.0",
"prettier": "^3.0.1",
"prettier-eslint": "^16.1.2",
- "typescript": "^5.1.6"
+ "typescript": "^5.7.2"
+ },
+ "peerDependencies": {
+ "typescript": "^5.4"
}
},
"node_modules/@zextras/carbonio-ui-configs/node_modules/@typescript-eslint/eslint-plugin": {
@@ -5645,19 +5677,151 @@
}
},
"node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.3.0.tgz",
- "integrity": "sha512-GYcEErTt6EGwE0bPDY+4aehfEBpB2gDBFKohir8jlATSUvzStEyzCx8QWB/14xeKc/AwyXkzScSzMHnFojkWrA==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.1.1.tgz",
+ "integrity": "sha512-nszC833aZPwB6tik1nMkbFqmtgIXTT0sfJEYs0zMBKMlkQ4to2079yUV96SvmLh00ovSBJI4pgcBC1TiIP8mXg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/utils": "^5.58.0"
+ "@typescript-eslint/scope-manager": "^8.15.0",
+ "@typescript-eslint/utils": "^8.15.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0",
- "npm": ">=6"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0",
+ "pnpm": "^9.14.0"
},
"peerDependencies": {
- "eslint": "^7.5.0 || ^8.0.0"
+ "eslint": "^8.57.0 || ^9.0.0"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz",
+ "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.18.0",
+ "@typescript-eslint/visitor-keys": "8.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/types": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz",
+ "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz",
+ "integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.18.0",
+ "@typescript-eslint/visitor-keys": "8.18.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/utils": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz",
+ "integrity": "sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "8.18.0",
+ "@typescript-eslint/types": "8.18.0",
+ "@typescript-eslint/typescript-estree": "8.18.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz",
+ "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.18.0",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/eslint-visitor-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-testing-library/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@zextras/carbonio-ui-configs/node_modules/eslint-plugin-unused-imports": {
@@ -5708,23 +5872,11 @@
"node": ">=10"
}
},
- "node_modules/@zextras/carbonio-ui-configs/node_modules/typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
"node_modules/@zextras/carbonio-ui-preview": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@zextras/carbonio-ui-preview/-/carbonio-ui-preview-3.1.0.tgz",
"integrity": "sha512-d1pjXDRXRo/9F98s2KUACqxT5k0M0DV6wuxXjqxs/uwAhxUkgQUNKckaa5zMzQycN9Q8cy8ERlmGvRXQnbL4Ww==",
+ "license": "AGPL-3.0-only",
"dependencies": {
"core-js": "^3.37.1",
"react-pdf": "^9.1.0"
@@ -6648,6 +6800,7 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz",
"integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==",
+ "dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-module-imports": "^7.22.5",
@@ -7112,11 +7265,6 @@
"integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==",
"dev": true
},
- "node_modules/classnames": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
- "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
- },
"node_modules/clean-css": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
@@ -7579,10 +7727,11 @@
}
},
"node_modules/core-js": {
- "version": "3.38.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
- "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
+ "version": "3.39.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz",
+ "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==",
"hasInstallScript": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -7945,10 +8094,9 @@
}
},
"node_modules/darkreader": {
- "version": "4.9.96",
- "resolved": "https://registry.npmjs.org/darkreader/-/darkreader-4.9.96.tgz",
- "integrity": "sha512-zda3BfSF9KRNee59pWZBMeblay0THGFPob9gf2UeUes8mIMM+bHKg0EyPTcSgHholyBwRAmpRMosmPl34YAoaA==",
- "license": "MIT",
+ "version": "4.9.95",
+ "resolved": "https://registry.npmjs.org/darkreader/-/darkreader-4.9.95.tgz",
+ "integrity": "sha512-P3sRqPsOcEs8k/36BEBhVrdY1nYYF03kK6vfQ7oLBzwuCpSanambl6xxsdoW/fyKevSRriBkU4LRmQrUxPIRew==",
"dependencies": {
"malevic": "0.20.2"
},
@@ -8023,18 +8171,12 @@
}
},
"node_modules/date-fns": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
- "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
- "dependencies": {
- "@babel/runtime": "^7.21.0"
- },
- "engines": {
- "node": ">=0.11"
- },
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/date-fns"
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
}
},
"node_modules/debounce": {
@@ -10813,6 +10955,15 @@
"@babel/runtime": "^7.20.6"
}
},
+ "node_modules/i18next-chained-backend": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/i18next-chained-backend/-/i18next-chained-backend-4.6.2.tgz",
+ "integrity": "sha512-2P092fR+nAPQlGzPUoIIxbwo7PTBqQYgLxwv1XhSTQUAUoelLo5LkX+FqRxxSDg9WEAsrc8+2WL6mJtMGIa6WQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
"node_modules/i18next-http-backend": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.6.2.tgz",
@@ -18902,19 +19053,6 @@
"node": ">=10"
}
},
- "node_modules/prettier-eslint/node_modules/typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
"node_modules/prettier-linter-helpers": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
@@ -19213,22 +19351,29 @@
}
},
"node_modules/react-datepicker": {
- "version": "4.25.0",
- "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.25.0.tgz",
- "integrity": "sha512-zB7CSi44SJ0sqo8hUQ3BF1saE/knn7u25qEMTO1CQGofY1VAKahO8k9drZtp0cfW1DMfoYLR3uSY1/uMvbEzbg==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-7.5.0.tgz",
+ "integrity": "sha512-6MzeamV8cWSOcduwePHfGqY40acuGlS1cG//ePHT6bVbLxWyqngaStenfH03n1wbzOibFggF66kWaBTb1SbTtQ==",
"dependencies": {
- "@popperjs/core": "^2.11.8",
- "classnames": "^2.2.6",
- "date-fns": "^2.30.0",
- "prop-types": "^15.7.2",
- "react-onclickoutside": "^6.13.0",
- "react-popper": "^2.3.0"
+ "@floating-ui/react": "^0.26.23",
+ "clsx": "^2.1.1",
+ "date-fns": "^3.6.0",
+ "prop-types": "^15.8.1"
},
"peerDependencies": {
"react": "^16.9.0 || ^17 || ^18",
"react-dom": "^16.9.0 || ^17 || ^18"
}
},
+ "node_modules/react-datepicker/node_modules/date-fns": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
+ "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
@@ -19241,11 +19386,6 @@
"react": "^18.3.1"
}
},
- "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=="
- },
"node_modules/react-hook-form": {
"version": "7.53.0",
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.0.tgz",
@@ -19293,19 +19433,6 @@
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==",
"dev": true
},
- "node_modules/react-onclickoutside": {
- "version": "6.13.1",
- "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.1.tgz",
- "integrity": "sha512-LdrrxK/Yh9zbBQdFbMTXPp3dTSN9B+9YJQucdDu3JNKRrbdU+H+/TVONJoWtOwy4II8Sqf1y/DTI6w/vGPYW0w==",
- "funding": {
- "type": "individual",
- "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md"
- },
- "peerDependencies": {
- "react": "^15.5.x || ^16.x || ^17.x || ^18.x",
- "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x"
- }
- },
"node_modules/react-pdf": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-9.1.1.tgz",
@@ -19334,20 +19461,6 @@
}
}
},
- "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==",
- "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/react-redux": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz",
@@ -19426,6 +19539,7 @@
"version": "6.28.0",
"resolved": "https://registry.npmjs.org/react-router-dom-v5-compat/-/react-router-dom-v5-compat-6.28.0.tgz",
"integrity": "sha512-KrTxsn2vibvoTeGstcBMEuchuT+BxXGftfa7njf1vNSlzO8t+4Y5oN2h3WeAq2rK7MyA5mFUXrE/+lMOR0ay9Q==",
+ "license": "MIT",
"dependencies": {
"@remix-run/router": "1.21.0",
"history": "^5.3.0",
@@ -19444,6 +19558,7 @@
"version": "6.28.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz",
"integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==",
+ "license": "MIT",
"dependencies": {
"@remix-run/router": "1.21.0"
},
@@ -20640,23 +20755,22 @@
}
},
"node_modules/styled-components": {
- "version": "5.3.11",
- "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz",
- "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==",
- "dependencies": {
- "@babel/helper-module-imports": "^7.0.0",
- "@babel/traverse": "^7.4.5",
- "@emotion/is-prop-valid": "^1.1.0",
- "@emotion/stylis": "^0.8.4",
- "@emotion/unitless": "^0.7.4",
- "babel-plugin-styled-components": ">= 1.12.0",
- "css-to-react-native": "^3.0.0",
- "hoist-non-react-statics": "^3.0.0",
- "shallowequal": "^1.1.0",
- "supports-color": "^5.5.0"
+ "version": "6.1.13",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz",
+ "integrity": "sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==",
+ "dependencies": {
+ "@emotion/is-prop-valid": "1.2.2",
+ "@emotion/unitless": "0.8.1",
+ "@types/stylis": "4.2.5",
+ "css-to-react-native": "3.2.0",
+ "csstype": "3.1.3",
+ "postcss": "8.4.38",
+ "shallowequal": "1.1.0",
+ "stylis": "4.3.2",
+ "tslib": "2.6.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 16"
},
"funding": {
"type": "opencollective",
@@ -20664,14 +20778,63 @@
},
"peerDependencies": {
"react": ">= 16.8.0",
- "react-dom": ">= 16.8.0",
- "react-is": ">= 16.8.0"
+ "react-dom": ">= 16.8.0"
+ }
+ },
+ "node_modules/styled-components/node_modules/@emotion/is-prop-valid": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
+ "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
+ "dependencies": {
+ "@emotion/memoize": "^0.8.1"
}
},
+ "node_modules/styled-components/node_modules/@emotion/memoize": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz",
+ "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
+ },
"node_modules/styled-components/node_modules/@emotion/unitless": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
- "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
+ "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
+ },
+ "node_modules/styled-components/node_modules/postcss": {
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/styled-components/node_modules/stylis": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
+ "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
+ },
+ "node_modules/styled-components/node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/stylis": {
"version": "4.2.0",
@@ -20722,6 +20885,11 @@
"url": "https://opencollective.com/unts"
}
},
+ "node_modules/tabbable": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
+ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
+ },
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
@@ -21276,16 +21444,17 @@
"dev": true
},
"node_modules/typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
+ "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=14.17"
}
},
"node_modules/ua-parser-js": {
diff --git a/package.json b/package.json
index dd823e805..866878465 100644
--- a/package.json
+++ b/package.json
@@ -53,10 +53,13 @@
"@types/jest": "^29.5.12",
"@types/lodash": "^4.17.4",
"@types/react": "^18.3.2",
+ "@types/react-dom": "^18.3.1",
"@types/react-redux": "^7.1.25",
"@types/react-router-dom": "^5.3.3",
"@types/styled-components": "^5.1.26",
- "@zextras/carbonio-ui-configs": "^1.0.0",
+ "@types/uuid": "^10.0.0",
+ "@zextras/carbonio-search-ui": "github:zextras/carbonio-search-ui#devel",
+ "@zextras/carbonio-ui-configs": "^2.0.1",
"@zextras/carbonio-ui-sdk": "^1.7.7",
"babel-plugin-styled-components": "^2.0.7",
"babel-plugin-transform-import-meta": "^2.2.0",
@@ -72,7 +75,7 @@
"msw": "^2.2.3",
"npm": "^10.5.0",
"ts-node": "^10.9.1",
- "typescript": "^4.9.5"
+ "typescript": "^5.7.2"
},
"dependencies": {
"@emotion/react": "^11.11.4",
@@ -82,8 +85,8 @@
"@reduxjs/toolkit": "^1.9.3",
"@types/webpack": "^5.28.2",
"@types/webpack-env": "^1.18.1",
- "@zextras/carbonio-design-system": "^8.1.0",
- "@zextras/carbonio-shell-ui": "devel",
+ "@zextras/carbonio-design-system": "9.0.0-devel.7",
+ "@zextras/carbonio-shell-ui": "9.0.0-devel.1734599897864",
"@zextras/carbonio-ui-preview": "^3.1.0",
"axios": "^1.6.7",
"babel-jest": "^29.4.3",
@@ -105,7 +108,7 @@
"react-i18next": "^12.2.0",
"react-redux": "^8.0.5",
"react-router-dom": "^5.3.4",
- "styled-components": "^5.3.6",
+ "styled-components": "^6.1.13",
"uuid": "^9.0.0",
"zustand": "^4.5.2"
},
diff --git a/src/api/errors/create-mountpoint-error.ts b/src/api/errors/create-mountpoint-error.ts
index 74356b190..25ed16d29 100644
--- a/src/api/errors/create-mountpoint-error.ts
+++ b/src/api/errors/create-mountpoint-error.ts
@@ -10,7 +10,7 @@ import { GenericSoapApiError } from '../../carbonio-ui-commons/soap/errors/gener
export class CreateMountpointError extends GenericSoapApiError {
public static readonly FOLDER_ALREADY_EXISTS = 'mail.ALREADY_EXISTS';
- getLocalizedMessage(t: TFunction): string {
+ override getLocalizedMessage(t: TFunction): string {
if (this.fault.Detail.Error.Code === CreateMountpointError.FOLDER_ALREADY_EXISTS) {
return t(
'api.error.CreateMountpoint.folder_already_exists',
diff --git a/src/app-utils/add-shell-components.tsx b/src/app-utils/add-shell-components.tsx
index d43570fc0..3e2d89250 100644
--- a/src/app-utils/add-shell-components.tsx
+++ b/src/app-utils/add-shell-components.tsx
@@ -8,10 +8,8 @@ import React, { Suspense, lazy } from 'react';
import { ModalManager } from '@zextras/carbonio-design-system';
import {
addRoute,
- addSearchView,
addBoardView,
addSettingsView,
- SearchViewProps,
t,
SecondaryBarComponentProps,
upsertApp
@@ -39,10 +37,6 @@ const LazySettingsView = lazy(
() => import(/* webpackChunkName: "mail-setting-view" */ '../views/settings/settings-view')
);
-const LazySearchView = lazy(
- () => import(/* webpackChunkName: "mail-search-view" */ '../views/search/search-view')
-);
-
const LazySidebarView = lazy(
() => import(/* webpackChunkName: "mail-sidebar-view" */ '../views/sidebar/sidebar')
);
@@ -79,18 +73,6 @@ const SettingsView = (): React.JSX.Element => (
);
-const SearchView = (props: SearchViewProps): React.JSX.Element => (
- }>
-
-
-
-
-
-
-
-
-);
-
const SidebarView = (props: SecondaryBarComponentProps): React.JSX.Element => (
}>
@@ -112,11 +94,6 @@ export const addComponentsToShell = async (): Promise => {
secondaryBar: SidebarView,
appView: AppView
});
- addSearchView({
- route: MAILS_ROUTE,
- component: SearchView,
- label
- });
addBoardView({
id: MAILS_BOARD_VIEW_ID,
component: EditView
diff --git a/src/app-utils/register-shell-integrations.ts b/src/app-utils/register-shell-integrations.ts
index 3d756c014..bcb109a92 100644
--- a/src/app-utils/register-shell-integrations.ts
+++ b/src/app-utils/register-shell-integrations.ts
@@ -15,9 +15,6 @@ export const registerShellIntegrations = (): void => {
registerFunctions(
{
id: 'compose',
- // TOFIX-SHELL: fix the function type definition
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- // @ts-ignore
fn: openComposerSharedFunction
},
{
diff --git a/src/app-utils/search-registration.tsx b/src/app-utils/search-registration.tsx
new file mode 100644
index 000000000..086953627
--- /dev/null
+++ b/src/app-utils/search-registration.tsx
@@ -0,0 +1,12 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Zextras
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { useSearchRegisterer } from './use-search-registerer';
+
+export const SearchRegistration = (): null => {
+ useSearchRegisterer();
+ return null;
+};
diff --git a/src/app-utils/test/add-shell-components.test.tsx b/src/app-utils/test/add-shell-components.test.tsx
index e4636f0f5..45ca02d8d 100644
--- a/src/app-utils/test/add-shell-components.test.tsx
+++ b/src/app-utils/test/add-shell-components.test.tsx
@@ -4,11 +4,11 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { addRoute, addSearchView, addSettingsView, upsertApp } from '@zextras/carbonio-shell-ui';
+import { addBoardView, addRoute, addSettingsView, upsertApp } from '@zextras/carbonio-shell-ui';
import { HttpResponse } from 'msw';
import { createAPIInterceptor } from '../../carbonio-ui-commons/test/mocks/network/msw/create-api-interceptor';
-import { MAIL_APP_ID } from '../../constants';
+import { MAIL_APP_ID, MAILS_BOARD_VIEW_ID } from '../../constants';
import { mockAdvancedAccountAPI } from '../../tests/utils';
import { addComponentsToShell } from '../add-shell-components';
@@ -33,23 +33,12 @@ describe('addShellComponents', () => {
})
);
});
- it('should call addSearchView with the correct parameters', async () => {
- await addComponentsToShell();
- expect(addSearchView).toHaveBeenCalledWith(
- expect.objectContaining({
- route: 'mails',
- component: expect.anything(),
- label
- })
- );
- });
it('should call addBoardView with the correct parameters', async () => {
await addComponentsToShell();
-
- expect(addSearchView).toHaveBeenCalledWith(
+ expect(addBoardView).toHaveBeenCalledWith(
expect.objectContaining({
- route: 'mails',
+ id: MAILS_BOARD_VIEW_ID,
component: expect.anything()
})
);
diff --git a/src/app-utils/test/use-search-registerer.ts b/src/app-utils/test/use-search-registerer.ts
new file mode 100644
index 000000000..ffeee6e9c
--- /dev/null
+++ b/src/app-utils/test/use-search-registerer.ts
@@ -0,0 +1,67 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Zextras
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+import * as Shell from '@zextras/carbonio-shell-ui';
+
+import { setupHook } from '../../carbonio-ui-commons/test/test-setup';
+import { MAIL_APP_ID, MAILS_ROUTE } from '../../constants';
+import { useSearchRegisterer } from '../use-search-registerer';
+
+describe('useSearchView', () => {
+ it('should add search view if integration is available', () => {
+ const addSearchViewFn = jest.fn();
+ jest.spyOn(Shell, 'useIntegratedFunction').mockImplementation((id) => {
+ if (id === 'search-add-view') {
+ return [addSearchViewFn, true];
+ }
+ return [(): void => undefined, false];
+ });
+
+ setupHook(useSearchRegisterer);
+
+ expect(addSearchViewFn).toHaveBeenCalledWith({
+ id: MAIL_APP_ID,
+ app: MAIL_APP_ID,
+ icon: 'MailModOutline',
+ route: MAILS_ROUTE,
+ component: expect.anything(),
+ label: 'Mails',
+ position: 100
+ });
+ });
+
+ it('should remove search view on unmount', () => {
+ const addSearchViewFn = jest.fn();
+ const removeSearchViewFn = jest.fn();
+ jest.spyOn(Shell, 'useIntegratedFunction').mockImplementation((id) => {
+ if (id === 'search-add-view') {
+ return [addSearchViewFn, true];
+ }
+ if (id === 'search-remove-view') {
+ return [removeSearchViewFn, true];
+ }
+ return [(): void => undefined, false];
+ });
+
+ const { unmount } = setupHook(useSearchRegisterer);
+
+ unmount();
+ expect(removeSearchViewFn).toHaveBeenCalledWith(MAIL_APP_ID);
+ });
+
+ it('should not call addSearchView if integration is not available', () => {
+ const addSearchViewFn = jest.fn();
+ jest.spyOn(Shell, 'useIntegratedFunction').mockImplementation((id) => {
+ if (id === 'search-add-view') {
+ return [addSearchViewFn, false];
+ }
+ return [(): void => undefined, false];
+ });
+
+ setupHook(useSearchRegisterer);
+
+ expect(addSearchViewFn).not.toHaveBeenCalled();
+ });
+});
diff --git a/src/app-utils/use-search-registerer.tsx b/src/app-utils/use-search-registerer.tsx
new file mode 100644
index 000000000..edc581bfe
--- /dev/null
+++ b/src/app-utils/use-search-registerer.tsx
@@ -0,0 +1,60 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Zextras
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+import React, { lazy, Suspense, useEffect } from 'react';
+
+import { ModalManager } from '@zextras/carbonio-design-system';
+import type * as Search from '@zextras/carbonio-search-ui';
+import { useIntegratedFunction } from '@zextras/carbonio-shell-ui';
+import { useTranslation } from 'react-i18next';
+
+import { Spinner } from '../assets/spinner';
+import { MAIL_APP_ID, MAILS_ROUTE } from '../constants';
+import { StoreProvider } from '../store/redux';
+import { ExtraWindowsManager } from '../views/app/extra-windows/extra-window-manager';
+
+const LazySearchView = lazy(
+ () => import(/* webpackChunkName: "mail-search-view" */ '../views/search/search-view')
+);
+
+const SearchView = (props: Search.SearchViewProps): React.JSX.Element => (
+ }>
+
+
+
+
+
+
+
+
+);
+
+export const useSearchRegisterer = (): void => {
+ const [t] = useTranslation();
+ const [addSearchView, isAddSearchViewAvailable] =
+ useIntegratedFunction('search-add-view');
+ const [removeSearchView, isRemoveSearchViewAvailable] =
+ useIntegratedFunction('search-remove-view');
+
+ useEffect(() => {
+ if (isAddSearchViewAvailable) {
+ addSearchView({
+ id: MAIL_APP_ID,
+ app: MAIL_APP_ID,
+ icon: 'MailModOutline',
+ route: MAILS_ROUTE,
+ component: SearchView,
+ label: t('label.app_name', 'Mails'),
+ position: 100
+ });
+ }
+
+ return () => {
+ if (isRemoveSearchViewAvailable) {
+ removeSearchView(MAIL_APP_ID);
+ }
+ };
+ }, [addSearchView, isAddSearchViewAvailable, isRemoveSearchViewAvailable, removeSearchView, t]);
+};
diff --git a/src/app.test.tsx b/src/app.test.tsx
index e134df8a0..8edd19aa3 100644
--- a/src/app.test.tsx
+++ b/src/app.test.tsx
@@ -13,6 +13,7 @@ import App from './app';
import * as addComponentsToShell from './app-utils/add-shell-components';
import * as registerShellActions from './app-utils/register-shell-actions';
import * as registerShellIntegrations from './app-utils/register-shell-integrations';
+import * as useSearchRegisterer from './app-utils/use-search-registerer';
import { generateFolder } from './carbonio-ui-commons/test/mocks/folders/folders-generator';
import {
createAPIInterceptor,
@@ -83,6 +84,12 @@ describe('App', () => {
expect(registerShellIntegrationsSpy).toHaveBeenCalled();
});
+ it('should register the search', () => {
+ const useSearchRegistererSpy = jest.spyOn(useSearchRegisterer, 'useSearchRegisterer');
+ setupTest();
+ expect(useSearchRegistererSpy).toHaveBeenCalled();
+ });
+
it('should add the backup search route when the backup search messages are present', () => {
updateBackupSearchStoreWith([aDeletedMessage()]);
diff --git a/src/app.tsx b/src/app.tsx
index f41228d55..2b60c8963 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -7,6 +7,7 @@
import React from 'react';
import { BackupSearchComponentToggler } from './app-utils/backup-search-component-toggler';
+import { SearchRegistration } from './app-utils/search-registration';
import { ShellRegistrations } from './app-utils/shell-registrations';
import { AuthGuard } from './auth-guard';
import { StoreProvider } from './store/redux';
@@ -21,6 +22,7 @@ const App = (): React.JSX.Element => (
+
diff --git a/src/assets/animated-loader.tsx b/src/assets/animated-loader.tsx
index 26d736aeb..735093334 100644
--- a/src/assets/animated-loader.tsx
+++ b/src/assets/animated-loader.tsx
@@ -26,7 +26,11 @@ type AnimatedLoaderProps = React.SVGAttributes & {
spinnerBackgroundColor: string;
};
-const AnimatedLoaderComponent = (props: AnimatedLoaderProps): React.JSX.Element => (
+const AnimatedLoaderComponent = ({
+ spinnerColor,
+ spinnerBackgroundColor,
+ ...props
+}: AnimatedLoaderProps): React.JSX.Element => (
@@ -55,7 +59,7 @@ const AnimatedLoaderComponent = (props: AnimatedLoaderProps): React.JSX.Element
id="e9AcbENh5Z75"
d="M6,12C6,11.734800,5.894640,11.480400,5.707110,11.292900C5.519570,11.105400,5.265220,11,5,11L3,11C2.734780,11,2.480430,11.105400,2.292890,11.292900C2.105360,11.480400,2,11.734800,2,12C2,12.265200,2.105360,12.519600,2.292890,12.707100C2.480430,12.894600,2.734780,13,3,13L5,13C5.265220,13,5.519570,12.894600,5.707110,12.707100C5.894640,12.519600,6,12.265200,6,12Z"
transform="matrix(1 0 0 1 0.26234975000000 0)"
- fill={props.spinnerBackgroundColor}
+ fill={spinnerBackgroundColor}
stroke="none"
strokeWidth="1"
/>
@@ -63,21 +67,21 @@ const AnimatedLoaderComponent = (props: AnimatedLoaderProps): React.JSX.Element
id="e9AcbENh5Z76"
d="M6.220230,4.999950C6.025300,4.815620,5.765120,4.716280,5.496950,4.723780C5.228770,4.731290,4.974560,4.845010,4.790230,5.039950C4.605910,5.234880,4.506570,5.495050,4.514070,5.763230C4.521570,6.031410,4.635300,6.285620,4.830230,6.469950L6.270230,7.859950C6.366870,7.953260,6.481310,8.026140,6.606730,8.074250C6.732150,8.122360,6.865980,8.144700,7.000230,8.139950C7.134940,8.139430,7.268150,8.111710,7.391870,8.058440C7.515600,8.005170,7.627280,7.927450,7.720230,7.829950C7.906480,7.642580,8.011020,7.389130,8.011020,7.124950C8.011020,6.860760,7.906480,6.607310,7.720230,6.419950L6.220230,4.999950Z"
transform="matrix(1 0 0 1 0.02050050000000 0)"
- fill={props.spinnerColor}
+ fill={spinnerColor}
stroke="none"
strokeWidth="1"
/>
@@ -85,14 +89,14 @@ const AnimatedLoaderComponent = (props: AnimatedLoaderProps): React.JSX.Element
id="e9AcbENh5Z79"
d="M17.729900,16.140000C17.538900,15.955600,17.282600,15.854700,17.017200,15.859400C16.751800,15.864100,16.499200,15.974000,16.314900,16.165000C16.130600,16.355900,16.029600,16.612300,16.034300,16.877600C16.039000,17.143000,16.148900,17.395600,16.339900,17.580000L17.779900,19C17.965300,19.178600,18.212400,19.278900,18.469900,19.280000C18.603900,19.280700,18.736700,19.254600,18.860300,19.203100C18.984000,19.151500,19.096100,19.075700,19.189900,18.980000C19.283600,18.887000,19.358000,18.776400,19.408800,18.654500C19.459600,18.532700,19.485700,18.402000,19.485700,18.270000C19.485700,18.138000,19.459600,18.007200,19.408800,17.885400C19.358000,17.763500,19.283600,17.652900,19.189900,17.560000L17.729900,16.140000Z"
transform="matrix(1 0 0 1 -0.03194850000000 0)"
- fill={props.spinnerBackgroundColor}
+ fill={spinnerBackgroundColor}
stroke="none"
strokeWidth="1"
/>
diff --git a/src/carbonio-ui-commons b/src/carbonio-ui-commons
index 71333a47f..7ee798013 160000
--- a/src/carbonio-ui-commons
+++ b/src/carbonio-ui-commons
@@ -1 +1 @@
-Subproject commit 71333a47ff463eca7a1b9d878a209b18353fe59f
+Subproject commit 7ee7980132fe5b059759c3bb43ee895fc999b019
diff --git a/src/commons/color-picker.tsx b/src/commons/color-picker.tsx
index e1fda21d4..12d00e343 100644
--- a/src/commons/color-picker.tsx
+++ b/src/commons/color-picker.tsx
@@ -5,14 +5,14 @@
*/
import React, { FC, useCallback, useRef, useState } from 'react';
-import { Container, ContainerProps, Icon } from '@zextras/carbonio-design-system';
+import { Container, Icon } from '@zextras/carbonio-design-system';
import { HexColorPicker } from 'react-colorful';
import styled from 'styled-components';
import useClickOutside from '../hooks/use-click-outside-picker';
import { ColorContainer } from '../integrations/shared-invite-reply/parts/styled-components';
-const ColorBox = styled(Container)`
+const ColorBox = styled(Container)<{ $disabled: boolean; $color: string }>`
width: 1.75rem;
height: 1.75rem;
border-radius: 0.5rem;
@@ -20,9 +20,9 @@ const ColorBox = styled(Container) (disabled ? 'no-drop' : 'pointer')};
- background-color: ${({ color }): string => color};
- opacity: ${({ disabled }): string => (disabled ? '0.5' : '1')};
+ cursor: ${({ $disabled }): string => ($disabled ? 'no-drop' : 'pointer')};
+ background-color: ${({ $color }): string => $color};
+ opacity: ${({ $disabled }): string => ($disabled ? '0.5' : '1')};
`;
const PopOver = styled(Container)`
@@ -60,7 +60,7 @@ export const ColorPicker: FC<{
height="3rem"
>
-
+
{isOpen && (
diff --git a/src/commons/gap-container.tsx b/src/commons/gap-container.tsx
index fb6301d36..149a18b99 100644
--- a/src/commons/gap-container.tsx
+++ b/src/commons/gap-container.tsx
@@ -12,40 +12,40 @@ import {
Row,
RowProps
} from '@zextras/carbonio-design-system';
-import styled, { SimpleInterpolation } from 'styled-components';
+import styled from 'styled-components';
type GapContainerProps = ContainerProps & { gap?: ContainerProps['padding'] };
type GapRowProps = RowProps & { gap?: RowProps['padding'] };
-const StyledGapContainer = styled(Container)`
- gap: ${({ theme, gap }): SimpleInterpolation => gap && getPadding(gap, theme)};
+const StyledGapContainer = styled(Container)<{ $gap?: ContainerProps['padding'] }>`
+ gap: ${({ theme, $gap }): undefined | string | 0 => $gap && getPadding($gap, theme)};
`;
-const StyledGapRow = styled(Row)`
- gap: ${({ theme, gap }): SimpleInterpolation => gap && getPadding(gap, theme)};
+const StyledGapRow = styled(Row)<{ $gap?: ContainerProps['padding'] }>`
+ gap: ${({ theme, $gap }): undefined | string | 0 => $gap && getPadding($gap, theme)};
`;
const GapContainer = React.forwardRef(function GapContainerFn(
- { children, ...rest },
+ { children, gap, ...rest },
ref
) {
return (
-
+
{children}
);
});
const GapRow = React.forwardRef(function GapRowFn(
- { children, ...rest },
+ { children, gap, ...rest },
ref
) {
return (
-
+
{children}
);
});
-export { GapContainer, GapRow, GapContainerProps, GapRowProps };
+export { GapContainer, GapRow, type GapContainerProps, type GapRowProps };
diff --git a/src/commons/mail-message-renderer/banner-message-truncated.tsx b/src/commons/mail-message-renderer/banner-message-truncated.tsx
index 4829b128b..db032ed35 100644
--- a/src/commons/mail-message-renderer/banner-message-truncated.tsx
+++ b/src/commons/mail-message-renderer/banner-message-truncated.tsx
@@ -43,7 +43,7 @@ export const BannerMessageTruncated = ({
label={loadingMessageLabel}
icon={AnimatedLoaderWarning}
iconPlacement="left"
- color="warning"
+ labelColor="warning"
onClick={noop}
/>
) : (
@@ -51,7 +51,7 @@ export const BannerMessageTruncated = ({
backgroundColor="transparent"
type="outlined"
label={truncatedWarningButtonLabel}
- color="warning"
+ labelColor="warning"
onClick={loadMessage}
/>
)}
diff --git a/src/commons/mail-message-renderer/banner-view-external-images.tsx b/src/commons/mail-message-renderer/banner-view-external-images.tsx
index 2e9283b65..7a6f8487f 100644
--- a/src/commons/mail-message-renderer/banner-view-external-images.tsx
+++ b/src/commons/mail-message-renderer/banner-view-external-images.tsx
@@ -75,8 +75,7 @@ export const BannerViewExternalImages = ({
}}
dropdownProps={{
maxWidth: '31.25rem',
- width: 'fit',
- items
+ width: 'fit'
}}
items={items}
/>
diff --git a/src/commons/print-conversation/get-complete-html.ts b/src/commons/print-conversation/get-complete-html.ts
index fe1e73275..1b6cd4eed 100644
--- a/src/commons/print-conversation/get-complete-html.ts
+++ b/src/commons/print-conversation/get-complete-html.ts
@@ -14,7 +14,6 @@ export function getCompleteHTML({ content }: { content: string }): string {
Carbonio