@payloadcms/ui 3.0.0-beta.71 → 3.0.0-beta.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  2. package/dist/elements/DeleteMany/index.js +4 -2
  3. package/dist/elements/DeleteMany/index.js.map +1 -1
  4. package/dist/elements/Logout/index.d.ts.map +1 -1
  5. package/dist/elements/Logout/index.js +2 -0
  6. package/dist/elements/Logout/index.js.map +1 -1
  7. package/dist/elements/SortColumn/index.js +4 -4
  8. package/dist/elements/SortColumn/index.js.map +1 -1
  9. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  10. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -3
  11. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  12. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  13. package/dist/elements/WhereBuilder/index.js +7 -4
  14. package/dist/elements/WhereBuilder/index.js.map +1 -1
  15. package/dist/exports/client/index.js +7 -6
  16. package/dist/exports/client/index.js.map +4 -4
  17. package/dist/exports/shared/index.js +1 -1
  18. package/dist/exports/shared/index.js.map +3 -3
  19. package/dist/fields/Array/index.d.ts +1 -1
  20. package/dist/fields/Array/index.d.ts.map +1 -1
  21. package/dist/fields/Array/index.js +22 -7
  22. package/dist/fields/Array/index.js.map +1 -1
  23. package/dist/fields/Blocks/index.d.ts.map +1 -1
  24. package/dist/fields/Blocks/index.js +20 -7
  25. package/dist/fields/Blocks/index.js.map +1 -1
  26. package/dist/fields/ConfirmPassword/index.d.ts +1 -0
  27. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  28. package/dist/fields/ConfirmPassword/index.js +2 -3
  29. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  30. package/dist/fields/Password/index.d.ts +13 -2
  31. package/dist/fields/Password/index.d.ts.map +1 -1
  32. package/dist/fields/Password/index.js +56 -43
  33. package/dist/fields/Password/index.js.map +1 -1
  34. package/dist/fields/Password/input.d.ts +5 -0
  35. package/dist/fields/Password/input.d.ts.map +1 -0
  36. package/dist/fields/Password/input.js +65 -0
  37. package/dist/fields/Password/input.js.map +1 -0
  38. package/dist/fields/Password/types.d.ts +27 -0
  39. package/dist/fields/Password/types.d.ts.map +1 -0
  40. package/dist/fields/Password/types.js +3 -0
  41. package/dist/fields/Password/types.js.map +1 -0
  42. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  43. package/dist/forms/Form/fieldReducer.js +5 -35
  44. package/dist/forms/Form/fieldReducer.js.map +1 -1
  45. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  46. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  47. package/dist/forms/Form/rowHelpers.js +24 -0
  48. package/dist/forms/Form/rowHelpers.js.map +1 -0
  49. package/dist/forms/Form/types.d.ts +3 -10
  50. package/dist/forms/Form/types.d.ts.map +1 -1
  51. package/dist/forms/Form/types.js.map +1 -1
  52. package/dist/forms/useField/index.d.ts.map +1 -1
  53. package/dist/forms/useField/index.js +2 -1
  54. package/dist/forms/useField/index.js.map +1 -1
  55. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  56. package/dist/providers/ComponentMap/buildComponentMap/fields.js +12 -22
  57. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  58. package/dist/providers/ListQuery/index.d.ts +16 -9
  59. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  60. package/dist/providers/ListQuery/index.js +8 -6
  61. package/dist/providers/ListQuery/index.js.map +1 -1
  62. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  63. package/dist/utilities/buildFieldSchemaMap/index.js +24 -0
  64. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  65. package/dist/utilities/buildFormState.d.ts.map +1 -1
  66. package/dist/utilities/buildFormState.js +0 -2
  67. package/dist/utilities/buildFormState.js.map +1 -1
  68. package/dist/utilities/formatAdminURL.d.ts +1 -0
  69. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  70. package/dist/utilities/formatAdminURL.js +4 -4
  71. package/dist/utilities/formatAdminURL.js.map +1 -1
  72. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype Handlers = {\n handlePageChange?: (page: number) => void\n handlePerPageChange?: (limit: number) => void\n handleSearchChange?: (search: string) => void\n handleSortChange?: (sort: string) => void\n handleWhereChange?: (where: Where) => void\n}\n\nexport type ListQueryProps = {\n children: React.ReactNode\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n modifySearchParams?: boolean\n preferenceKey?: string\n} & Handlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => void\n} & Handlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const hasSetInitialParams = React.useRef(false)\n const { searchParams: currentQuery } = useSearchParams()\n\n const refineListData = React.useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) return\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = query.limit\n updatePreferences = true\n }\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: 'page' in query ? query.page : currentQuery?.page,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [preferenceKey, modifySearchParams, router, setPreference, currentQuery],\n )\n\n const handlePageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n handlePageChangeFromProps(arg)\n }\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n handlePerPageChangeFromProps(arg)\n }\n await refineListData({ limit: String(arg) })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n const handleSearchChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSearchChangeFromProps === 'function') {\n handleSearchChangeFromProps(arg)\n }\n await refineListData({ search: arg })\n },\n [refineListData, handleSearchChangeFromProps],\n )\n const handleSortChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n handleSortChangeFromProps(arg)\n }\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n const handleWhereChange = React.useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n handleWhereChangeFromProps(arg)\n }\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n React.useEffect(() => {\n if (!hasSetInitialParams.current) {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n\n hasSetInitialParams.current = true\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"names":["useRouter","isNumber","qs","React","createContext","useContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","preferenceKey","router","setPreference","hasSetInitialParams","useRef","searchParams","currentQuery","refineListData","useCallback","query","updatedPreferences","updatePreferences","limit","sort","params","page","search","where","replace","stringify","addQueryPrefix","arg","String","useEffect","current","shouldUpdateQueryString","Provider","value"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n handlePageChange?: (page: number) => Promise<void> | void\n handlePerPageChange?: (limit: number) => Promise<void> | void\n handleSearchChange?: (search: string) => Promise<void> | void\n handleSortChange?: (sort: string) => Promise<void> | void\n handleWhereChange?: (where: Where) => Promise<void> | void\n}\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n children: React.ReactNode\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n modifySearchParams?: boolean\n preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const hasSetInitialParams = React.useRef(false)\n const { searchParams: currentQuery } = useSearchParams()\n\n const refineListData = React.useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) return\n\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n if ('where' in query || 'search' in query) pageQuery = '1'\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = query.limit\n updatePreferences = true\n }\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [preferenceKey, modifySearchParams, router, setPreference, currentQuery],\n )\n\n const handlePageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n await refineListData({ limit: String(arg) })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n const handleSearchChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(arg)\n }\n await refineListData({ search: arg })\n },\n [refineListData, handleSearchChangeFromProps],\n )\n const handleSortChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n const handleWhereChange = React.useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n React.useEffect(() => {\n if (!hasSetInitialParams.current) {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n\n hasSetInitialParams.current = true\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"names":["useRouter","isNumber","qs","React","createContext","useContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","preferenceKey","router","setPreference","hasSetInitialParams","useRef","searchParams","currentQuery","refineListData","useCallback","query","pageQuery","page","updatedPreferences","updatePreferences","limit","sort","params","search","where","replace","stringify","addQueryPrefix","arg","String","useEffect","current","shouldUpdateQueryString","Provider","value"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,mBAAmB,SAAU;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;CACX,KAAG,cA0BH,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAS,eAAe,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,mBAAmB,SAAU;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;CACX,KAAG,cAgDH,CAAA"}
@@ -1,8 +1,32 @@
1
+ import { confirmPassword, password } from 'payload/shared';
1
2
  import { traverseFields } from './traverseFields.js';
2
3
  export const buildFieldSchemaMap = (args)=>{
3
4
  const { config, i18n } = args;
4
5
  const result = new Map();
5
6
  config.collections.forEach((collection)=>{
7
+ if (collection.auth && !collection.auth.disableLocalStrategy) {
8
+ // register schema with auth schemaPath
9
+ const baseAuthFields = [
10
+ {
11
+ name: 'password',
12
+ type: 'text',
13
+ label: i18n.t('general:password'),
14
+ required: true,
15
+ validate: password
16
+ },
17
+ {
18
+ name: 'confirm-password',
19
+ type: 'text',
20
+ label: i18n.t('authentication:confirmPassword'),
21
+ required: true,
22
+ validate: confirmPassword
23
+ }
24
+ ];
25
+ result.set(`_${collection.slug}.auth`, [
26
+ ...collection.fields,
27
+ ...baseAuthFields
28
+ ]);
29
+ }
6
30
  traverseFields({
7
31
  config,
8
32
  fields: collection.fields,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport type { FieldSchemaMap } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\nexport const buildFieldSchemaMap = (args: {\n config: SanitizedConfig\n i18n: I18n\n}): FieldSchemaMap => {\n const { config, i18n } = args\n\n const result: FieldSchemaMap = new Map()\n\n config.collections.forEach((collection) => {\n traverseFields({\n config,\n fields: collection.fields,\n i18n,\n schemaMap: result,\n schemaPath: collection.slug,\n })\n })\n\n config.globals.forEach((global) => {\n traverseFields({\n config,\n fields: global.fields,\n i18n,\n schemaMap: result,\n schemaPath: global.slug,\n })\n })\n\n return result\n}\n"],"names":["traverseFields","buildFieldSchemaMap","args","config","i18n","result","Map","collections","forEach","collection","fields","schemaMap","schemaPath","slug","globals","global"],"mappings":"AAKA,SAASA,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,MAAMC,sBAAsB,CAACC;IAIlC,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF;IAEzB,MAAMG,SAAyB,IAAIC;IAEnCH,OAAOI,WAAW,CAACC,OAAO,CAAC,CAACC;QAC1BT,eAAe;YACbG;YACAO,QAAQD,WAAWC,MAAM;YACzBN;YACAO,WAAWN;YACXO,YAAYH,WAAWI,IAAI;QAC7B;IACF;IAEAV,OAAOW,OAAO,CAACN,OAAO,CAAC,CAACO;QACtBf,eAAe;YACbG;YACAO,QAAQK,OAAOL,MAAM;YACrBN;YACAO,WAAWN;YACXO,YAAYG,OAAOF,IAAI;QACzB;IACF;IAEA,OAAOR;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Field, SanitizedConfig } from 'payload'\n\nimport { confirmPassword, password } from 'payload/shared'\n\nimport type { FieldSchemaMap } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\nexport const buildFieldSchemaMap = (args: {\n config: SanitizedConfig\n i18n: I18n\n}): FieldSchemaMap => {\n const { config, i18n } = args\n\n const result: FieldSchemaMap = new Map()\n\n config.collections.forEach((collection) => {\n if (collection.auth && !collection.auth.disableLocalStrategy) {\n // register schema with auth schemaPath\n const baseAuthFields: Field[] = [\n {\n name: 'password',\n type: 'text',\n label: i18n.t('general:password'),\n required: true,\n validate: password,\n },\n {\n name: 'confirm-password',\n type: 'text',\n label: i18n.t('authentication:confirmPassword'),\n required: true,\n validate: confirmPassword,\n },\n ]\n\n result.set(`_${collection.slug}.auth`, [...collection.fields, ...baseAuthFields])\n }\n\n traverseFields({\n config,\n fields: collection.fields,\n i18n,\n schemaMap: result,\n schemaPath: collection.slug,\n })\n })\n\n config.globals.forEach((global) => {\n traverseFields({\n config,\n fields: global.fields,\n i18n,\n schemaMap: result,\n schemaPath: global.slug,\n })\n })\n\n return result\n}\n"],"names":["confirmPassword","password","traverseFields","buildFieldSchemaMap","args","config","i18n","result","Map","collections","forEach","collection","auth","disableLocalStrategy","baseAuthFields","name","type","label","t","required","validate","set","slug","fields","schemaMap","schemaPath","globals","global"],"mappings":"AAGA,SAASA,eAAe,EAAEC,QAAQ,QAAQ,iBAAgB;AAI1D,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,MAAMC,sBAAsB,CAACC;IAIlC,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF;IAEzB,MAAMG,SAAyB,IAAIC;IAEnCH,OAAOI,WAAW,CAACC,OAAO,CAAC,CAACC;QAC1B,IAAIA,WAAWC,IAAI,IAAI,CAACD,WAAWC,IAAI,CAACC,oBAAoB,EAAE;YAC5D,uCAAuC;YACvC,MAAMC,iBAA0B;gBAC9B;oBACEC,MAAM;oBACNC,MAAM;oBACNC,OAAOX,KAAKY,CAAC,CAAC;oBACdC,UAAU;oBACVC,UAAUnB;gBACZ;gBACA;oBACEc,MAAM;oBACNC,MAAM;oBACNC,OAAOX,KAAKY,CAAC,CAAC;oBACdC,UAAU;oBACVC,UAAUpB;gBACZ;aACD;YAEDO,OAAOc,GAAG,CAAC,CAAC,CAAC,EAAEV,WAAWW,IAAI,CAAC,KAAK,CAAC,EAAE;mBAAIX,WAAWY,MAAM;mBAAKT;aAAe;QAClF;QAEAZ,eAAe;YACbG;YACAkB,QAAQZ,WAAWY,MAAM;YACzBjB;YACAkB,WAAWjB;YACXkB,YAAYd,WAAWW,IAAI;QAC7B;IACF;IAEAjB,OAAOqB,OAAO,CAAChB,OAAO,CAAC,CAACiB;QACtBzB,eAAe;YACbG;YACAkB,QAAQI,OAAOJ,MAAM;YACrBjB;YACAkB,WAAWjB;YACXkB,YAAYE,OAAOL,IAAI;QACzB;IACF;IAEA,OAAOf;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,SAAS,EAAE,cAAc,EAAc,MAAM,SAAS,CAAA;AAKhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAapE,eAAO,MAAM,iBAAiB,QAAS,cAAc,KAAG,cAWvD,CAAA;AAED,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,KAAG,OAAO,CAAC,SAAS,CA4KxF,CAAA"}
1
+ {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,SAAS,EAAE,cAAc,EAAc,MAAM,SAAS,CAAA;AAKhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAapE,eAAO,MAAM,iBAAiB,QAAS,cAAc,KAAG,cAWvD,CAAA;AAED,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,KAAG,OAAO,CAAC,SAAS,CA0KxF,CAAA"}
@@ -153,8 +153,6 @@ export const buildFormState = async ({ req })=>{
153
153
  }
154
154
  if (req.payload.collections[collectionSlug]?.config?.auth && !req.payload.collections[collectionSlug].config.auth.disableLocalStrategy) {
155
155
  if (formState.username) result.username = formState.username;
156
- if (formState.password) result.password = formState.password;
157
- if (formState['confirm-password']) result['confirm-password'] = formState['confirm-password'];
158
156
  if (formState.email) result.email = formState.email;
159
157
  }
160
158
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type { DocumentPreferences, Field, FormState, PayloadRequest, TypeWithID } from 'payload'\n\nimport { reduceFieldsToValues } from 'payload/shared'\n\nimport type { BuildFormStateArgs } from '../forms/buildStateFromSchema/index.js'\nimport type { FieldSchemaMap } from './buildFieldSchemaMap/types.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport {} from '../exports/client/index.js'\nimport { buildStateFromSchema } from '../forms/buildStateFromSchema/index.js'\nimport { buildFieldSchemaMap } from './buildFieldSchemaMap/index.js'\n\nlet cached = global._payload_fieldSchemaMap\n\nif (!cached) {\n cached = global._payload_fieldSchemaMap = null\n}\n\nexport const getFieldSchemaMap = (req: PayloadRequest): FieldSchemaMap => {\n if (cached && process.env.NODE_ENV !== 'development') {\n return cached\n }\n\n cached = buildFieldSchemaMap({\n config: req.payload.config,\n i18n: req.i18n,\n })\n\n return cached\n}\n\nexport const buildFormState = async ({ req }: { req: PayloadRequest }): Promise<FormState> => {\n const reqData: BuildFormStateArgs = (req.data || {}) as BuildFormStateArgs\n const { collectionSlug, formState, globalSlug, locale, operation, schemaPath } = reqData\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const fieldSchemaMap = getFieldSchemaMap(req)\n\n const id = collectionSlug ? reqData.id : undefined\n const schemaPathSegments = schemaPath && schemaPath.split('.')\n\n let fieldSchema: Field[]\n\n if (schemaPathSegments.length === 1) {\n if (req.payload.collections[schemaPath]) {\n fieldSchema = req.payload.collections[schemaPath].config.fields\n } else {\n fieldSchema = req.payload.config.globals.find((global) => global.slug === schemaPath)?.fields\n }\n } else if (fieldSchemaMap.has(schemaPath)) {\n fieldSchema = fieldSchemaMap.get(schemaPath)\n }\n\n if (!fieldSchema) {\n throw new Error('Could not find field schema for given path')\n }\n\n let docPreferences = reqData.docPreferences\n let data = reqData.data\n\n const promises: {\n data?: Promise<void>\n preferences?: Promise<void>\n } = {}\n\n // If the request does not include doc preferences,\n // we should fetch them. This is useful for DocumentInfoProvider\n // as it reduces the amount of client-side fetches necessary\n // when we fetch data for the Edit view\n if (!docPreferences) {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const fetchPreferences = async () => {\n const preferencesResult = (await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n key: {\n equals: preferencesKey,\n },\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value\n }\n\n promises.preferences = fetchPreferences()\n }\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) data = reduceFieldsToValues(formState, true)\n\n // If we do not have data at this point,\n // we can fetch it. This is useful for DocumentInfoProvider\n // to reduce the amount of fetches required\n if (!data) {\n const fetchData = async () => {\n let resolvedData: Record<string, unknown> | TypeWithID\n\n if (collectionSlug && id) {\n resolvedData = await req.payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n if (globalSlug && schemaPath === globalSlug) {\n resolvedData = await req.payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n data = resolvedData\n }\n\n promises.data = fetchData()\n }\n\n if (Object.keys(promises).length > 0) {\n await Promise.all(Object.values(promises))\n }\n\n const result = await buildStateFromSchema({\n id,\n data,\n fieldSchema,\n operation,\n preferences: docPreferences || { fields: {} },\n req,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (req.payload.collections[collectionSlug]?.config?.upload && formState.file) {\n result.file = formState.file\n }\n\n if (\n req.payload.collections[collectionSlug]?.config?.auth &&\n !req.payload.collections[collectionSlug].config.auth.disableLocalStrategy\n ) {\n if (formState.username) result.username = formState.username\n if (formState.password) result.password = formState.password\n if (formState['confirm-password']) result['confirm-password'] = formState['confirm-password']\n if (formState.email) result.email = formState.email\n }\n }\n\n return result\n}\n"],"names":["reduceFieldsToValues","buildStateFromSchema","buildFieldSchemaMap","cached","global","_payload_fieldSchemaMap","getFieldSchemaMap","req","process","env","NODE_ENV","config","payload","i18n","buildFormState","reqData","data","collectionSlug","formState","globalSlug","locale","operation","schemaPath","incomingUserSlug","user","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","fieldSchemaMap","id","undefined","schemaPathSegments","split","fieldSchema","fields","globals","slug","has","get","docPreferences","promises","preferencesKey","fetchPreferences","preferencesResult","where","key","equals","value","preferences","fetchData","resolvedData","findByID","draft","fallbackLocale","overrideAccess","findGlobal","Object","keys","Promise","all","values","result","upload","file","auth","disableLocalStrategy","username","password","email"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type { DocumentPreferences, Field, FormState, PayloadRequest, TypeWithID } from 'payload'\n\nimport { reduceFieldsToValues } from 'payload/shared'\n\nimport type { BuildFormStateArgs } from '../forms/buildStateFromSchema/index.js'\nimport type { FieldSchemaMap } from './buildFieldSchemaMap/types.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport {} from '../exports/client/index.js'\nimport { buildStateFromSchema } from '../forms/buildStateFromSchema/index.js'\nimport { buildFieldSchemaMap } from './buildFieldSchemaMap/index.js'\n\nlet cached = global._payload_fieldSchemaMap\n\nif (!cached) {\n cached = global._payload_fieldSchemaMap = null\n}\n\nexport const getFieldSchemaMap = (req: PayloadRequest): FieldSchemaMap => {\n if (cached && process.env.NODE_ENV !== 'development') {\n return cached\n }\n\n cached = buildFieldSchemaMap({\n config: req.payload.config,\n i18n: req.i18n,\n })\n\n return cached\n}\n\nexport const buildFormState = async ({ req }: { req: PayloadRequest }): Promise<FormState> => {\n const reqData: BuildFormStateArgs = (req.data || {}) as BuildFormStateArgs\n const { collectionSlug, formState, globalSlug, locale, operation, schemaPath } = reqData\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const fieldSchemaMap = getFieldSchemaMap(req)\n\n const id = collectionSlug ? reqData.id : undefined\n const schemaPathSegments = schemaPath && schemaPath.split('.')\n\n let fieldSchema: Field[]\n\n if (schemaPathSegments.length === 1) {\n if (req.payload.collections[schemaPath]) {\n fieldSchema = req.payload.collections[schemaPath].config.fields\n } else {\n fieldSchema = req.payload.config.globals.find((global) => global.slug === schemaPath)?.fields\n }\n } else if (fieldSchemaMap.has(schemaPath)) {\n fieldSchema = fieldSchemaMap.get(schemaPath)\n }\n\n if (!fieldSchema) {\n throw new Error('Could not find field schema for given path')\n }\n\n let docPreferences = reqData.docPreferences\n let data = reqData.data\n\n const promises: {\n data?: Promise<void>\n preferences?: Promise<void>\n } = {}\n\n // If the request does not include doc preferences,\n // we should fetch them. This is useful for DocumentInfoProvider\n // as it reduces the amount of client-side fetches necessary\n // when we fetch data for the Edit view\n if (!docPreferences) {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const fetchPreferences = async () => {\n const preferencesResult = (await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n key: {\n equals: preferencesKey,\n },\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value\n }\n\n promises.preferences = fetchPreferences()\n }\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) data = reduceFieldsToValues(formState, true)\n\n // If we do not have data at this point,\n // we can fetch it. This is useful for DocumentInfoProvider\n // to reduce the amount of fetches required\n if (!data) {\n const fetchData = async () => {\n let resolvedData: Record<string, unknown> | TypeWithID\n\n if (collectionSlug && id) {\n resolvedData = await req.payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n if (globalSlug && schemaPath === globalSlug) {\n resolvedData = await req.payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n data = resolvedData\n }\n\n promises.data = fetchData()\n }\n\n if (Object.keys(promises).length > 0) {\n await Promise.all(Object.values(promises))\n }\n\n const result = await buildStateFromSchema({\n id,\n data,\n fieldSchema,\n operation,\n preferences: docPreferences || { fields: {} },\n req,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (req.payload.collections[collectionSlug]?.config?.upload && formState.file) {\n result.file = formState.file\n }\n\n if (\n req.payload.collections[collectionSlug]?.config?.auth &&\n !req.payload.collections[collectionSlug].config.auth.disableLocalStrategy\n ) {\n if (formState.username) result.username = formState.username\n if (formState.email) result.email = formState.email\n }\n }\n\n return result\n}\n"],"names":["reduceFieldsToValues","buildStateFromSchema","buildFieldSchemaMap","cached","global","_payload_fieldSchemaMap","getFieldSchemaMap","req","process","env","NODE_ENV","config","payload","i18n","buildFormState","reqData","data","collectionSlug","formState","globalSlug","locale","operation","schemaPath","incomingUserSlug","user","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","fieldSchemaMap","id","undefined","schemaPathSegments","split","fieldSchema","fields","globals","slug","has","get","docPreferences","promises","preferencesKey","fetchPreferences","preferencesResult","where","key","equals","value","preferences","fetchData","resolvedData","findByID","draft","fallbackLocale","overrideAccess","findGlobal","Object","keys","Promise","all","values","result","upload","file","auth","disableLocalStrategy","username","email"],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Config } from 'payload';
2
2
  /** Will read the `routes.admin` config and appropriately handle `"/"` admin paths */
3
3
  export declare const formatAdminURL: (args: {
4
4
  adminRoute: Config["routes"]["admin"];
5
+ basePath?: string;
5
6
  path: string;
6
7
  serverURL?: Config["serverURL"];
7
8
  }) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"formatAdminURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAdminURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,qFAAqF;AACrF,eAAO,MAAM,cAAc,SAAU;IACnC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;CAChC,KAAG,MAcH,CAAA"}
1
+ {"version":3,"file":"formatAdminURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAdminURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,qFAAqF;AACrF,eAAO,MAAM,cAAc,SAAU;IACnC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;CAChC,KAAG,MAcH,CAAA"}
@@ -1,15 +1,15 @@
1
1
  /** Will read the `routes.admin` config and appropriately handle `"/"` admin paths */ export const formatAdminURL = (args)=>{
2
- const { adminRoute, path, serverURL } = args;
2
+ const { adminRoute, basePath = '', path, serverURL } = args;
3
3
  if (adminRoute) {
4
4
  if (adminRoute === '/') {
5
5
  if (!path) {
6
- return `${serverURL || ''}${adminRoute}`;
6
+ return `${serverURL || ''}${basePath}${adminRoute}`;
7
7
  }
8
8
  } else {
9
- return `${serverURL || ''}${adminRoute}${path}`;
9
+ return `${serverURL || ''}${basePath}${adminRoute}${path}`;
10
10
  }
11
11
  }
12
- return `${serverURL || ''}${path}`;
12
+ return `${serverURL || ''}${basePath}${path}`;
13
13
  };
14
14
 
15
15
  //# sourceMappingURL=formatAdminURL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/formatAdminURL.ts"],"sourcesContent":["import type { Config } from 'payload'\n\n/** Will read the `routes.admin` config and appropriately handle `\"/\"` admin paths */\nexport const formatAdminURL = (args: {\n adminRoute: Config['routes']['admin']\n path: string\n serverURL?: Config['serverURL']\n}): string => {\n const { adminRoute, path, serverURL } = args\n\n if (adminRoute) {\n if (adminRoute === '/') {\n if (!path) {\n return `${serverURL || ''}${adminRoute}`\n }\n } else {\n return `${serverURL || ''}${adminRoute}${path}`\n }\n }\n\n return `${serverURL || ''}${path}`\n}\n"],"names":["formatAdminURL","args","adminRoute","path","serverURL"],"mappings":"AAEA,mFAAmF,GACnF,OAAO,MAAMA,iBAAiB,CAACC;IAK7B,MAAM,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGH;IAExC,IAAIC,YAAY;QACd,IAAIA,eAAe,KAAK;YACtB,IAAI,CAACC,MAAM;gBACT,OAAO,CAAC,EAAEC,aAAa,GAAG,EAAEF,WAAW,CAAC;YAC1C;QACF,OAAO;YACL,OAAO,CAAC,EAAEE,aAAa,GAAG,EAAEF,WAAW,EAAEC,KAAK,CAAC;QACjD;IACF;IAEA,OAAO,CAAC,EAAEC,aAAa,GAAG,EAAED,KAAK,CAAC;AACpC,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/formatAdminURL.ts"],"sourcesContent":["import type { Config } from 'payload'\n\n/** Will read the `routes.admin` config and appropriately handle `\"/\"` admin paths */\nexport const formatAdminURL = (args: {\n adminRoute: Config['routes']['admin']\n basePath?: string\n path: string\n serverURL?: Config['serverURL']\n}): string => {\n const { adminRoute, basePath = '', path, serverURL } = args\n\n if (adminRoute) {\n if (adminRoute === '/') {\n if (!path) {\n return `${serverURL || ''}${basePath}${adminRoute}`\n }\n } else {\n return `${serverURL || ''}${basePath}${adminRoute}${path}`\n }\n }\n\n return `${serverURL || ''}${basePath}${path}`\n}\n"],"names":["formatAdminURL","args","adminRoute","basePath","path","serverURL"],"mappings":"AAEA,mFAAmF,GACnF,OAAO,MAAMA,iBAAiB,CAACC;IAM7B,MAAM,EAAEC,UAAU,EAAEC,WAAW,EAAE,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGJ;IAEvD,IAAIC,YAAY;QACd,IAAIA,eAAe,KAAK;YACtB,IAAI,CAACE,MAAM;gBACT,OAAO,CAAC,EAAEC,aAAa,GAAG,EAAEF,SAAS,EAAED,WAAW,CAAC;YACrD;QACF,OAAO;YACL,OAAO,CAAC,EAAEG,aAAa,GAAG,EAAEF,SAAS,EAAED,WAAW,EAAEE,KAAK,CAAC;QAC5D;IACF;IAEA,OAAO,CAAC,EAAEC,aAAa,GAAG,EAAEF,SAAS,EAAEC,KAAK,CAAC;AAC/C,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/ui",
3
- "version": "3.0.0-beta.71",
3
+ "version": "3.0.0-beta.73",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -103,7 +103,7 @@
103
103
  "sonner": "^1.5.0",
104
104
  "use-context-selector": "2.0.0",
105
105
  "uuid": "10.0.0",
106
- "@payloadcms/translations": "3.0.0-beta.71"
106
+ "@payloadcms/translations": "3.0.0-beta.73"
107
107
  },
108
108
  "devDependencies": {
109
109
  "@babel/cli": "^7.24.5",
@@ -121,13 +121,13 @@
121
121
  "esbuild": "0.23.0",
122
122
  "esbuild-sass-plugin": "3.3.1",
123
123
  "@payloadcms/eslint-config": "3.0.0-beta.59",
124
- "payload": "3.0.0-beta.71"
124
+ "payload": "3.0.0-beta.73"
125
125
  },
126
126
  "peerDependencies": {
127
127
  "next": "^15.0.0-canary.53",
128
128
  "react": "^19.0.0 || ^19.0.0-rc-6230622a1a-20240610",
129
129
  "react-dom": "^19.0.0 || ^19.0.0-rc-6230622a1a-20240610",
130
- "payload": "3.0.0-beta.71"
130
+ "payload": "3.0.0-beta.73"
131
131
  },
132
132
  "engines": {
133
133
  "node": "^18.20.2 || >=20.9.0"