@payloadcms/next 3.0.0-canary.ac498e7 → 3.0.0-canary.b6520aa

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 (122) hide show
  1. package/dist/cjs/withPayload.cjs +18 -11
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +7 -5
  4. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  6. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  7. package/dist/elements/EmailAndUsername/index.d.ts +14 -0
  8. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
  9. package/dist/elements/EmailAndUsername/index.js +85 -0
  10. package/dist/elements/EmailAndUsername/index.js.map +1 -0
  11. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  12. package/dist/elements/LeaveWithoutSaving/index.js +2 -0
  13. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  14. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  15. package/dist/elements/Nav/index.client.js +5 -1
  16. package/dist/elements/Nav/index.client.js.map +1 -1
  17. package/dist/layouts/Root/index.d.ts.map +1 -1
  18. package/dist/layouts/Root/index.js +0 -17
  19. package/dist/layouts/Root/index.js.map +1 -1
  20. package/dist/prod/styles.css +1 -1
  21. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  22. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  23. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  24. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  25. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  26. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  27. package/dist/scss/app.scss +5 -10
  28. package/dist/scss/toastify.scss +59 -0
  29. package/dist/scss/toasts.scss +75 -45
  30. package/dist/scss/type.scss +14 -23
  31. package/dist/scss/vars.scss +26 -47
  32. package/dist/utilities/initPage/handleAdminPage.js +16 -5
  33. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  34. package/dist/utilities/initPage/handleAuthRedirect.js +10 -2
  35. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  36. package/dist/utilities/initPage/shared.d.ts +14 -2
  37. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  38. package/dist/utilities/initPage/shared.js +14 -4
  39. package/dist/utilities/initPage/shared.js.map +1 -1
  40. package/dist/utilities/meta.d.ts.map +1 -1
  41. package/dist/utilities/meta.js +2 -4
  42. package/dist/utilities/meta.js.map +1 -1
  43. package/dist/views/CreateFirstUser/index.client.d.ts +2 -3
  44. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  45. package/dist/views/CreateFirstUser/index.client.js +13 -19
  46. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  47. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  48. package/dist/views/CreateFirstUser/index.js +8 -49
  49. package/dist/views/CreateFirstUser/index.js.map +1 -1
  50. package/dist/views/CreateFirstUser/index.scss +4 -0
  51. package/dist/views/Dashboard/Default/index.scss +11 -7
  52. package/dist/views/Document/getDocumentData.d.ts +1 -0
  53. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  54. package/dist/views/Document/getDocumentData.js +3 -2
  55. package/dist/views/Document/getDocumentData.js.map +1 -1
  56. package/dist/views/Document/index.d.ts.map +1 -1
  57. package/dist/views/Document/index.js +2 -1
  58. package/dist/views/Document/index.js.map +1 -1
  59. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  60. package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
  61. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  62. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  63. package/dist/views/Edit/Default/Auth/index.js +65 -32
  64. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  65. package/dist/views/Edit/Default/Auth/types.d.ts +2 -0
  66. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  67. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  68. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  69. package/dist/views/Edit/Default/index.js +16 -9
  70. package/dist/views/Edit/Default/index.js.map +1 -1
  71. package/dist/views/Edit/Default/index.scss +2 -2
  72. package/dist/views/ForgotPassword/index.js +1 -0
  73. package/dist/views/ForgotPassword/index.js.map +1 -1
  74. package/dist/views/List/Default/index.scss +2 -5
  75. package/dist/views/List/index.d.ts.map +1 -1
  76. package/dist/views/List/index.js +17 -3
  77. package/dist/views/List/index.js.map +1 -1
  78. package/dist/views/Login/LoginField/index.d.ts +2 -0
  79. package/dist/views/Login/LoginField/index.d.ts.map +1 -1
  80. package/dist/views/Login/LoginField/index.js +11 -66
  81. package/dist/views/Login/LoginField/index.js.map +1 -1
  82. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  83. package/dist/views/Login/LoginForm/index.js +2 -19
  84. package/dist/views/Login/LoginForm/index.js.map +1 -1
  85. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  86. package/dist/views/Logout/LogoutClient.js +2 -1
  87. package/dist/views/Logout/LogoutClient.js.map +1 -1
  88. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  89. package/dist/views/NotFound/index.client.js +1 -0
  90. package/dist/views/NotFound/index.client.js.map +1 -1
  91. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  92. package/dist/views/ResetPassword/index.client.js +11 -27
  93. package/dist/views/ResetPassword/index.client.js.map +1 -1
  94. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  95. package/dist/views/Unauthorized/index.js +1 -0
  96. package/dist/views/Unauthorized/index.js.map +1 -1
  97. package/dist/views/Version/Default/index.d.ts.map +1 -1
  98. package/dist/views/Version/Default/index.js +3 -1
  99. package/dist/views/Version/Default/index.js.map +1 -1
  100. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  101. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +41 -21
  102. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  103. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -2
  104. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
  105. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  106. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  107. package/dist/views/Version/Restore/index.js +35 -8
  108. package/dist/views/Version/Restore/index.js.map +1 -1
  109. package/dist/views/Version/Restore/index.scss +31 -0
  110. package/dist/views/Version/Restore/types.d.ts +1 -0
  111. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  112. package/dist/views/Version/Restore/types.js.map +1 -1
  113. package/dist/views/Version/index.d.ts.map +1 -1
  114. package/dist/views/Version/index.js +2 -2
  115. package/dist/views/Version/index.js.map +1 -1
  116. package/dist/views/Versions/index.client.d.ts.map +1 -1
  117. package/dist/views/Versions/index.client.js +3 -2
  118. package/dist/views/Versions/index.client.js.map +1 -1
  119. package/dist/withPayload.d.ts.map +1 -1
  120. package/dist/withPayload.js +18 -11
  121. package/dist/withPayload.js.map +1 -1
  122. package/package.json +7 -7
@@ -1,4 +1,16 @@
1
1
  import type { SanitizedConfig } from 'payload';
2
- export declare const isAdminRoute: (route: string, adminRoute: string) => boolean;
3
- export declare const isAdminAuthRoute: (config: SanitizedConfig, route: string, adminRoute: string) => boolean;
2
+ export declare const isAdminRoute: ({ adminRoute, config, route, }: {
3
+ adminRoute: string;
4
+ config: SanitizedConfig;
5
+ route: string;
6
+ }) => boolean;
7
+ export declare const isAdminAuthRoute: ({ adminRoute, config, route, }: {
8
+ adminRoute: string;
9
+ config: SanitizedConfig;
10
+ route: string;
11
+ }) => boolean;
12
+ export declare const getRouteWithoutAdmin: ({ adminRoute, route, }: {
13
+ adminRoute: string;
14
+ route: string;
15
+ }) => string;
4
16
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAa9C,eAAO,MAAM,YAAY,UAAW,MAAM,cAAc,MAAM,YAE7D,CAAA;AAED,eAAO,MAAM,gBAAgB,WAAY,eAAe,SAAS,MAAM,cAAc,MAAM,YAQ1F,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAa9C,eAAO,MAAM,YAAY,mCAItB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAEH,CAAA;AAED,eAAO,MAAM,gBAAgB,mCAI1B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAQH,CAAA;AAED,eAAO,MAAM,oBAAoB,2BAG9B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,MAEH,CAAA"}
@@ -8,12 +8,22 @@ const authRouteKeys = [
8
8
  'unauthorized',
9
9
  'reset'
10
10
  ];
11
- export const isAdminRoute = (route, adminRoute)=>{
12
- return route.startsWith(adminRoute);
11
+ export const isAdminRoute = ({ adminRoute, config, route })=>{
12
+ return route.startsWith(adminRoute) && !isAdminAuthRoute({
13
+ adminRoute,
14
+ config,
15
+ route
16
+ });
13
17
  };
14
- export const isAdminAuthRoute = (config, route, adminRoute)=>{
18
+ export const isAdminAuthRoute = ({ adminRoute, config, route })=>{
15
19
  const authRoutes = config.admin?.routes ? Object.entries(config.admin.routes).filter(([key])=>authRouteKeys.includes(key)).map(([_, value])=>value) : [];
16
- return authRoutes.some((r)=>route.replace(adminRoute, '').startsWith(r));
20
+ return authRoutes.some((r)=>getRouteWithoutAdmin({
21
+ adminRoute,
22
+ route
23
+ }).startsWith(r));
24
+ };
25
+ export const getRouteWithoutAdmin = ({ adminRoute, route })=>{
26
+ return adminRoute && adminRoute !== '/' ? route.replace(adminRoute, '') : route;
17
27
  };
18
28
 
19
29
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isAdminRoute = (route: string, adminRoute: string) => {\n return route.startsWith(adminRoute)\n}\n\nexport const isAdminAuthRoute = (config: SanitizedConfig, route: string, adminRoute: string) => {\n const authRoutes = config.admin?.routes\n ? Object.entries(config.admin.routes)\n .filter(([key]) => authRouteKeys.includes(key as keyof SanitizedConfig['admin']['routes']))\n .map(([_, value]) => value)\n : []\n\n return authRoutes.some((r) => route.replace(adminRoute, '').startsWith(r))\n}\n"],"names":["authRouteKeys","isAdminRoute","route","adminRoute","startsWith","isAdminAuthRoute","config","authRoutes","admin","routes","Object","entries","filter","key","includes","map","_","value","some","r","replace"],"mappings":"AAEA,MAAMA,gBAA8D;IAClE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,MAAMC,eAAe,CAACC,OAAeC;IAC1C,OAAOD,MAAME,UAAU,CAACD;AAC1B,EAAC;AAED,OAAO,MAAME,mBAAmB,CAACC,QAAyBJ,OAAeC;IACvE,MAAMI,aAAaD,OAAOE,KAAK,EAAEC,SAC7BC,OAAOC,OAAO,CAACL,OAAOE,KAAK,CAACC,MAAM,EAC/BG,MAAM,CAAC,CAAC,CAACC,IAAI,GAAKb,cAAcc,QAAQ,CAACD,MACzCE,GAAG,CAAC,CAAC,CAACC,GAAGC,MAAM,GAAKA,SACvB,EAAE;IAEN,OAAOV,WAAWW,IAAI,CAAC,CAACC,IAAMjB,MAAMkB,OAAO,CAACjB,YAAY,IAAIC,UAAU,CAACe;AACzE,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n return route.startsWith(adminRoute) && !isAdminAuthRoute({ adminRoute, config, route })\n}\n\nexport const isAdminAuthRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n const authRoutes = config.admin?.routes\n ? Object.entries(config.admin.routes)\n .filter(([key]) => authRouteKeys.includes(key as keyof SanitizedConfig['admin']['routes']))\n .map(([_, value]) => value)\n : []\n\n return authRoutes.some((r) => getRouteWithoutAdmin({ adminRoute, route }).startsWith(r))\n}\n\nexport const getRouteWithoutAdmin = ({\n adminRoute,\n route,\n}: {\n adminRoute: string\n route: string\n}): string => {\n return adminRoute && adminRoute !== '/' ? route.replace(adminRoute, '') : route\n}\n"],"names":["authRouteKeys","isAdminRoute","adminRoute","config","route","startsWith","isAdminAuthRoute","authRoutes","admin","routes","Object","entries","filter","key","includes","map","_","value","some","r","getRouteWithoutAdmin","replace"],"mappings":"AAEA,MAAMA,gBAA8D;IAClE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,MAAMC,eAAe,CAAC,EAC3BC,UAAU,EACVC,MAAM,EACNC,KAAK,EAKN;IACC,OAAOA,MAAMC,UAAU,CAACH,eAAe,CAACI,iBAAiB;QAAEJ;QAAYC;QAAQC;IAAM;AACvF,EAAC;AAED,OAAO,MAAME,mBAAmB,CAAC,EAC/BJ,UAAU,EACVC,MAAM,EACNC,KAAK,EAKN;IACC,MAAMG,aAAaJ,OAAOK,KAAK,EAAEC,SAC7BC,OAAOC,OAAO,CAACR,OAAOK,KAAK,CAACC,MAAM,EAC/BG,MAAM,CAAC,CAAC,CAACC,IAAI,GAAKb,cAAcc,QAAQ,CAACD,MACzCE,GAAG,CAAC,CAAC,CAACC,GAAGC,MAAM,GAAKA,SACvB,EAAE;IAEN,OAAOV,WAAWW,IAAI,CAAC,CAACC,IAAMC,qBAAqB;YAAElB;YAAYE;QAAM,GAAGC,UAAU,CAACc;AACvF,EAAC;AAED,OAAO,MAAMC,uBAAuB,CAAC,EACnClB,UAAU,EACVE,KAAK,EAIN;IACC,OAAOF,cAAcA,eAAe,MAAME,MAAMiB,OAAO,CAACnB,YAAY,MAAME;AAC5E,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utilities/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAYzC,eAAO,MAAM,IAAI,SAAgB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,KAAG,OAAO,CAAC,GAAG,CAwFhF,CAAA"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utilities/meta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAYrD,eAAO,MAAM,IAAI,SAAgB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,KAAG,OAAO,CAAC,GAAG,CAwFhF,CAAA"}
@@ -22,11 +22,9 @@ export const meta = async (args)=>{
22
22
  url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight
23
23
  }
24
24
  ];
25
- let icons = customIcons ?? payloadIcons // TODO: fix this type assertion
26
- ;
25
+ let icons = payloadIcons;
27
26
  if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {
28
- icons = payloadIcons.concat(customIcons) // TODO: fix this type assertion
29
- ;
27
+ icons = customIcons;
30
28
  }
31
29
  const metaTitle = `${title} ${titleSuffix}`;
32
30
  const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { Icon } from 'next/dist/lib/metadata/types/metadata-types.js'\nimport type { MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: Icon[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = customIcons ?? payloadIcons // TODO: fix this type assertion\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = payloadIcons.concat(customIcons) // TODO: fix this type assertion\n }\n\n const metaTitle = `${title} ${titleSuffix}`\n\n const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description: openGraphFromProps?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(openGraphFromProps || {}),\n }\n\n return Promise.resolve({\n description,\n icons,\n keywords,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","meta","args","defaultOGImageType","icons","customIcons","keywords","openGraph","openGraphFromProps","serverURL","titleSuffix","payloadIcons","type","rel","sizes","url","src","media","Array","isArray","concat","metaTitle","ogTitle","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"mappings":"AAIA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,wBAAuB;AAC9F,YAAYC,QAAQ,SAAQ;AAE5B,MAAMC,mBAAmB;IACvBC,aACE;IACFC,UAAU;IACVC,OAAO;AACT;AAEA,OAAO,MAAMC,OAAO,OAAOC;IACzB,MAAM,EACJC,kBAAkB,EAClBL,WAAW,EACXM,OAAOC,WAAW,EAClBC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,SAAS,EACTT,KAAK,EACLU,WAAW,EACZ,GAAGR;IAEJ,MAAMS,eAAuB;QAC3B;YACEC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOtB,uBAAuB,WAAWA,oBAAoBuB,MAAMvB;QAC1E;QACA;YACEmB,MAAM;YACNK,OAAO;YACPJ,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOrB,wBAAwB,WAAWA,qBAAqBsB,MAAMtB;QAC5E;KACD;IAED,IAAIU,QAAQC,eAAeM,aAAa,gCAAgC;;IAExE,IAAIN,eAAe,OAAOA,gBAAgB,YAAYa,MAAMC,OAAO,CAACd,cAAc;QAChFD,QAAQO,aAAaS,MAAM,CAACf,aAAa,gCAAgC;;IAC3E;IAEA,MAAMgB,YAAY,CAAC,EAAErB,MAAM,CAAC,EAAEU,YAAY,CAAC;IAE3C,MAAMY,UAAU,CAAC,EAAE,OAAOd,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMa,kBAAyC;QAC7C,GAAI1B,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEqB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRX,KAAK,CAAC,OAAO,EAAEnB,GAAG+B,SAAS,CACzB;wBACE7B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOsB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAI1B,uBAAuB,WACvB;YACEqB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRX,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DkC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN7B,OAAOsB;QACP,GAAId,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOsB,QAAQC,OAAO,CAAC;QACrBjC;QACAM;QACAE;QACA0B,cAAc,IAAIC,IAChBxB,aACEyB,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElD9B,WAAWgB;QACXvB,OAAOqB;IACT;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { IconConfig, MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: IconConfig[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = payloadIcons\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = customIcons\n }\n\n const metaTitle = `${title} ${titleSuffix}`\n\n const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description: openGraphFromProps?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(openGraphFromProps || {}),\n }\n\n return Promise.resolve({\n description,\n icons,\n keywords,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","meta","args","defaultOGImageType","icons","customIcons","keywords","openGraph","openGraphFromProps","serverURL","titleSuffix","payloadIcons","type","rel","sizes","url","src","media","Array","isArray","metaTitle","ogTitle","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"mappings":"AAGA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,wBAAuB;AAC9F,YAAYC,QAAQ,SAAQ;AAE5B,MAAMC,mBAAmB;IACvBC,aACE;IACFC,UAAU;IACVC,OAAO;AACT;AAEA,OAAO,MAAMC,OAAO,OAAOC;IACzB,MAAM,EACJC,kBAAkB,EAClBL,WAAW,EACXM,OAAOC,WAAW,EAClBC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,SAAS,EACTT,KAAK,EACLU,WAAW,EACZ,GAAGR;IAEJ,MAAMS,eAA6B;QACjC;YACEC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOtB,uBAAuB,WAAWA,oBAAoBuB,MAAMvB;QAC1E;QACA;YACEmB,MAAM;YACNK,OAAO;YACPJ,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOrB,wBAAwB,WAAWA,qBAAqBsB,MAAMtB;QAC5E;KACD;IAED,IAAIU,QAAQO;IAEZ,IAAIN,eAAe,OAAOA,gBAAgB,YAAYa,MAAMC,OAAO,CAACd,cAAc;QAChFD,QAAQC;IACV;IAEA,MAAMe,YAAY,CAAC,EAAEpB,MAAM,CAAC,EAAEU,YAAY,CAAC;IAE3C,MAAMW,UAAU,CAAC,EAAE,OAAOb,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMY,kBAAyC;QAC7C,GAAIzB,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,CAAC,OAAO,EAAEnB,GAAG8B,SAAS,CACzB;wBACE5B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOqB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAIzB,uBAAuB,WACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DiC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN5B,OAAOqB;QACP,GAAIb,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOqB,QAAQC,OAAO,CAAC;QACrBhC;QACAM;QACAE;QACAyB,cAAc,IAAIC,IAChBvB,aACEwB,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElD7B,WAAWe;QACXtB,OAAOoB;IACT;AACF,EAAC"}
@@ -1,9 +1,8 @@
1
- import type { FormState } from 'payload';
1
+ import type { FormState, LoginWithUsernameOptions } from 'payload';
2
2
  import React from 'react';
3
3
  export declare const CreateFirstUserClient: React.FC<{
4
4
  initialState: FormState;
5
- loginType: 'email' | 'emailOrUsername' | 'username';
6
- requireEmail?: boolean;
5
+ loginWithUsername?: LoginWithUsernameOptions | false;
7
6
  userSlug: string;
8
7
  }>;
9
8
  //# sourceMappingURL=index.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAcxC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,SAAS,CAAA;IACvB,SAAS,EAAE,OAAO,GAAG,iBAAiB,GAAG,UAAU,CAAA;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;CACjB,CA0DA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAclE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,KAAK,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CA6DA,CAAA"}
@@ -3,26 +3,24 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ConfirmPasswordField, Form, FormSubmit, PasswordField, RenderFields, useComponentMap, useConfig, useTranslation } from '@payloadcms/ui';
4
4
  import { getFormState } from '@payloadcms/ui/shared';
5
5
  import React from 'react';
6
- import { LoginField } from '../Login/LoginField/index.js';
7
- export const CreateFirstUserClient = ({ initialState, loginType, requireEmail = true, userSlug })=>{
6
+ import { RenderEmailAndUsernameFields } from '../../elements/EmailAndUsername/index.js';
7
+ export const CreateFirstUserClient = ({ initialState, loginWithUsername, userSlug })=>{
8
8
  const { getFieldMap } = useComponentMap();
9
9
  const { routes: { admin, api: apiRoute }, serverURL } = useConfig();
10
10
  const { t } = useTranslation();
11
11
  const fieldMap = getFieldMap({
12
12
  collectionSlug: userSlug
13
13
  });
14
- const onChange = React.useCallback(async ({ formState: prevFormState })=>{
15
- return getFormState({
14
+ const onChange = React.useCallback(async ({ formState: prevFormState })=>getFormState({
16
15
  apiRoute,
17
16
  body: {
18
17
  collectionSlug: userSlug,
19
18
  formState: prevFormState,
20
19
  operation: 'create',
21
- schemaPath: userSlug
20
+ schemaPath: `_${userSlug}.auth`
22
21
  },
23
22
  serverURL
24
- });
25
- }, [
23
+ }), [
26
24
  apiRoute,
27
25
  userSlug,
28
26
  serverURL
@@ -37,34 +35,30 @@ export const CreateFirstUserClient = ({ initialState, loginType, requireEmail =
37
35
  redirect: admin,
38
36
  validationOperation: "create",
39
37
  children: [
40
- [
41
- 'emailOrUsername',
42
- 'username'
43
- ].includes(loginType) && /*#__PURE__*/ _jsx(LoginField, {
44
- type: "username"
45
- }),
46
- [
47
- 'email',
48
- 'emailOrUsername'
49
- ].includes(loginType) && /*#__PURE__*/ _jsx(LoginField, {
50
- required: requireEmail,
51
- type: "email"
38
+ /*#__PURE__*/ _jsx(RenderEmailAndUsernameFields, {
39
+ className: "emailAndUsername",
40
+ loginWithUsername: loginWithUsername,
41
+ operation: "create",
42
+ readOnly: false
52
43
  }),
53
44
  /*#__PURE__*/ _jsx(PasswordField, {
54
45
  autoComplete: "off",
55
46
  label: t('authentication:newPassword'),
56
47
  name: "password",
48
+ path: "password",
57
49
  required: true
58
50
  }),
59
51
  /*#__PURE__*/ _jsx(ConfirmPasswordField, {}),
60
52
  /*#__PURE__*/ _jsx(RenderFields, {
61
53
  fieldMap: fieldMap,
54
+ forceRender: true,
62
55
  operation: "create",
63
56
  path: "",
64
57
  readOnly: false,
65
58
  schemaPath: userSlug
66
59
  }),
67
60
  /*#__PURE__*/ _jsx(FormSubmit, {
61
+ size: "large",
68
62
  children: t('general:create')
69
63
  })
70
64
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\n type FormProps,\n FormSubmit,\n PasswordField,\n RenderFields,\n useComponentMap,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { LoginField } from '../Login/LoginField/index.js'\n\nexport const CreateFirstUserClient: React.FC<{\n initialState: FormState\n loginType: 'email' | 'emailOrUsername' | 'username'\n requireEmail?: boolean\n userSlug: string\n}> = ({ initialState, loginType, requireEmail = true, userSlug }) => {\n const { getFieldMap } = useComponentMap()\n\n const {\n routes: { admin, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const { t } = useTranslation()\n\n const fieldMap = getFieldMap({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState }) => {\n return getFormState({\n apiRoute,\n body: {\n collectionSlug: userSlug,\n formState: prevFormState,\n operation: 'create',\n schemaPath: userSlug,\n },\n serverURL,\n })\n },\n [apiRoute, userSlug, serverURL],\n )\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={initialState}\n method=\"POST\"\n onChange={[onChange]}\n redirect={admin}\n validationOperation=\"create\"\n >\n {['emailOrUsername', 'username'].includes(loginType) && <LoginField type=\"username\" />}\n {['email', 'emailOrUsername'].includes(loginType) && (\n <LoginField required={requireEmail} type=\"email\" />\n )}\n <PasswordField\n autoComplete=\"off\"\n label={t('authentication:newPassword')}\n name=\"password\"\n required\n />\n <ConfirmPasswordField />\n <RenderFields\n fieldMap={fieldMap}\n operation=\"create\"\n path=\"\"\n readOnly={false}\n schemaPath={userSlug}\n />\n <FormSubmit>{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["ConfirmPasswordField","Form","FormSubmit","PasswordField","RenderFields","useComponentMap","useConfig","useTranslation","getFormState","React","LoginField","CreateFirstUserClient","initialState","loginType","requireEmail","userSlug","getFieldMap","routes","admin","api","apiRoute","serverURL","t","fieldMap","collectionSlug","onChange","useCallback","formState","prevFormState","body","operation","schemaPath","action","method","redirect","validationOperation","includes","type","required","autoComplete","label","name","path","readOnly"],"mappings":"AAAA;;AAGA,SACEA,oBAAoB,EACpBC,IAAI,EAEJC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,eAAe,EACfC,SAAS,EACTC,cAAc,QACT,iBAAgB;AACvB,SAASC,YAAY,QAAQ,wBAAuB;AACpD,OAAOC,WAAW,QAAO;AAEzB,SAASC,UAAU,QAAQ,+BAA8B;AAEzD,OAAO,MAAMC,wBAKR,CAAC,EAAEC,YAAY,EAAEC,SAAS,EAAEC,eAAe,IAAI,EAAEC,QAAQ,EAAE;IAC9D,MAAM,EAAEC,WAAW,EAAE,GAAGX;IAExB,MAAM,EACJY,QAAQ,EAAEC,KAAK,EAAEC,KAAKC,QAAQ,EAAE,EAChCC,SAAS,EACV,GAAGf;IAEJ,MAAM,EAAEgB,CAAC,EAAE,GAAGf;IAEd,MAAMgB,WAAWP,YAAY;QAAEQ,gBAAgBT;IAAS;IAExD,MAAMU,WAAqChB,MAAMiB,WAAW,CAC1D,OAAO,EAAEC,WAAWC,aAAa,EAAE;QACjC,OAAOpB,aAAa;YAClBY;YACAS,MAAM;gBACJL,gBAAgBT;gBAChBY,WAAWC;gBACXE,WAAW;gBACXC,YAAYhB;YACd;YACAM;QACF;IACF,GACA;QAACD;QAAUL;QAAUM;KAAU;IAGjC,qBACE,MAACpB;QACC+B,QAAQ,CAAC,EAAEX,UAAU,EAAED,SAAS,CAAC,EAAEL,SAAS,eAAe,CAAC;QAC5DH,cAAcA;QACdqB,QAAO;QACPR,UAAU;YAACA;SAAS;QACpBS,UAAUhB;QACViB,qBAAoB;;YAEnB;gBAAC;gBAAmB;aAAW,CAACC,QAAQ,CAACvB,4BAAc,KAACH;gBAAW2B,MAAK;;YACxE;gBAAC;gBAAS;aAAkB,CAACD,QAAQ,CAACvB,4BACrC,KAACH;gBAAW4B,UAAUxB;gBAAcuB,MAAK;;0BAE3C,KAAClC;gBACCoC,cAAa;gBACbC,OAAOlB,EAAE;gBACTmB,MAAK;gBACLH,QAAQ;;0BAEV,KAACtC;0BACD,KAACI;gBACCmB,UAAUA;gBACVO,WAAU;gBACVY,MAAK;gBACLC,UAAU;gBACVZ,YAAYhB;;0BAEd,KAACb;0BAAYoB,EAAE;;;;AAGrB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormState, LoginWithUsernameOptions } from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\n type FormProps,\n FormSubmit,\n PasswordField,\n RenderFields,\n useComponentMap,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { RenderEmailAndUsernameFields } from '../../elements/EmailAndUsername/index.js'\n\nexport const CreateFirstUserClient: React.FC<{\n initialState: FormState\n loginWithUsername?: LoginWithUsernameOptions | false\n userSlug: string\n}> = ({ initialState, loginWithUsername, userSlug }) => {\n const { getFieldMap } = useComponentMap()\n\n const {\n routes: { admin, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const { t } = useTranslation()\n\n const fieldMap = getFieldMap({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: userSlug,\n formState: prevFormState,\n operation: 'create',\n schemaPath: `_${userSlug}.auth`,\n },\n serverURL,\n }),\n [apiRoute, userSlug, serverURL],\n )\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={initialState}\n method=\"POST\"\n onChange={[onChange]}\n redirect={admin}\n validationOperation=\"create\"\n >\n <RenderEmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n />\n <PasswordField\n autoComplete=\"off\"\n label={t('authentication:newPassword')}\n name=\"password\"\n path=\"password\"\n required\n />\n <ConfirmPasswordField />\n <RenderFields\n fieldMap={fieldMap}\n forceRender\n operation=\"create\"\n path=\"\"\n readOnly={false}\n schemaPath={userSlug}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["ConfirmPasswordField","Form","FormSubmit","PasswordField","RenderFields","useComponentMap","useConfig","useTranslation","getFormState","React","RenderEmailAndUsernameFields","CreateFirstUserClient","initialState","loginWithUsername","userSlug","getFieldMap","routes","admin","api","apiRoute","serverURL","t","fieldMap","collectionSlug","onChange","useCallback","formState","prevFormState","body","operation","schemaPath","action","method","redirect","validationOperation","className","readOnly","autoComplete","label","name","path","required","forceRender","size"],"mappings":"AAAA;;AAGA,SACEA,oBAAoB,EACpBC,IAAI,EAEJC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,eAAe,EACfC,SAAS,EACTC,cAAc,QACT,iBAAgB;AACvB,SAASC,YAAY,QAAQ,wBAAuB;AACpD,OAAOC,WAAW,QAAO;AAEzB,SAASC,4BAA4B,QAAQ,2CAA0C;AAEvF,OAAO,MAAMC,wBAIR,CAAC,EAAEC,YAAY,EAAEC,iBAAiB,EAAEC,QAAQ,EAAE;IACjD,MAAM,EAAEC,WAAW,EAAE,GAAGV;IAExB,MAAM,EACJW,QAAQ,EAAEC,KAAK,EAAEC,KAAKC,QAAQ,EAAE,EAChCC,SAAS,EACV,GAAGd;IAEJ,MAAM,EAAEe,CAAC,EAAE,GAAGd;IAEd,MAAMe,WAAWP,YAAY;QAAEQ,gBAAgBT;IAAS;IAExD,MAAMU,WAAqCf,MAAMgB,WAAW,CAC1D,OAAO,EAAEC,WAAWC,aAAa,EAAE,GACjCnB,aAAa;YACXW;YACAS,MAAM;gBACJL,gBAAgBT;gBAChBY,WAAWC;gBACXE,WAAW;gBACXC,YAAY,CAAC,CAAC,EAAEhB,SAAS,KAAK,CAAC;YACjC;YACAM;QACF,IACF;QAACD;QAAUL;QAAUM;KAAU;IAGjC,qBACE,MAACnB;QACC8B,QAAQ,CAAC,EAAEX,UAAU,EAAED,SAAS,CAAC,EAAEL,SAAS,eAAe,CAAC;QAC5DF,cAAcA;QACdoB,QAAO;QACPR,UAAU;YAACA;SAAS;QACpBS,UAAUhB;QACViB,qBAAoB;;0BAEpB,KAACxB;gBACCyB,WAAU;gBACVtB,mBAAmBA;gBACnBgB,WAAU;gBACVO,UAAU;;0BAEZ,KAACjC;gBACCkC,cAAa;gBACbC,OAAOjB,EAAE;gBACTkB,MAAK;gBACLC,MAAK;gBACLC,QAAQ;;0BAEV,KAACzC;0BACD,KAACI;gBACCkB,UAAUA;gBACVoB,WAAW;gBACXb,WAAU;gBACVW,MAAK;gBACLJ,UAAU;gBACVN,YAAYhB;;0BAEd,KAACZ;gBAAWyC,MAAK;0BAAStB,EAAE;;;;AAGlC,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,SAAS,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAA;AAE3D,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0ExD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAA;AAE3D,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoCxD,CAAA"}
@@ -1,58 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema';
3
2
  import React from 'react';
3
+ import { getDocumentData } from '../Document/getDocumentData.js';
4
4
  import { CreateFirstUserClient } from './index.client.js';
5
5
  export { generateCreateFirstUserMetadata } from './meta.js';
6
6
  export const CreateFirstUserView = async ({ initPageResult })=>{
7
- const { req, req: { payload: { config: { admin: { user: userSlug } }, config } } } = initPageResult;
7
+ const { locale, req, req: { payload: { config: { admin: { user: userSlug } }, config } } } = initPageResult;
8
8
  const collectionConfig = config.collections?.find((collection)=>collection?.slug === userSlug);
9
9
  const { auth: authOptions } = collectionConfig;
10
10
  const loginWithUsername = authOptions.loginWithUsername;
11
- const loginWithEmail = !loginWithUsername || loginWithUsername.allowEmailLogin;
12
- const emailRequired = loginWithUsername && loginWithUsername.requireEmail;
13
- let loginType = loginWithUsername ? 'username' : 'email';
14
- if (loginWithUsername && (loginWithUsername.allowEmailLogin || loginWithUsername.requireEmail)) {
15
- loginType = 'emailOrUsername';
16
- }
17
- const emailField = {
18
- name: 'email',
19
- type: 'email',
20
- label: req.t('general:emailAddress'),
21
- required: emailRequired ? true : false
22
- };
23
- const usernameField = {
24
- name: 'username',
25
- type: 'text',
26
- label: req.t('authentication:username'),
27
- required: true
28
- };
29
- const fields = [
30
- ...loginWithUsername ? [
31
- usernameField
32
- ] : [],
33
- ...emailRequired || loginWithEmail ? [
34
- emailField
35
- ] : [],
36
- {
37
- name: 'password',
38
- type: 'text',
39
- label: req.t('general:password'),
40
- required: true
41
- },
42
- {
43
- name: 'confirm-password',
44
- type: 'text',
45
- label: req.t('authentication:confirmPassword'),
46
- required: true
47
- }
48
- ];
49
- const formState = await buildStateFromSchema({
50
- fieldSchema: fields,
51
- operation: 'create',
52
- preferences: {
53
- fields: {}
54
- },
55
- req
11
+ const { formState } = await getDocumentData({
12
+ collectionConfig,
13
+ locale,
14
+ req,
15
+ schemaPath: `_${collectionConfig.slug}.auth`
56
16
  });
57
17
  return /*#__PURE__*/ _jsxs("div", {
58
18
  className: "create-first-user",
@@ -65,8 +25,7 @@ export const CreateFirstUserView = async ({ initPageResult })=>{
65
25
  }),
66
26
  /*#__PURE__*/ _jsx(CreateFirstUserClient, {
67
27
  initialState: formState,
68
- loginType: loginType,
69
- requireEmail: emailRequired,
28
+ loginWithUsername: loginWithUsername,
70
29
  userSlug: userSlug
71
30
  })
72
31
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/CreateFirstUser/index.tsx"],"sourcesContent":["import type { AdminViewProps, Field } from 'payload'\n\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport React from 'react'\n\nimport type { LoginFieldProps } from '../Login/LoginField/index.js'\n\nimport { CreateFirstUserClient } from './index.client.js'\nimport './index.scss'\n\nexport { generateCreateFirstUserMetadata } from './meta.js'\n\nexport const CreateFirstUserView: React.FC<AdminViewProps> = async ({ initPageResult }) => {\n const {\n req,\n req: {\n payload: {\n config: {\n admin: { user: userSlug },\n },\n config,\n },\n },\n } = initPageResult\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const loginWithEmail = !loginWithUsername || loginWithUsername.allowEmailLogin\n const emailRequired = loginWithUsername && loginWithUsername.requireEmail\n\n let loginType: LoginFieldProps['type'] = loginWithUsername ? 'username' : 'email'\n if (loginWithUsername && (loginWithUsername.allowEmailLogin || loginWithUsername.requireEmail)) {\n loginType = 'emailOrUsername'\n }\n\n const emailField = {\n name: 'email',\n type: 'email',\n label: req.t('general:emailAddress'),\n required: emailRequired ? true : false,\n }\n\n const usernameField = {\n name: 'username',\n type: 'text',\n label: req.t('authentication:username'),\n required: true,\n }\n\n const fields = [\n ...(loginWithUsername ? [usernameField] : []),\n ...(emailRequired || loginWithEmail ? [emailField] : []),\n {\n name: 'password',\n type: 'text',\n label: req.t('general:password'),\n required: true,\n },\n {\n name: 'confirm-password',\n type: 'text',\n label: req.t('authentication:confirmPassword'),\n required: true,\n },\n ]\n\n const formState = await buildStateFromSchema({\n fieldSchema: fields as Field[],\n operation: 'create',\n preferences: { fields: {} },\n req,\n })\n\n return (\n <div className=\"create-first-user\">\n <h1>{req.t('general:welcome')}</h1>\n <p>{req.t('authentication:beginCreateFirstUser')}</p>\n <CreateFirstUserClient\n initialState={formState}\n loginType={loginType}\n requireEmail={emailRequired}\n userSlug={userSlug}\n />\n </div>\n )\n}\n"],"names":["buildStateFromSchema","React","CreateFirstUserClient","generateCreateFirstUserMetadata","CreateFirstUserView","initPageResult","req","payload","config","admin","user","userSlug","collectionConfig","collections","find","collection","slug","auth","authOptions","loginWithUsername","loginWithEmail","allowEmailLogin","emailRequired","requireEmail","loginType","emailField","name","type","label","t","required","usernameField","fields","formState","fieldSchema","operation","preferences","div","className","h1","p","initialState"],"mappings":";AAEA,SAASA,oBAAoB,QAAQ,4CAA2C;AAChF,OAAOC,WAAW,QAAO;AAIzB,SAASC,qBAAqB,QAAQ,oBAAmB;AAGzD,SAASC,+BAA+B,QAAQ,YAAW;AAE3D,OAAO,MAAMC,sBAAgD,OAAO,EAAEC,cAAc,EAAE;IACpF,MAAM,EACJC,GAAG,EACHA,KAAK,EACHC,SAAS,EACPC,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EAC1B,EACDH,MAAM,EACP,EACF,EACF,GAAGH;IAEJ,MAAMO,mBAAmBJ,OAAOK,WAAW,EAAEC,KAAK,CAACC,aAAeA,YAAYC,SAASL;IACvF,MAAM,EAAEM,MAAMC,WAAW,EAAE,GAAGN;IAC9B,MAAMO,oBAAoBD,YAAYC,iBAAiB;IACvD,MAAMC,iBAAiB,CAACD,qBAAqBA,kBAAkBE,eAAe;IAC9E,MAAMC,gBAAgBH,qBAAqBA,kBAAkBI,YAAY;IAEzE,IAAIC,YAAqCL,oBAAoB,aAAa;IAC1E,IAAIA,qBAAsBA,CAAAA,kBAAkBE,eAAe,IAAIF,kBAAkBI,YAAY,AAAD,GAAI;QAC9FC,YAAY;IACd;IAEA,MAAMC,aAAa;QACjBC,MAAM;QACNC,MAAM;QACNC,OAAOtB,IAAIuB,CAAC,CAAC;QACbC,UAAUR,gBAAgB,OAAO;IACnC;IAEA,MAAMS,gBAAgB;QACpBL,MAAM;QACNC,MAAM;QACNC,OAAOtB,IAAIuB,CAAC,CAAC;QACbC,UAAU;IACZ;IAEA,MAAME,SAAS;WACTb,oBAAoB;YAACY;SAAc,GAAG,EAAE;WACxCT,iBAAiBF,iBAAiB;YAACK;SAAW,GAAG,EAAE;QACvD;YACEC,MAAM;YACNC,MAAM;YACNC,OAAOtB,IAAIuB,CAAC,CAAC;YACbC,UAAU;QACZ;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAOtB,IAAIuB,CAAC,CAAC;YACbC,UAAU;QACZ;KACD;IAED,MAAMG,YAAY,MAAMjC,qBAAqB;QAC3CkC,aAAaF;QACbG,WAAW;QACXC,aAAa;YAAEJ,QAAQ,CAAC;QAAE;QAC1B1B;IACF;IAEA,qBACE,MAAC+B;QAAIC,WAAU;;0BACb,KAACC;0BAAIjC,IAAIuB,CAAC,CAAC;;0BACX,KAACW;0BAAGlC,IAAIuB,CAAC,CAAC;;0BACV,KAAC3B;gBACCuC,cAAcR;gBACdT,WAAWA;gBACXD,cAAcD;gBACdX,UAAUA;;;;AAIlB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/CreateFirstUser/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload'\n\nimport React from 'react'\n\nimport type { LoginFieldProps } from '../Login/LoginField/index.js'\n\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { CreateFirstUserClient } from './index.client.js'\nimport './index.scss'\n\nexport { generateCreateFirstUserMetadata } from './meta.js'\n\nexport const CreateFirstUserView: React.FC<AdminViewProps> = async ({ initPageResult }) => {\n const {\n locale,\n req,\n req: {\n payload: {\n config: {\n admin: { user: userSlug },\n },\n config,\n },\n },\n } = initPageResult\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n\n const { formState } = await getDocumentData({\n collectionConfig,\n locale,\n req,\n schemaPath: `_${collectionConfig.slug}.auth`,\n })\n\n return (\n <div className=\"create-first-user\">\n <h1>{req.t('general:welcome')}</h1>\n <p>{req.t('authentication:beginCreateFirstUser')}</p>\n <CreateFirstUserClient\n initialState={formState}\n loginWithUsername={loginWithUsername}\n userSlug={userSlug}\n />\n </div>\n )\n}\n"],"names":["React","getDocumentData","CreateFirstUserClient","generateCreateFirstUserMetadata","CreateFirstUserView","initPageResult","locale","req","payload","config","admin","user","userSlug","collectionConfig","collections","find","collection","slug","auth","authOptions","loginWithUsername","formState","schemaPath","div","className","h1","t","p","initialState"],"mappings":";AAEA,OAAOA,WAAW,QAAO;AAIzB,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,qBAAqB,QAAQ,oBAAmB;AAGzD,SAASC,+BAA+B,QAAQ,YAAW;AAE3D,OAAO,MAAMC,sBAAgD,OAAO,EAAEC,cAAc,EAAE;IACpF,MAAM,EACJC,MAAM,EACNC,GAAG,EACHA,KAAK,EACHC,SAAS,EACPC,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EAC1B,EACDH,MAAM,EACP,EACF,EACF,GAAGJ;IAEJ,MAAMQ,mBAAmBJ,OAAOK,WAAW,EAAEC,KAAK,CAACC,aAAeA,YAAYC,SAASL;IACvF,MAAM,EAAEM,MAAMC,WAAW,EAAE,GAAGN;IAC9B,MAAMO,oBAAoBD,YAAYC,iBAAiB;IAEvD,MAAM,EAAEC,SAAS,EAAE,GAAG,MAAMpB,gBAAgB;QAC1CY;QACAP;QACAC;QACAe,YAAY,CAAC,CAAC,EAAET,iBAAiBI,IAAI,CAAC,KAAK,CAAC;IAC9C;IAEA,qBACE,MAACM;QAAIC,WAAU;;0BACb,KAACC;0BAAIlB,IAAImB,CAAC,CAAC;;0BACX,KAACC;0BAAGpB,IAAImB,CAAC,CAAC;;0BACV,KAACxB;gBACC0B,cAAcP;gBACdD,mBAAmBA;gBACnBR,UAAUA;;;;AAIlB,EAAC"}
@@ -3,3 +3,7 @@
3
3
  margin-bottom: var(--base);
4
4
  }
5
5
  }
6
+
7
+ .emailAndUsername {
8
+ margin-bottom: var(--base);
9
+ }
@@ -26,13 +26,9 @@
26
26
  padding: 0;
27
27
  margin: 0;
28
28
  list-style: none;
29
- display: flex;
30
29
  gap: var(--gap);
31
- flex-wrap: wrap;
32
-
33
- li {
34
- width: calc(100% / var(--cols) - var(--gap) / var(--cols) * (var(--cols) - 1));
35
- }
30
+ display: grid;
31
+ grid-template-columns: repeat(var(--cols), 1fr);
36
32
 
37
33
  .card {
38
34
  height: 100%;
@@ -49,10 +45,18 @@
49
45
  }
50
46
 
51
47
  @include small-break {
52
- --cols: 1;
48
+ --cols: 2;
53
49
 
54
50
  &__wrap {
55
51
  gap: var(--base);
56
52
  }
53
+
54
+ &__card-list {
55
+ gap: base(0.4);
56
+ }
57
+ }
58
+
59
+ @include extra-small-break {
60
+ --cols: 1;
57
61
  }
58
62
  }
@@ -5,5 +5,6 @@ export declare const getDocumentData: (args: {
5
5
  id?: number | string;
6
6
  locale: Locale;
7
7
  req: PayloadRequest;
8
+ schemaPath?: string;
8
9
  }) => Promise<Data>;
9
10
  //# sourceMappingURL=getDocumentData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentData.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,MAAM,EACN,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAKhB,eAAO,MAAM,eAAe,SAAgB;IAC1C,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,IAAI,CA4Bf,CAAA"}
1
+ {"version":3,"file":"getDocumentData.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,MAAM,EACN,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAKhB,eAAO,MAAM,eAAe,SAAgB;IAC1C,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,KAAG,OAAO,CAAC,IAAI,CA8Bf,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { buildFormState } from '@payloadcms/ui/utilities/buildFormState';
2
2
  import { reduceFieldsToValues } from 'payload/shared';
3
3
  export const getDocumentData = async (args)=>{
4
- const { id, collectionConfig, globalConfig, locale, req } = args;
4
+ const { id, collectionConfig, globalConfig, locale, req, schemaPath: schemaPathFromProps } = args;
5
+ const schemaPath = schemaPathFromProps || collectionConfig?.slug || globalConfig?.slug;
5
6
  try {
6
7
  const formState = await buildFormState({
7
8
  req: {
@@ -12,7 +13,7 @@ export const getDocumentData = async (args)=>{
12
13
  globalSlug: globalConfig?.slug,
13
14
  locale: locale?.code,
14
15
  operation: collectionConfig && id || globalConfig ? 'update' : 'create',
15
- schemaPath: collectionConfig?.slug || globalConfig?.slug
16
+ schemaPath
16
17
  }
17
18
  }
18
19
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Document/getDocumentData.tsx"],"sourcesContent":["import type {\n Data,\n Locale,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nexport const getDocumentData = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale: Locale\n req: PayloadRequest\n}): Promise<Data> => {\n const { id, collectionConfig, globalConfig, locale, req } = args\n\n try {\n const formState = await buildFormState({\n req: {\n ...req,\n data: {\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n locale: locale?.code,\n operation: (collectionConfig && id) || globalConfig ? 'update' : 'create',\n schemaPath: collectionConfig?.slug || globalConfig?.slug,\n },\n },\n })\n\n const data = reduceFieldsToValues(formState, true)\n\n return {\n data,\n formState,\n }\n } catch (error) {\n console.error('Error getting document data', error) // eslint-disable-line no-console\n return {}\n }\n}\n"],"names":["buildFormState","reduceFieldsToValues","getDocumentData","args","id","collectionConfig","globalConfig","locale","req","formState","data","collectionSlug","slug","globalSlug","code","operation","schemaPath","error","console"],"mappings":"AAQA,SAASA,cAAc,QAAQ,0CAAyC;AACxE,SAASC,oBAAoB,QAAQ,iBAAgB;AAErD,OAAO,MAAMC,kBAAkB,OAAOC;IAOpC,MAAM,EAAEC,EAAE,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,MAAM,EAAEC,GAAG,EAAE,GAAGL;IAE5D,IAAI;QACF,MAAMM,YAAY,MAAMT,eAAe;YACrCQ,KAAK;gBACH,GAAGA,GAAG;gBACNE,MAAM;oBACJN;oBACAO,gBAAgBN,kBAAkBO;oBAClCC,YAAYP,cAAcM;oBAC1BL,QAAQA,QAAQO;oBAChBC,WAAW,AAACV,oBAAoBD,MAAOE,eAAe,WAAW;oBACjEU,YAAYX,kBAAkBO,QAAQN,cAAcM;gBACtD;YACF;QACF;QAEA,MAAMF,OAAOT,qBAAqBQ,WAAW;QAE7C,OAAO;YACLC;YACAD;QACF;IACF,EAAE,OAAOQ,OAAO;QACdC,QAAQD,KAAK,CAAC,+BAA+BA,OAAO,iCAAiC;;QACrF,OAAO,CAAC;IACV;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Document/getDocumentData.tsx"],"sourcesContent":["import type {\n Data,\n Locale,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nexport const getDocumentData = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale: Locale\n req: PayloadRequest\n schemaPath?: string\n}): Promise<Data> => {\n const { id, collectionConfig, globalConfig, locale, req, schemaPath: schemaPathFromProps } = args\n\n const schemaPath = schemaPathFromProps || collectionConfig?.slug || globalConfig?.slug\n\n try {\n const formState = await buildFormState({\n req: {\n ...req,\n data: {\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n locale: locale?.code,\n operation: (collectionConfig && id) || globalConfig ? 'update' : 'create',\n schemaPath,\n },\n },\n })\n\n const data = reduceFieldsToValues(formState, true)\n\n return {\n data,\n formState,\n }\n } catch (error) {\n console.error('Error getting document data', error) // eslint-disable-line no-console\n return {}\n }\n}\n"],"names":["buildFormState","reduceFieldsToValues","getDocumentData","args","id","collectionConfig","globalConfig","locale","req","schemaPath","schemaPathFromProps","slug","formState","data","collectionSlug","globalSlug","code","operation","error","console"],"mappings":"AAQA,SAASA,cAAc,QAAQ,0CAAyC;AACxE,SAASC,oBAAoB,QAAQ,iBAAgB;AAErD,OAAO,MAAMC,kBAAkB,OAAOC;IAQpC,MAAM,EAAEC,EAAE,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,MAAM,EAAEC,GAAG,EAAEC,YAAYC,mBAAmB,EAAE,GAAGP;IAE7F,MAAMM,aAAaC,uBAAuBL,kBAAkBM,QAAQL,cAAcK;IAElF,IAAI;QACF,MAAMC,YAAY,MAAMZ,eAAe;YACrCQ,KAAK;gBACH,GAAGA,GAAG;gBACNK,MAAM;oBACJT;oBACAU,gBAAgBT,kBAAkBM;oBAClCI,YAAYT,cAAcK;oBAC1BJ,QAAQA,QAAQS;oBAChBC,WAAW,AAACZ,oBAAoBD,MAAOE,eAAe,WAAW;oBACjEG;gBACF;YACF;QACF;QAEA,MAAMI,OAAOZ,qBAAqBW,WAAW;QAE7C,OAAO;YACLC;YACAD;QACF;IACF,EAAE,OAAOM,OAAO;QACdC,QAAQD,KAAK,CAAC,+BAA+BA,OAAO,iCAAiC;;QACrF,OAAO,CAAC;IACV;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,cAAc,EAAqB,MAAM,SAAS,CAAA;AAKpF,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AASrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2N7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,cAAc,EAAqB,MAAM,SAAS,CAAA;AAUpF,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AASrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmO7C,CAAA"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DocumentInfoProvider, EditDepthProvider, HydrateClientUser } from '@payloadcms/ui';
3
3
  import { RenderCustomComponent, formatAdminURL, isEditing as getIsEditing } from '@payloadcms/ui/shared';
4
4
  import { notFound, redirect } from 'next/navigation.js';
5
+ import { deepCopyObjectSimple } from 'payload';
5
6
  import React from 'react';
6
7
  import { DocumentHeader } from '../../elements/DocumentHeader/index.js';
7
8
  import { NotFoundView } from '../NotFound/index.js';
@@ -149,7 +150,7 @@ export const Document = async ({ initPageResult, params, searchParams })=>{
149
150
  permissions: permissions
150
151
  }),
151
152
  /*#__PURE__*/ _jsx(HydrateClientUser, {
152
- permissions: permissions,
153
+ permissions: deepCopyObjectSimple(permissions),
153
154
  user: user
154
155
  }),
155
156
  /*#__PURE__*/ _jsx(EditDepthProvider, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type { AdminViewComponent, AdminViewProps, EditViewComponent } from 'payload'\n\nimport { DocumentInfoProvider, EditDepthProvider, HydrateClientUser } from '@payloadcms/ui'\nimport { RenderCustomComponent, formatAdminURL , isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport const Document: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n\n let ViewOverride: EditViewComponent\n let CustomView: EditViewComponent\n let DefaultView: EditViewComponent\n let ErrorView: AdminViewComponent\n\n let apiURL: string\n\n const { data, formState } = await getDocumentData({\n id,\n collectionConfig,\n globalConfig,\n locale,\n req,\n })\n\n const { docPermissions, hasPublishPermission, hasSavePermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data,\n globalConfig,\n req,\n })\n\n if (collectionConfig) {\n if (!visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) {\n notFound()\n }\n\n const params = new URLSearchParams()\n if (collectionConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${id}${apiQueryParams}`\n\n const editConfig = collectionConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const collectionViews = getViewsFromConfig({\n collectionConfig,\n config,\n docPermissions,\n routeSegments: segments,\n })\n\n CustomView = collectionViews?.CustomView\n DefaultView = collectionViews?.DefaultView\n ErrorView = collectionViews?.ErrorView\n }\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n\n if (globalConfig) {\n if (!visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)) {\n notFound()\n }\n\n const params = new URLSearchParams({\n locale: locale?.code,\n })\n if (globalConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n\n const editConfig = globalConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const globalViews = getViewsFromConfig({\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n })\n\n CustomView = globalViews?.CustomView\n DefaultView = globalViews?.DefaultView\n ErrorView = globalViews?.ErrorView\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n if (shouldAutosave && !validateDraftData && !id && collectionSlug) {\n const doc = await payload.create({\n collection: collectionSlug,\n data: {},\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n notFound()\n }\n }\n\n return (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n disableActions={false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={data}\n initialState={formState}\n isEditing={isEditing}\n >\n {!ViewOverride && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n globalConfig={globalConfig}\n i18n={i18n}\n permissions={permissions}\n />\n )}\n <HydrateClientUser permissions={permissions} user={user} />\n <EditDepthProvider\n depth={1}\n key={`${collectionSlug || globalSlug}${locale?.code ? `-${locale?.code}` : ''}`}\n >\n {ErrorView ? (\n <ErrorView initPageResult={initPageResult} searchParams={searchParams} />\n ) : (\n <RenderCustomComponent\n CustomComponent={ViewOverride || CustomView}\n DefaultComponent={DefaultView}\n serverOnlyProps={{\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n }}\n />\n )}\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n}\n"],"names":["DocumentInfoProvider","EditDepthProvider","HydrateClientUser","RenderCustomComponent","formatAdminURL","isEditing","getIsEditing","notFound","redirect","React","DocumentHeader","NotFoundView","getDocumentData","getDocumentPermissions","getMetaBySegment","getViewsFromConfig","generateMetadata","args","Document","initPageResult","params","searchParams","collectionConfig","docID","id","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","ViewOverride","CustomView","DefaultView","ErrorView","apiURL","data","formState","docPermissions","hasPublishPermission","hasSavePermission","collections","find","visibleSlug","URLSearchParams","versions","drafts","append","code","apiQueryParams","toString","editConfig","components","views","Edit","collectionViews","routeSegments","globals","globalViews","shouldAutosave","autosave","validateDraftData","validate","doc","create","collection","depth","draft","fallbackLocale","redirectURL","path","disableActions","initialData","initialState","CustomComponent","DefaultComponent","serverOnlyProps"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type { AdminViewComponent, AdminViewProps, EditViewComponent } from 'payload'\n\nimport { DocumentInfoProvider, EditDepthProvider, HydrateClientUser } from '@payloadcms/ui'\nimport {\n RenderCustomComponent,\n formatAdminURL,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { deepCopyObjectSimple } from 'payload'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport const Document: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n\n let ViewOverride: EditViewComponent\n let CustomView: EditViewComponent\n let DefaultView: EditViewComponent\n let ErrorView: AdminViewComponent\n\n let apiURL: string\n\n const { data, formState } = await getDocumentData({\n id,\n collectionConfig,\n globalConfig,\n locale,\n req,\n })\n\n const { docPermissions, hasPublishPermission, hasSavePermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data,\n globalConfig,\n req,\n })\n\n if (collectionConfig) {\n if (!visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) {\n notFound()\n }\n\n const params = new URLSearchParams()\n if (collectionConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${id}${apiQueryParams}`\n\n const editConfig = collectionConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const collectionViews = getViewsFromConfig({\n collectionConfig,\n config,\n docPermissions,\n routeSegments: segments,\n })\n\n CustomView = collectionViews?.CustomView\n DefaultView = collectionViews?.DefaultView\n ErrorView = collectionViews?.ErrorView\n }\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n\n if (globalConfig) {\n if (!visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)) {\n notFound()\n }\n\n const params = new URLSearchParams({\n locale: locale?.code,\n })\n if (globalConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n\n const editConfig = globalConfig?.admin?.components?.views?.Edit\n ViewOverride = typeof editConfig === 'function' ? editConfig : null\n\n if (!ViewOverride) {\n const globalViews = getViewsFromConfig({\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n })\n\n CustomView = globalViews?.CustomView\n DefaultView = globalViews?.DefaultView\n ErrorView = globalViews?.ErrorView\n\n if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) {\n ErrorView = NotFoundView\n }\n }\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n if (shouldAutosave && !validateDraftData && !id && collectionSlug) {\n const doc = await payload.create({\n collection: collectionSlug,\n data: {},\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n notFound()\n }\n }\n\n return (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n disableActions={false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={data}\n initialState={formState}\n isEditing={isEditing}\n >\n {!ViewOverride && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n globalConfig={globalConfig}\n i18n={i18n}\n permissions={permissions}\n />\n )}\n {/**\n * After bumping the Next.js canary to 104, and React to 19.0.0-rc-06d0b89e-20240801\" we have to deepCopy the permissions object (https://github.com/payloadcms/payload/pull/7541).\n * If both HydrateClientUser and RenderCustomComponent receive the same permissions object (same object reference), we get a\n * \"TypeError: Cannot read properties of undefined (reading '$$typeof')\" error when loading up some version views - for example a versions\n * view in the draft-posts collection of the versions test suite. RenderCustomComponent is what renders the versions view.\n *\n * // TODO: Revisit this in the future and figure out why this is happening. Might be a React/Next.js bug. We don't know why it happens, and a future React/Next version might unbreak this (keep an eye on this and remove deepCopyObjectSimple if that's the case)\n */}\n <HydrateClientUser permissions={deepCopyObjectSimple(permissions)} user={user} />\n <EditDepthProvider\n depth={1}\n key={`${collectionSlug || globalSlug}${locale?.code ? `-${locale?.code}` : ''}`}\n >\n {ErrorView ? (\n <ErrorView initPageResult={initPageResult} searchParams={searchParams} />\n ) : (\n <RenderCustomComponent\n CustomComponent={ViewOverride || CustomView}\n DefaultComponent={DefaultView}\n serverOnlyProps={{\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n }}\n />\n )}\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n}\n"],"names":["DocumentInfoProvider","EditDepthProvider","HydrateClientUser","RenderCustomComponent","formatAdminURL","isEditing","getIsEditing","notFound","redirect","deepCopyObjectSimple","React","DocumentHeader","NotFoundView","getDocumentData","getDocumentPermissions","getMetaBySegment","getViewsFromConfig","generateMetadata","args","Document","initPageResult","params","searchParams","collectionConfig","docID","id","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","ViewOverride","CustomView","DefaultView","ErrorView","apiURL","data","formState","docPermissions","hasPublishPermission","hasSavePermission","collections","find","visibleSlug","URLSearchParams","versions","drafts","append","code","apiQueryParams","toString","editConfig","components","views","Edit","collectionViews","routeSegments","globals","globalViews","shouldAutosave","autosave","validateDraftData","validate","doc","create","collection","depth","draft","fallbackLocale","redirectURL","path","disableActions","initialData","initialState","CustomComponent","DefaultComponent","serverOnlyProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CA+FrE,CAAA"}
1
+ {"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAgGrE,CAAA"}
@@ -61,7 +61,7 @@ export const APIKey = ({ enabled, readOnly })=>{
61
61
  if (!apiKeyValue && enabled) {
62
62
  setValue(initialAPIKey);
63
63
  }
64
- if (!enabled) {
64
+ if (!enabled && apiKeyValue) {
65
65
  setValue(null);
66
66
  }
67
67
  }, [
@@ -96,6 +96,7 @@ export const APIKey = ({ enabled, readOnly })=>{
96
96
  htmlFor: path
97
97
  }),
98
98
  /*#__PURE__*/ _jsx("input", {
99
+ "aria-label": "API Key",
99
100
  className: highlightedField ? 'highlight' : undefined,
100
101
  disabled: true,
101
102
  id: "apiKey",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\n useConfig,\n useField,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ enabled: boolean; readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { t } = useTranslation()\n const config = useConfig()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>API Key</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyValue],\n )\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n <FieldLabel CustomLabel={APIKeyLabel} htmlFor={path} />\n <input\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\n )\n}\n"],"names":["CopyToClipboard","FieldLabel","GenerateConfirmation","useConfig","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","t","config","apiKey","fields","validate","val","name","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","APIKeyLabel","div","className","span","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","CustomLabel","htmlFor","input","undefined","disabled","id","setKey"],"mappings":"AAAA;;AAGA,SACEA,eAAe,EACfC,UAAU,EACVC,oBAAoB,EACpBC,SAAS,EACTC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,iBAAgB;AACvB,SAASC,IAAI,QAAQ,iBAAgB;AACrC,OAAOC,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAC3D,SAASC,MAAMC,MAAM,QAAQ,OAAM;AAEnC,MAAMC,OAAO;AACb,MAAMC,YAAY;AAClB,MAAMC,iBAAiB;AAEvB,OAAO,MAAMC,SAA6D,CAAC,EACzEC,OAAO,EACPC,QAAQ,EACT;IACC,MAAM,CAACC,cAAc,GAAGT,SAASE;IACjC,MAAM,CAACQ,kBAAkBC,oBAAoB,GAAGX,SAAS;IACzD,MAAM,EAAEY,CAAC,EAAE,GAAGjB;IACd,MAAMkB,SAASrB;IAEf,MAAMsB,SAASpB,cAAc,CAAC,CAACqB,OAAO,GAAK,AAACA,UAAUA,MAAM,CAACZ,KAAK,IAAK;IAEvE,MAAMa,WAAW,CAACC,MAChBrB,KAAKqB,KAAK;YACRC,MAAM;YACNC,MAAM;YACNC,MAAM,CAAC;YACPC,WAAW;YACXC,WAAW;YACXC,aAAa;gBAAER,QAAQ,CAAC;YAAE;YAC1BS,KAAK;gBACHC,SAAS;oBACPZ;gBACF;gBACAD;YACF;YACAc,aAAa,CAAC;QAChB;IAEF,MAAMC,cAAcb,QAAQc;IAE5B,MAAMC,cAAc9B,QAClB,kBACE,MAAC+B;YAAIC,WAAW,CAAC,EAAE3B,UAAU,OAAO,CAAC;;8BACnC,KAAC4B;8BAAK;;8BACN,KAAC3C;oBAAgBuC,OAAOD;;;YAG5B;QAACA;KAAY;IAGf,MAAMM,YAAYxC,SAAS;QACzBU,MAAM;QACNa;IACF;IAEA,MAAMkB,iBAAiB;QACrB,IAAIxB,kBAAkB;YACpBC,oBAAoB;QACtB;QACAwB,WAAW;YACTxB,oBAAoB;QACtB,GAAG;IACL;IAEA,MAAM,EAAEyB,QAAQ,EAAER,KAAK,EAAE,GAAGK;IAE5BnC,UAAU;QACR,IAAI,CAAC6B,eAAepB,SAAS;YAC3B6B,SAAS3B;QACX;QACA,IAAI,CAACF,SAAS;YACZ6B,SAAS;QACX;IACF,GAAG;QAACT;QAAapB;QAAS6B;QAAU3B;KAAc;IAElDX,UAAU;QACR,IAAIY,kBAAkB;YACpByB,WAAW;gBACTxB,oBAAoB;YACtB,GAAG;QACL;IACF,GAAG;QAACD;KAAiB;IAErB,IAAI,CAACH,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,MAACV,MAAMwC,QAAQ;;0BACb,MAACP;gBAAIC,WAAW;oBAAC1B;oBAAgB;oBAAW;iBAAY,CAACiC,MAAM,CAACC,SAASC,IAAI,CAAC;;kCAC5E,KAAClD;wBAAWmD,aAAaZ;wBAAaa,SAASvC;;kCAC/C,KAACwC;wBACCZ,WAAWrB,mBAAmB,cAAckC;wBAC5CC,QAAQ;wBACRC,IAAG;wBACH5B,MAAK;wBACLC,MAAK;wBACLS,OAAO,AAACA,SAAoB;;;;YAG/B,CAACpB,0BACA,KAACjB;gBAAqB2C,gBAAgBA;gBAAgBa,QAAQ,IAAMX,SAASlC;;;;AAIrF,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Edit/Default/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport {\n CopyToClipboard,\n FieldLabel,\n GenerateConfirmation,\n useConfig,\n useField,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ enabled: boolean; readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { t } = useTranslation()\n const config = useConfig()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>API Key</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyValue],\n )\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled && apiKeyValue) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n <FieldLabel CustomLabel={APIKeyLabel} htmlFor={path} />\n <input\n aria-label=\"API Key\"\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\n )\n}\n"],"names":["CopyToClipboard","FieldLabel","GenerateConfirmation","useConfig","useField","useFormFields","useTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","t","config","apiKey","fields","validate","val","name","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","APIKeyLabel","div","className","span","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","CustomLabel","htmlFor","input","aria-label","undefined","disabled","id","setKey"],"mappings":"AAAA;;AAGA,SACEA,eAAe,EACfC,UAAU,EACVC,oBAAoB,EACpBC,SAAS,EACTC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,iBAAgB;AACvB,SAASC,IAAI,QAAQ,iBAAgB;AACrC,OAAOC,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAC3D,SAASC,MAAMC,MAAM,QAAQ,OAAM;AAEnC,MAAMC,OAAO;AACb,MAAMC,YAAY;AAClB,MAAMC,iBAAiB;AAEvB,OAAO,MAAMC,SAA6D,CAAC,EACzEC,OAAO,EACPC,QAAQ,EACT;IACC,MAAM,CAACC,cAAc,GAAGT,SAASE;IACjC,MAAM,CAACQ,kBAAkBC,oBAAoB,GAAGX,SAAS;IACzD,MAAM,EAAEY,CAAC,EAAE,GAAGjB;IACd,MAAMkB,SAASrB;IAEf,MAAMsB,SAASpB,cAAc,CAAC,CAACqB,OAAO,GAAK,AAACA,UAAUA,MAAM,CAACZ,KAAK,IAAK;IAEvE,MAAMa,WAAW,CAACC,MAChBrB,KAAKqB,KAAK;YACRC,MAAM;YACNC,MAAM;YACNC,MAAM,CAAC;YACPC,WAAW;YACXC,WAAW;YACXC,aAAa;gBAAER,QAAQ,CAAC;YAAE;YAC1BS,KAAK;gBACHC,SAAS;oBACPZ;gBACF;gBACAD;YACF;YACAc,aAAa,CAAC;QAChB;IAEF,MAAMC,cAAcb,QAAQc;IAE5B,MAAMC,cAAc9B,QAClB,kBACE,MAAC+B;YAAIC,WAAW,CAAC,EAAE3B,UAAU,OAAO,CAAC;;8BACnC,KAAC4B;8BAAK;;8BACN,KAAC3C;oBAAgBuC,OAAOD;;;YAG5B;QAACA;KAAY;IAGf,MAAMM,YAAYxC,SAAS;QACzBU,MAAM;QACNa;IACF;IAEA,MAAMkB,iBAAiB;QACrB,IAAIxB,kBAAkB;YACpBC,oBAAoB;QACtB;QACAwB,WAAW;YACTxB,oBAAoB;QACtB,GAAG;IACL;IAEA,MAAM,EAAEyB,QAAQ,EAAER,KAAK,EAAE,GAAGK;IAE5BnC,UAAU;QACR,IAAI,CAAC6B,eAAepB,SAAS;YAC3B6B,SAAS3B;QACX;QACA,IAAI,CAACF,WAAWoB,aAAa;YAC3BS,SAAS;QACX;IACF,GAAG;QAACT;QAAapB;QAAS6B;QAAU3B;KAAc;IAElDX,UAAU;QACR,IAAIY,kBAAkB;YACpByB,WAAW;gBACTxB,oBAAoB;YACtB,GAAG;QACL;IACF,GAAG;QAACD;KAAiB;IAErB,IAAI,CAACH,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,MAACV,MAAMwC,QAAQ;;0BACb,MAACP;gBAAIC,WAAW;oBAAC1B;oBAAgB;oBAAW;iBAAY,CAACiC,MAAM,CAACC,SAASC,IAAI,CAAC;;kCAC5E,KAAClD;wBAAWmD,aAAaZ;wBAAaa,SAASvC;;kCAC/C,KAACwC;wBACCC,cAAW;wBACXb,WAAWrB,mBAAmB,cAAcmC;wBAC5CC,QAAQ;wBACRC,IAAG;wBACH7B,MAAK;wBACLC,MAAK;wBACLS,OAAO,AAACA,SAAoB;;;;YAG/B,CAACpB,0BACA,KAACjB;gBAAqB2C,gBAAgBA;gBAAgBc,QAAQ,IAAMZ,SAASlC;;;;AAIrF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoKhC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/Auth/index.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6LhC,CAAA"}