{"_id":"@consilioweb/payload-admin-ui-pro","_rev":"18-f8c88f3122a85925ab9727a824fe0fcb","name":"@consilioweb/payload-admin-ui-pro","dist-tags":{"latest":"0.7.2"},"versions":{"0.2.0":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.0","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.0","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"604d7437599d2acc0afe9cd560815cde8462721b","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.0.tgz","fileCount":137,"integrity":"sha512-if2hWIznaJ9GtstYNY0OjC+n+TBXO8hh8pIkXRVzkB+qfHFBu5l14bLdSZ/RNiszSHdJaXPlOe39C/YxFXm3FA==","signatures":[{"sig":"MEYCIQDRyFihpKNHVc4/fGxu++R0TMpTeF57UX+bIkPIIdkm/gIhAP4oWydRAiJhugGwPpZfOeAUpvqaoG1y0ieM7oG/20/N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762737},"main":"./dist/index.cjs","type":"module","_from":"file:consilioweb-payload-admin-ui-pro-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"_resolved":"/private/var/folders/fm/pn_mwb9d4492s8sgbgsclxfw0000gn/T/4b403427dbfaaf3e7adce532d5d46708/consilioweb-payload-admin-ui-pro-0.2.0.tgz","_integrity":"sha512-if2hWIznaJ9GtstYNY0OjC+n+TBXO8hh8pIkXRVzkB+qfHFBu5l14bLdSZ/RNiszSHdJaXPlOe39C/YxFXm3FA==","deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.0_1775750626230_0.5539418457334064","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.1","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.1","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"b543bc74851029eff3622a3324d237a7746b0a9e","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.1.tgz","fileCount":137,"integrity":"sha512-FVRZT/4KVXVu7LbJKvqIqixLLmlqDwECcCk7AFg34/vy99M1yet+G0tYe4LHfxKUBDq5FQvUY6DKlhf4mFUJQg==","signatures":[{"sig":"MEUCIQD/TXzkz/LPkv2r8yloSBBlLedmIaXUULO/BIz3lB+GGAIgeJSFR/YV7y9v7kapdj9+5pwGqLWiK8NNAtoU89Kizyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766487},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"84365536565c99e19dba9e58d3acb74ca95194b9","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.1_1775835359368_0.913184943307469","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.2","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.2","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"cc181b03106f9e36f5d3513b7d4cb5f326d2a7cd","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.2.tgz","fileCount":137,"integrity":"sha512-WiZjg7/9GlR9d1zrTRyJkOk5SPCAMvEufYsgjRnphqGZjjyG8iYwq6tmF28SnRieiUpThFtSXXQcPKoqum+V5A==","signatures":[{"sig":"MEQCIAeTLc1J/N2wPf+wKJQVKggnBsqIycD1q0QG4JHVeoQrAiB+O7WIB0tbjC+cfW/4FE5UnQYz2qhbMslzMIl05hAJog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766702},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"c79f50b346524c989854d5daa7c8ad3dc2c37f9a","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.2_1776239343182_0.5143158937390673","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.3","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.3","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"ce3401e81a84f8c17b1c5ef50c396a6531e0de74","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.3.tgz","fileCount":137,"integrity":"sha512-cPyCxBZTwWGz17l9hSBgLnOGtQdJ6IcNS70zD8eqc9lAb9xJxGJ+sRyde41CCd1sq8RbEbpPJWDNdV+Ik+PF/g==","signatures":[{"sig":"MEQCIAjqf0HQ8kG0vmbwMZAXQ7X3thAHeegnWTDIiZOM+0mcAiBNv3obgz3ZKB8zcCmKOyX+qylwS/t3wd4c/ricaMiJ1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766894},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"5ccc1df0b93fecd6b9df6e21bfc69954246f40e0","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.3_1776241808890_0.27095388665340336","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.4","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.4","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"d716c5da841d984dd654fa645b51bc8fcfa1ee5c","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.4.tgz","fileCount":137,"integrity":"sha512-hDQUFC0um5831uH7m7dzK3g/p8KOnM0M1J61hu7Kk71ZvsKMgTLBVarFKxi/k8+RducXcrPrW5SZ29sZgg9CrA==","signatures":[{"sig":"MEYCIQDhoz4LqpiclgyNTBLwMGj/pU/lFtyCD5jri40RtWDWlAIhANoW9QNOvjLdgRyLIPogj3arCUVUMSiAkimTbrUb70ez","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766956},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"020ffbb677d58f54b5fb7069edc6305d35f39296","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.4_1776242635949_0.57113527037206","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.5","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.5","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"f2f632b2ad3c5fbb767d8df548eae0dc9dd37207","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.5.tgz","fileCount":137,"integrity":"sha512-Gctt5reneWspeg7NmGkeRnYxLPyBnFfiyOvdQLAj3yFYrZNBRQ6uTf572RqX/gkSRA6mYOX2x2Y7LlscylBrkw==","signatures":[{"sig":"MEYCIQDcpWfcllYuRFKzV4QJErsllMhcA5ibifcbSMHVQy5q+wIhAOOJIdbKJnWiVUF2YpFKlR7VVWD70RicFDNx7VcFA9E9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":767339},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"dd600bc4fba0ebee01549919e2a575099cc3bb5a","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.5_1776243064618_0.06291661972105667","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.6","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.6","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"c38ad56754183b31ec75af546708b077875a33b6","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.6.tgz","fileCount":137,"integrity":"sha512-wElTdHeO5JHBTr5CN51WWM4CISEcTNwOTfRI/SibCRs88gsP9KDTSmgRYldA7qYmSGs8iMBPesTxpMzg6pPoHg==","signatures":[{"sig":"MEUCIQCNoqPtSo5Yd9y1WRD3i45V35VnsC9gfLyw4fRMK9KENAIgJHf6hbiWQjun8NvYBEzfJ7+41Re8IvDYlO4gCF02XEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":767319},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"55d888746f62e2d8df98c6304fb547b3ca9629e5","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.6_1776243656886_0.5736374147836019","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.2.7","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.2.7","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"fade0efe3c105ef969975fd21694d474f7264568","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.2.7.tgz","fileCount":137,"integrity":"sha512-Xs/cbF66RH0XQ7aH78OHuWOeCHjaVXKujUJwS15oMVq+/RxndCI6/jm2vZ1EPLMqivY6nMWc63XimuReB6NyaQ==","signatures":[{"sig":"MEUCIG37CDJC6YoSOSJpK+oY6PgeUrp81v+KXPUEjwMYbtelAiEAlDbncOcjmtWUfHEh4u0VLenZBtPhdy0FcbxbwsowZ8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766877},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"1fd24b26fb334f3e54796d192c14daf92f6c0237","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"10.9.4","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.2.7_1776244489786_0.966080499498998","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.3.0","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":{"url":"https://consilioweb.fr","name":"ConsilioWEB","email":"contact@consilioweb.fr"},"license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.3.0","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"774b65eec01a3ab6a216118243bf03279bf9d620","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.3.0.tgz","fileCount":137,"integrity":"sha512-pBeub+rgCpI7XltrObJzHh44e2UTStYul253+39/vN8PjlHsp847mHs9BcMmM6haLTsKa0/lWH+qagJgvJMlIA==","signatures":[{"sig":"MEYCIQC2CnklTPWnnN/5G2Y539HWhtlJqWgjBS4deKU/BfWO+QIhAJUEEQBlh7/+nR57z6kKG9lCOcTXHan6+70hz6EWxEO2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770087},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"gitHead":"6b2706a140839b4285a8b38aa861cf0a15b1fa09","scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"_npmVersion":"11.18.0","description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"_nodeVersion":"26.6.0","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"next":"^14.0.0 || ^15.0.0 || ^16.0.0","react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","react-dom":"^18.0.0 || ^19.0.0","@payloadcms/ui":"^3.0.0","@payloadcms/next":"^3.0.0","@payloadcms/translations":"^3.0.0"},"optionalDependencies":{"@consilioweb/payload-admin-nav":"^0.12.0","@consilioweb/payload-admin-theme":"^0.2.0"},"peerDependenciesMeta":{"@payloadcms/ui":{"optional":true},"@payloadcms/next":{"optional":true},"@payloadcms/translations":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.3.0_1786219937730_0.34620356665498586","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.4.0","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.4.0","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"09f1b21a7c125342bb380e8b50415cadfb4842a2","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.4.0.tgz","fileCount":135,"integrity":"sha512-cUUEN2GMWC/EbFRnaj2Oj26LIepH5shoUQpuMvwJWhIc8rL2aDn2145mMlhvf1+kKsVQ7oMpTIw6LvykU6YELA==","signatures":[{"sig":"MEUCIQCT8DE6SKACSo/+EArAc3w94MQb3PXKjwrADO46kdKENQIgZfFWWpl+C3bSGMS9isAGg11jOfLw7VA02JbvxfIqoHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@consilioweb%2fpayload-admin-ui-pro@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":639470},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^18.20.2 || >=20.9.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"SECURITY: dashboard-preferences accepted a create naming another administrator as owner, and the activity endpoint spent a caller's rate-limit budget before checking their access. Upgrade to 0.6.0 — see https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","@payloadcms/ui":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.4.0_1788788491938_0.20934527936988911","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.5.0","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.5.0","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"cb07081d3f82752926028d9612a17ef543be3ff0","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.5.0.tgz","fileCount":135,"integrity":"sha512-xO8bWV4d9Uc0gjX7k9a65/fN6kHlPhqH4KvDUypvf+ojfE5Ypw2qWgKmUtGywjBCbaSyrvioBmKU4Ugzj+4qng==","signatures":[{"sig":"MEUCIQCs8Ig/R/DYOqpe2REcedSqRY4m7hw2KouY9oYMCKV9xAIgF5d7bMjhZklzwJswOAPpmBMm5TpX6t+zyws9TBOWYbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@consilioweb%2fpayload-admin-ui-pro@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":669101},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^18.20.2 || >=20.9.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"BROKEN BUILD: dist/utils/security.js imports ../types.js, which is not emitted — a host application fails to build with 'Module not found'. Upgrade to 0.7.1.","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","jsdom":"^26.0.0","vitest":"^3.0.0","payload":"^3.79.0","typescript":"^5.5.0","@types/react":"^19.0.0","@payloadcms/ui":"^3.79.0","@payloadcms/next":"^3.79.0","@playwright/test":"^1.59.1","@payloadcms/translations":"^3.79.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","payload":"^3.0.0","@payloadcms/ui":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.5.0_1788850743467_0.5828721581462082","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.6.0","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.6.0","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"a8b3a24fc835176237d2fc947478c22ff31522b4","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.6.0.tgz","fileCount":135,"integrity":"sha512-pPF8clMOBa66pbLS2mMU17IZdngQE+d5ZhEYthQo4zIpJ6sweqxl88TeDFMABYHIO8qGpU9H18vl+TUHuwMP/g==","signatures":[{"sig":"MEQCIHmpSEmsE+NbbzyuDp0TjOZg1iVq9+2EhdH7YbGL947IAiBi2ovrbDzb5pSpnKUFqGBLd3SC6WEVuGqq5FlVsfZj2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@consilioweb%2fpayload-admin-ui-pro@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":673266},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^18.20.2 || >=20.9.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"BROKEN BUILD: dist/utils/security.js imports ../types.js, which is not emitted — a host application fails to build with 'Module not found'. Upgrade to 0.7.1.","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.5.25","tsup":"^8.5.1","jsdom":"^26.1.0","vitest":"^3.2.7","payload":"^3.88.0","typescript":"^5.9.3","@types/react":"^19.2.18","@payloadcms/ui":"^3.88.0","@payloadcms/next":"^3.88.0","@playwright/test":"^1.63.0","@payloadcms/translations":"^3.88.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","payload":"^3.79.1","@payloadcms/ui":"^3.79.1"},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.6.0_1788856013780_0.8580617211859016","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.7.0","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.7.0","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"bin":{"aup-audit-preferences":"./scripts/audit-dashboard-preferences.mjs"},"dist":{"shasum":"eecc683cafa639b46a76ed1d058634e99f68c673","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.7.0.tgz","fileCount":142,"integrity":"sha512-wTlkkHK8M9SqlkIYlSAZe9mPzUXyxOm+lGWBDPDCA8vBwNXZ0BuTZWEF/E/0hwPB2eYNTvodSp3ivjy3711QTQ==","signatures":[{"sig":"MEYCIQDgMRlOO5UOUr8DPR/TSgFakYX66S2BKDYKoVVAf82H2gIhAOEG/JKpuVkF3WxkHL4Y8+oroiCaB4gMDSrzIJwUVdQF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@consilioweb%2fpayload-admin-ui-pro@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":722009},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^18.20.2 || >=20.9.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"scripts":{"test":"vitest run","build":"tsup","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"deprecated":"BROKEN BUILD: dist/utils/security.js imports ../types.js, which is not emitted — a host application fails to build with 'Module not found'. Upgrade to 0.7.1.","repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.5.25","tsup":"^8.5.1","jsdom":"^26.1.0","vitest":"^3.2.7","payload":"^3.88.0","typescript":"^5.9.3","@types/react":"^19.2.18","@payloadcms/ui":"^3.88.0","@payloadcms/next":"^3.88.0","@playwright/test":"^1.63.0","@payloadcms/translations":"^3.88.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","payload":"^3.79.1","@payloadcms/ui":"^3.79.1"},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.7.0_1788862555116_0.09096696640322466","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@consilioweb/payload-admin-ui-pro","version":"0.7.1","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","license":"MIT","_id":"@consilioweb/payload-admin-ui-pro@0.7.1","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"bin":{"aup-audit-preferences":"./scripts/audit-dashboard-preferences.mjs"},"dist":{"shasum":"f26cadaabf589d83624f2644ff676403183f0b90","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.7.1.tgz","fileCount":145,"integrity":"sha512-f+1zLUQEDMlGrBYTLeiiVNK+4QNFV3HtGoXfMcuYLGhiO+CMdIUIFZwrHrEolHzZew/hZWhIaU2asyujQRMdDg==","signatures":[{"sig":"MEYCIQCgp5sM46+zMPMsXXDVQRJq9EfOVM/Lsa/wfytUzjN/FQIhANbTI0Rki522j7VlmxKbbhaoMRCEeRW92Hhfj3SHoV8q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@consilioweb%2fpayload-admin-ui-pro@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":727927},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":"^18.20.2 || >=20.9.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"scripts":{"test":"vitest run","build":"tsup && node scripts/verify-dist-imports.mjs","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.5.25","tsup":"^8.5.1","jsdom":"^26.1.0","vitest":"^3.2.7","payload":"^3.88.0","typescript":"^5.9.3","@types/react":"^19.2.18","@payloadcms/ui":"^3.88.0","@payloadcms/next":"^3.88.0","@playwright/test":"^1.63.0","@payloadcms/translations":"^3.88.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","payload":"^3.79.1","@payloadcms/ui":"^3.79.1"},"_npmOperationalInternal":{"tmp":"tmp/payload-admin-ui-pro_0.7.1_1788867281277_0.7003115487703939","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"_id":"@consilioweb/payload-admin-ui-pro@0.7.2","bin":{"aup-audit-preferences":"./scripts/audit-dashboard-preferences.mjs"},"bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"dist":{"shasum":"c34316152cd5339a06c2f7e3dbc227b91fed5ce1","tarball":"https://registry.npmjs.org/@consilioweb/payload-admin-ui-pro/-/payload-admin-ui-pro-0.7.2.tgz","fileCount":145,"integrity":"sha512-RL/8QP28/x5wgDHm0v2ywZlccnq90ogDTWfMx4nNlKzSlHyZi9dI2yJDWwqBXgq8CljgawW7rFn9qFSVK9RvNA==","signatures":[{"sig":"MEQCIAqfEJRJCHTpURw35sjV5eoMFrsigXK0dIVgJkx7g7SmAiAu/SpiYGxYuf6tMAP258R+dlWVZ49/KuVs69ItEpzkgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBCNgrKDpxtSGH2cwNYvP8ob9JUWjA6Dz9fCHFa4IRGbAiEAjRvzU6M84SBKWKhS+yfWxJWPoj/z/lD54XUYs+D5CBI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@consilioweb%2fpayload-admin-ui-pro@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":727966},"main":"./dist/index.js","name":"@consilioweb/payload-admin-ui-pro","type":"module","types":"./dist/index.d.ts","author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","module":"./dist/index.js","engines":{"node":"^18.20.2 || >=20.9.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./views":{"import":{"types":"./dist/views.d.ts","default":"./dist/views.js"}},"./client":{"import":{"types":"./dist/client.d.ts","default":"./dist/client.js"}}},"license":"MIT","scripts":{"test":"vitest run","build":"tsup && node scripts/verify-dist-imports.mjs","test:e2e":"playwright test","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.7.2","_npmUser":{"name":"pown3d","email":"contact@consilioweb.fr"},"homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","directories":{},"maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.5.25","tsup":"^8.5.1","jsdom":"^26.1.0","vitest":"^3.2.7","payload":"^3.88.0","typescript":"^5.9.3","@types/react":"^19.2.18","@payloadcms/ui":"^3.88.0","@payloadcms/next":"^3.88.0","@playwright/test":"^1.63.0","@payloadcms/translations":"^3.88.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","payload":"^3.79.1","@payloadcms/ui":"^3.79.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/payload-admin-ui-pro_0.7.2_1790694357504_0.8928575228222371"}}},"time":{"created":"2026-04-09T16:03:46.157Z","modified":"2026-09-29T15:05:58.098Z","0.2.0":"2026-04-09T16:03:46.442Z","0.2.1":"2026-04-10T15:35:59.594Z","0.2.2":"2026-04-15T07:49:03.373Z","0.2.3":"2026-04-15T08:30:09.093Z","0.2.4":"2026-04-15T08:43:56.278Z","0.2.5":"2026-04-15T08:51:04.810Z","0.2.6":"2026-04-15T09:00:57.098Z","0.2.7":"2026-04-15T09:14:49.964Z","0.3.0":"2026-08-08T20:12:17.878Z","0.4.0":"2026-09-07T13:41:32.097Z","0.5.0":"2026-09-08T06:59:03.577Z","0.6.0":"2026-09-08T08:26:53.928Z","0.7.0":"2026-09-08T10:15:55.269Z","0.7.1":"2026-09-08T11:34:41.399Z","0.7.2":"2026-09-29T15:05:57.675Z"},"bugs":{"url":"https://github.com/pOwn3d/payload-admin-ui-pro/issues"},"author":"ConsilioWEB <contact@consilioweb.fr> (https://consilioweb.fr)","license":"MIT","homepage":"https://github.com/pOwn3d/payload-admin-ui-pro#readme","keywords":["payload","payload-cms","payload-plugin","admin-ui","dashboard","list-views","command-palette","branding","kanban","cards","gallery","activity-feed","customization","calendar","notifications","keyboard-shortcuts","collaboration","bulk-edit","theme-marketplace","dnd-kit","nextjs","react","typescript"],"repository":{"url":"git+https://github.com/pOwn3d/payload-admin-ui-pro.git","type":"git"},"description":"Payload CMS 3 plugin — professional admin UI with 8 themes, dashboard builder, calendar/kanban/gallery views, command palette, notifications, keyboard shortcuts, collaboration presence, field enhancements, and activity audit trail","maintainers":[{"name":"pown3d","email":"contact@consilioweb.fr"}],"readme":"# @consilioweb/payload-admin-ui-pro\n\n> Adds a themeable shell, a widget dashboard, alternative list views, a command palette, enhanced field controls and an audit trail to the Payload CMS 3 admin panel.\n\n[![npm](https://img.shields.io/npm/v/@consilioweb/payload-admin-ui-pro.svg)](https://www.npmjs.com/package/@consilioweb/payload-admin-ui-pro)\n[![license](https://img.shields.io/npm/l/@consilioweb/payload-admin-ui-pro.svg)](https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/LICENSE)\n[![Payload](https://img.shields.io/badge/Payload%20CMS-3.x-000000.svg)](https://payloadcms.com)\n\n## About\n\nPayload 3 ships an admin panel built for correctness rather than for the people who spend their day\nin it. This plugin adds the layer editors usually ask for next: eight themes, a widget dashboard,\ncard/gallery/kanban/calendar list views, a `⌘K` palette, richer field controls, and an audit trail\nthat records who changed what.\n\nEach of the six modules can be switched off independently from the plugin config, and most of the\nday-to-day tuning happens in a settings global inside the admin panel rather than in code. The\nplugin only touches `config.admin`, `config.endpoints`, collection hooks and two hidden collections\nof its own — your collections and data model are left alone.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Modules](#modules)\n- [Configuration](#configuration)\n- [API Endpoints](#api-endpoints)\n- [Collections and Globals](#collections-and-globals)\n- [Package Exports](#package-exports)\n- [Requirements](#requirements)\n- [Access Control](#access-control)\n- [Widget SDK](#widget-sdk)\n- [Database and updates](#database-and-updates)\n- [Upgrading](#upgrading)\n- [Maintenance scripts](#maintenance-scripts)\n- [Uninstall](#uninstall)\n- [Support](#support)\n- [License](#license)\n\n## Features\n\n- **8 theme presets** plus a `custom` accent mode, switchable live from the admin panel. Every\n  accent is documented in the source with its contrast ratio against white (WCAG AA, 4.5:1).\n- **Dashboard builder** — 9 built-in widgets, drag, drop and resize with `@dnd-kit`, layout saved\n  per user.\n- **5 list view modes** — table, cards, gallery, kanban, calendar — auto-detected from the fields\n  a collection actually declares.\n- **Command palette** (`⌘K`) over collections, globals, admin pages and recent documents, with a\n  server-side search that runs as the caller.\n- **Field enhancements** — toggle, status badge, star rating, image preview, relationship card;\n  opt-in per field or automatic.\n- **Login branding** — background, layout, welcome message, footer, favicon, title suffix.\n- **Audit trail** — who did what and when, field names only, never field values; notification bell,\n  per-document timeline, version diff with restore, analytics widget and webhook rules.\n- **Collaboration presence** — who else has this document open.\n- **Dark mode toggle** and a **Plugins Hub** that detects the other ConsilioWEB plugins installed.\n- **7 UI languages** — English, French, German, Spanish, Italian, Portuguese, Japanese — on both the\n  client components and the Payload labels.\n\n## Installation\n\n```bash\npnpm add @consilioweb/payload-admin-ui-pro\n```\n\nPeer dependencies, if your project does not already declare them:\n\n```bash\npnpm add payload @payloadcms/ui react\n```\n\n## Quick Start\n\n```ts\n// payload.config.ts\nimport { buildConfig } from 'payload'\nimport { adminUiProPlugin } from '@consilioweb/payload-admin-ui-pro'\n\nexport default buildConfig({\n  plugins: [\n    adminUiProPlugin({\n      branding: {\n        loginBackground: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\n        welcomeMessage: 'Welcome back',\n      },\n      listViews: { autoDetect: true },\n      fieldEnhance: { aggressive: true },\n      activity: { retentionDays: 90 },\n    }),\n  ],\n})\n```\n\nThen regenerate the Payload import map — **this step is not optional**:\n\n```bash\npnpm payload generate:importmap\n```\n\nThe plugin registers its components by string path (`@consilioweb/payload-admin-ui-pro/client#...`).\nPayload resolves those paths through `app/(payload)/admin/importMap.js`, so until that file is\nregenerated none of the injected components render — no error, just nothing.\nRe-run it after every upgrade of this package.\n\nEverything else is configured from **Settings > Admin UI Pro** in the admin panel\n(`/admin/globals/aup-settings`).\n\n## Modules\n\n### Themes (8 presets)\n\n| Theme | `theme.preset` id | Style |\n|-------|-------------------|-------|\n| Indigo Pro | `indigo-pro` | Deep indigo-violet. Professional, tech-forward. The default. |\n| Emerald Nature | `emerald-nature` | Rich green accent. Organic, clean, trustworthy. |\n| Slate Corporate | `slate-corporate` | Cool blue-gray. Minimal, enterprise, conservative. |\n| Amber Warm | `amber-warm` | Warm golden-orange accent. Energetic, creative, confident. |\n| Rose Soft | `rose-soft` | Soft pink-rose accent. Modern, elegant, premium. |\n| Ocean Deep | `ocean-deep` | Deep teal-cyan accent. Calm, focused, data-oriented. |\n| Crimson Bold | `crimson-bold` | Deep red accent. Strong, confident, media and publishing. |\n| Midnight Dark | `midnight-dark` | Ultra-dark. Neon purple on near-black, OLED-optimized. |\n\nUse the id, never the display name: an unknown id makes `getThemeById()` return `null`, no theme\nCSS is emitted, and nothing warns. `custom` is also accepted — see `theme.accent` below.\n\nThe settings global also exposes a live preview and a small marketplace panel that exports the\ncurrent theme as JSON and imports a pasted one, validated against the preset schema.\n\n### Dashboard\n\nReplaces Payload's default dashboard view. Widgets are dragged, dropped and resized with\n`@dnd-kit`; the layout is persisted per user in the `dashboard-preferences` collection.\n\nBuilt-in widgets: `stats` (collection counts), `quick-actions`, `recent-activity`,\n`collection-overview`, `welcome`, `bookmarks`, `notes`, `chart` (documents created over the last 30 days, SVG only) and\n`activity-analytics` (top collections, top contributors, action breakdown).\n\nTwo known gaps in the settings global's **Default Widgets** picker: it offers an `activity-feed`\nentry that has no matching built-in widget (the slot renders nothing), and it does not offer\n`activity-analytics`, which you can still add from the dashboard's own edit mode.\n\n### List Views (5 modes)\n\n| Mode | Description | Auto-detected when |\n|------|-------------|--------------------|\n| Table | Payload default | Always |\n| Cards | Visual cards with images and badges | A `title`, `name` or `subject` text field, or an upload/`heroImage`/`image`/`thumbnail` field |\n| Gallery | Image grid | The collection is an upload collection |\n| Kanban | Drag and drop by status | A `select` field named `status` or `_status` |\n| Calendar | Monthly grid, grouped by `cardConfig.subtitleField` | A `date` field other than the system timestamps, on a non-upload collection |\n\nA collection is only touched when auto-detection (or your explicit `listViews.collections` entry)\nyields more than the table view. The chosen mode is remembered per collection in `localStorage`.\n\nThe date that *unlocks* the calendar view and the date the grid *groups on* are two different\nthings. Detection accepts any content `date` field, but the grid reads `cardConfig.subtitleField`\nand falls back to `createdAt` — and auto-detection never fills `subtitleField`. An auto-detected\ncalendar therefore always groups by `createdAt`, whichever field triggered it; set\n`cardConfig.subtitleField` explicitly in `listViews.collections` to group on your own date.\n\nThe non-table views add a toolbar with **saved views** (name the current query, view mode and\ncolumns; stored in Payload preferences, so they follow the user across browsers) and a **CSV\nexport**. The export re-fetches from the collection's REST endpoint sorted by `-updatedAt`: it is\ncapped at 500 documents, keeps scalar fields only, and does **not** carry over the list's active\nfilters. Cells starting with `=`, `+`, `-`, `@`, a tab or a carriage return are prefixed with an\napostrophe so a spreadsheet reads them as text — a value stored through a public form must not\nbecome a formula in the exporting administrator's Excel.\n\nTwo further features live inside the views rather than in that toolbar, and neither covers all of\nthem: **inline editing** of titles and status, in cards and kanban, and **bulk select** with a\nbulk-edit modal, in the cards view **only** — gallery, kanban and calendar have no selection.\n`useBulkSelect`, `BulkActionBar` and `BulkEditModal` are exported from `./client` if you want to\nwire them elsewhere.\n\n### Command Palette\n\n`⌘K` / `Ctrl+K`. Indexes collections, globals, a create shortcut per collection, the dashboard and\naccount pages, and recent documents from the first four collections.\n\nFrom three characters, it also queries `GET /api/admin-ui-pro/search` (debounced, rate limited to\n30 requests per minute). That search is a `like` match on `title` and `name` across at most five\ncollections, capped at five results per collection and fifteen in total, and it runs as the caller —\ndocuments the account cannot read are not returned.\n\nThe shortcut key and the number of recent documents come from the settings global. Only `mod+k`,\n`mod+p` and `mod+/` are supported; anything else falls back to `⌘K`.\n\n### Field Enhancements\n\n| Field type | Enhanced into | `admin.custom.enhance` | Auto-applied with `aggressive: true` when |\n|------------|---------------|------------------------|-------------------------------------------|\n| `checkbox` | Toggle switch | `'toggle'` | The field carries no other `admin.custom.enhance` value |\n| `select` | Colored badge (field + list cell) | `'badge'` | Name is `status`, `_status`, `state`, `phase` or `stage` |\n| `number` | Star rating | `'rating'` | `max` is 5 or 10, and `min` is 0 or left undeclared |\n| `upload` | Inline image preview | `'preview'` | Always |\n| `relationship` | Card preview | `'card'` | The field is not `hasMany` |\n\nApplies to collections and globals, recursing into `group`, `array`, `row` and `collapsible`\nfields. Tabs are not traversed. Collections marked `admin.hidden` are skipped.\n\n### Branding\n\nInjected on the login screen and on every admin page: gradient or image login background, centered\nor split layout, welcome message, footer text, favicon override, and an app title suffix. Brand\nname, logo URL and logo height are set in the settings global rather than in the plugin config.\n\nThis module also injects the favicon override and the dark mode toggle into `afterNavLinks`, so\n`branding: false` removes those two along with the login page — they are not independent switches.\n\n### Activity and Notifications\n\n- Audit trail on every tracked collection: who, what action, which collection, which document,\n  which field **names** changed — never the values, and the fields listed in `SENSITIVE_FIELDS`\n  (password, token, apiKey, …) are stripped.\n- Notification bell in the nav with an unread count and a dropdown feed.\n- Per-document timeline and collaboration presence, injected into the edit view's\n  `beforeDocumentControls`.\n- Version diff with word-level comparison and restore, injected only on collections that have\n  `versions` enabled.\n- Notification rules, configured in the settings global: match an event (create/update/delete), a\n  collection slug (or `*`), and optionally a field-equals condition, then POST the action metadata\n  to a webhook — fire-and-forget, 5 s timeout, never any field values. The `in-app` channel is a\n  no-op: the notification bell already reads the activity log. The target must be `https` and must\n  resolve to a public address: loopback, RFC1918, CGNAT and link-local ranges are refused, at input\n  time and again at request time, on the initial URL and after every redirect. Add\n  `activity.webhookAllowedHosts` when you deliberately notify an internal endpoint — the allowlist\n  is honoured by both checks. A URL already stored before the plugin was upgraded is not re-judged\n  when you save an unrelated setting (that would freeze the whole global behind one `400`), but it\n  is still refused at request time, so it never fires.\n\n### Dark Mode\n\nLight, dark and auto (system preference), toggled from the admin nav and remembered in\n`localStorage`. The toggle is injected by the branding module, so `branding: false` takes it away.\n\n### Plugins Hub\n\nA panel in the settings global that detects which other ConsilioWEB plugins are installed — by\nlooking for their admin nav links — and links to their configuration page or their npm install\ncommand: `payload-admin-nav`, `payload-seo-analyzer`, `payload-maintenance`, `payload-spellcheck`\nand `payload-support`.\n\n### Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `⌘K` | Command palette |\n| `⌘/` | Shortcuts help dialog |\n| `⌘E` | Toggle sidebar |\n| `⌘S` | Save document |\n\n## Configuration\n\n### Plugin options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `enabled` | `boolean` | `true` | `false` returns the incoming config untouched. |\n| `userCollectionSlug` | `string` | auto-detected | Slug of the collection that authenticates admin users; both hidden collections build a relationship on it. Resolution order: this option, then `admin.user`, then the first collection with `auth`, then `'users'`. Set it only when auto-detection picks the wrong one. |\n| `dashboard` | `false \\| DashboardModuleConfig` | enabled | Widget dashboard replacing the default view. |\n| `listViews` | `false \\| ListViewsModuleConfig` | enabled | Alternative list views. |\n| `quickActions` | `false \\| QuickActionsModuleConfig` | enabled | Command palette and keyboard shortcuts. |\n| `fieldEnhance` | `false \\| FieldEnhanceModuleConfig` | enabled | Enhanced field components. |\n| `branding` | `false \\| BrandingModuleConfig` | enabled | Login page, favicon, title suffix. |\n| `activity` | `false \\| ActivityModuleConfig` | enabled | Audit trail. |\n| `theme.preset` | `string` | `'indigo-pro'` | Default value of the settings global's preset select. |\n| `theme.accent` | `string` | — | Default custom accent (HSL). Read **only** when the preset is `custom`; with any other preset the theme's own accent wins. Custom colours are validated as whole colour values — a string that could terminate its CSS declaration is refused, at input time and again before injection. |\n| `access.settings` | `Access` | RBAC `settings: edit` | Update access on the `aup-settings` global. |\n| `access.permissions` | `(user) => Record<string, boolean \\| string> \\| Promise<Record<string, boolean \\| string>>` | — | Custom permission resolver. The exported `PermissionsCallback` type is narrower (`AupPermissions`), but this is the signature TypeScript actually enforces on the config. See [Access Control](#access-control). |\n| `componentPaths` | `{ loginBackground?, faviconInjector? }` | package paths | Override component paths for symlinked monorepo development. |\n\n### Module options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `branding.loginBackground` | `string` | — | Image URL or CSS gradient. |\n| `branding.loginLayout` | `'center' \\| 'split'` | `'center'` | Login card layout. |\n| `branding.welcomeMessage` | `string \\| false` | — | Heading on the login page. |\n| `branding.loginFooter` | `string` | — | Footer text on the login page. |\n| `branding.titleSuffix` | `string` | — | Appended to the admin document title as ` — <suffix>`. |\n| `listViews.autoDetect` | `boolean` | `true` | Derive the available views from each collection's fields. |\n| `listViews.collections` | `Record<string, CollectionViewConfig>` | `{}` | Explicit per-collection configuration; overrides auto-detection for that slug. |\n| `fieldEnhance.aggressive` | `boolean` | `false` | Enhance eligible fields without an `admin.custom.enhance` opt-in. |\n| `fieldEnhance.toggle` | `boolean` | `true` | Enable the checkbox enhancement. |\n| `fieldEnhance.statusBadge` | `boolean` | `true` | Enable the select enhancement. |\n| `fieldEnhance.rating` | `boolean` | `true` | Enable the number enhancement. |\n| `fieldEnhance.imagePreview` | `boolean` | `true` | Enable the upload enhancement. |\n| `fieldEnhance.relationCard` | `boolean` | `true` | Enable the relationship enhancement. |\n| `activity.retentionDays` | `number` | `90` | Age cutoff for the purge. Read by the cleanup endpoint and by the scheduled job below. `0` or a negative value purges **nothing** — emptying the log stays a manual act. |\n| `activity.retentionSchedule` | `boolean \\| string` | `false` | Runs the purge automatically as a Payload Jobs task. `true` schedules it daily at 03:00; a string is used as the cron expression. **Off by default** — see [Database and updates](#database-and-updates) for what switching it on adds to your schema, and what has to run the queue. |\n| `activity.retentionQueue` | `string` | `'default'` | Queue the retention job is filed under. |\n| `activity.collections` | `string[]` | all | Track only these collections. |\n| `activity.skipCollections` | `string[]` | `[]` | Exclude collections, on top of the plugin's own internal ones. |\n| `activity.webhookAllowedHosts` | `string[]` | `[]` | Hostnames accepted as notification-webhook targets even though they resolve into private address space. Webhook targets are otherwise refused when they land on loopback, RFC1918, CGNAT or link-local addresses — including after a redirect. Declared in code on purpose: editing the settings global can never widen it. |\n\n`CollectionViewConfig` takes `views` (required), `defaultView`, `cardConfig`\n(`imageField`, `titleField`, `subtitleField`, `statusField`, `statusOptions`) and `kanbanConfig`\n(`statusField`, `columns`). A `calendarConfig` key also type-checks, but nothing reads it — the\ncalendar view takes its date from `cardConfig.subtitleField`. See\n[Declared but not implemented](#declared-but-not-implemented).\n\n```ts\nadminUiProPlugin({\n  listViews: {\n    autoDetect: true,\n    collections: {\n      posts: {\n        views: ['table', 'cards', 'kanban', 'calendar'],\n        defaultView: 'cards',\n        // subtitleField doubles as the date the calendar view groups on.\n        cardConfig: {\n          titleField: 'title',\n          imageField: 'heroImage',\n          statusField: '_status',\n          subtitleField: 'publishedAt',\n        },\n        kanbanConfig: { statusField: '_status' },\n      },\n    },\n  },\n})\n```\n\n### Declared but not implemented\n\nThese fields exist on the config types — so your editor will suggest them — but nothing in the\nplugin reads them. They are kept so existing configurations keep type-checking, and are listed here\nso nobody spends an afternoon wondering why they do nothing.\n\n| Option | What to use instead |\n|--------|---------------------|\n| `theme.sync`, `nav.sync` | Nothing syncs with `payload-admin-theme` or `payload-admin-nav`; the Plugins Hub only detects them from the DOM. |\n| `dashboard.widgets`, `dashboard.defaultLayout` | Register widgets client-side with `registerWidget` — see [Widget SDK](#widget-sdk). |\n| `dashboard.maxWidgets` | Fixed at 20 (`VALIDATION_LIMITS.maxWidgets`), enforced by the save endpoint. |\n| `dashboard.allowUserCustomization` | `dashboardConfig.allowCustomization` in the settings global. |\n| `listViews.savedFilters` | Saved views are always available on the non-table views. |\n| `listViews.collections[slug].calendarConfig` | `cardConfig.subtitleField` — it is the field the calendar grid actually groups on. `calendarConfig` is never forwarded to the view. |\n| `quickActions.shortcut`, `quickActions.recentDocsCount` | The `commandPalette` group of the settings global. |\n| `quickActions.actions`, `quickActions.searchCollections` | No substitute today; the palette is injected without props. |\n| `fieldEnhance` sub-toggles at runtime | The plugin config values above are the ones that apply; the settings global mirrors them for display only. |\n| `activity.trackFields` | `activityConfig.trackFields` in the settings global. |\n| `branding.faviconUrl` | `branding.faviconUrl` in the settings global. |\n| `componentPaths.loginView` | Only `loginBackground` and `faviconInjector` are read. |\n\n### Runtime vs build-time settings\n\n| Setting | Type | Requires restart? |\n|---------|------|-------------------|\n| Theme, branding, dashboard | Runtime (settings global) | No |\n| List Views auto-detect | Build-time (plugin config) | Yes |\n| Field Enhance aggressive | Build-time (plugin config) | Yes |\n| Activity collections | Build-time (plugin config) | Yes |\n\n## API Endpoints\n\nRegistered on Payload's REST route (`/api` by default). Every endpoint but one requires a session\n**on the collection named by `admin.user`** — an account authenticated on another auth collection (a\nfront-office `customers`, `members`…) gets a `403`, not a `200`. Those ten are rate limited per user,\nper the quotas below.\n\nThe exception is `GET /admin-ui-pro/branding`, which is public by necessity: it serves the login\npage, and nobody is authenticated there yet. It answers with a hand-written whitelist of nine\nbranding values — never the settings global itself.\n\nThe limiter runs **after** the access decision, never before, and its counter is keyed on the\ncaller's collection *and* id. Both halves matter: a caller who is refused must not be able to spend\na bucket, and ids are per-collection sequences on SQLite and Postgres, so a key built on the bare id\nwould put `users#3` and `customers#3` in one bucket.\n\n| Method | Path | Access | Rate limit | Purpose |\n|--------|------|--------|------------|---------|\n| `GET` | `/api/admin-ui-pro/branding` | **Public** | none | The nine branding values the login page needs (logo, brand name, login background/layout/message/footer, favicon, theme preset). Positive whitelist: nothing else in the settings global can reach it. |\n| `GET` | `/api/admin-ui-pro/collections` | Admin collection | 300/min | Lists non-internal collections and globals for the palette and the widgets. |\n| `GET` | `/api/admin-ui-pro/dashboard` | Admin collection, runs as the caller | 60/min | The caller's saved widget layout. |\n| `PATCH` | `/api/admin-ui-pro/dashboard` | Admin collection, runs as the caller | 30/min | Saves the layout after strict size and structure validation. |\n| `DELETE` | `/api/admin-ui-pro/dashboard` | Admin collection, runs as the caller | 10/min | Resets the layout to the default. |\n| `GET` | `/api/admin-ui-pro/search` | Admin collection, runs as the caller | 30/min | `like` search on `title`/`name` across up to 5 collections, 15 results max. |\n| `GET` | `/api/admin-ui-pro/activity` | Administrators (see below) | 60/min | Paginated audit trail. Answers `403` to everyone else. |\n| `DELETE` | `/api/admin-ui-pro/activity/cleanup` | Admin collection **and** an explicit administrator role | 5/min | Deletes entries older than `retentionDays`. |\n| `GET` | `/api/admin-ui-pro/presence` | Admin collection | 120/min | Who is currently editing a given key. The key must match `presence:<collection>:<id>`. |\n| `POST` | `/api/admin-ui-pro/presence` | Admin collection | 30/min | Presence heartbeat; entries expire after 60 s. |\n| `DELETE` | `/api/admin-ui-pro/presence` | Admin collection | 30/min | Leaves the presence list. |\n\nPresence is kept in memory, per server instance — it does not survive a restart and is not shared\nacross replicas.\n\n> `activity/cleanup` remains stricter than the audit trail's read rule on one axis: it demands an\n> explicit administrator role, so a host that declares no role field at all is denied rather than\n> failing open. It now applies the `admin.user` collection check as well, closing the asymmetry\n> where an account in another auth collection carrying an `admin` role was refused on read yet\n> could still purge the log.\n\n## Collections and Globals\n\n| Slug | Role | Read | Write |\n|------|------|------|-------|\n| `activity-log` | Audit trail entries. Hidden from the nav. | Members of the `admin.user` collection holding an `admin`/`superadmin` role (case-insensitive, plain strings or `{ value }` entries). Hosts that declare no role field at all keep access. | Create and update are refused for everyone — entries are written by internal hooks and are immutable. Delete follows the same rule as read. |\n| `dashboard-preferences` | One widget layout per user. Hidden from the nav. | Own row, and only for members of the `admin.user` collection — ids are per-collection sequences, so an id scope alone does not separate `users#3` from `customers#3`. | Update and delete: same rule. Create: members of the `admin.user` collection, **and only for their own row** — the posted `user` must be the caller. The `user` field also refuses to be rewritten afterwards, so a row cannot change hands; `unique` on `user` is what keeps it to one row each. |\n| `aup-settings` (global) | All admin-panel settings. Appears under **Settings**. | Public — the login page reads its branding before anyone signs in — **except** the `activityConfig` group, restricted to the `admin.user` collection because it carries webhook URLs, which are bearer credentials. | Members of the `admin.user` collection, then `access.settings` or the RBAC `settings: edit` permission. |\n\nBoth collection slugs are fixed. The `user` relationship on each points at the collection resolved\nfrom `userCollectionSlug`.\n\n## Package Exports\n\n| Subpath | Exposes | Environment |\n|---------|---------|-------------|\n| `.` | `adminUiProPlugin`, `createAdminUiProSettingsGlobal`, `createActivityLogCollection`, `createActivityEndpoints`, `createDashboardPreferencesCollection`, `createDashboardEndpoints`, the RBAC helpers, the security validators, `SENSITIVE_FIELDS`, `VALIDATION_LIMITS` and every config type | Server — imported from `payload.config.ts` |\n| `./client` | The `'use client'` components (views, widgets, fields, palette, activity UI) plus `registerWidget` / `getRegisteredWidgets` and the settings/collections caches | Browser — resolved through the Payload import map |\n| `./views` | `DashboardView`, `BrandingConfigBridge`, `ListViewsConfigBridge`, `SettingsNavLink` | React Server Components — resolved through the import map |\n\n## Requirements\n\n| Dependency | Version | Peer |\n|------------|---------|------|\n| Node.js | `^18.20.2 \\|\\| >=20.9.0` | engines |\n| Payload CMS | `^3.79.1` | required |\n| `@payloadcms/ui` | `^3.79.1` | required — the field-enhance components import `useField` |\n| React | `^18.0.0 \\|\\| ^19.0.0` | required |\n\nThe floor is `3.79.1` and not `3.0.0` for two reasons. Payload releases before `3.79.1` carry a\npre-authentication account takeover (GHSA-hp5w-3hxx-vmwf) and an SQL injection: a plugin range of\n`^3.0.0` invited a host to install one and satisfy npm. And the plugin would not have worked there\nanyway — it types its dashboard view with `AdminViewServerProps`, which Payload added in `3.24.0`,\nand mounts the document timeline and the presence indicator in\n`admin.components.edit.beforeDocumentControls`, a slot that did not exist before `3.36.0` (on an\nolder host those two features render nowhere, silently). Nothing in the package needs anything\nnewer than that, so the range stays open to the whole `3.x` line above the floor; development and\nCI run on `3.88`.\n\nNext.js is not a peer dependency: the package never imports it. The React range you can actually\nuse is the one your `@payloadcms/ui` version allows — recent releases require React 19.\n\nThe package ships **ESM only**. `require()` from a CommonJS file is not supported.\n\n`@dnd-kit/core`, `@dnd-kit/sortable` and `@dnd-kit/utilities` are regular dependencies and are\ninstalled for you.\n\n## Access Control\n\nPermissions are resolved per user and consumed by the dashboard, the settings global and the\nbranding UI.\n\n```ts\nimport { resolvePermissions, hasPermission } from '@consilioweb/payload-admin-ui-pro'\n```\n\nResolution order: `user.aupPermissions` on the user document, then `access.permissions` from the\nplugin config, then the role table below.\n\n| Role (`user.role` or `user.roles`) | dashboard | listViews | quickActions | fieldEnhance | branding | activity | settings |\n|------------------------------------|-----------|-----------|--------------|--------------|----------|----------|----------|\n| `admin`, `superadmin` | edit | yes | yes | yes | edit | view | yes |\n| `editor`, `author` | view | yes | yes | yes | view | view | no |\n| `user`, `viewer` | view | no | no | no | no | no | no |\n| No authenticated user | view | no | no | no | no | no | no |\n| Unrecognised role, or no role field at all | edit | yes | yes | yes | edit | view | yes |\n\nThe last row is the fallback, and it is the admin preset — deliberately generous, so that a project\nwithout RBAC is not locked out of its own admin panel. Only an authenticated user ever reaches it:\nwith no user at all the resolver returns the `user` preset, hence the row above. Roles are matched\ncase-insensitively, and a `roles` array may hold plain strings or `{ value }` entries.\n\nAn empty-string `role` is ignored in favour of the `roles` array, so `{ role: '', roles: ['editor'] }`\nresolves to the editor preset rather than falling through to that fallback.\n\n```ts\nadminUiProPlugin({\n  access: {\n    // The callback receives the USER, not a { user } wrapper.\n    permissions: (user) => ({\n      dashboard: 'edit',\n      settings: user.role === 'admin',\n      activity: 'view',\n    }),\n  },\n})\n```\n\n> Whatever your resolver returns is merged **on top of the admin preset** — `{ ...ADMIN_PERMISSIONS,\n> ...result }`. Keys you omit therefore keep their admin value: the example above never mentions\n> `listViews`, `quickActions`, `fieldEnhance` or `branding`, so all four stay fully granted, and\n> `permissions: () => ({ settings: false })` restricts nothing but `settings`. To restrict, return\n> the complete object. The same merge applies to `aupPermissions` set on a user document.\n\n> The resolver runs inside a `try`. If it throws — for instance when written `({ user }) => …`,\n> which reads `user` off a user document that has no such field — the error is logged with\n> `[admin-ui-pro]` and resolution falls through to the role table, whose own fallback is the\n> **admin** preset. A restriction written the wrong way can therefore grant more than intended, not\n> less: check your server logs after changing it.\n\n## Widget SDK\n\n`dashboard.widgets` in the plugin config is not implemented. Register widgets from the client\ninstead, before the dashboard mounts — an `admin.components.providers` entry is the usual place:\n\n```ts\n'use client'\nimport { registerWidget } from '@consilioweb/payload-admin-ui-pro/client'\n\nregisterWidget({\n  id: 'my-custom-widget',\n  name: 'My Widget',\n  icon: '🎯',\n  component: MyWidgetComponent,\n  defaultSize: { w: 6, h: 2 },\n})\n```\n\nRegistered widgets appear next to the built-in ones in the dashboard's edit mode. Duplicate ids are\nignored — the first registration wins.\n\n## Database and updates\n\nThis plugin adds collections and a global to **your** Payload config; it does not own your schema,\nand it cannot ship migrations for you. Payload resolves migrations from a single directory — the\nhost application's — so a migration file delivered inside an npm package is never discovered.\n\n- **In development**, `push` (the default on the SQLite and Postgres adapters) syncs the schema for\n  you when the plugin's collections appear.\n- **In production**, generate and run them yourself: `payload migrate:create` then `payload migrate`.\n  Never `push` — Payload skips it as soon as `NODE_ENV=production`, and mixing it with a migration\n  ledger triggers a data-loss warning.\n- Every release of this plugin states in its [Upgrading](#upgrading) section whether it changes the\n  schema. **No release has so far** — verified, not assumed: `scripts/dev/schema-diff.sh v0.5.0 v0.6.0`\n  set-diffs the field `name`/`slug`/`type`/`relationTo` and `unique`/`index`/`required`/`hasMany`/\n  `virtual` declarations between two refs, and comes back empty for every tag pair since `v0.4.0`.\n\nThree options make tables appear. The first two are on by default and are the plugin's own storage;\nthe third brings Payload's job infrastructure with it:\n\n| Option | What it adds |\n|--------|--------------|\n| `activity` (on by default) | `activity-log`. |\n| `dashboard` (on by default) | `dashboard-preferences`. |\n| `activity.retentionSchedule` | Payload's own `payload-jobs` collection, plus a `payload-jobs-stats` global — Payload appends both as soon as one scheduled task exists. If your app already uses Jobs, nothing new appears. |\n\n`activity.retentionSchedule` also needs something to drive the queue: `payload jobs:handle-schedules`\nfollowed by `payload jobs:run` (a system cron, a platform scheduled task), or `jobs.autoRun` in your\nconfig. Registered without a runner, the task exists and never fires. This is why it is off by\ndefault rather than on: paying two tables for a purge that would not run is the worse trade.\n\n## Upgrading\n\nBoth released upgrades below are **behaviour** changes only. Neither adds, removes, renames or\nretypes a field, so there is nothing to migrate — see [Database and updates](#database-and-updates)\nfor the one option that would change that.\n\n### 0.5.x → 0.6.0\n\n**No schema change. No migration to generate.**\n\n- `POST /api/dashboard-preferences` carrying a `user` other than the caller now returns `403`. If\n  you seed dashboard layouts for your team from a script, that write no longer passes as one of your\n  administrators — run it through the Local API with `overrideAccess: true`.\n- The `user` relationship on `dashboard-preferences` is no longer writable on update, so a row\n  cannot change hands. Rows already stored stay updatable: Payload drops the field from incoming\n  data and falls back to the stored value.\n- The `payload` and `@payloadcms/ui` peer ranges moved from `^3.0.0` to `^3.79.1`. Check the version\n  actually installed (`pnpm why payload`), not the range in your `package.json`.\n\nRows planted before this release are not cleaned up by it. Run\n[`npx aup-audit-preferences`](#aup-audit-preferences) once after upgrading.\n\n### 0.4.x → 0.5.0\n\n**No schema change. No migration to generate.**\n\nThis one is a security release, and it changes what existing data does rather than what shape it\nhas. Two things to audit:\n\n**Values already stored are grandfathered — kept, but no longer applied.** Several validators were\ntightened (theme colours, CSS values, webhook URLs), and each judges a value only when it is\nintroduced or changed. That is deliberate: Payload revalidates the whole merged document on every\nupdate, so an unconditional validator would re-judge rows it never saw written and turn the settings\nglobal into a permanent `400` — you could not even change the logo. The safety net is elsewhere: an\nunsafe colour is dropped at render time by `generateCustomCSS` / `generateThemeCSS`, and a webhook\ntarget is re-resolved on every fire, redirects included. So nothing unsafe is applied, but the\nsettings screen still shows the old value and will keep showing it. Open **Settings → Admin UI Pro**,\nre-save the colour fields and the webhook URLs, and they go through the current validator.\n\n**One field is not grandfathered.** `branding.loginBackground` refuses a stored value containing\n`url(`, `image-set(`, `@import`, `expression(` or `javascript:` — the settings global will not save\nat all until that field is fixed, because the value renders on the anonymous login page.\n\nAlso worth checking after this upgrade: accounts authenticated on a second auth collection lose\naccess to every `/api/admin-ui-pro/*` route, to `dashboard-preferences` and to writing the settings\nglobal; back-office roles below administrator lose read access to the `activityConfig` subtree;\nself-hosted webhook targets on private address space need `activity.webhookAllowedHosts`; presence\nkeys must match `presence:<collection>:<id>`; and CSV exports now prefix formula-looking cells with\nan apostrophe.\n\n## Maintenance scripts\n\n### `aup-audit-preferences`\n\n`dashboard-preferences.user` is a relationship to one collection, so the database stores a bare id —\nand ids are per-collection sequences on SQLite and Postgres, where `users#3` and `customers#3` are\nthe same `3`. Before the access rules were tightened, `create` accepted any `user` id from any\nauthenticated account, and `unique: true` made the planted row *the* row the victim's dashboard\nreads. The fix closes that door. It does not clean up what came through it.\n\n```bash\n# read-only report; exits 2 if anything is wrong\nnpx aup-audit-preferences\n\n# delete the orphan rows\nnpx aup-audit-preferences --fix\n```\n\nRun it from the root of the host application — it loads your Payload config through the `payload`\nbinary and talks to your database through the Local API, so it works on SQLite, Postgres and Mongo\nalike. It reports two things:\n\n- **orphans** — the `user` id matches no document of the `admin.user` collection. Unreachable rows,\n  either planted or left behind by a deleted account. `--fix` deletes these.\n- **collisions** — the id resolves in the admin collection *and* in another auth collection.\n  Reported only, **never** deleted: on any host with two auth collections most of these are\n  perfectly legitimate, and deleting them would destroy real layouts.\n\n`--json` gives machine-readable output, `--slug=` targets a custom slug.\n\n## Uninstall\n\n1. Remove `adminUiProPlugin(...)` from your `payload.config.ts`\n2. Uninstall the package:\n\n```bash\npnpm remove @consilioweb/payload-admin-ui-pro\n```\n\n3. Regenerate the import map:\n\n```bash\npnpm generate:importmap\n```\n\n### Data cleanup (optional)\n\nNothing is removed from your database by uninstalling. What this plugin created:\n\n| Object | Created by |\n|--------|-----------|\n| `activity-log` collection | the `activity` module |\n| `dashboard-preferences` collection | the `dashboard` module |\n| `aup-settings` global | always |\n| rows in `payload-preferences` with a key starting `aup-saved-views-` | the saved views of the list-views module |\n\n**Check the real table names before dropping anything** (`.tables` on SQLite, `\\dt` on Postgres).\nPayload derives them from the slug and a `dbName` override changes them, and relationship fields add\n`_rels` companions.\n\n**SQLite:**\n```sql\nDROP TABLE IF EXISTS activity_log_rels;\nDROP TABLE IF EXISTS activity_log;\nDROP TABLE IF EXISTS dashboard_preferences_rels;\nDROP TABLE IF EXISTS dashboard_preferences;\nDROP TABLE IF EXISTS aup_settings;\nDELETE FROM payload_preferences WHERE key LIKE 'aup-saved-views-%';\n```\n\n**PostgreSQL:**\n```sql\nDROP TABLE IF EXISTS activity_log_rels CASCADE;\nDROP TABLE IF EXISTS activity_log CASCADE;\nDROP TABLE IF EXISTS dashboard_preferences_rels CASCADE;\nDROP TABLE IF EXISTS dashboard_preferences CASCADE;\nDROP TABLE IF EXISTS aup_settings CASCADE;\nDELETE FROM payload_preferences WHERE key LIKE 'aup-saved-views-%';\n```\n\n**MongoDB:**\n```js\ndb.getCollection('activity-log').drop()\ndb.getCollection('dashboard-preferences').drop()\ndb.getCollection('globals').deleteOne({ globalType: 'aup-settings' })\ndb.getCollection('payload-preferences').deleteMany({ key: /^aup-saved-views-/ })\n```\n\n**Do not drop** `payload-jobs` or `payload-jobs-stats` on the basis of this plugin: they belong to\nPayload, and your application may be using them for something else. They are only relevant here if\nyou had turned `activity.retentionSchedule` on and nothing else in your app uses Jobs.\n\n## Support\n\n- Issues: <https://github.com/pOwn3d/payload-admin-ui-pro/issues>\n- Changelog: <https://github.com/pOwn3d/payload-admin-ui-pro/blob/main/CHANGELOG.md>\n- If this plugin saves you time: [buy me a coffee](https://buymeacoffee.com/pown3d)\n\n## License\n\nMIT — [ConsilioWEB](https://consilioweb.fr/services/developpement-web/payload-cms)\n","readmeFilename":""}