v3.57.0

payloadcms/payloadv3.57.0Sep 25, 2025by denolfe

AI Summary

This release significantly improves the Rich Text editor (Lexical) with drag-and-drop and copy-paste capabilities, adds conditional blocks, and enhances multi-tenant functionality.

Key Highlights

  • Rich Text Lexical editor supports drag & drop
  • Conditional blocks feature added
  • Support for `hasMany` virtual relationship fields
  • Plugin-form-builder allows creating submissions from admin panel
  • Tamil translations added

New Features

  • Conditional blocks
  • Support `hasMany` virtual relationship fields
  • Plugin-form-builder allow creating form submissions
  • Plugin-multi-tenant improves tenant assignment flow
  • Rich Text Lexical support copy & pasting and drag & dropping
  • Rich Text Lexical utility render on-demand
  • Add Tamil translations

Full Release Notes

## [v3.57.0](https://github.com/payloadcms/payload/compare/v3.56.0...v3.57.0) (2025-09-25)


### 🚀 Features

* adds admin.formatDocURL function to control list view linking ([#13773](https://github.com/payloadcms/payload/issues/13773)) ([1d1240f](https://github.com/payloadcms/payload/commit/1d1240f))
* conditional blocks ([#13801](https://github.com/payloadcms/payload/issues/13801)) ([d8dace6](https://github.com/payloadcms/payload/commit/d8dace6))
* support `hasMany` virtual relationship fields ([#13879](https://github.com/payloadcms/payload/issues/13879)) ([1072171](https://github.com/payloadcms/payload/commit/1072171))
* **next:** regenerate live preview url on save ([#13631](https://github.com/payloadcms/payload/issues/13631)) ([00a673e](https://github.com/payloadcms/payload/commit/00a673e))
* **plugin-form-builder:** allow creating form submissions from the admin panel ([#11222](https://github.com/payloadcms/payload/issues/11222)) ([104a5fc](https://github.com/payloadcms/payload/commit/104a5fc))
* **plugin-multi-tenant:** improves tenant assignment flow ([#13881](https://github.com/payloadcms/payload/issues/13881)) ([fcb8b5a](https://github.com/payloadcms/payload/commit/fcb8b5a))
* **richtext-lexical:** support copy & pasting and drag & dopping files/images into the editor ([#13868](https://github.com/payloadcms/payload/issues/13868)) ([59414bd](https://github.com/payloadcms/payload/commit/59414bd))
* **richtext-lexical:** utility render lexical field on-demand ([#13657](https://github.com/payloadcms/payload/issues/13657)) ([1c89291](https://github.com/payloadcms/payload/commit/1c89291))
* **translations:** add Tamil translations ([#13788](https://github.com/payloadcms/payload/issues/13788)) ([7975fe3](https://github.com/payloadcms/payload/commit/7975fe3))

### 🐛 Bug Fixes

* server component readonly state issues with document locking ([#13878](https://github.com/payloadcms/payload/issues/13878)) ([512a8fa](https://github.com/payloadcms/payload/commit/512a8fa))
* make input/output encoding explicit in auth/crypto's encrypt/decrypt ([#13710](https://github.com/payloadcms/payload/issues/13710)) ([7f35213](https://github.com/payloadcms/payload/commit/7f35213))
* pagination returning duplicate results when timestamps: false ([#13920](https://github.com/payloadcms/payload/issues/13920)) ([062c1d7](https://github.com/payloadcms/payload/commit/062c1d7))
* add missing translation key ([#13902](https://github.com/payloadcms/payload/issues/13902)) ([39143c9](https://github.com/payloadcms/payload/commit/39143c9))
* `findDistinct` with polymorphic relationships ([#13875](https://github.com/payloadcms/payload/issues/13875)) ([e99e054](https://github.com/payloadcms/payload/commit/e99e054))
* admin.hidden not respected for RSCs, render-field server function not respecting field-overrides client-side ([#13869](https://github.com/payloadcms/payload/issues/13869)) ([228e8f2](https://github.com/payloadcms/payload/commit/228e8f2))
* exits handlers loop if response is returned ([#13866](https://github.com/payloadcms/payload/issues/13866)) ([425172c](https://github.com/payloadcms/payload/commit/425172c))
* support `hasMany: true` relationships in `findDistinct` ([#13840](https://github.com/payloadcms/payload/issues/13840)) ([d0543a4](https://github.com/payloadcms/payload/commit/d0543a4))
* removes select argument from create operation db calls ([#13841](https://github.com/payloadcms/payload/issues/13841)) ([a26d8d9](https://github.com/payloadcms/payload/commit/a26d8d9))
* **db-postgres:** localized relationships inside blocks ([#13760](https://github.com/payloadcms/payload/issues/13760)) ([22ae9fa](https://github.com/payloadcms/payload/commit/22ae9fa))
* **db-sqlite:** `exists` operator in `createJSONQuery` ([#13907](https://github.com/payloadcms/payload/issues/13907)) ([f980a86](https://github.com/payloadcms/payload/commit/f980a86))
* **graphql:** graphql tab schema not handling tabs correctly ([#13850](https://github.com/payloadcms/payload/issues/13850)) ([83b6e37](https://github.com/payloadcms/payload/commit/83b6e37))
* **next:** clear bfcache on forward/back ([#13913](https://github.com/payloadcms/payload/issues/13913)) ([f868ed9](https://github.com/payloadcms/payload/commit/f868ed9))
* **next:** groupBy for polymorphic relationships ([#13781](https://github.com/payloadcms/payload/issues/13781)) ([9c20eb3](https://github.com/payloadcms/payload/commit/9c20eb3))
* **plugin-import-export:** collectionSlug field regression from hidden field changes ([#13917](https://github.com/payloadcms/payload/issues/13917)) ([96c6612](https://github.com/payloadcms/payload/commit/96c6612))
* **plugin-multi-tenant:** ensure relationship filter filters based on doc.tenant ([#13925](https://github.com/payloadcms/payload/issues/13925)) ([cbbf98e](https://github.com/payloadcms/payload/commit/cbbf98e))
* **plugin-multi-tenant:** improve Norwegian translation for "tenant" ([#13923](https://github.com/payloadcms/payload/issues/13923)) ([dea91f3](https://github.com/payloadcms/payload/commit/dea91f3))
* **plugin-search:** transaction state errors in parallel reindex operations ([#13915](https://github.com/payloadcms/payload/issues/13915)) ([79b2557](https://github.com/payloadcms/payload/commit/79b2557))
* **plugin-search:** returns doc instead of empty return ([#13916](https://github.com/payloadcms/payload/issues/13916)) ([68882aa](https://github.com/payloadcms/payload/commit/68882aa))
* **plugin-seo:** allow number ids & resolved relations for image auto-generation ([#13906](https://github.com/payloadcms/payload/issues/13906)) ([abbe38f](https://github.com/payloadcms/payload/commit/abbe38f))
* **richtext-lexical:** remove unexpected spaces in link html converter ([#13924](https://github.com/payloadcms/payload/issues/13924)) ([c230005](https://github.com/payloadcms/payload/commit/c230005))
* **richtext-lexical:** richtext field duplicates description custom component ([#13880](https://github.com/payloadcms/payload/issues/13880)) ([66f5d14](https://github.com/payloadcms/payload/commit/66f5d14))
* **richtext-lexical:** prevent disallowed headings to be pasted ([#13765](https://github.com/payloadcms/payload/issues/13765)) ([207caa5](https://github.com/payloadcms/payload/commit/207caa5))
* **translations:** adjust some zh translations ([#13867](https://github.com/payloadcms/payload/issues/13867)) ([ae7b75a](https://github.com/payloadcms/payload/commit/ae7b75a))
* **translations:** correct Ukrainian language translations ([#13639](https://github.com/payloadcms/payload/issues/13639)) ([5b5eaeb](https://github.com/payloadcms/payload/commit/5b5eaeb))
* **translations:** missing noLabelGroup translation key for Tamil translations ([#13896](https://github.com/payloadcms/payload/issues/13896)) ([cb23aaf](https://github.com/payloadcms/payload/commit/cb23aaf))
* **ui:** opening relationship field with appearance: "drawer" inside rich text inline block closes drawer ([#13830](https://github.com/payloadcms/payload/issues/13830)) ([7bbd07c](https://github.com/payloadcms/payload/commit/7bbd07c))
* **ui:** corrects url for publish specific url ([#13922](https://github.com/payloadcms/payload/issues/13922)) ([662bab2](https://github.com/payloadcms/payload/commit/662bab2))
* **ui:** array field state to return empty array instead of 0 ([#11283](https://github.com/payloadcms/payload/issues/11283)) ([3f5c989](https://github.com/payloadcms/payload/commit/3f5c989))
* **ui:** folder filters hidden behind results ([#13908](https://github.com/payloadcms/payload/issues/13908)) ([5c81342](https://github.com/payloadcms/payload/commit/5c81342))
* **ui:** custom folder slug in browse-by ([#13909](https://github.com/payloadcms/payload/issues/13909)) ([4975b8d](https://github.com/payloadcms/payload/commit/4975b8d))
* **ui:** query folder children with depth and select ([#13910](https://github.com/payloadcms/payload/issues/13910)) ([984f1b3](https://github.com/payloadcms/payload/commit/984f1b3))
* **ui:** revert-to-published button showing on new drafts ([#13897](https://github.com/payloadcms/payload/issues/13897)) ([82d98ab](https://github.com/payloadcms/payload/commit/82d98ab))
* **ui:** bulk upload with locale param ([#13865](https://github.com/payloadcms/payload/issues/13865)) ([667c4f1](https://github.com/payloadcms/payload/commit/667c4f1))
* **ui:** ensures visible list view thumbnails with enableListViewSelectAPI ([#13864](https://github.com/payloadcms/payload/issues/13864)) ([82aade2](https://github.com/payloadcms/payload/commit/82aade2))
* **ui:** respect editorOptions, prevent field from flashing on save ([#13848](https://github.com/payloadcms/payload/issues/13848)) ([5241113](https://github.com/payloadcms/payload/commit/5241113))
* **ui:** set prefetch false on Link buttons ([#13846](https://github.com/payloadcms/payload/issues/13846)) ([33228d9](https://github.com/payloadcms/payload/commit/33228d9))

### ⚡ Performance

* **graphql:** use depth 0 in auth/apiKey for graphQL requests ([#13895](https://github.com/payloadcms/payload/issues/13895)) ([9a59562](https://github.com/payloadcms/payload/commit/9a59562))
* **ui:** use select API in RelationshipProvider to speed up load times in RelationshipCell ([#13832](https://github.com/payloadcms/payload/issues/13832)) ([77cac30](https://github.com/payloadcms/payload/commit/77cac30))

### 🛠 Refactors

* **richtext-lexical:** new upload node design ([#13901](https://github.com/payloadcms/payload/issues/13901)) ([bea77f2](https://github.com/payloadcms/payload/commit/bea77f2))
* **translations:** correct i18n translation for Norwegian ([#13854](https://github.com/payloadcms/payload/issues/13854)) ([b7f6e3c](https://github.com/payloadcms/payload/commit/b7f6e3c))

### 📚 Documentation

* corrects link for experimental features topic ([#13862](https://github.com/payloadcms/payload/issues/13862)) ([b1e5bd9](https://github.com/payloadcms/payload/commit/b1e5bd9))
* clarify JWT token encryption / decryption in configuration docs ([#13816](https://github.com/payloadcms/payload/issues/13816)) ([0a5b7b0](https://github.com/payloadcms/payload/commit/0a5b7b0))

### ⚙️ CI

* remove v2 issue template ([f39c7bf](https://github.com/payloadcms/payload/commit/f39c7bf))

### 🏡 Chores

* revert docs label change ([c33c037](https://github.com/payloadcms/payload/commit/c33c037))
* update documentation issue template ([ae95d58](https://github.com/payloadcms/payload/commit/ae95d58))
* consolidate canAccessAdmin logic ([#13849](https://github.com/payloadcms/payload/issues/13849)) ([42b5935](https://github.com/payloadcms/payload/commit/42b5935))
* **deps:** bump @faceless-ui/modal to v3.0.0 ([#13842](https://github.com/payloadcms/payload/issues/13842)) ([9a8e3f8](https://github.com/payloadcms/payload/commit/9a8e3f8))

### 🤝 Contributors

- Alessio Gravili (@AlessioGr)
- Elliot DeNolf (@denolfe)
- Dan Ribbens (@DanRibbens)
- roboin (@Robot-Inventor)
- Jacob Fletcher (@jacobsfletch)
- Anders Semb Hermansen (@andershermansen)
- Jie Wang (@escwxyz)
- aptt (@apttx)
- Ricardo Tavares (@rjgtav)
- Patrik (@PatrikKozak)
- Jarrod Flesch (@JarrodMFlesch)
- Sasha (@r1tsuu)
- Jessica Rynkar (@jessrynkar)
- Паламар Роман (@VeiaG)
- Anil Shebin S J (@AnilShebin)
- German Jablonski (@GermanJablo)
- Jens Becker (@jhb-dev)
- Sean Zubrickas (@zubricks)
- Kwan Jun Wen (@junwen-k)