v3.41.0

payloadcms/payloadv3.41.0Jun 5, 2025by denolfe

AI Summary

This release focuses on UI enhancements, including document drawers for folders and a new custom component for edit menu items. It also introduces polymorphic join querying, improves Turbopack compatibility, and fixes several database-related issues including Postgres upsert operations and GLB/GLTF detection.

Key Highlights

  • UI updates using document drawers for folder edit/create operations
  • New 'editMenuItems' custom component for UI customization
  • Improved Postgres query handling for null values and upserts
  • Enhanced Rich Text editor controls including Ctrl+A selection

New Features

  • Optionally exclude collection documents from browse-by-folder
  • Turbopack compatibility improvements
  • Polymorphic join querying by fields that don't exist in every collection
  • Document drawers for folder edit/create
  • New editMenuItems custom component

Full Release Notes

## [v3.41.0](https://github.com/payloadcms/payload/compare/v3.40.0...v3.41.0) (2025-06-05)


### 🚀 Features

* optionally exclude collection documents from appearing in browse-by-folder ([#12654](https://github.com/payloadcms/payload/issues/12654)) ([337f618](https://github.com/payloadcms/payload/commit/337f618))
* improve turbopack compatibility ([#11376](https://github.com/payloadcms/payload/issues/11376)) ([319d335](https://github.com/payloadcms/payload/commit/319d335))
* polymorphic join querying by fields that don't exist in every collection ([#12648](https://github.com/payloadcms/payload/issues/12648)) ([2b40e0f](https://github.com/payloadcms/payload/commit/2b40e0f))
* **ui:** use document drawers for folder edit/create ([#12676](https://github.com/payloadcms/payload/issues/12676)) ([9581092](https://github.com/payloadcms/payload/commit/9581092))
* **ui:** adds new editMenuItems custom component ([#12649](https://github.com/payloadcms/payload/issues/12649)) ([625d8d9](https://github.com/payloadcms/payload/commit/625d8d9))

### 🐛 Bug Fixes

* correctly detect glb & gltf mimetypes during upload ([#12623](https://github.com/payloadcms/payload/issues/12623)) ([05eeddb](https://github.com/payloadcms/payload/commit/05eeddb))
* allow unnamed group fields to not set a label at all ([#12580](https://github.com/payloadcms/payload/issues/12580)) ([d561195](https://github.com/payloadcms/payload/commit/d561195))
* **cpa:** generate .env when using the --example flag ([#12572](https://github.com/payloadcms/payload/issues/12572)) ([836fd86](https://github.com/payloadcms/payload/commit/836fd86))
* **db-postgres:** ensure deletion of numbers and texts in upsertRow ([#11787](https://github.com/payloadcms/payload/issues/11787)) ([bd512f1](https://github.com/payloadcms/payload/commit/bd512f1))
* **db-postgres:** `in` query with `null` ([#12661](https://github.com/payloadcms/payload/issues/12661)) ([c08cdff](https://github.com/payloadcms/payload/commit/c08cdff))
* **live-preview:** correct type inference ([#12619](https://github.com/payloadcms/payload/issues/12619)) ([c83e791](https://github.com/payloadcms/payload/commit/c83e791))
* **next:** cannot override tab of default views ([#11789](https://github.com/payloadcms/payload/issues/11789)) ([c639c5f](https://github.com/payloadcms/payload/commit/c639c5f))
* **plugin-seo:** thread allowCreate to meta image component ([#12624](https://github.com/payloadcms/payload/issues/12624)) ([ede5c67](https://github.com/payloadcms/payload/commit/ede5c67))
* **richtext-lexical:** export defaultColors for use in client components ([#12627](https://github.com/payloadcms/payload/issues/12627)) ([8199a7d](https://github.com/payloadcms/payload/commit/8199a7d))
* **richtext-lexical:** enable select inputs with ctrl+a or cmd+a ([#12453](https://github.com/payloadcms/payload/issues/12453)) ([89ced5e](https://github.com/payloadcms/payload/commit/89ced5e))
* **translations:** add missing import for lv locale from date-fns ([#12577](https://github.com/payloadcms/payload/issues/12577)) ([cbc37d8](https://github.com/payloadcms/payload/commit/cbc37d8))
* **ui:** adjusts margin spacing on upload actions ([#12692](https://github.com/payloadcms/payload/issues/12692)) ([1dd4a12](https://github.com/payloadcms/payload/commit/1dd4a12))
* **ui:** safely extract text from React nodes ([#12419](https://github.com/payloadcms/payload/issues/12419)) ([48e5ee6](https://github.com/payloadcms/payload/commit/48e5ee6))
* **ui:** formatDate and formatTimeToNow utility type error on i18n arg to support I18nClient too ([#12576](https://github.com/payloadcms/payload/issues/12576)) ([76bf459](https://github.com/payloadcms/payload/commit/76bf459))
* **ui:** correctly thread through the autoComplete attribute from admin config to the text input ([#12473](https://github.com/payloadcms/payload/issues/12473)) ([08ec837](https://github.com/payloadcms/payload/commit/08ec837))
* **ui:** clear miliseconds in date fields unless theyre explicitly provided in the display format ([#12650](https://github.com/payloadcms/payload/issues/12650)) ([a9ff375](https://github.com/payloadcms/payload/commit/a9ff375))
* **ui:** reset columns state throwing errors ([#11903](https://github.com/payloadcms/payload/issues/11903)) ([08a6f88](https://github.com/payloadcms/payload/commit/08a6f88))
* **ui:** upload action button styles ([#12592](https://github.com/payloadcms/payload/issues/12592)) ([6119d89](https://github.com/payloadcms/payload/commit/6119d89))

### ⚡ Performance

* **ui:** prevent unnecessary client config sanitization ([#12665](https://github.com/payloadcms/payload/issues/12665)) ([2bd098c](https://github.com/payloadcms/payload/commit/2bd098c))

### 🛠 Refactors

* **translations:** correct i18n translation for Mandarin ([#12561](https://github.com/payloadcms/payload/issues/12561)) ([6f8cff7](https://github.com/payloadcms/payload/commit/6f8cff7))
* **ui:** improve relationship field option loading reliability using queues ([#12653](https://github.com/payloadcms/payload/issues/12653)) ([30dd9a2](https://github.com/payloadcms/payload/commit/30dd9a2))

### 📚 Documentation

* add Content-Type header for JWT authentication ([#12513](https://github.com/payloadcms/payload/issues/12513)) ([3f7debd](https://github.com/payloadcms/payload/commit/3f7debd))
* fix import statements for `plugin-nested-docs` ([#12494](https://github.com/payloadcms/payload/issues/12494)) ([5635ec5](https://github.com/payloadcms/payload/commit/5635ec5))
* improve rich-text documentation with hasText usage tip ([#12645](https://github.com/payloadcms/payload/issues/12645)) ([53de775](https://github.com/payloadcms/payload/commit/53de775))
* fix beforeHook documentation to reflect actual behaviour ([#12651](https://github.com/payloadcms/payload/issues/12651)) ([fd5cd1a](https://github.com/payloadcms/payload/commit/fd5cd1a))
* improve module augmentation docs for request context ([#12681](https://github.com/payloadcms/payload/issues/12681)) ([0c3ff88](https://github.com/payloadcms/payload/commit/0c3ff88))
* update seo plugin tabbedUI docs to mention potential pitfalls with the config option ([#12549](https://github.com/payloadcms/payload/issues/12549)) ([505eaa2](https://github.com/payloadcms/payload/commit/505eaa2))
* missing dash ([#12644](https://github.com/payloadcms/payload/issues/12644)) ([684c436](https://github.com/payloadcms/payload/commit/684c436))
* building without a db connection ([#12607](https://github.com/payloadcms/payload/issues/12607)) ([7c094dc](https://github.com/payloadcms/payload/commit/7c094dc))

### 📝 Templates

* do not expose users in example custom routes ([#12677](https://github.com/payloadcms/payload/issues/12677)) ([be52a20](https://github.com/payloadcms/payload/commit/be52a20))
* bump for v3.40.0 ([#12613](https://github.com/payloadcms/payload/issues/12613)) ([71df378](https://github.com/payloadcms/payload/commit/71df378))

### ⚙️ CI

* skip flaky test on supabase ([#12667](https://github.com/payloadcms/payload/issues/12667)) ([30bb749](https://github.com/payloadcms/payload/commit/30bb749))
* ability to test against turbopack ([#12652](https://github.com/payloadcms/payload/issues/12652)) ([0ceb96b](https://github.com/payloadcms/payload/commit/0ceb96b))

### 🏡 Chores

* fix various e2e test setup issues ([#12670](https://github.com/payloadcms/payload/issues/12670)) ([545d870](https://github.com/payloadcms/payload/commit/545d870))
* fix lint warnings for default exports, unused imports, unused err in catch ([#12666](https://github.com/payloadcms/payload/issues/12666)) ([48218bc](https://github.com/payloadcms/payload/commit/48218bc))
* migrate to TypeScript strict in Payload package (enable strictNullChecks) - #3 ([#12586](https://github.com/payloadcms/payload/issues/12586)) ([6ec21a5](https://github.com/payloadcms/payload/commit/6ec21a5))
* update CONTRIBUTING.md ([#12511](https://github.com/payloadcms/payload/issues/12511)) ([5e3a94b](https://github.com/payloadcms/payload/commit/5e3a94b))

### 🤝 Contributors

- Patrik (@PatrikKozak)
- Kamil Troczewski (@kamiloox)
- codeflorist (@codeflorist)
- Rot4tion (@Rot4tion)
- iamacup (@iamacup)
- Jacob Fletcher (@jacobsfletch)
- Alessio Gravili (@AlessioGr)
- Jarrod Flesch (@JarrodMFlesch)
- Elliot DeNolf (@denolfe)
- Said Akhrarov (@akhrarovsaid)
- Sasha (@r1tsuu)
- Paul (@paulpopus)
- Germán Jabloñski (@GermanJablo)
- Jessica Rynkar (@jessrynkar)
- Jacob (@chmielulu)
- Tobias Odendahl (@tak-amboss)
- Anyu Jiang (@anyuj)