payload

The best way to build a modern backend + admin UI. No black magic, all TypeScript, and fully open-source, Payload is both an app framework and a headless CMS.

MIT License

Downloads
1.5M
Stars
19.2K
Committers
263

Bot releases are visible (Hide)

payload -

Published by denolfe 6 months ago

2.14.1 (2024-04-25)

Bug Fixes

  • db-postgres: cumulative updates (#6033) (c31b8dc)
  • disable api key checkbox does not remove api key (#6017) (0ffdcc6)
  • richtext-lexical: minimize the amount of times sanitizeFields is called (#6018) (60372fa)
payload - v3.0.0-beta.18

Published by denolfe 6 months ago

What's Changed

Full Changelog: https://github.com/payloadcms/payload/compare/v3.0.0-beta.15...v3.0.0-beta.18

payload -

Published by denolfe 6 months ago

2.14.0 (2024-04-24)

Features

Bug Fixes

  • bulk publish (#6006) (c11600a)
  • db-postgres: extra version suffix added to table names (#5939) (bd8b512)
  • db-postgres: Fixes nested groups inside nested blocks (#5882) (e258866)
  • db-postgres: row table names were not being built properly - v2 (#5961) (9152a23)
  • header filters (#5997) (ad01c67)
  • min/max attributes missing from number input (#5779) (985796b)
  • removes equals & not_equals operators from fields with hasMany (#5885) (a8c9625)
payload - v3.0.0-beta.15

Published by denolfe 6 months ago

What's Changed

Features

Fixes

⚠ BREAKING CHANGES

Custom handlers will no longer resolve data, locale and fallbackLocale for you. Instead you can use our provided utilities from the next package

// ❌ Before
{
  path: '/whoami/:parameter',
  method: 'post',
  handler: async (req) => {
    return Response.json({
      name: req.data.name, // data will be undefined
      // locales will be undefined
      fallbackLocale: req.fallbackLocale,
      locale: req.locale,
    })
  }
} 

// ✅ After
import { addDataAndFileToRequest } from '@payloadcms/next/utilities'
import { addLocalesToRequest } from '@payloadcms/next/utilities'

{
  path: '/whoami/:parameter',
  method: 'post',
  handler: async (req) => {
    // mutates req, must be awaited
    await addDataAndFileToRequest(req)
    
    // mutates req
    addLocalesToRequest(req)
	  
    return Response.json({
      name: req.data.name, // data is now available
      fallbackLocale: req.fallbackLocale, // locales available
      locale: req.locale,
    })
  }
} 

Full Changelog: https://github.com/payloadcms/payload/compare/v3.0.0-beta.14...v3.0.0-beta.15

payload -

Published by denolfe 6 months ago

v3.0.0-beta.14

⚠ BREAKING CHANGES

@payloadcms/db-postgres

  • fix(db-postgres): shortens relation names (#5976)

Shortens the name of auto-generated Postgres relations. Should dramatically reduce errors for users in PG. Also handles an issue with HMR in Postgres by properly destroying the database adapter before re-initializing it.

This change will require anyone running @payloadcms/db-postgres to create a new migration and run it against their database.

  • Run your application in development
  • pnpm payload migrate:create will generate the new migration
  • pnpm payload migrate will run the migration against your DB
payload - v3.0.0-beta.12

Published by denolfe 6 months ago

v3.0.0-beta.12

Features

Fixes

⚠ BREAKING CHANGES

Providing an email configuration is now optional. If using nodemailer before, you will need to install a new package @payloadcms/email-nodemailer and use it in your config.

Email Configuration Before:

  • Providing any email configuration was completely optional and would configure nodemailer and ethereal.email with a test account by default.
// via payload.init
payload.init({
  email: {
    transport: someNodemailerTransport
    fromName: 'hello',
    fromAddress: '[email protected]',
  },
})
// or via email in payload.config.ts
export default buildConfig({
  email: {
    transport: someNodemailerTransport
    fromName: 'hello',
    fromAddress: '[email protected]',
  },
})

Email Configuration After:

  • All existing nodemailer functionality was abstracted into the @payloadcms/email-nodemailer package
  • No longer configured with ethereal.email by default.
  • Ability to pass email into the init function has been removed.
  • Warning will be given on startup if email not configured. Any sendEmail call will simply log the To address and subject.
// Using new nodemailer adapter package

import { nodemailerAdapter } from '@payloadcms/email-nodemailer'

export default buildConfig({
  email: nodemailerAdapter() // This will be the old ethereal.email functionality
})

// or pass in transport

export default buildConfig({
  email: nodemailerAdapter({
    defaultFromAddress: '[email protected]',
    defaultFromName: 'Payload',
    transport: await nodemailer.createTransport({
      host: process.env.SMTP_HOST,
      port: 587,
      auth: {
        user: process.env.SMTP_USER,
        pass: process.env.SMTP_PASS,
      },
    })
  })
})
// Create custom email adapter

// myAdapter.ts
import type { EmailAdapter, SendMailOptions } from 'payload/types'

export const myAdapter: EmailAdapter = ({ payload }) => ({
  defaultFromAddress: defaults.defaultFromAddress,
  defaultFromName: defaults.defaultFromName,
  sendEmail: async (message) => {
    // Perform any logic here
    console.log(`To: '${message.to}', Subject: '${message.subject}'`)
    return Promise.resolve()
  },
})

// payload.config.ts
export default buildConfig({
  email: myAdapter()
})
payload -

Published by denolfe 6 months ago

2.13.0 (2024-04-19)

Features

  • allow configuration for setting headers on external file fetch (ec1ad0b)
  • db-*: custom db table and enum names (#5045) (9bbacc4)
  • json field schemas (#5726) (2c402cc)
  • plugin-seo: add Chinese translation (#5429) (fcb29bb)
  • richtext-lexical: add HorizontalRuleFeature (d8e9084)
  • richtext-lexical: improve floating handle y-positioning by positioning it in the center for smaller elements. (0055a8e)

Bug Fixes

  • adds type error validations for email and password in login operation (#4852) (1f00360)
  • avoids getting and setting doc preferences when creating new (#5757) (e3c3dda)
  • block field type missing dbName (#5695) (e7608f5)
  • db-mongodb: failing contains query with special chars (#5774) (5fa99fb)
  • db-mongodb: ignore end session errors (#5904) (cb8d562)
  • db-mongodb: version fields indexSortableFields (#5863) (fe0028c)
  • db-postgres: hasMany relationship query contains operator (#4212) (608d6d0)
  • db-postgres: issue querying by localised relationship not respecting locale as constraint (#5666) (44599cb)
  • db-postgres: query hasMany fields with in (#5881) (6185f8a)
  • db-postgres: relationship query pagination (#5802) (65690a6)
  • db-postgres: validateExistingBlockIsIdentical localized (#5839) (4c4f924)
  • duplicate document multiple times in quick succession (#5642) (373787d)
  • missing date locales (#5656) (c1c8600)
  • number ids were not sanitized to number in rest api (51f84a4)
  • passes parent id instead of incoming id to saveVersion (#5831) (25c9a14)
  • plugin-seo: uses correct key for ukrainian translation (#5873) (e47e544)
  • properly handle drafts in bulk update (#5872) (ad38f76)
  • req.collection being lost when querying a global inside a collection (#5727) (cbd03ed)
  • richtext-lexical: catch errors that may occur during HTML generation (#5754) (9b44296)
  • richtext-lexical: do not allow omitting editor prop for sub-richtext fields within lexical defined in the payload config (#5766) (6186493)
  • richtext-lexical: incorrect floating handle y-position calculation next to certain kinds of HTML elements like HR (de5d6cc)
  • richtext-lexical: limit unnecessary floating handle positioning updates (a00439e)
  • richtext-lexical: pass through config for schema generation. Makes it more robust (#5700) (cf135fd)
  • richtext-lexical: use correct nodeType on HorizontalRule feature HTML converter (#5805) (3b1d331)
  • updates type name of CustomPublishButtonProps to CustomPublishButtonType (#5644) (7df7bf4)
  • updates var (9530d28)
  • use isolateObjectProperty function in createLocalReq (#5748) (c0ba6cc)
  • uses find instead of fieldIndex for custom ID check (509ec67)

⚠ BREAKING CHANGES

  • richtext-lexical: do not allow omitting editor prop for sub-richtext fields within lexical defined in the payload config (#5766)
payload - Release v2.12.1

Published by denolfe 7 months ago

2.12.1 (2024-04-03)

Bug Fixes

payload -

Published by denolfe 7 months ago

2.12.0 (2024-04-03)

Features

  • plugin-seo: adds Norwegian translation (#5621) (589b492)
  • richtext-*: add ability to provide custom Field and Error components (#5574) (02d2c51)

Bug Fixes

  • db-postgres: error on delete having joins (#5459) (9169230)
  • image resize tiff files (#5415) (8184e00)
  • number field with hasMany accept defaultValue array (#5618) (a3ae416)
  • regression of filterOptions using different transaction (#5169) (3ceb6ef)
  • richtext-lexical: Blocks: generated output schema is not fully correct (#5259) (e7f6bfb)
  • richtext-lexical: checklist html converter incorrectly outputting children (#5570) (2e5400f)
  • richtext-lexical: disable instanceof HTMLImageElement check as it causes issues when used on the server (2164dcc)
  • richtext-lexical: Link: add open-in-new-tab to html converter (23df60d)
  • richtext-lexical: properly center add- and drag-block handles (#5568) (48dc116)
  • sets beforeValidateHook req type to required (#5608) (e10d5df)
payload -

Published by denolfe 7 months ago

2.11.2 (2024-02-23)

Features

  • db-postgres: configurable custom schema to use (#5047) (e8f2ca4)

Bug Fixes

  • Add Context Provider in EditMany Component (#5005) (70e57fe)
  • db-mongodb: unique sparse for not required fields (#5114) (815bdfa)
  • db-postgres: set _parentID for array nested localized fields (#5117) (ceca5c4)
  • disabling API Key does not remove the key (#5145) (7a7f0ed)
  • handle thrown errors in config-level afterError hook (#5147) (32ed95e)
  • only replace the drawer content with full edit component if it exists (#5144) (0a07f60)
  • transaction error from access endpoint (#5156) (ad42d54)
payload - Release v2.11.1

Published by denolfe 8 months ago

2.11.1 (2024-02-16)

Features

  • db-postgres: adds idType to use uuid or serial id columns (#3864) (d6c2578)
  • db-postgres: reconnect after disconnection from database (#5086) (bf942fd)
  • plugin-search: add req to beforeSync args for transactions (#5068) (98b87e2)
  • richtext-lexical: add justify aligment to AlignFeature (#4035) (#4868) (6d6823c)
  • richtext-lexical: AddBlock handle for all nodes, even if they aren't empty paragraphs (#5063) (00fc034)
  • richtext-lexical: Update lexical from 0.12.6 to 0.13.1, port over all useful changes from playground (#5066) (0d18822)

Bug Fixes

  • db-mongodb: find versions pagination (#5091) (5d4022f)
  • db-postgres: query using blockType (#5044) (35c2a08)
  • filterOptions errors cause transaction to abort (#5079) (5f3d016)
  • plugin-form-builder: hooks do not respect transactions (#5069) (82e9d31)
  • remove collection findByID caching (#5034) (1ac943e)
  • richtext-lexical: do not remove adjacent paragraph node when inserting certain nodes in empty editor (#5061) (6323965)
  • uploads: account for serverURL when retrieving external file (#5102) (25cee8b)

⚠ BREAKING CHANGES: @payloadcms/richtext-lexical

  • richtext-lexical: Update lexical from 0.12.6 to 0.13.1, port over all useful changes from playground (#5066)
  • You HAVE to make sure that any versions of the lexical packages (IF you have any installed) match the lexical version which richtext-lexical uses: v0.13.1. If you do not do this, you may be plagued by React useContext / "cannot find active editor state" errors
  • Updates to lexical's API, e.g. the removal of INTERNAL_isPointSelection, could be breaking depending on your code. Please consult the lexical changelog.
payload - Release v2.11.0

Published by denolfe 8 months ago

2.11.0 (2024-02-09)

Features

  • exposes collapsible provider with more functionality (#5043) (df39602)
payload - Release v2.10.1

Published by denolfe 8 months ago

2.10.1 (2024-02-09)

Bug Fixes

  • clearable cells handle null values (#5038) (f6d7da7)
  • db-mongodb: handle null values with exists (#5037) (cdc4cb9)
  • db-postgres: handle nested docs with drafts (#5012) (da184d4)
  • ensures docs with the same id are shown in relationship field select (#4859) (e1813fb)
  • query relationships by explicit id field (#5022) (a0a58e7)
  • richtext-lexical: make editor reactive to initialValue changes (#5010) (2315781)
payload - Release v2.10.0

Published by denolfe 9 months ago

2.10.0 (2024-02-06)

Features

  • add more options to addFieldStatePromise so that it can be used for field flattening (#4799) (8725d41)
  • extend transactions to cover after and beforeOperation hooks (#4960) (1e8a6b7)
  • previousValue and previousSiblingDoc args added to beforeChange field hooks (#4958) (5d934ba)
  • re-use existing logger instance passed to payload.init (#3124) (471d211)
  • richtext-lexical: Blocks: generate type definitions for blocks fields (#4529) (90d7ee3)
  • use deletion success message from server if provided (#4966) (e3c8105)

Bug Fixes

  • db-postgres: filtering relationships with drafts enabled (#4998) (c3a3942)
  • db-postgres: handle schema changes with supabase (#4968) (5d3659d)
  • db-postgres: indexes not created for non unique field names (#4967) (64f705c)
  • db-postgres: indexes not creating for relationships, arrays, hasmany and blocks (#4976) (47106d5)
  • db-postgres: localized field sort count (#4997) (f3876c2)
  • ensures docPermissions fallback to collection permissions on create (#4969) (afa2b94)
  • migrations: safely create migration file when no name passed (#4995) (0740d50)
  • plugin-seo: tabbedUI with email field causes duplicate field (#4944) (db22cbd)
payload - Release v2.9.0

Published by denolfe 9 months ago

2.9.0 (2024-01-26)

Features

  • forceAcceptWarning migration arg added to accept prompts (#4874) (eba53ba)

Bug Fixes

  • afterLogin hook write conflicts (#4904) (3eb681e)
  • db-postgres: migrate down error (#4861) (dfba522)
  • db-postgres: query unset relation (#4862) (8ce15c8)
  • migrate down missing filter for latest batch (#4860) (b99d24f)
  • plugin-cloud-storage: slow get file performance large collections (#4927) (f73d503)
  • remove No Options dropdown from hasMany fields (#4899) (e5a7907)
  • upload input drawer does not show draft versions (#4903) (6930c4e)
payload - Release v2.8.2

Published by denolfe 9 months ago

2.8.2 (2024-01-16)

Features

  • db-postgres: support drizzle logging config (#4809) (371353f)
  • plugin-form-builder: add validation for form ID when creating a submission (#4730)
  • plugin-seo: add support for interfaceName and fieldOverrides (#4695)

Bug Fixes

  • db-mongodb: mongodb versions creating duplicates (#4825) (a861311)
  • db-mongodb: transactionOptions=false typeErrors (82383a5)
  • db-postgres: Remove duplicate keys from response (#4747) (eb9e771)
  • db-postgres: validateExistingBlockIsIdentical with arrays (3b88adc)
  • db-postgres: validateExistingBlockIsIdentical with other tables (0647c87)
  • plugin-seo: fix missing spread operator in URL generator function (#4723)
  • removes max-width from field-types class & correctly sets it on uploads (#4829) (ee5390a)
payload - Release v2.8.0

Published by denolfe 9 months ago

2.8.0 (2024-01-12)

Features

Bug Fixes

  • allow a custom ID field to be nested inside unnamed tabs and rows (#4701) (6d5ac1d)
  • build payload without initializing (#4028) (1115387)
  • db-mongodb: limit=0 returns unpaginated (63e5c43)
  • db-postgres: totalPages value when limit=0 (5702b83)
  • migration regression (#4777) (fa3b3dd)
  • db-mongodb: migration regression (#4777) (fa3b3dd)
  • **db-postgres:**migration regression (#4777) (fa3b3dd)
  • passes draft=true in fetch for relationships (#4784) (0a259d2)
  • plugin-form-builder: replaces curly brackets with lexical editor (#4753) (8481846)
  • prioritizes value key when filtering / querying for relationships (#4727) (d0f7677)
  • text hasMany validation (#4789) (e2e56a4)

⚠ BREAKING CHANGES

@payloadcms/plugin-seo

  • remove support for payload <2.7.0 (#4765)
payload - Release v2.7.0

Published by denolfe 10 months ago

2.7.0 (2024-01-09)

Features

  • db-mongodb: improve transaction support by passing req to migrations (682eca2)
  • db-postgres: improve transaction support by passing req to migrations (555d027)
  • hasMany property for text fields (#4605) (f43cf18)
  • improve transaction support by passing req to migrations (1d14d9f)
  • plugin-seo: add i18n (#4665) (3027a03)

Bug Fixes

  • adds objectID validation to isValidID if of type text (#4689) (d419275)
  • allow json field to be saved empty and reflect value changes (#4687) (0fb3a9c)
  • custom ids in versions (#4680) (5d15955)
  • custom overrides of breadcrumb and parent fields (7db58b4)
  • db-mongodb: migration error calling beginTransaction with transactionOptions false (21b9453)
  • db-mongodb: querying plan for collections ignoring indexes (#4655) (63bc4ca)
  • db-postgres: incorrect results querying json field using exists operator (9d9ac0e)
  • db-postgres: migrate down only runs latest batch size (6acfae8)
  • db-postgres: query on json properties (ec4d2f9)
  • db-postgres: validation prevents group fields in blocks (#4699) (cab6bab)
  • non-boolean condition result causes infinite looping (#4579) (a3e7816)
  • plugin-form-builder: slate serializer should replace curly braces in links (#4703) (28a3012)
  • plugin-nested-docs: breadcrumbsFieldSlug used in resaveSelfAfterCreate hook (a5a91c0)
  • plugin-nested-docs: children wrongly publishing draft data (#4692) (5539942)
  • plugin-nested-docs: custom parent field slug (635e7c2)
  • plugin-nested-docs: parent filterOptions errors when specifying breadcrumbsFieldSlug (c4a4678)
  • prevents row overflow (#4704) (9828772)
  • relations with number based ids (postgres) show untitled ID: x (1b91408)
  • sidebar fields not disabled by access permissions (#4682) (85e38b7)
  • unlock user condition always passes due to seconds conversion (#4610) (d543665)
payload - Release v2.6.0

Published by denolfe 10 months ago

2.6.0 (2024-01-03)

Features

  • db-mongodb: add transactionOptions (f2c8ac4)
  • extend locales to have fallbackLocales (9fac2ef)

Bug Fixes

  • "The punycode module is deprecated" warning by updating nodemailer (00d8480)
  • adjusts json field joi schema to allow editorOptions (bff4cf5)
  • db-postgres: Wait for transaction to complete on commit (#4582) (a71d37b)
  • detect language from request headers accept-language (#4656) (69a9944)
  • graphql multiple locales (98890ee)
  • navigation locks when modal is closed with esc (#4664) (be3beab)
  • req.locale and req.fallbackLocale get reassigned in local operations (aa048d5)
  • resets actions array when navigating out of view with actions (#4585) (5c55231)
  • richtext-lexical: z-index issues (#4570) (8015e99)
  • tab field error when using the same interface name (#4657) (f1fa374)
payload - Release v2.5.0

Published by denolfe 10 months ago

2.5.0 (2023-12-19)

Features

  • add Chinese Traditional translation (#4372) (50253f6)
  • add context to auth and globals local API (#4449) (168d629)
  • adds new actions property to admin customization (#4468) (9e8f14a)
  • async live preview urls (#4339) (5f17324)
  • pass path to FieldDescription (#4364) (3b8a27d)
  • plugin-form-builder: Lexical support (#4487) (c6c5cab)
  • prevent querying relationship when filterOptions returns false (#4392) (c1bd338)
  • richtext-lexical: improve floating select menu Dropdown classNames (#4444) (9331204)
  • richtext-lexical: improve link URL validation (#4442) (9babf68)
  • richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290) (5de347f)
  • richtext-lexical: Link & Relationship Feature: field-level configurable allowed relationships (#4182) (7af8f29)
  • richtext-lexical: link node: change doc data format to be consistent with relationship field (#4504) (cc0ba89)
  • richtext-lexical: rename TreeviewFeature into TreeViewFeature (#4520) (c49fd66)
  • richtext-lexical: Slate to Lexical converter: add blockquote conversion, convert custom link fields (#4486) (31f8f3c)
  • richtext-lexical: Upload html serializer: Output picture element if the image has multiple sizes, improve absolute URL creation (e558894)

Bug Fixes

  • adds bg color for year/month select options in datepicker (#4508) (07371b9)
  • correctly fetches externally stored files when passing uploadEdits (#4505) (228d45c)
  • cursor jumping around inside json field (#4453) (6300037)
  • db-mongodb: documentDB unique constraint throws incorrect error (#4513) (05e8914)
  • db-postgres: findOne correctly querying with where queries (#4550) (8bc31cd)
  • db-postgres: querying nested blocks fields (#4404) (6e9ae65)
  • db-postgres: sorting on a not-configured field throws error (#4382) (dbaecda)
  • defaultValues computed on new globals (#4380) (b6cffce)
  • disallow duplicate fieldNames to be used on the same level in the config (#4381) (a1d66b8)
  • ensure ui fields do not make it into gql schemas (#4457) (3a20ddc)
  • format fields within tab for list controls (#4516) (2650c70)
  • formats locales with multiple labels for versions locale selector (#4495) (8257661)
  • graphql schema generation for fields without queryable subfields (#4463) (13e3e06)
  • handles null upload field values (#4397) (cf9a370)
  • live-preview: populates rte uploads and relationships (#4379) (4090aeb)
  • live-preview: sends raw js objects through window.postMessage instead of json (#4354) (03a3872)
  • make admin navigation transition smoother (#4217) (eb6572e)
  • omit field default value if read access returns false (#4518) (3e9ef84)
  • pin ts-node versions which are causing swc errors (#4447) (b9c0248)
  • properly spreads collection fields into non-tabbed configs #50 (#51) (7e88159)
  • plugin-form-builder: removes use of slate in rich-text serializer (#4451) (3df52a8)
  • plugin-nested-docs: properly exports field utilities (#4462) (1cc87bd)
  • richtext-*: loosen RichTextAdapter types due to re-occuring ts strict mode errors (#4416) (48f1299)
  • richtext-lexical: Blocks field: should not prompt for unsaved changes due to value comparison between null and non-existent props (#4450) (548e78c)
  • richtext-lexical: do not add unnecessary paragraph before upload, relationship and blocks nodes (#4441) (5c2739e)
  • richtext-lexical: lexicalHTML field not working when used inside of Blocks field (128f9c4)
  • richtext-lexical: lexicalHTML field now works when used inside of row fields (#4440) (0421173)
  • richtext-lexical: not all types of URLs are validated correctly (ac7f980)
  • searching by id sends undefined in where query param (#4464) (46e8c01)
  • simplifies query validation and fixes nested relationship fields (#4391) (4b5453e)
  • updates return value of empty arrays in getDataByPath (#4553) (f3748a1)
  • upload editing error with plugin-cloud (#4170) (fcbe574)
  • upload related issues, cropping, fetching local file, external preview image (#4461) (45c472d)
  • uploads files after validation (#4218) (65adfd2)

⚠ BREAKING CHANGES: @payloadcms/richtext-lexical

  • richtext-lexical: rename TreeviewFeature into TreeViewFeature (#4520)

If you import TreeviewFeature, you have to rename the import to use TreeViewFeature (capitalized "V")

  • richtext-lexical: link node: change doc data format to be consistent with relationship field (#4504)

An unpopulated, internal link node no longer saves the doc id under fields.doc.value.id. Now, it saves it under fields.doc.value.
Migration inside of payload is automatic. If you are reading from the link node inside of your frontend though, you will have to adjust it.

  • richtext-lexical: improve floating select menu Dropdown classNames (#4444)

Dropdown component has a new mandatory sectionKey prop

  • richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290)
  1. Most important: If you are updating @payloadcms/richtext-lexical to v0.4.0 or higher, you will HAVE to update payload to the latest version as well. If you don't update it, payload likely won't start up due to validation errors. It's generally good practice to upgrade packages prefixed with @payloadcms/ together with payload and keep the versions in sync.

  2. @payloadcms/richtext-slate is not affected by this.

  3. Every single property in the Feature interface which accepts a React component now no longer accepts a React component, but a function which imports a React component instead. This is done to ensure no unnecessary client-only code is leaked to the server when importing Features on a server.
    Here's an example migration:

Old:

import { BlockIcon } from '../../lexical/ui/icons/Block'
...
Icon: BlockIcon,

New:

// import { BlockIcon } from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
  // @ts-expect-error
  import('../../lexical/ui/icons/Block').then((module) => module.BlockIcon),

Or alternatively, if you're using default exports instead of named exports:

// import BlockIcon from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
  // @ts-expect-error
  import('../../lexical/ui/icons/Block'),
  1. The types for SanitizedEditorConfig and EditorConfig have changed. Their respective lexical property no longer expects the LexicalEditorConfig. It now expects a function returning the LexicalEditorConfig. You will have to adjust this if you adjusted that property anywhere, e.g. when initializing the lexical field editor property, or when initializing a new headless editor.

  2. The following exports are now exported from the @payloadcms/richtext-lexical/components subpath exports instead of @payloadcms/richtext-lexical:

  • ToolbarButton
  • ToolbarDropdown
  • RichTextCell
  • RichTextField
  • defaultEditorLexicalConfig

You will have to adjust your imports, only if you import any of those properties in your project.