diff --git a/src/Umbraco.Web.UI.Client/devops/icons/index.js b/src/Umbraco.Web.UI.Client/devops/icons/index.js
index 0e35e7815c..7829a4d89e 100644
--- a/src/Umbraco.Web.UI.Client/devops/icons/index.js
+++ b/src/Umbraco.Web.UI.Client/devops/icons/index.js
@@ -124,16 +124,14 @@ const collectDiskIcons = async (icons) => {
iconPaths.forEach((path) => {
const rawData = readFileSync(path);
const svg = rawData.toString();
- const pattern = /\/([^/]+)\.svg$/;
+ const parsed = pathModule.parse(path);
- const match = path.match(pattern);
-
- if (!match) {
- console.log('No match found.');
+ if (!parsed) {
+ console.log('No match found for: ', path);
return;
}
- const SVGFileName = match[1];
+ const SVGFileName = parsed.name;
const iconFileName = SVGFileName.replace('.svg', '');
const iconName = iconFileName;
diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json
index d2c084279a..24c064470c 100644
--- a/src/Umbraco.Web.UI.Client/package-lock.json
+++ b/src/Umbraco.Web.UI.Client/package-lock.json
@@ -90,7 +90,7 @@
"eslint-plugin-wc": "^2.1.1",
"glob": "^11.0.0",
"globals": "^15.8.0",
- "lucide-static": "^0.424.0",
+ "lucide-static": "^0.446.0",
"madge": "^8.0.0",
"msw": "^1.3.2",
"playwright-msw": "^3.0.1",
@@ -98,7 +98,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remark-gfm": "^3.0.1",
- "rollup": "^4.21.0",
+ "rollup": "^4.22.4",
"rollup-plugin-esbuild": "^6.1.1",
"rollup-plugin-import-css": "^3.5.0",
"rollup-plugin-web-worker-loader": "^1.6.1",
@@ -4836,9 +4836,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz",
- "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz",
+ "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==",
"cpu": [
"arm"
],
@@ -4849,9 +4849,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz",
- "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz",
+ "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==",
"cpu": [
"arm64"
],
@@ -4862,9 +4862,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz",
- "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz",
+ "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==",
"cpu": [
"arm64"
],
@@ -4875,9 +4875,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz",
- "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz",
+ "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==",
"cpu": [
"x64"
],
@@ -4888,9 +4888,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz",
- "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz",
+ "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==",
"cpu": [
"arm"
],
@@ -4901,9 +4901,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz",
- "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz",
+ "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==",
"cpu": [
"arm"
],
@@ -4914,9 +4914,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz",
- "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz",
+ "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==",
"cpu": [
"arm64"
],
@@ -4927,9 +4927,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz",
- "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz",
+ "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==",
"cpu": [
"arm64"
],
@@ -4940,9 +4940,9 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz",
- "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz",
+ "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==",
"cpu": [
"ppc64"
],
@@ -4953,9 +4953,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz",
- "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz",
+ "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==",
"cpu": [
"riscv64"
],
@@ -4966,9 +4966,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz",
- "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz",
+ "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==",
"cpu": [
"s390x"
],
@@ -4979,9 +4979,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz",
- "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz",
+ "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==",
"cpu": [
"x64"
],
@@ -4992,9 +4992,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz",
- "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz",
+ "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==",
"cpu": [
"x64"
],
@@ -5005,9 +5005,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz",
- "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz",
+ "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==",
"cpu": [
"arm64"
],
@@ -5018,9 +5018,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz",
- "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz",
+ "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==",
"cpu": [
"ia32"
],
@@ -5031,9 +5031,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz",
- "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz",
+ "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==",
"cpu": [
"x64"
],
@@ -8150,6 +8150,10 @@
"resolved": "src/packages/documents",
"link": true
},
+ "node_modules/@umbraco-backoffice/embedded-media": {
+ "resolved": "src/packages/embedded-media",
+ "link": true
+ },
"node_modules/@umbraco-backoffice/extension-insights": {
"resolved": "src/packages/extension-insights",
"link": true
@@ -16554,9 +16558,9 @@
}
},
"node_modules/lucide-static": {
- "version": "0.424.0",
- "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.424.0.tgz",
- "integrity": "sha512-KUsIoKeIZF/rc5dttI/bZmd3+zQ/V9YA/G/NsGALA3QWqVncuZsyJ+IrM+jI0BTHiARwVZfp7zOEhc7gqn5x7A==",
+ "version": "0.446.0",
+ "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.446.0.tgz",
+ "integrity": "sha512-u9IkgI8k7qk738A9rt+JlENM5Sz/18EaEfqTfMEhXy2Sjq1uJA2I1WacVn6wJPXNHzrFpI5BCSmi1GtnGhsVwA==",
"dev": true
},
"node_modules/lunr": {
@@ -20373,9 +20377,9 @@
}
},
"node_modules/rollup": {
- "version": "4.21.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz",
- "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==",
+ "version": "4.22.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz",
+ "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==",
"dev": true,
"dependencies": {
"@types/estree": "1.0.5"
@@ -20388,22 +20392,22 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.21.0",
- "@rollup/rollup-android-arm64": "4.21.0",
- "@rollup/rollup-darwin-arm64": "4.21.0",
- "@rollup/rollup-darwin-x64": "4.21.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.21.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.21.0",
- "@rollup/rollup-linux-arm64-gnu": "4.21.0",
- "@rollup/rollup-linux-arm64-musl": "4.21.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.21.0",
- "@rollup/rollup-linux-s390x-gnu": "4.21.0",
- "@rollup/rollup-linux-x64-gnu": "4.21.0",
- "@rollup/rollup-linux-x64-musl": "4.21.0",
- "@rollup/rollup-win32-arm64-msvc": "4.21.0",
- "@rollup/rollup-win32-ia32-msvc": "4.21.0",
- "@rollup/rollup-win32-x64-msvc": "4.21.0",
+ "@rollup/rollup-android-arm-eabi": "4.22.4",
+ "@rollup/rollup-android-arm64": "4.22.4",
+ "@rollup/rollup-darwin-arm64": "4.22.4",
+ "@rollup/rollup-darwin-x64": "4.22.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.22.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.22.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.22.4",
+ "@rollup/rollup-linux-arm64-musl": "4.22.4",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.22.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.22.4",
+ "@rollup/rollup-linux-x64-gnu": "4.22.4",
+ "@rollup/rollup-linux-x64-musl": "4.22.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.22.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.22.4",
+ "@rollup/rollup-win32-x64-msvc": "4.22.4",
"fsevents": "~2.3.2"
}
},
@@ -23635,6 +23639,9 @@
"src/packages/documents": {
"name": "@umbraco-backoffice/document"
},
+ "src/packages/embedded-media": {
+ "name": "@umbraco-backoffice/embedded-media"
+ },
"src/packages/extension-insights": {
"name": "@umbraco-backoffice/extension-insights"
},
diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json
index c45214cfdd..d058a21df1 100644
--- a/src/Umbraco.Web.UI.Client/package.json
+++ b/src/Umbraco.Web.UI.Client/package.json
@@ -10,6 +10,7 @@
"./context-api": "./dist-cms/libs/context-api/index.js",
"./controller-api": "./dist-cms/libs/controller-api/index.js",
"./element-api": "./dist-cms/libs/element-api/index.js",
+ "./embedded-media": "./dist-cms/packages/embedded-media/index.js",
"./extension-api": "./dist-cms/libs/extension-api/index.js",
"./formatting-api": "./dist-cms/libs/formatting-api/index.js",
"./localization-api": "./dist-cms/libs/localization-api/index.js",
@@ -94,6 +95,7 @@
"./tiptap": "./dist-cms/packages/rte/tiptap/index.js",
"./tree": "./dist-cms/packages/core/tree/index.js",
"./ufm": "./dist-cms/packages/ufm/index.js",
+ "./user-change-password": "./dist-cms/packages/user/change-password/index.js",
"./user-group": "./dist-cms/packages/user/user-group/index.js",
"./user-permission": "./dist-cms/packages/user/user-permission/index.js",
"./user": "./dist-cms/packages/user/user/index.js",
@@ -268,7 +270,7 @@
"eslint-plugin-wc": "^2.1.1",
"glob": "^11.0.0",
"globals": "^15.8.0",
- "lucide-static": "^0.424.0",
+ "lucide-static": "^0.446.0",
"madge": "^8.0.0",
"msw": "^1.3.2",
"playwright-msw": "^3.0.1",
@@ -276,7 +278,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remark-gfm": "^3.0.1",
- "rollup": "^4.21.0",
+ "rollup": "^4.22.4",
"rollup-plugin-esbuild": "^6.1.1",
"rollup-plugin-import-css": "^3.5.0",
"rollup-plugin-web-worker-loader": "^1.6.1",
diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts
index 036403df06..eee608f8e6 100644
--- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts
@@ -17,6 +17,7 @@ const CORE_PACKAGES = [
import('../../packages/data-type/umbraco-package.js'),
import('../../packages/dictionary/umbraco-package.js'),
import('../../packages/documents/umbraco-package.js'),
+ import('../../packages/embedded-media/umbraco-package.js'),
import('../../packages/extension-insights/umbraco-package.js'),
import('../../packages/health-check/umbraco-package.js'),
import('../../packages/help/umbraco-package.js'),
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts
index b3da05cdf3..eb5bdaf5c7 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts
@@ -447,8 +447,7 @@ export default {
stay: 'Stay',
discardChanges: 'Discard changes',
unsavedChanges: 'You have unsaved changes',
- unsavedChangesWarning:
- 'Are you sure you want to navigate away from this page? - you have unsaved\n changes\n ',
+ unsavedChangesWarning: 'Are you sure you want to navigate away from this page? You have unsaved changes',
confirmListViewPublish: 'Publishing will make the selected items visible on the site.',
confirmListViewUnpublish:
'Unpublishing will remove the selected items and all their descendants from the\n site.\n ',
diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts
index 072eb0592d..b7dd5aa8e8 100644
--- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts
+++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts
@@ -612,7 +612,7 @@ export type DocumentBlueprintItemResponseModel = {
};
export type DocumentBlueprintResponseModel = {
- values: Array<(DocumentValueModel)>;
+ values: Array<(DocumentValueResponseModel)>;
variants: Array<(DocumentVariantResponseModel)>;
id: string;
documentType: (DocumentTypeReferenceResponseModel);
@@ -628,7 +628,7 @@ export type DocumentBlueprintTreeItemResponseModel = {
};
export type DocumentCollectionResponseModel = {
- values: Array<(DocumentValueModel)>;
+ values: Array<(DocumentValueResponseModel)>;
variants: Array<(DocumentVariantResponseModel)>;
id: string;
creator?: (string) | null;
@@ -684,7 +684,7 @@ export type DocumentReferenceResponseModel = {
};
export type DocumentResponseModel = {
- values: Array<(DocumentValueModel)>;
+ values: Array<(DocumentValueResponseModel)>;
variants: Array<(DocumentVariantResponseModel)>;
id: string;
documentType: (DocumentTypeReferenceResponseModel);
@@ -834,6 +834,14 @@ export type DocumentValueModel = {
value?: unknown;
};
+export type DocumentValueResponseModel = {
+ culture?: (string) | null;
+ segment?: (string) | null;
+ alias: string;
+ value?: unknown;
+ editorAlias: string;
+};
+
export type DocumentVariantItemResponseModel = {
name: string;
culture?: (string) | null;
@@ -875,7 +883,7 @@ export type DocumentVersionItemResponseModel = {
};
export type DocumentVersionResponseModel = {
- values: Array<(DocumentValueModel)>;
+ values: Array<(DocumentValueResponseModel)>;
variants: Array<(DocumentVariantResponseModel)>;
id: string;
documentType: (DocumentTypeReferenceResponseModel);
@@ -1156,7 +1164,7 @@ export type ManifestResponseModel = {
};
export type MediaCollectionResponseModel = {
- values: Array<(MediaValueModel)>;
+ values: Array<(MediaValueResponseModel)>;
variants: Array<(MediaVariantResponseModel)>;
id: string;
creator?: (string) | null;
@@ -1195,7 +1203,7 @@ export type MediaReferenceResponseModel = {
};
export type MediaResponseModel = {
- values: Array<(MediaValueModel)>;
+ values: Array<(MediaValueResponseModel)>;
variants: Array<(MediaVariantResponseModel)>;
id: string;
urls: Array<(MediaUrlInfoModel)>;
@@ -1325,6 +1333,14 @@ export type MediaValueModel = {
value?: unknown;
};
+export type MediaValueResponseModel = {
+ culture?: (string) | null;
+ segment?: (string) | null;
+ alias: string;
+ value?: unknown;
+ editorAlias: string;
+};
+
export type MediaVariantRequestModel = {
culture?: (string) | null;
segment?: (string) | null;
@@ -1369,7 +1385,7 @@ export enum MemberKindModel {
}
export type MemberResponseModel = {
- values: Array<(MemberValueModel)>;
+ values: Array<(MemberValueResponseModel)>;
variants: Array<(MemberVariantResponseModel)>;
id: string;
email: string;
@@ -1479,6 +1495,14 @@ export type MemberValueModel = {
value?: unknown;
};
+export type MemberValueResponseModel = {
+ culture?: (string) | null;
+ segment?: (string) | null;
+ alias: string;
+ value?: unknown;
+ editorAlias: string;
+};
+
export type MemberVariantRequestModel = {
culture?: (string) | null;
segment?: (string) | null;
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.data.ts
index 46a252aeeb..0ca71a3f1c 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.data.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.data.ts
@@ -36,6 +36,7 @@ export const data: Array = [
],
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'prop1',
culture: null,
segment: null,
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.db.ts
index 9166a603dc..9ad279f722 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.db.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.db.ts
@@ -12,6 +12,7 @@ import type {
DocumentItemResponseModel,
DocumentResponseModel,
DocumentTreeItemResponseModel,
+ DocumentValueResponseModel,
} from '@umbraco-cms/backoffice/external/backend-api';
export class UmbDocumentBlueprintMockDB extends UmbEntityMockDbBase {
@@ -65,7 +66,7 @@ const createMockDocumentBlueprintMapper = (request: CreateDocumentRequestModel):
isTrashed: false,
noAccess: false,
parent: request.parent,
- values: request.values,
+ values: request.values as DocumentValueResponseModel[],
variants: request.variants.map((variantRequest) => {
return {
culture: variantRequest.culture,
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts
index cbdce9da9f..6b512da1de 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts
@@ -39,6 +39,7 @@ export const data: Array = [
],
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'prop1',
culture: null,
segment: null,
@@ -66,6 +67,7 @@ export const data: Array = [
isTrashed: false,
values: [
{
+ editorAlias: 'Umbraco.RichText',
alias: 'richTextEditor',
culture: null,
segment: null,
@@ -83,6 +85,7 @@ export const data: Array = [
},
},
{
+ editorAlias: 'Umbraco.TextArea',
alias: 'codeEditor',
culture: null,
segment: null,
@@ -113,30 +116,35 @@ export const data: Array = [
`,
},
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'email',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.ColorPicker',
alias: 'colorPicker',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.MultiNodeTreePicker',
alias: 'contentPicker',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.ColorPicker.EyeDropper',
alias: 'eyeDropper',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.MultiUrlPicker',
alias: 'multiUrlPicker',
culture: 'en-US',
segment: null,
@@ -153,12 +161,14 @@ export const data: Array = [
],
},
{
+ editorAlias: 'Umbraco.MultiUrlPicker',
alias: 'multiUrlPicker',
culture: 'da-dk',
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.MultiNodeTreePicker',
alias: 'multiNodeTreePicker',
culture: null,
segment: null,
@@ -166,84 +176,98 @@ export const data: Array = [
'all-property-editors-document-id,c05da24d-7740-447b-9cdc-bd8ce2172e38,fd56a0b5-01a0-4da2-b428-52773bfa9cc4',
},
{
+ editorAlias: 'Umbraco.DateTime',
alias: 'datePicker',
culture: null,
segment: null,
value: '2023-12-24',
},
{
+ editorAlias: 'Umbraco.DateTime',
alias: 'datePickerTime',
culture: null,
segment: null,
value: '2023-12-24 14:52',
},
{
+ editorAlias: 'Umbraco.DateTime',
alias: 'time',
culture: null,
segment: null,
value: '14:52:00',
},
{
+ editorAlias: 'Umbraco.EmailAddress',
alias: 'email',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'textBox',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.DropDown.Flexible',
alias: 'dropdown',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.TextArea',
alias: 'textArea',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.Slider',
alias: 'slider',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.TrueFalse',
alias: 'toggle',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.Tags',
alias: 'tags',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.MarkdownEditor',
alias: 'markdownEditor',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.RadioButtonList',
alias: 'radioButtonList',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.CheckBoxList',
alias: 'checkboxList',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.BlockList',
alias: 'blockList',
culture: null,
segment: null,
@@ -298,12 +322,14 @@ export const data: Array = [
},
},
{
+ editorAlias: 'Umbraco.MediaPicker3',
alias: 'mediaPicker',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.ImageCropper',
alias: 'imageCropper',
culture: null,
segment: null,
@@ -384,12 +410,14 @@ export const data: Array = [
},
},
{
+ editorAlias: 'Umbraco.UploadField',
alias: 'uploadField',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.BlockGrid',
alias: 'blockGrid',
culture: null,
segment: null,
@@ -473,60 +501,70 @@ export const data: Array = [
},
},
{
+ editorAlias: 'Umbraco.BlockGrid',
alias: 'blockGrid',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: '',
alias: 'numberRange',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: '',
alias: 'orderDirection',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: '',
alias: 'overlaySize',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.Label',
alias: 'label',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.Integer',
alias: 'integer',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.Decimal',
alias: 'decimal',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.MemberPicker',
alias: 'memberPicker',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.MemberGroupPicker',
alias: 'memberGroupPicker',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.UserPicker',
alias: 'userPicker',
culture: null,
segment: null,
@@ -574,60 +612,70 @@ export const data: Array = [
isTrashed: false,
values: [
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'masterText',
value: 'i have a master text',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'pageTitle',
value: 'with a page title',
},
{
+ editorAlias: 'Umbraco.TextArea',
culture: null,
segment: null,
alias: 'blogPostText',
value: 'My first blog post',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'en-US',
segment: null,
alias: 'blogTextStringUnderMasterTab',
value: 'in the master tab',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'en-US',
segment: null,
alias: 'blogTextStringUnderGroupUnderMasterTab',
value: 'which is under another group in the tab',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'da-dk',
segment: null,
alias: 'blogTextStringUnderMasterTab',
value: 'på master dokument tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'da-dk',
segment: null,
alias: 'blogTextStringUnderGroupUnderMasterTab',
value: 'denne er under en anden gruppe i tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'no-no',
segment: null,
alias: 'blogTextStringUnderMasterTab',
value: 'Norsk på master dokument tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'no-no',
segment: null,
alias: 'blogTextStringUnderGroupUnderMasterTab',
value: 'Norsk denne er under en anden gruppe i tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'localBlogTabString',
@@ -697,48 +745,56 @@ export const data: Array = [
isTrashed: false,
values: [
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'masterText',
value: 'i have a master text B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'pageTitle',
value: 'with a page title B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'blogPostText',
value: 'My first blog post B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'en-US',
segment: null,
alias: 'blogTextStringUnderMasterTab',
value: 'in the master tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'en-US',
segment: null,
alias: 'blogTextStringUnderGroupUnderMasterTab',
value: 'which is under another group in the tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'da-dk',
segment: null,
alias: 'blogTextStringUnderMasterTab',
value: 'på master dokument tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: 'da-dk',
segment: null,
alias: 'blogTextStringUnderGroupUnderMasterTab',
value: 'denne er under en anden gruppe i tab B',
},
{
+ editorAlias: 'Umbraco.TextBox',
culture: null,
segment: null,
alias: 'localBlogTabString',
@@ -789,12 +845,14 @@ export const data: Array = [
],
values: [
{
+ editorAlias: 'Umbraco.MultiNodeTreePicker',
alias: 'multiNodeTreePicker',
culture: null,
segment: null,
value: null,
},
{
+ editorAlias: 'Umbraco.ListView',
alias: 'listView',
culture: null,
segment: null,
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts
index d9a36ba11b..5cace7dd50 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts
@@ -18,6 +18,7 @@ import type {
DocumentTreeItemResponseModel,
DomainsResponseModel,
DocumentConfigurationResponseModel,
+ DocumentValueResponseModel,
} from '@umbraco-cms/backoffice/external/backend-api';
export class UmbDocumentMockDB extends UmbEntityMockDbBase {
@@ -89,7 +90,8 @@ const createMockDocumentMapper = (request: CreateDocumentRequestModel): UmbMockD
isTrashed: false,
noAccess: false,
parent: request.parent,
- values: request.values,
+ // TODO: Currently trusting we did send the editorAlias to the create end point:
+ values: request.values as DocumentValueResponseModel[],
variants: request.variants.map((variantRequest) => {
return {
culture: variantRequest.culture,
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts
index 012ab54620..b6012a0494 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts
@@ -19,6 +19,7 @@ export const data: Array = [
},
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'myMediaHeadline',
value: 'The daily life at Umbraco HQ',
},
@@ -47,6 +48,7 @@ export const data: Array = [
},
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'myMediaDescription',
value: 'Every day, a rabbit in a military costume greets me at the front door',
},
@@ -123,6 +125,7 @@ export const data: Array = [
},
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'myMediaDescription',
value: 'Every day, a rabbit in a military costume greets me at the front door',
},
@@ -151,6 +154,7 @@ export const data: Array = [
},
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'myMediaDescription',
value: 'Every day, a rabbit in a military costume greets me at the front door',
},
@@ -179,6 +183,7 @@ export const data: Array = [
},
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'myMediaDescription',
value: 'Every day, a rabbit in a military costume greets me at the front door',
},
@@ -207,6 +212,7 @@ export const data: Array = [
},
values: [
{
+ editorAlias: 'Umbraco.TextBox',
alias: 'myMediaDescription',
value: 'Every day, a rabbit in a military costume greets me at the front door',
},
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts
index e0a6337152..f8e81cd0dc 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts
@@ -14,6 +14,7 @@ import type {
MediaItemResponseModel,
MediaResponseModel,
MediaTreeItemResponseModel,
+ MediaValueResponseModel,
} from '@umbraco-cms/backoffice/external/backend-api';
export class UmbMediaMockDB extends UmbEntityMockDbBase {
@@ -64,7 +65,8 @@ const createMockMediaMapper = (request: CreateMediaRequestModel): UmbMockMediaMo
isTrashed: false,
noAccess: false,
parent: request.parent,
- values: request.values,
+ // We trust blindly that we send of the editorAlias to the create end point.
+ values: request.values as MediaValueResponseModel[],
variants: request.variants.map((variantRequest) => {
return {
culture: variantRequest.culture,
diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts
index ca5fb77e98..77f41e2cde 100644
--- a/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts
+++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member/member.db.ts
@@ -11,6 +11,7 @@ import {
type CreateMemberRequestModel,
type MemberItemResponseModel,
type MemberResponseModel,
+ type MemberValueResponseModel,
} from '@umbraco-cms/backoffice/external/backend-api';
class UmbMemberMockDB extends UmbEntityMockDbBase {
@@ -46,7 +47,7 @@ const createDetailMockMapper = (request: CreateMemberRequestModel): UmbMockMembe
icon: memberType.icon,
},
username: request.username,
- values: request.values,
+ values: request.values as MemberValueResponseModel[],
variants: request.variants.map((variantRequest) => {
return {
culture: variantRequest.culture,
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.modal-token.ts
index a8d866932d..9dd0ee6146 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.modal-token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.modal-token.ts
@@ -1,4 +1,4 @@
-import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal';
+import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/workspace';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts
index 0c597e5ded..afc2d9033b 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts
@@ -29,7 +29,7 @@ export class UmbPropertyEditorUIBlockGridElement
extends UmbFormControlMixin(UmbLitElement)
implements UmbPropertyEditorUiElement
{
- #validationContext = new UmbValidationContext(this).provide();
+ #validationContext = new UmbValidationContext(this);
#contentDataPathTranslator?: UmbBlockElementDataValidationPathTranslator;
#settingsDataPathTranslator?: UmbBlockElementDataValidationPathTranslator;
#context = new UmbBlockGridManagerContext(this);
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-type-workspace.modal-token.ts
index 19d76caa88..61b344ca99 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-type-workspace.modal-token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-type-workspace.modal-token.ts
@@ -1,5 +1,5 @@
import { UMB_BLOCK_GRID_TYPE, type UmbBlockGridTypeModel } from '../types.js';
-import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal';
+import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/workspace';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
export type UmbBlockGridTypeWorkspaceData = UmbWorkspaceModalData;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts
index f7c523dffc..2b98a3a097 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts
@@ -1,5 +1,5 @@
import type { UmbBlockWorkspaceData, UmbBlockWorkspaceOriginData } from '@umbraco-cms/backoffice/block';
-import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal';
+import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/workspace';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
export interface UmbBlockGridWorkspaceOriginData extends UmbBlockWorkspaceOriginData {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts
index a1823b0d3a..e281b29968 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts
@@ -53,7 +53,7 @@ export class UmbPropertyEditorUIBlockListElement
},
});
- #validationContext = new UmbValidationContext(this).provide();
+ #validationContext = new UmbValidationContext(this);
#contentDataPathTranslator?: UmbBlockElementDataValidationPathTranslator;
#settingsDataPathTranslator?: UmbBlockElementDataValidationPathTranslator;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts
index 53154a5743..f41bc152ea 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts
@@ -8,7 +8,7 @@ import {
type UmbPropertyEditorConfigCollection,
} from '@umbraco-cms/backoffice/property-editor';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/modal';
+import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace';
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
/**
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts
index ba7b620324..9d920e144f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts
@@ -1,5 +1,5 @@
import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block';
-import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal';
+import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/workspace';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
export interface UmbBlockListWorkspaceOriginData {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts
index 11a110a595..0c4849d938 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts
@@ -1,5 +1,5 @@
import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block';
-import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal';
+import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/workspace';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts
index cb1f037a1a..294a553c13 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts
@@ -7,7 +7,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { type UmbClassInterface, UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type';
import type { UmbVariantId } from '@umbraco-cms/backoffice/variant';
-import { UmbValidationContext } from '@umbraco-cms/backoffice/validation';
+import { UmbValidationController } from '@umbraco-cms/backoffice/validation';
export class UmbBlockElementManager extends UmbControllerBase {
//
@@ -29,7 +29,7 @@ export class UmbBlockElementManager extends UmbControllerBase {
new UmbDocumentTypeDetailRepository(this),
);
- readonly validation = new UmbValidationContext(this);
+ readonly validation = new UmbValidationController(this);
constructor(host: UmbControllerHost, dataPathPropertyName: string) {
super(host);
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts
index 84e1aed4a5..ab491e185a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts
@@ -1,4 +1,4 @@
-import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal';
+import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/workspace';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts
similarity index 91%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts
index bb7126baaf..93f4b59add 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts
@@ -1,9 +1,7 @@
+import type { UmbCodeEditorElement } from '../components/code-editor.element.js';
+import type { UmbCodeEditorModalData, UmbCodeEditorModalValue } from './code-editor-modal.token.js';
import { css, html, ifDefined, customElement, query } from '@umbraco-cms/backoffice/external/lit';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
-import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor';
-import type { UmbCodeEditorModalData, UmbCodeEditorModalValue } from '@umbraco-cms/backoffice/modal';
-
-import '@umbraco-cms/backoffice/code-editor';
const elementName = 'umb-code-editor-modal';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.stories.ts
similarity index 85%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts
rename to src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.stories.ts
index 37dd470a28..6d25717e21 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.stories.ts
@@ -1,8 +1,6 @@
-import '../confirm/confirm-modal.element.js';
-
+import type { UmbCodeEditorModalData } from './code-editor-modal.token.js';
import type { Meta, Story } from '@storybook/web-components';
import { html } from '@umbraco-cms/backoffice/external/lit';
-import type { UmbCodeEditorModalData } from '@umbraco-cms/backoffice/modal';
export default {
title: 'API/Modals/Layouts/Code Editor',
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/code-editor-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.token.ts
similarity index 91%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/code-editor-modal.token.ts
rename to src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.token.ts
index c62514f2ee..d722df2d8d 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/code-editor-modal.token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.token.ts
@@ -1,4 +1,4 @@
-import { UmbModalToken } from './modal-token.js';
+import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
// TODO => investigate why exporting CodeEditorLanguage in code-editor barrel
// causes the schema generation task to fail... For now, language property below
diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/index.ts
new file mode 100644
index 0000000000..9c91a9f078
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/index.ts
@@ -0,0 +1 @@
+export * from './code-editor-modal.token.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/manifests.ts
new file mode 100644
index 0000000000..027627c4a6
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/manifests.ts
@@ -0,0 +1,8 @@
+export const manifests: Array = [
+ {
+ type: 'modal',
+ alias: 'Umb.Modal.CodeEditor',
+ name: 'Code Editor Modal',
+ element: () => import('./code-editor-modal.element.js'),
+ },
+];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/index.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/index.ts
index 60335eb6e1..e3fb6a2f7c 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/code-editor/index.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/index.ts
@@ -1,5 +1,7 @@
export * from './components/index.js';
export * from './models/index.js';
+export * from './code-editor-modal/index.js';
+
export type { UmbCodeEditorController } from './code-editor.controller.js';
/**
diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/manifests.ts
index 47a0a1f5f3..5992ca6356 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/code-editor/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/manifests.ts
@@ -1,3 +1,4 @@
import { manifest as propertyEditorManifest } from './property-editor/manifests.js';
+import { manifests as codeEditorModalManifests } from './code-editor-modal/manifests.js';
-export const manifests: Array = [propertyEditorManifest];
+export const manifests: Array = [propertyEditorManifest, ...codeEditorModalManifests];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-tab.element.ts
index ba77d8394a..3b18576327 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-tab.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-tab.element.ts
@@ -6,7 +6,7 @@ import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
import { UmbSorterController } from '@umbraco-cms/backoffice/sorter';
-import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/modal';
+import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace';
import type { UmbContentTypeModel, UmbPropertyTypeContainerModel } from '@umbraco-cms/backoffice/content-type';
import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.element.ts
similarity index 92%
rename from src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.element.ts
index 61837a12e1..1c826202cc 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.element.ts
@@ -1,7 +1,7 @@
+import type { UmbContextDebuggerModalData } from './debug-modal.token.js';
import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
-import type { UmbContextDebuggerModalData } from '@umbraco-cms/backoffice/modal';
@customElement('umb-context-debugger-modal')
export default class UmbContextDebuggerModalElement extends UmbModalBaseElement {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.token.ts
similarity index 83%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts
rename to src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.token.ts
index 9e4c9060b5..391c76d90a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.token.ts
@@ -1,4 +1,4 @@
-import { UmbModalToken } from './modal-token.js';
+import { UmbModalToken } from '../../modal/token/modal-token.js';
import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit';
export interface UmbContextDebuggerModalData {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/index.ts
new file mode 100644
index 0000000000..6ae52d2f38
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/index.ts
@@ -0,0 +1 @@
+export * from './debug-modal.token.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/manifests.ts
new file mode 100644
index 0000000000..b87b948afa
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/manifests.ts
@@ -0,0 +1,8 @@
+export const manifests: Array = [
+ {
+ type: 'modal',
+ alias: 'Umb.Modal.ContextDebugger',
+ name: 'Context Debugger Modal',
+ element: () => import('./debug-modal.element.js'),
+ },
+];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts
index dda8a9297c..418b07fbc9 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts
@@ -1,7 +1,8 @@
+import { UMB_CONTEXT_DEBUGGER_MODAL } from './debug-modal/index.js';
import { css, customElement, html, map, nothing, property, state, when } from '@umbraco-cms/backoffice/external/lit';
import { contextData, UmbContextDebugRequest } from '@umbraco-cms/backoffice/context-api';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-import { UMB_CONTEXT_DEBUGGER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
+import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
import type { UmbDebugContextData, UmbDebugContextItemData } from '@umbraco-cms/backoffice/context-api';
import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts
index 3aae472235..a542c9a49e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/index.ts
@@ -1,3 +1,4 @@
-export * from './debug.element.js';
export * from './context-debug.controller.js';
+export * from './debug-modal/index.js';
+export * from './debug.element.js';
export * from './manifests.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts
index 4cdc6cf2ce..b075c82b50 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/manifests.ts
@@ -1,8 +1,3 @@
-export const manifests: Array = [
- {
- type: 'modal',
- alias: 'Umb.Modal.ContextDebugger',
- name: 'Context Debugger Modal',
- element: () => import('./modals/debug/debug-modal.element.js'),
- },
-];
+import { manifests as debugModalManifests } from './debug-modal/manifests.js';
+
+export const manifests: Array = [...debugModalManifests];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts
index a6a031522e..07995746e6 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts
@@ -16,6 +16,7 @@ export const manifest: UmbExtensionManifestKind = {
meta: {
icon: 'icon-trash',
label: '#actions_delete',
+ additionalOptions: true,
itemRepositoryAlias: '',
detailRepositoryAlias: '',
},
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts
index 375686b7fe..15ce0cde5e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts
@@ -16,6 +16,7 @@ export const manifest: UmbExtensionManifestKind = {
meta: {
icon: 'icon-enter',
label: '#actions_copy',
+ additionalOptions: true,
treeRepositoryAlias: '',
duplicateRepositoryAlias: '',
},
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts
index cf097b7010..af65c5896e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts
@@ -60,11 +60,11 @@ export class UmbEntityActionDefaultElement<
}
override render() {
+ const label = this.manifest?.meta.label ? this.localize.string(this.manifest.meta.label) : this.manifest?.name;
+
return html`
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts
index 5baafff43d..096a59dbb5 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts
@@ -40,6 +40,14 @@ export interface MetaEntityActionDefaultKind extends MetaEntityAction {
* ]
*/
label: string;
+
+ /**
+ * The action requires additional input from the user.
+ * A dialog will prompt the user for more information or to make a choice.
+ * @type {boolean}
+ * @memberof MetaEntityActionDefaultKind
+ */
+ additionalOptions?: boolean;
}
// DELETE
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json
index 2ea36b53ed..4d592bfb10 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json
@@ -68,22 +68,10 @@
"name": "icon-arrow-up",
"file": "arrow-up.svg"
},
- {
- "_name": "icon-art-easel",
- "_file": "wallpaper.svg"
- },
- {
- "_name": "icon-article",
- "_file": "article.svg"
- },
{
"name": "icon-attachment",
"file": "paperclip.svg"
},
- {
- "_name": "icon-auction-hammer",
- "___file": "auction-hammer.svg"
- },
{
"name": "icon-autofill",
"file": "text-cursor-input.svg"
@@ -104,10 +92,6 @@
"name": "icon-axis-rotation",
"file": "refresh-ccw.svg"
},
- {
- "_name": "icon-baby-stroller",
- "___file": "baby.svg"
- },
{
"name": "icon-backspace",
"file": "delete.svg"
@@ -116,10 +100,6 @@
"name": "icon-badge-add",
"file": "circle-plus.svg"
},
- {
- "_name": "icon-badge-count",
- "___file": "badge-count.svg"
- },
{
"name": "icon-badge-remove",
"file": "circle-minus.svg"
@@ -133,10 +113,6 @@
"name": "icon-ball",
"file": "dribbble.svg"
},
- {
- "_name": "icon-band-aid",
- "____file": ""
- },
{
"name": "icon-bar-chart",
"file": "chart-no-axes-column.svg"
@@ -169,57 +145,14 @@
"name": "icon-bell",
"file": "bell.svg"
},
- {
- "_name": "icon-bill-dollar",
- "____file": "circle-dollar-sign.svg"
- },
- {
- "_name": "icon-bill-euro",
- "____file": "bill-euro.svg"
- },
- {
- "_name": "icon-bill-pound",
- "____file": "bill-pound.svg"
- },
- {
- "_name": "icon-bill-yen",
- "____file": "bill-yen.svg"
- },
- {
- "_name": "icon-bill",
- "____file": "bill.svg"
- },
- {
- "_name": "icon-billboard",
- "____file": "billboard.svg"
- },
- {
- "_name": "icon-bills-dollar",
- "____file": "bills-dollar.svg"
- },
- {
- "_name": "icon-bills-euro",
- "____file": "bills-euro.svg"
- },
- {
- "_name": "icon-bills-pound",
- "____file": "bills-pound.svg"
- },
- {
- "_name": "icon-bills-yen",
- "____file": "bills-yen.svg"
- },
- {
- "_name": "icon-bills",
- "____file": "bills.svg"
- },
{
"name": "icon-binarycode",
"file": "binary.svg"
},
{
- "_name": "icon-binoculars",
- "___file": "binoculars.svg"
+ "name": "icon-binoculars",
+ "file": "binoculars.svg",
+ "legacy": true
},
{
"name": "icon-bird",
@@ -253,10 +186,6 @@
"name": "icon-bold",
"file": "bold.svg"
},
- {
- "_name": "icon-bomb",
- "____file": "bomb.svg"
- },
{
"name": "icon-bones",
"file": "bone.svg"
@@ -370,10 +299,6 @@
"name": "icon-car",
"file": "car.svg"
},
- {
- "_name": "icon-cash-register",
- "____file": "cash-register.svg"
- },
{
"name": "icon-categories",
"file": "archive.svg"
@@ -403,10 +328,6 @@
"name": "icon-check",
"file": "check.svg"
},
- {
- "_name": "icon-checkbox-dotted-active",
- "____file": "checkbox-dotted-active.svg"
- },
{
"name": "icon-checkbox-dotted",
"file": "box-select.svg"
@@ -420,10 +341,6 @@
"name": "icon-checkbox",
"file": "square-check.svg"
},
- {
- "_name": "icon-chess",
- "____file": "chess.svg"
- },
{
"name": "icon-chip-alt",
"file": "cpu.svg",
@@ -449,19 +366,11 @@
"name": "icon-circuits",
"file": "circuit-board.svg"
},
- {
- "_name": "icon-circus",
- "____file": "circus.svg"
- },
{
"name": "icon-client",
"file": "user.svg",
"legacy": true
},
- {
- "_name": "icon-clothes-hanger",
- "____file": "clothes-hanger.svg"
- },
{
"name": "icon-cloud-drive",
"file": "hard-drive.svg"
@@ -510,47 +419,11 @@
"name": "icon-coin-yen",
"file": "japanese-yen.svg"
},
- {
- "_name": "icon-coin",
- "____file": "coin.svg"
- },
{
"name": "icon-coins-alt",
"file": "coins.svg",
"legacy": true
},
- {
- "_name": "icon-coins-dollar-alt",
- "____file": "coins-dollar-alt.svg"
- },
- {
- "_name": "icon-coins-dollar",
- "____file": "coins-dollar.svg"
- },
- {
- "_name": "icon-coins-euro-alt",
- "____file": "coins-euro-alt.svg"
- },
- {
- "_name": "icon-coins-euro",
- "____file": "coins-euro.svg"
- },
- {
- "_name": "icon-coins-pound-alt",
- "____file": "coins-pound-alt.svg"
- },
- {
- "_name": "icon-coins-pound",
- "____file": "coins-pound.svg"
- },
- {
- "_name": "icon-coins-yen-alt",
- "____file": "coins-yen-alt.svg"
- },
- {
- "_name": "icon-coins-yen",
- "____file": "coins-yen.svg"
- },
{
"name": "icon-coins",
"file": "coins.svg"
@@ -567,10 +440,6 @@
"name": "icon-columns",
"file": "tally-3.svg"
},
- {
- "_name": "icon-comb",
- "____file": "comb.svg"
- },
{
"name": "icon-combination-lock-open",
"file": "lock-keyhole-open.svg"
@@ -675,10 +544,6 @@
"name": "icon-departure",
"file": "plane-takeoff.svg"
},
- {
- "_name": "icon-desk",
- "____file": "desk.svg"
- },
{
"name": "icon-desktop",
"file": "monitor.svg",
@@ -758,10 +623,6 @@
"name": "icon-documents",
"file": "files.svg"
},
- {
- "_name": "icon-dollar-bag",
- "____file": "dollar-bag.svg"
- },
{
"name": "icon-donate",
"file": "hand-helping.svg",
@@ -801,10 +662,6 @@
"name": "icon-edit",
"file": "pencil.svg"
},
- {
- "_name": "icon-eject",
- "____file": "eject.svg"
- },
{
"name": "icon-embed",
"file": "monitor-play.svg"
@@ -834,10 +691,6 @@
"name": "icon-ethernet",
"file": "network.svg"
},
- {
- "_name": "icon-euro-bag",
- "____file": "euro-bag.svg"
- },
{
"name": "icon-eye",
"file": "eye.svg"
@@ -858,10 +711,6 @@
"name": "icon-favorite",
"file": "heart.svg"
},
- {
- "_name": "icon-female-symbol",
- "____file": "female-symbol.svg"
- },
{
"name": "icon-file-cabinet",
"file": "square-library.svg"
@@ -886,10 +735,6 @@
"name": "icon-fire",
"file": "flame-kindling.svg"
},
- {
- "_name": "icon-firewall",
- "____file": "firewall.svg"
- },
{
"name": "icon-firewire",
"file": "usb.svg",
@@ -915,14 +760,6 @@
"name": "icon-flowerpot",
"file": "flower-2.svg"
},
- {
- "_name": "icon-folder-open",
- "____file": "folder-open.svg"
- },
- {
- "_name": "icon-folder-outline",
- "____file": "folder-outline.svg"
- },
{
"name": "icon-folder",
"file": "folder.svg"
@@ -1048,10 +885,6 @@
"name": "icon-hand-pointer",
"file": "pointer.svg"
},
- {
- "_name": "icon-handprint",
- "____file": "handprint.svg"
- },
{
"name": "icon-handshake",
"file": "heart-handshake.svg"
@@ -1075,14 +908,6 @@
"file": "hard-drive.svg",
"legacy": true
},
- {
- "_name": "icon-hat",
- "____file": "hat.svg"
- },
- {
- "_name": "icon-hd",
- "____file": "hd.svg"
- },
{
"name": "icon-heading-1",
"file": "heading-1.svg"
@@ -1145,10 +970,6 @@
"name": "icon-image-up",
"file": "image-up.svg"
},
- {
- "_name": "icon-inactive-line",
- "____file": "inactive-line.svg"
- },
{
"name": "icon-inbox-full",
"file": "inbox.svg",
@@ -1206,14 +1027,6 @@
"name": "icon-keyboard",
"file": "keyboard.svg"
},
- {
- "_name": "icon-keychain",
- "____file": "keychain.svg"
- },
- {
- "_name": "icon-keyhole",
- "____file": "keyhole.svg"
- },
{
"name": "icon-lab",
"file": "flask-conical.svg"
@@ -1277,10 +1090,6 @@
"name": "icon-link",
"file": "link.svg"
},
- {
- "_name": "icon-linux-tux",
- "____file": "linux-tux.svg"
- },
{
"name": "icon-list",
"file": "align-justify.svg"
@@ -1334,14 +1143,6 @@
"name": "icon-mailbox",
"file": "mailbox.svg"
},
- {
- "_name": "icon-male-and-female",
- "____file": "users-2.svg"
- },
- {
- "_name": "icon-male-symbol",
- "____file": "male-symbol.svg"
- },
{
"name": "icon-map-alt",
"file": "navigation.svg"
@@ -1410,14 +1211,6 @@
"name": "icon-mobile",
"file": "smartphone.svg"
},
- {
- "_name": "icon-molecular-network",
- "____file": "molecular-network.svg"
- },
- {
- "_name": "icon-molecular",
- "____file": "molecular.svg"
- },
{
"name": "icon-mountain",
"file": "mountain-snow.svg"
@@ -2352,10 +2145,6 @@
"file": "user.svg",
"legacy": true
},
- {
- "_name": "icon-umbraco",
- "____file": "umbraco.svg"
- },
{
"name": "icon-umbrella",
"file": "umbrella.svg"
@@ -2556,6 +2345,271 @@
}
],
"umbraco": [
+ {
+ "name": "icon-art-easel",
+ "file": "icon-art-easel.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-article",
+ "file": "icon-article.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-auction-hammer",
+ "file": "icon-auction-hammer.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-badge-count",
+ "file": "icon-badge-count.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-band-aid",
+ "file": "icon-band-aid.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-baby-stroller",
+ "file": "icon-baby-stroller.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bill-dollar",
+ "file": "icon-bill-dollar.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bill-euro",
+ "file": "icon-bill-euro.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bill-pound",
+ "file": "icon-bill-pound.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bill-yen",
+ "file": "icon-bill-yen.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bill",
+ "file": "icon-bill.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-billboard",
+ "file": "icon-billboard.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bills-dollar",
+ "file": "icon-bills-dollar.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bills-euro",
+ "file": "icon-bills-euro.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bills-pound",
+ "file": "icon-bills-pound.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bills-yen",
+ "file": "icon-bills-yen.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bills",
+ "file": "icon-bills.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-blueprint",
+ "file": "icon-blueprint.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-bomb",
+ "file": "icon-bomb.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-cash-register",
+ "file": "icon-cash-register.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-checkbox-dotted-active",
+ "file": "icon-checkbox-dotted-active.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-chess",
+ "file": "icon-chess.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-circus",
+ "file": "icon-circus.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-clothes-hanger",
+ "file": "icon-clothes-hanger.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coin",
+ "file": "icon-coin.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-dollar-alt",
+ "file": "icon-coins-dollar-alt.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-dollar",
+ "file": "icon-coins-dollar.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-euro-alt",
+ "file": "icon-coins-euro-alt.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-euro",
+ "file": "icon-coins-euro.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-pound-alt",
+ "file": "icon-coins-pound-alt.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-pound",
+ "file": "icon-coins-pound.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-yen-alt",
+ "file": "icon-coins-yen-alt.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-coins-yen",
+ "file": "icon-coins-yen.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-comb",
+ "file": "icon-comb.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-desk",
+ "file": "icon-desk.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-dollar-bag",
+ "file": "icon-dollar-bag.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-eject",
+ "file": "icon-eject.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-euro-bag",
+ "file": "icon-euro-bag.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-female-symbol",
+ "file": "icon-female-symbol.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-firewall",
+ "file": "icon-firewall.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-folder-open",
+ "file": "icon-folder-open.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-folder-outline",
+ "file": "icon-folder-outline.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-handprint",
+ "file": "icon-handprint.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-hat",
+ "file": "icon-hat.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-hd",
+ "file": "icon-hd.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-inactive-line",
+ "file": "icon-inactive-line.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-keychain",
+ "file": "icon-keychain.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-keyhole",
+ "file": "icon-keyhole.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-linux-tux",
+ "file": "icon-linux-tux.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-male-and-female",
+ "file": "icon-users.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-male-symbol",
+ "file": "icon-male-symbol.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-molecular-network",
+ "file": "icon-molecular-network.svg",
+ "legacy": true
+ },
+ {
+ "name": "icon-molecular",
+ "file": "icon-molecular.svg",
+ "legacy": true
+ },
{
"name": "icon-umbraco",
"file": "icon-umbraco.svg"
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.ts
similarity index 99%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.ts
index 5455734cd0..a5204fc642 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.element.ts
@@ -1,10 +1,10 @@
+import type { UmbIconPickerModalData, UmbIconPickerModalValue } from './icon-picker-modal.token.js';
import { css, customElement, html, nothing, query, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { extractUmbColorVariable, umbracoColors } from '@umbraco-cms/backoffice/resources';
import { umbFocus } from '@umbraco-cms/backoffice/lit-element';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { UMB_ICON_REGISTRY_CONTEXT, type UmbIconDefinition } from '@umbraco-cms/backoffice/icon';
-import type { UmbIconPickerModalData, UmbIconPickerModalValue } from '@umbraco-cms/backoffice/modal';
import type { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui';
@customElement('umb-icon-picker-modal')
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.stories.ts
similarity index 84%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.stories.ts
index 4b8eaf3d5c..5f34ce845e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.stories.ts
@@ -1,12 +1,10 @@
-import '../../../components/body-layout/body-layout.element.js';
import './icon-picker-modal.element.js';
import type { UmbIconPickerModalElement } from './icon-picker-modal.element.js';
+import type { UmbIconPickerModalValue } from './icon-picker-modal.token.js';
import type { Meta, Story } from '@storybook/web-components';
import { html } from '@umbraco-cms/backoffice/external/lit';
-import type { UmbIconPickerModalValue } from '@umbraco-cms/backoffice/modal';
-
export default {
title: 'API/Modals/Layouts/Icon Picker',
component: 'umb-icon-picker-modal',
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.test.ts
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.test.ts
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.test.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/icon-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.token.ts
similarity index 84%
rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/icon-picker-modal.token.ts
rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.token.ts
index 86ce0e8115..6ac5b7b155 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/icon-picker-modal.token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/icon-picker-modal.token.ts
@@ -1,4 +1,4 @@
-import { UmbModalToken } from './modal-token.js';
+import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
export type UmbIconPickerModalData = never;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/index.ts
new file mode 100644
index 0000000000..10e5659b24
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/index.ts
@@ -0,0 +1,2 @@
+export * from './icon-picker-modal.token.js';
+export * from './icon-picker-modal.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/manifests.ts
new file mode 100644
index 0000000000..b4b3e11502
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-picker-modal/manifests.ts
@@ -0,0 +1,8 @@
+export const manifests: Array = [
+ {
+ type: 'modal',
+ alias: 'Umb.Modal.IconPicker',
+ name: 'Icon Picker Modal',
+ element: () => import('./icon-picker-modal.element.js'),
+ },
+];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts
index c7c47d23d6..3139743a15 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts
@@ -147,6 +147,10 @@ name: "icon-binarycode",
path: () => import("./icons/icon-binarycode.js"),
},{
+name: "icon-binoculars",
+legacy: true,
+path: () => import("./icons/icon-binoculars.js"),
+},{
name: "icon-bird",
path: () => import("./icons/icon-bird.js"),
@@ -2203,10 +2207,6 @@ name: "icon-twitter-x",
path: () => import("./icons/icon-twitter-x.js"),
},{
-name: "icon-umbraco",
-
-path: () => import("./icons/icon-umbraco.js"),
-},{
name: "icon-art-easel",
legacy: true,
path: () => import("./icons/icon-art-easel.js"),
@@ -2219,14 +2219,6 @@ name: "icon-auction-hammer",
legacy: true,
path: () => import("./icons/icon-auction-hammer.js"),
},{
-name: "icon-azure",
-legacy: true,
-path: () => import("./icons/icon-azure.js"),
-},{
-name: "icon-baby-stroller",
-legacy: true,
-path: () => import("./icons/icon-baby-stroller.js"),
-},{
name: "icon-badge-count",
legacy: true,
path: () => import("./icons/icon-badge-count.js"),
@@ -2235,6 +2227,10 @@ name: "icon-band-aid",
legacy: true,
path: () => import("./icons/icon-band-aid.js"),
},{
+name: "icon-baby-stroller",
+legacy: true,
+path: () => import("./icons/icon-baby-stroller.js"),
+},{
name: "icon-bill-dollar",
legacy: true,
path: () => import("./icons/icon-bill-dollar.js"),
@@ -2279,10 +2275,6 @@ name: "icon-bills",
legacy: true,
path: () => import("./icons/icon-bills.js"),
},{
-name: "icon-binoculars",
-legacy: true,
-path: () => import("./icons/icon-binoculars.js"),
-},{
name: "icon-blueprint",
legacy: true,
path: () => import("./icons/icon-blueprint.js"),
@@ -2419,10 +2411,6 @@ name: "icon-male-symbol",
legacy: true,
path: () => import("./icons/icon-male-symbol.js"),
},{
-name: "icon-microsoft",
-legacy: true,
-path: () => import("./icons/icon-microsoft.js"),
-},{
name: "icon-molecular-network",
legacy: true,
path: () => import("./icons/icon-molecular-network.js"),
@@ -2431,6 +2419,18 @@ name: "icon-molecular",
legacy: true,
path: () => import("./icons/icon-molecular.js"),
},{
+name: "icon-umbraco",
+
+path: () => import("./icons/icon-umbraco.js"),
+},{
+name: "icon-azure",
+legacy: true,
+path: () => import("./icons/icon-azure.js"),
+},{
+name: "icon-microsoft",
+legacy: true,
+path: () => import("./icons/icon-microsoft.js"),
+},{
name: "icon-os-x",
legacy: true,
path: () => import("./icons/icon-os-x.js"),
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-activity.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-activity.ts
index bde54263f9..ee76324f33 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-activity.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-activity.ts
@@ -1,4 +1,4 @@
-export default `
+export default `