@payloadcms/next 3.39.0-canary.7 → 3.39.0-internal.1c212c9

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 (95) hide show
  1. package/dist/auth/login.d.ts.map +1 -1
  2. package/dist/auth/login.js.map +1 -1
  3. package/dist/auth/logout.d.ts +4 -2
  4. package/dist/auth/logout.d.ts.map +1 -1
  5. package/dist/auth/logout.js +26 -7
  6. package/dist/auth/logout.js.map +1 -1
  7. package/dist/auth/refresh.d.ts +1 -3
  8. package/dist/auth/refresh.d.ts.map +1 -1
  9. package/dist/auth/refresh.js +24 -12
  10. package/dist/auth/refresh.js.map +1 -1
  11. package/dist/cjs/withPayload.cjs +2 -2
  12. package/dist/cjs/withPayload.cjs.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +36 -23
  16. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +69 -10
  21. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +0 -1
  22. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +2 -2
  24. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  25. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  26. package/dist/elements/Nav/index.client.js +28 -60
  27. package/dist/elements/Nav/index.client.js.map +1 -1
  28. package/dist/prod/styles.css +1 -1
  29. package/dist/views/Document/index.d.ts +0 -6
  30. package/dist/views/Document/index.d.ts.map +1 -1
  31. package/dist/views/Document/index.js +3 -6
  32. package/dist/views/Document/index.js.map +1 -1
  33. package/dist/views/List/index.d.ts +0 -6
  34. package/dist/views/List/index.d.ts.map +1 -1
  35. package/dist/views/List/index.js +0 -6
  36. package/dist/views/List/index.js.map +1 -1
  37. package/dist/views/LivePreview/Device/index.d.ts.map +1 -1
  38. package/dist/views/LivePreview/Device/index.js +0 -2
  39. package/dist/views/LivePreview/Device/index.js.map +1 -1
  40. package/dist/views/Root/getCustomViewByRoute.d.ts +1 -1
  41. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  42. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  43. package/dist/views/Root/{getRouteData.d.ts → getViewFromConfig.d.ts} +5 -7
  44. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -0
  45. package/dist/views/Root/{getRouteData.js → getViewFromConfig.js} +24 -66
  46. package/dist/views/Root/getViewFromConfig.js.map +1 -0
  47. package/dist/views/Root/index.d.ts +1 -1
  48. package/dist/views/Root/index.d.ts.map +1 -1
  49. package/dist/views/Root/index.js +5 -20
  50. package/dist/views/Root/index.js.map +1 -1
  51. package/dist/views/Root/metadata.d.ts.map +1 -1
  52. package/dist/views/Root/metadata.js +24 -61
  53. package/dist/views/Root/metadata.js.map +1 -1
  54. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  55. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +11 -23
  56. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  57. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  58. package/dist/views/Versions/cells/AutosaveCell/index.js +0 -2
  59. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  60. package/dist/withPayload.d.ts +3 -1
  61. package/dist/withPayload.d.ts.map +1 -1
  62. package/dist/withPayload.js +2 -2
  63. package/dist/withPayload.js.map +1 -1
  64. package/package.json +7 -6
  65. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.scss +0 -9
  66. package/dist/views/BrowseByFolder/buildView.d.ts +0 -13
  67. package/dist/views/BrowseByFolder/buildView.d.ts.map +0 -1
  68. package/dist/views/BrowseByFolder/buildView.js +0 -114
  69. package/dist/views/BrowseByFolder/buildView.js.map +0 -1
  70. package/dist/views/BrowseByFolder/index.d.ts +0 -4
  71. package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
  72. package/dist/views/BrowseByFolder/index.js +0 -18
  73. package/dist/views/BrowseByFolder/index.js.map +0 -1
  74. package/dist/views/BrowseByFolder/metadata.d.ts +0 -4
  75. package/dist/views/BrowseByFolder/metadata.d.ts.map +0 -1
  76. package/dist/views/BrowseByFolder/metadata.js +0 -18
  77. package/dist/views/BrowseByFolder/metadata.js.map +0 -1
  78. package/dist/views/CollectionFolders/buildView.d.ts +0 -15
  79. package/dist/views/CollectionFolders/buildView.d.ts.map +0 -1
  80. package/dist/views/CollectionFolders/buildView.js +0 -163
  81. package/dist/views/CollectionFolders/buildView.js.map +0 -1
  82. package/dist/views/CollectionFolders/index.d.ts +0 -4
  83. package/dist/views/CollectionFolders/index.d.ts.map +0 -1
  84. package/dist/views/CollectionFolders/index.js +0 -18
  85. package/dist/views/CollectionFolders/index.js.map +0 -1
  86. package/dist/views/CollectionFolders/metadata.d.ts +0 -7
  87. package/dist/views/CollectionFolders/metadata.d.ts.map +0 -1
  88. package/dist/views/CollectionFolders/metadata.js +0 -25
  89. package/dist/views/CollectionFolders/metadata.js.map +0 -1
  90. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +0 -11
  91. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +0 -1
  92. package/dist/views/CollectionFolders/renderFolderViewSlots.js +0 -64
  93. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +0 -1
  94. package/dist/views/Root/getRouteData.d.ts.map +0 -1
  95. package/dist/views/Root/getRouteData.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/auth/login.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,cAAc,CAAA;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,cAAc,CAAA;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,KAAK,SAAS,GAAG,cAAc,GAAG,iBAAiB,CAAA;AAEnD,wBAAsB,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;IACjG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;CACV,CAAC,CAyDD"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/auth/login.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,cAAc,CAAA;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,cAAc,CAAA;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,KAAK,SAAS,GAAG,cAAc,GAAG,iBAAiB,CAAA;AAEnD,wBAAsB,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;IACjG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;CACV,CAAC,CAyDD"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","names":["getPayload","setPayloadAuthCookie","login","collection","config","email","password","username","payload","authConfig","collections","auth","Error","loginWithUsername","allowEmailLogin","loginData","result","data","token","cookiePrefix","removeTokenFromResponses","e","console","error"],"sources":["../../src/auth/login.ts"],"sourcesContent":["'use server'\n\nimport type { CollectionSlug } from 'payload'\n\nimport { cookies as getCookies } from 'next/headers.js'\nimport { generatePayloadCookie, getPayload } from 'payload'\n\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\ntype LoginWithEmail = {\n collection: CollectionSlug\n config: any\n email: string\n password: string\n username?: never\n}\n\ntype LoginWithUsername = {\n collection: CollectionSlug\n config: any\n email?: never\n password: string\n username: string\n}\ntype LoginArgs = LoginWithEmail | LoginWithUsername\n\nexport async function login({ collection, config, email, password, username }: LoginArgs): Promise<{\n token?: string\n user: any\n}> {\n const payload = await getPayload({ config })\n\n const authConfig = payload.collections[collection]?.config.auth\n if (!authConfig) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const loginWithUsername = authConfig?.loginWithUsername ?? false\n\n if (loginWithUsername) {\n if (loginWithUsername.allowEmailLogin) {\n if (!email && !username) {\n throw new Error('Email or username is required.')\n }\n } else {\n if (!username) {\n throw new Error('Username is required.')\n }\n }\n } else {\n if (!email) {\n throw new Error('Email is required.')\n }\n }\n\n let loginData\n\n if (loginWithUsername) {\n loginData = username ? { password, username } : { email, password }\n } else {\n loginData = { email, password }\n }\n\n try {\n const result = await payload.login({\n collection,\n data: loginData,\n })\n\n if (result.token) {\n await setPayloadAuthCookie({\n authConfig,\n cookiePrefix: payload.config.cookiePrefix,\n token: result.token,\n })\n }\n\n if ('removeTokenFromResponses' in config && config.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n } catch (e) {\n console.error('Login error:', e)\n throw new Error(`${e}`)\n }\n}\n"],"mappings":"AAAA;;AAKA,SAAgCA,UAAU,QAAQ;AAElD,SAASC,oBAAoB,QAAQ;AAmBrC,OAAO,eAAeC,MAAM;EAAEC,UAAU;EAAEC,MAAM;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAQ,CAAa;EAItF,MAAMC,OAAA,GAAU,MAAMR,UAAA,CAAW;IAAEI;EAAO;EAE1C,MAAMK,UAAA,GAAaD,OAAA,CAAQE,WAAW,CAACP,UAAA,CAAW,EAAEC,MAAA,CAAOO,IAAA;EAC3D,IAAI,CAACF,UAAA,EAAY;IACf,MAAM,IAAIG,KAAA,CAAM,wCAAwCT,UAAA,EAAY;EACtE;EAEA,MAAMU,iBAAA,GAAoBJ,UAAA,EAAYI,iBAAA,IAAqB;EAE3D,IAAIA,iBAAA,EAAmB;IACrB,IAAIA,iBAAA,CAAkBC,eAAe,EAAE;MACrC,IAAI,CAACT,KAAA,IAAS,CAACE,QAAA,EAAU;QACvB,MAAM,IAAIK,KAAA,CAAM;MAClB;IACF,OAAO;MACL,IAAI,CAACL,QAAA,EAAU;QACb,MAAM,IAAIK,KAAA,CAAM;MAClB;IACF;EACF,OAAO;IACL,IAAI,CAACP,KAAA,EAAO;MACV,MAAM,IAAIO,KAAA,CAAM;IAClB;EACF;EAEA,IAAIG,SAAA;EAEJ,IAAIF,iBAAA,EAAmB;IACrBE,SAAA,GAAYR,QAAA,GAAW;MAAED,QAAA;MAAUC;IAAS,IAAI;MAAEF,KAAA;MAAOC;IAAS;EACpE,OAAO;IACLS,SAAA,GAAY;MAAEV,KAAA;MAAOC;IAAS;EAChC;EAEA,IAAI;IACF,MAAMU,MAAA,GAAS,MAAMR,OAAA,CAAQN,KAAK,CAAC;MACjCC,UAAA;MACAc,IAAA,EAAMF;IACR;IAEA,IAAIC,MAAA,CAAOE,KAAK,EAAE;MAChB,MAAMjB,oBAAA,CAAqB;QACzBQ,UAAA;QACAU,YAAA,EAAcX,OAAA,CAAQJ,MAAM,CAACe,YAAY;QACzCD,KAAA,EAAOF,MAAA,CAAOE;MAChB;IACF;IAEA,IAAI,8BAA8Bd,MAAA,IAAUA,MAAA,CAAOgB,wBAAwB,EAAE;MAC3E,OAAOJ,MAAA,CAAOE,KAAK;IACrB;IAEA,OAAOF,MAAA;EACT,EAAE,OAAOK,CAAA,EAAG;IACVC,OAAA,CAAQC,KAAK,CAAC,gBAAgBF,CAAA;IAC9B,MAAM,IAAIT,KAAA,CAAM,GAAGS,CAAA,EAAG;EACxB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"login.js","names":["getPayload","setPayloadAuthCookie","login","collection","config","email","password","username","payload","authConfig","collections","auth","Error","loginWithUsername","allowEmailLogin","loginData","result","data","token","cookiePrefix","removeTokenFromResponses","e","console","error"],"sources":["../../src/auth/login.ts"],"sourcesContent":["'use server'\n\nimport type { CollectionSlug } from 'payload'\n\nimport { getPayload } from 'payload'\n\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\ntype LoginWithEmail = {\n collection: CollectionSlug\n config: any\n email: string\n password: string\n username?: never\n}\n\ntype LoginWithUsername = {\n collection: CollectionSlug\n config: any\n email?: never\n password: string\n username: string\n}\ntype LoginArgs = LoginWithEmail | LoginWithUsername\n\nexport async function login({ collection, config, email, password, username }: LoginArgs): Promise<{\n token?: string\n user: any\n}> {\n const payload = await getPayload({ config })\n\n const authConfig = payload.collections[collection]?.config.auth\n if (!authConfig) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const loginWithUsername = authConfig?.loginWithUsername ?? false\n\n if (loginWithUsername) {\n if (loginWithUsername.allowEmailLogin) {\n if (!email && !username) {\n throw new Error('Email or username is required.')\n }\n } else {\n if (!username) {\n throw new Error('Username is required.')\n }\n }\n } else {\n if (!email) {\n throw new Error('Email is required.')\n }\n }\n\n let loginData\n\n if (loginWithUsername) {\n loginData = username ? { password, username } : { email, password }\n } else {\n loginData = { email, password }\n }\n\n try {\n const result = await payload.login({\n collection,\n data: loginData,\n })\n\n if (result.token) {\n await setPayloadAuthCookie({\n authConfig,\n cookiePrefix: payload.config.cookiePrefix,\n token: result.token,\n })\n }\n\n if ('removeTokenFromResponses' in config && config.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n } catch (e) {\n console.error('Login error:', e)\n throw new Error(`${e}`)\n }\n}\n"],"mappings":"AAAA;;AAIA,SAASA,UAAU,QAAQ;AAE3B,SAASC,oBAAoB,QAAQ;AAmBrC,OAAO,eAAeC,MAAM;EAAEC,UAAU;EAAEC,MAAM;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAQ,CAAa;EAItF,MAAMC,OAAA,GAAU,MAAMR,UAAA,CAAW;IAAEI;EAAO;EAE1C,MAAMK,UAAA,GAAaD,OAAA,CAAQE,WAAW,CAACP,UAAA,CAAW,EAAEC,MAAA,CAAOO,IAAA;EAC3D,IAAI,CAACF,UAAA,EAAY;IACf,MAAM,IAAIG,KAAA,CAAM,wCAAwCT,UAAA,EAAY;EACtE;EAEA,MAAMU,iBAAA,GAAoBJ,UAAA,EAAYI,iBAAA,IAAqB;EAE3D,IAAIA,iBAAA,EAAmB;IACrB,IAAIA,iBAAA,CAAkBC,eAAe,EAAE;MACrC,IAAI,CAACT,KAAA,IAAS,CAACE,QAAA,EAAU;QACvB,MAAM,IAAIK,KAAA,CAAM;MAClB;IACF,OAAO;MACL,IAAI,CAACL,QAAA,EAAU;QACb,MAAM,IAAIK,KAAA,CAAM;MAClB;IACF;EACF,OAAO;IACL,IAAI,CAACP,KAAA,EAAO;MACV,MAAM,IAAIO,KAAA,CAAM;IAClB;EACF;EAEA,IAAIG,SAAA;EAEJ,IAAIF,iBAAA,EAAmB;IACrBE,SAAA,GAAYR,QAAA,GAAW;MAAED,QAAA;MAAUC;IAAS,IAAI;MAAEF,KAAA;MAAOC;IAAS;EACpE,OAAO;IACLS,SAAA,GAAY;MAAEV,KAAA;MAAOC;IAAS;EAChC;EAEA,IAAI;IACF,MAAMU,MAAA,GAAS,MAAMR,OAAA,CAAQN,KAAK,CAAC;MACjCC,UAAA;MACAc,IAAA,EAAMF;IACR;IAEA,IAAIC,MAAA,CAAOE,KAAK,EAAE;MAChB,MAAMjB,oBAAA,CAAqB;QACzBQ,UAAA;QACAU,YAAA,EAAcX,OAAA,CAAQJ,MAAM,CAACe,YAAY;QACzCD,KAAA,EAAOF,MAAA,CAAOE;MAChB;IACF;IAEA,IAAI,8BAA8Bd,MAAA,IAAUA,MAAA,CAAOgB,wBAAwB,EAAE;MAC3E,OAAOJ,MAAA,CAAOE,KAAK;IACrB;IAEA,OAAOF,MAAA;EACT,EAAE,OAAOK,CAAA,EAAG;IACVC,OAAA,CAAQC,KAAK,CAAC,gBAAgBF,CAAA;IAC9B,MAAM,IAAIT,KAAA,CAAM,GAAGS,CAAA,EAAG;EACxB;AACF","ignoreList":[]}
@@ -1,5 +1,7 @@
1
- export declare function logout({ config }: {
2
- config: any;
1
+ import type { SanitizedConfig } from 'payload';
2
+ export declare function logout({ allSessions, config, }: {
3
+ allSessions?: boolean;
4
+ config: Promise<SanitizedConfig> | SanitizedConfig;
3
5
  }): Promise<{
4
6
  message: string;
5
7
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/auth/logout.ts"],"names":[],"mappings":"AAOA,wBAAsB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAA;CAAE;;;GAqBvD"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/auth/logout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAO/C,wBAAsB,MAAM,CAAC,EAC3B,WAAmB,EACnB,MAAM,GACP,EAAE;IACD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;CACnD;;;GAmCA"}
@@ -1,9 +1,10 @@
1
1
  'use server';
2
2
 
3
3
  import { cookies as getCookies, headers as nextHeaders } from 'next/headers.js';
4
- import { getPayload } from 'payload';
4
+ import { createLocalReq, getPayload, logoutOperation } from 'payload';
5
5
  import { getExistingAuthToken } from '../utilities/getExistingAuthToken.js';
6
6
  export async function logout({
7
+ allSessions = false,
7
8
  config
8
9
  }) {
9
10
  try {
@@ -11,24 +12,42 @@ export async function logout({
11
12
  config
12
13
  });
13
14
  const headers = await nextHeaders();
14
- const result = await payload.auth({
15
+ const authResult = await payload.auth({
15
16
  headers
16
17
  });
17
- if (!result.user) {
18
+ if (!authResult.user) {
18
19
  return {
19
20
  message: 'User already logged out',
20
21
  success: true
21
22
  };
22
23
  }
24
+ const {
25
+ user
26
+ } = authResult;
27
+ const req = await createLocalReq({
28
+ user
29
+ }, payload);
30
+ const collection = payload.collections[user.collection];
31
+ const logoutResult = await logoutOperation({
32
+ allSessions,
33
+ collection,
34
+ req
35
+ });
36
+ if (!logoutResult) {
37
+ return {
38
+ message: 'Logout failed',
39
+ success: false
40
+ };
41
+ }
23
42
  const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix);
24
43
  if (existingCookie) {
25
44
  const cookies = await getCookies();
26
45
  cookies.delete(existingCookie.name);
27
- return {
28
- message: 'User logged out successfully',
29
- success: true
30
- };
31
46
  }
47
+ return {
48
+ message: 'User logged out successfully',
49
+ success: true
50
+ };
32
51
  } catch (e) {
33
52
  console.error('Logout error:', e);
34
53
  throw new Error(`${e}`);
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","names":["cookies","getCookies","headers","nextHeaders","getPayload","getExistingAuthToken","logout","config","payload","result","auth","user","message","success","existingCookie","cookiePrefix","delete","name","e","console","error","Error"],"sources":["../../src/auth/logout.ts"],"sourcesContent":["'use server'\n\nimport { cookies as getCookies, headers as nextHeaders } from 'next/headers.js'\nimport { getPayload } from 'payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\n\nexport async function logout({ config }: { config: any }) {\n try {\n const payload = await getPayload({ config })\n const headers = await nextHeaders()\n const result = await payload.auth({ headers })\n\n if (!result.user) {\n return { message: 'User already logged out', success: true }\n }\n\n const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix)\n\n if (existingCookie) {\n const cookies = await getCookies()\n cookies.delete(existingCookie.name)\n return { message: 'User logged out successfully', success: true }\n }\n } catch (e) {\n console.error('Logout error:', e)\n throw new Error(`${e}`)\n }\n}\n"],"mappings":"AAAA;;AAEA,SAASA,OAAA,IAAWC,UAAU,EAAEC,OAAA,IAAWC,WAAW,QAAQ;AAC9D,SAASC,UAAU,QAAQ;AAE3B,SAASC,oBAAoB,QAAQ;AAErC,OAAO,eAAeC,OAAO;EAAEC;AAAM,CAAmB;EACtD,IAAI;IACF,MAAMC,OAAA,GAAU,MAAMJ,UAAA,CAAW;MAAEG;IAAO;IAC1C,MAAML,OAAA,GAAU,MAAMC,WAAA;IACtB,MAAMM,MAAA,GAAS,MAAMD,OAAA,CAAQE,IAAI,CAAC;MAAER;IAAQ;IAE5C,IAAI,CAACO,MAAA,CAAOE,IAAI,EAAE;MAChB,OAAO;QAAEC,OAAA,EAAS;QAA2BC,OAAA,EAAS;MAAK;IAC7D;IAEA,MAAMC,cAAA,GAAiB,MAAMT,oBAAA,CAAqBG,OAAA,CAAQD,MAAM,CAACQ,YAAY;IAE7E,IAAID,cAAA,EAAgB;MAClB,MAAMd,OAAA,GAAU,MAAMC,UAAA;MACtBD,OAAA,CAAQgB,MAAM,CAACF,cAAA,CAAeG,IAAI;MAClC,OAAO;QAAEL,OAAA,EAAS;QAAgCC,OAAA,EAAS;MAAK;IAClE;EACF,EAAE,OAAOK,CAAA,EAAG;IACVC,OAAA,CAAQC,KAAK,CAAC,iBAAiBF,CAAA;IAC/B,MAAM,IAAIG,KAAA,CAAM,GAAGH,CAAA,EAAG;EACxB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"logout.js","names":["cookies","getCookies","headers","nextHeaders","createLocalReq","getPayload","logoutOperation","getExistingAuthToken","logout","allSessions","config","payload","authResult","auth","user","message","success","req","collection","collections","logoutResult","existingCookie","cookiePrefix","delete","name","e","console","error","Error"],"sources":["../../src/auth/logout.ts"],"sourcesContent":["'use server'\n\nimport type { SanitizedConfig } from 'payload';\n\nimport { cookies as getCookies, headers as nextHeaders } from 'next/headers.js'\nimport { createLocalReq, getPayload, logoutOperation } from 'payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\n\nexport async function logout({\n allSessions = false,\n config,\n}: {\n allSessions?: boolean\n config: Promise<SanitizedConfig> | SanitizedConfig\n}) {\n try {\n const payload = await getPayload({ config })\n const headers = await nextHeaders()\n const authResult = await payload.auth({ headers })\n\n if (!authResult.user) {\n return { message: 'User already logged out', success: true }\n }\n\n const { user } = authResult\n const req = await createLocalReq({ user }, payload)\n const collection = payload.collections[user.collection]\n\n const logoutResult = await logoutOperation({\n allSessions,\n collection,\n req,\n })\n\n if (!logoutResult) {\n return { message: 'Logout failed', success: false }\n }\n\n const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix)\n if (existingCookie) {\n const cookies = await getCookies()\n cookies.delete(existingCookie.name)\n }\n\n return { message: 'User logged out successfully', success: true }\n } catch (e) {\n console.error('Logout error:', e)\n throw new Error(`${e}`)\n }\n}\n"],"mappings":"AAAA;;AAIA,SAASA,OAAA,IAAWC,UAAU,EAAEC,OAAA,IAAWC,WAAW,QAAQ;AAC9D,SAASC,cAAc,EAAEC,UAAU,EAAEC,eAAe,QAAQ;AAE5D,SAASC,oBAAoB,QAAQ;AAErC,OAAO,eAAeC,OAAO;EAC3BC,WAAA,GAAc,KAAK;EACnBC;AAAM,CAIP;EACC,IAAI;IACF,MAAMC,OAAA,GAAU,MAAMN,UAAA,CAAW;MAAEK;IAAO;IAC1C,MAAMR,OAAA,GAAU,MAAMC,WAAA;IACtB,MAAMS,UAAA,GAAa,MAAMD,OAAA,CAAQE,IAAI,CAAC;MAAEX;IAAQ;IAEhD,IAAI,CAACU,UAAA,CAAWE,IAAI,EAAE;MACpB,OAAO;QAAEC,OAAA,EAAS;QAA2BC,OAAA,EAAS;MAAK;IAC7D;IAEA,MAAM;MAAEF;IAAI,CAAE,GAAGF,UAAA;IACjB,MAAMK,GAAA,GAAM,MAAMb,cAAA,CAAe;MAAEU;IAAK,GAAGH,OAAA;IAC3C,MAAMO,UAAA,GAAaP,OAAA,CAAQQ,WAAW,CAACL,IAAA,CAAKI,UAAU,CAAC;IAEvD,MAAME,YAAA,GAAe,MAAMd,eAAA,CAAgB;MACzCG,WAAA;MACAS,UAAA;MACAD;IACF;IAEA,IAAI,CAACG,YAAA,EAAc;MACjB,OAAO;QAAEL,OAAA,EAAS;QAAiBC,OAAA,EAAS;MAAM;IACpD;IAEA,MAAMK,cAAA,GAAiB,MAAMd,oBAAA,CAAqBI,OAAA,CAAQD,MAAM,CAACY,YAAY;IAC7E,IAAID,cAAA,EAAgB;MAClB,MAAMrB,OAAA,GAAU,MAAMC,UAAA;MACtBD,OAAA,CAAQuB,MAAM,CAACF,cAAA,CAAeG,IAAI;IACpC;IAEA,OAAO;MAAET,OAAA,EAAS;MAAgCC,OAAA,EAAS;IAAK;EAClE,EAAE,OAAOS,CAAA,EAAG;IACVC,OAAA,CAAQC,KAAK,CAAC,iBAAiBF,CAAA;IAC/B,MAAM,IAAIG,KAAA,CAAM,GAAGH,CAAA,EAAG;EACxB;AACF","ignoreList":[]}
@@ -1,6 +1,4 @@
1
- import type { CollectionSlug } from 'payload';
2
- export declare function refresh({ collection, config }: {
3
- collection: CollectionSlug;
1
+ export declare function refresh({ config }: {
4
2
  config: any;
5
3
  }): Promise<{
6
4
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/auth/refresh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ7C,wBAAsB,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE;;;GA+BhG"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/auth/refresh.ts"],"names":[],"mappings":"AAUA,wBAAsB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAA;CAAE;;;GA4CxD"}
@@ -1,38 +1,50 @@
1
1
  'use server';
2
2
 
3
3
  import { headers as nextHeaders } from 'next/headers.js';
4
- import { getPayload } from 'payload';
4
+ import { createLocalReq, getPayload, refreshOperation } from 'payload';
5
5
  import { getExistingAuthToken } from '../utilities/getExistingAuthToken.js';
6
6
  import { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js';
7
7
  export async function refresh({
8
- collection,
9
8
  config
10
9
  }) {
11
10
  try {
12
11
  const payload = await getPayload({
13
12
  config
14
13
  });
15
- const authConfig = payload.collections[collection]?.config.auth;
16
- if (!authConfig) {
14
+ const headers = await nextHeaders();
15
+ const result = await payload.auth({
16
+ headers
17
+ });
18
+ if (!result.user) {
19
+ throw new Error('Cannot refresh token: user not authenticated');
20
+ }
21
+ const collection = result.user.collection;
22
+ const collectionConfig = payload.collections[collection];
23
+ if (!collectionConfig?.config.auth) {
17
24
  throw new Error(`No auth config found for collection: ${collection}`);
18
25
  }
19
- const {
20
- user
21
- } = await payload.auth({
22
- headers: await nextHeaders()
26
+ const req = await createLocalReq({
27
+ user: result.user
28
+ }, payload);
29
+ const refreshResult = await refreshOperation({
30
+ collection: collectionConfig,
31
+ req
23
32
  });
24
- if (!user) {
25
- throw new Error('User not authenticated');
33
+ if (!refreshResult) {
34
+ return {
35
+ message: 'Token refresh failed',
36
+ success: false
37
+ };
26
38
  }
27
39
  const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix);
28
40
  if (!existingCookie) {
29
41
  return {
30
- message: 'No valid token found',
42
+ message: 'No valid token found to refresh',
31
43
  success: false
32
44
  };
33
45
  }
34
46
  await setPayloadAuthCookie({
35
- authConfig,
47
+ authConfig: collectionConfig.config.auth,
36
48
  cookiePrefix: payload.config.cookiePrefix,
37
49
  token: existingCookie.value
38
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","names":["headers","nextHeaders","getPayload","getExistingAuthToken","setPayloadAuthCookie","refresh","collection","config","payload","authConfig","collections","auth","Error","user","existingCookie","cookiePrefix","message","success","token","value","e","console","error"],"sources":["../../src/auth/refresh.ts"],"sourcesContent":["'use server'\n\nimport type { CollectionSlug } from 'payload'\n\nimport { headers as nextHeaders } from 'next/headers.js'\nimport { getPayload } from 'payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\nexport async function refresh({ collection, config }: { collection: CollectionSlug; config: any }) {\n try {\n const payload = await getPayload({ config })\n const authConfig = payload.collections[collection]?.config.auth\n\n if (!authConfig) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const { user } = await payload.auth({ headers: await nextHeaders() })\n if (!user) {\n throw new Error('User not authenticated')\n }\n\n const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix)\n\n if (!existingCookie) {\n return { message: 'No valid token found', success: false }\n }\n\n await setPayloadAuthCookie({\n authConfig,\n cookiePrefix: payload.config.cookiePrefix,\n token: existingCookie.value,\n })\n\n return { message: 'Token refreshed successfully', success: true }\n } catch (e) {\n console.error('Refresh error:', e)\n throw new Error(`${e}`)\n }\n}\n"],"mappings":"AAAA;;AAIA,SAASA,OAAA,IAAWC,WAAW,QAAQ;AACvC,SAASC,UAAU,QAAQ;AAE3B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AAErC,OAAO,eAAeC,QAAQ;EAAEC,UAAU;EAAEC;AAAM,CAA+C;EAC/F,IAAI;IACF,MAAMC,OAAA,GAAU,MAAMN,UAAA,CAAW;MAAEK;IAAO;IAC1C,MAAME,UAAA,GAAaD,OAAA,CAAQE,WAAW,CAACJ,UAAA,CAAW,EAAEC,MAAA,CAAOI,IAAA;IAE3D,IAAI,CAACF,UAAA,EAAY;MACf,MAAM,IAAIG,KAAA,CAAM,wCAAwCN,UAAA,EAAY;IACtE;IAEA,MAAM;MAAEO;IAAI,CAAE,GAAG,MAAML,OAAA,CAAQG,IAAI,CAAC;MAAEX,OAAA,EAAS,MAAMC,WAAA;IAAc;IACnE,IAAI,CAACY,IAAA,EAAM;MACT,MAAM,IAAID,KAAA,CAAM;IAClB;IAEA,MAAME,cAAA,GAAiB,MAAMX,oBAAA,CAAqBK,OAAA,CAAQD,MAAM,CAACQ,YAAY;IAE7E,IAAI,CAACD,cAAA,EAAgB;MACnB,OAAO;QAAEE,OAAA,EAAS;QAAwBC,OAAA,EAAS;MAAM;IAC3D;IAEA,MAAMb,oBAAA,CAAqB;MACzBK,UAAA;MACAM,YAAA,EAAcP,OAAA,CAAQD,MAAM,CAACQ,YAAY;MACzCG,KAAA,EAAOJ,cAAA,CAAeK;IACxB;IAEA,OAAO;MAAEH,OAAA,EAAS;MAAgCC,OAAA,EAAS;IAAK;EAClE,EAAE,OAAOG,CAAA,EAAG;IACVC,OAAA,CAAQC,KAAK,CAAC,kBAAkBF,CAAA;IAChC,MAAM,IAAIR,KAAA,CAAM,GAAGQ,CAAA,EAAG;EACxB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"refresh.js","names":["headers","nextHeaders","createLocalReq","getPayload","refreshOperation","getExistingAuthToken","setPayloadAuthCookie","refresh","config","payload","result","auth","user","Error","collection","collectionConfig","collections","req","refreshResult","message","success","existingCookie","cookiePrefix","authConfig","token","value","e","console","error"],"sources":["../../src/auth/refresh.ts"],"sourcesContent":["'use server'\n\nimport type { CollectionSlug } from 'payload'\n\nimport { headers as nextHeaders } from 'next/headers.js'\nimport { createLocalReq, getPayload, refreshOperation } from 'payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\nexport async function refresh({ config }: { config: any }) {\n try {\n const payload = await getPayload({ config })\n const headers = await nextHeaders()\n const result = await payload.auth({ headers })\n\n if (!result.user) {\n throw new Error('Cannot refresh token: user not authenticated')\n }\n\n const collection: CollectionSlug | undefined = result.user.collection\n const collectionConfig = payload.collections[collection]\n\n if (!collectionConfig?.config.auth) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const req = await createLocalReq({ user: result.user }, payload)\n\n const refreshResult = await refreshOperation({\n collection: collectionConfig,\n req,\n })\n\n if (!refreshResult) {\n return { message: 'Token refresh failed', success: false }\n }\n\n const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix)\n if (!existingCookie) {\n return { message: 'No valid token found to refresh', success: false }\n }\n\n await setPayloadAuthCookie({\n authConfig: collectionConfig.config.auth,\n cookiePrefix: payload.config.cookiePrefix,\n token: existingCookie.value,\n })\n\n return { message: 'Token refreshed successfully', success: true }\n } catch (e) {\n console.error('Refresh error:', e)\n throw new Error(`${e}`)\n }\n}\n"],"mappings":"AAAA;;AAIA,SAASA,OAAA,IAAWC,WAAW,QAAQ;AACvC,SAASC,cAAc,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ;AAE7D,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AAErC,OAAO,eAAeC,QAAQ;EAAEC;AAAM,CAAmB;EACvD,IAAI;IACF,MAAMC,OAAA,GAAU,MAAMN,UAAA,CAAW;MAAEK;IAAO;IAC1C,MAAMR,OAAA,GAAU,MAAMC,WAAA;IACtB,MAAMS,MAAA,GAAS,MAAMD,OAAA,CAAQE,IAAI,CAAC;MAAEX;IAAQ;IAE5C,IAAI,CAACU,MAAA,CAAOE,IAAI,EAAE;MAChB,MAAM,IAAIC,KAAA,CAAM;IAClB;IAEA,MAAMC,UAAA,GAAyCJ,MAAA,CAAOE,IAAI,CAACE,UAAU;IACrE,MAAMC,gBAAA,GAAmBN,OAAA,CAAQO,WAAW,CAACF,UAAA,CAAW;IAExD,IAAI,CAACC,gBAAA,EAAkBP,MAAA,CAAOG,IAAA,EAAM;MAClC,MAAM,IAAIE,KAAA,CAAM,wCAAwCC,UAAA,EAAY;IACtE;IAEA,MAAMG,GAAA,GAAM,MAAMf,cAAA,CAAe;MAAEU,IAAA,EAAMF,MAAA,CAAOE;IAAK,GAAGH,OAAA;IAExD,MAAMS,aAAA,GAAgB,MAAMd,gBAAA,CAAiB;MAC3CU,UAAA,EAAYC,gBAAA;MACZE;IACF;IAEA,IAAI,CAACC,aAAA,EAAe;MAClB,OAAO;QAAEC,OAAA,EAAS;QAAwBC,OAAA,EAAS;MAAM;IAC3D;IAEA,MAAMC,cAAA,GAAiB,MAAMhB,oBAAA,CAAqBI,OAAA,CAAQD,MAAM,CAACc,YAAY;IAC7E,IAAI,CAACD,cAAA,EAAgB;MACnB,OAAO;QAAEF,OAAA,EAAS;QAAmCC,OAAA,EAAS;MAAM;IACtE;IAEA,MAAMd,oBAAA,CAAqB;MACzBiB,UAAA,EAAYR,gBAAA,CAAiBP,MAAM,CAACG,IAAI;MACxCW,YAAA,EAAcb,OAAA,CAAQD,MAAM,CAACc,YAAY;MACzCE,KAAA,EAAOH,cAAA,CAAeI;IACxB;IAEA,OAAO;MAAEN,OAAA,EAAS;MAAgCC,OAAA,EAAS;IAAK;EAClE,EAAE,OAAOM,CAAA,EAAG;IACVC,OAAA,CAAQC,KAAK,CAAC,kBAAkBF,CAAA;IAChC,MAAM,IAAIb,KAAA,CAAM,GAAGa,CAAA,EAAG;EACxB;AACF","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @param {import('next').NextConfig} nextConfig
3
- * @param {Object} [sortOnOptions] - Optional configuration options
4
- * @param {boolean} [sortOnOptions.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true
3
+ * @param {Object} [options] - Optional configuration options
4
+ * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true
5
5
  *
6
6
  * @returns {import('next').NextConfig}
7
7
  * */ "use strict";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/withPayload.js"],"names":[],"mappings":"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","file":"withPayload.cjs","sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [sortOnOptions] - Optional configuration options\n * @param {boolean} [sortOnOptions.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n // Do not bundle server-only packages during dev to improve compile speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"]}
1
+ {"version":3,"sources":["../../src/withPayload.js"],"names":[],"mappings":"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","file":"withPayload.cjs","sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [options] - Optional configuration options\n * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n // Do not bundle server-only packages during dev to improve compile speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"]}
@@ -7,6 +7,7 @@ export declare const DocumentTabLink: React.FC<{
7
7
  children?: React.ReactNode;
8
8
  href: string;
9
9
  isActive?: boolean;
10
+ isCollection?: boolean;
10
11
  newTab?: boolean;
11
12
  }>;
12
13
  //# sourceMappingURL=TabLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabLink.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAoDA,CAAA"}
1
+ {"version":3,"file":"TabLink.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAsDA,CAAA"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import { Button } from '@payloadcms/ui';
5
+ import { Link } from '@payloadcms/ui';
6
6
  import { useParams, usePathname, useSearchParams } from 'next/navigation.js';
7
7
  import { formatAdminURL } from 'payload/shared';
8
8
  import React from 'react';
9
9
  export const DocumentTabLink = t0 => {
10
- const $ = _c(19);
10
+ const $ = _c(21);
11
11
  const {
12
12
  adminRoute,
13
13
  ariaLabel,
@@ -65,32 +65,45 @@ export const DocumentTabLink = t0 => {
65
65
  t5 = $[10];
66
66
  }
67
67
  const t6 = t5.join(" ");
68
- const t7 = !isActive || href !== pathname ? "link" : "div";
69
- const t8 = !isActive || href !== pathname ? hrefWithLocale : undefined;
68
+ const t7 = `${baseClass}__link`;
69
+ const t8 = !isActive || href !== pathname ? hrefWithLocale : "";
70
70
  let t9;
71
- if ($[11] !== ariaLabel || $[12] !== children || $[13] !== isActive || $[14] !== newTab || $[15] !== t6 || $[16] !== t7 || $[17] !== t8) {
72
- t9 = _jsx(Button, {
71
+ if ($[11] !== newTab) {
72
+ t9 = newTab && {
73
+ rel: "noopener noreferrer",
74
+ target: "_blank"
75
+ };
76
+ $[11] = newTab;
77
+ $[12] = t9;
78
+ } else {
79
+ t9 = $[12];
80
+ }
81
+ const t10 = isActive ? -1 : 0;
82
+ let t11;
83
+ if ($[13] !== ariaLabel || $[14] !== children || $[15] !== t10 || $[16] !== t6 || $[17] !== t7 || $[18] !== t8 || $[19] !== t9) {
84
+ t11 = _jsx("li", {
73
85
  "aria-label": ariaLabel,
74
- buttonStyle: "tab",
75
86
  className: t6,
76
- disabled: isActive,
77
- el: t7,
78
- newTab,
79
- size: "medium",
80
- to: t8,
81
- children
87
+ children: _jsx(Link, {
88
+ className: t7,
89
+ href: t8,
90
+ prefetch: false,
91
+ ...t9,
92
+ tabIndex: t10,
93
+ children
94
+ })
82
95
  });
83
- $[11] = ariaLabel;
84
- $[12] = children;
85
- $[13] = isActive;
86
- $[14] = newTab;
87
- $[15] = t6;
88
- $[16] = t7;
89
- $[17] = t8;
90
- $[18] = t9;
96
+ $[13] = ariaLabel;
97
+ $[14] = children;
98
+ $[15] = t10;
99
+ $[16] = t6;
100
+ $[17] = t7;
101
+ $[18] = t8;
102
+ $[19] = t9;
103
+ $[20] = t11;
91
104
  } else {
92
- t9 = $[18];
105
+ t11 = $[20];
93
106
  }
94
- return t9;
107
+ return t11;
95
108
  };
96
109
  //# sourceMappingURL=TabLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabLink.js","names":["c","_c","Button","useParams","usePathname","useSearchParams","formatAdminURL","React","DocumentTabLink","t0","$","adminRoute","ariaLabel","baseClass","children","href","hrefFromProps","isActive","isActiveFromProps","newTab","pathname","params","searchParams","locale","get","entityType","entitySlug","segmentThree","segments","isCollection","t1","t2","path","docPath","hrefWithLocale","t3","startsWith","t4","t5","filter","Boolean","t6","join","t7","t8","undefined","t9","_jsx","buttonStyle","className","disabled","el","size","to"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from 'payload'\n\nimport { Button } from '@payloadcms/ui'\nimport { useParams, usePathname, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n ariaLabel?: string\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n ariaLabel,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n\n const searchParams = useSearchParams()\n\n const locale = searchParams.get('locale')\n\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n\n let docPath = formatAdminURL({\n adminRoute,\n path: `/${isCollection ? 'collections' : 'globals'}/${entitySlug}`,\n })\n\n if (isCollection && segmentThree) {\n // doc ID\n docPath += `/${segmentThree}`\n }\n\n const href = `${docPath}${hrefFromProps}`\n // separated the two so it doesn't break checks against pathname\n const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <Button\n aria-label={ariaLabel}\n buttonStyle=\"tab\"\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n disabled={isActive}\n el={!isActive || href !== pathname ? 'link' : 'div'}\n newTab={newTab}\n size=\"medium\"\n to={!isActive || href !== pathname ? hrefWithLocale : undefined}\n >\n {children}\n </Button>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TabLink.js","names":["c","_c","Link","useParams","usePathname","useSearchParams","formatAdminURL","React","DocumentTabLink","t0","$","adminRoute","ariaLabel","baseClass","children","href","hrefFromProps","isActive","isActiveFromProps","newTab","pathname","params","searchParams","locale","get","entityType","entitySlug","segmentThree","segments","isCollection","t1","t2","path","docPath","hrefWithLocale","t3","startsWith","t4","t5","filter","Boolean","t6","join","t7","t8","t9","rel","target","t10","t11","_jsx","className","prefetch","tabIndex"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from 'payload'\n\nimport { Link } from '@payloadcms/ui'\nimport { useParams, usePathname, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n ariaLabel?: string\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n isCollection?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n ariaLabel,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n\n const searchParams = useSearchParams()\n\n const locale = searchParams.get('locale')\n\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n\n let docPath = formatAdminURL({\n adminRoute,\n path: `/${isCollection ? 'collections' : 'globals'}/${entitySlug}`,\n })\n\n if (isCollection && segmentThree) {\n // doc ID\n docPath += `/${segmentThree}`\n }\n\n const href = `${docPath}${hrefFromProps}`\n // separated the two so it doesn't break checks against pathname\n const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <li\n aria-label={ariaLabel}\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n >\n <Link\n className={`${baseClass}__link`}\n href={!isActive || href !== pathname ? hrefWithLocale : ''}\n prefetch={false}\n {...(newTab && { rel: 'noopener noreferrer', target: '_blank' })}\n tabIndex={isActive ? -1 : 0}\n >\n {children}\n </Link>\n </li>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAe,MAAM,SAAS,CAAA;AACrF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAChC;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;CAAE,GAAG,iBAAiB,GAAG,sBAAsB,CAmFpF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAe,MAAM,SAAS,CAAA;AACrF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAChC;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;CAAE,GAAG,iBAAiB,GAAG,sBAAsB,CAoFpF,CAAA"}
@@ -56,6 +56,7 @@ export const DocumentTab = props => {
56
56
  baseClass: baseClass,
57
57
  href: href,
58
58
  isActive: isActive,
59
+ isCollection: !!collectionConfig && !globalConfig,
59
60
  newTab: newTab,
60
61
  children: /*#__PURE__*/_jsxs("span", {
61
62
  className: `${baseClass}__label`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RenderServerComponent","Fragment","DocumentTabLink","baseClass","DocumentTab","props","apiURL","collectionConfig","condition","globalConfig","href","tabHref","i18n","isActive","tabIsActive","label","newTab","payload","permissions","Pill","Pill_Component","config","routes","collection","global","meetsCondition","Boolean","labelToRender","t","_jsx","adminRoute","admin","ariaLabel","_jsxs","className","Component","Fallback","importMap","serverProps"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type { DocumentTabConfig, DocumentTabServerProps, ServerProps } from 'payload'\nimport type React from 'react'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { Fragment } from 'react'\n\nimport { DocumentTabLink } from './TabLink.js'\nimport './index.scss'\n\nexport const baseClass = 'doc-tab'\n\nexport const DocumentTab: React.FC<\n { readonly Pill_Component?: React.FC } & DocumentTabConfig & DocumentTabServerProps\n> = (props) => {\n const {\n apiURL,\n collectionConfig,\n condition,\n globalConfig,\n href: tabHref,\n i18n,\n isActive: tabIsActive,\n label,\n newTab,\n payload,\n permissions,\n Pill,\n Pill_Component,\n } = props\n\n const { config } = payload\n const { routes } = config\n\n let href = typeof tabHref === 'string' ? tabHref : ''\n let isActive = typeof tabIsActive === 'boolean' ? tabIsActive : false\n\n if (typeof tabHref === 'function') {\n href = tabHref({\n apiURL,\n collection: collectionConfig,\n global: globalConfig,\n routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const meetsCondition =\n !condition ||\n (condition && Boolean(condition({ collectionConfig, config, globalConfig, permissions })))\n\n if (meetsCondition) {\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={routes.admin}\n ariaLabel={labelToRender}\n baseClass={baseClass}\n href={href}\n isActive={isActive}\n newTab={newTab}\n >\n <span className={`${baseClass}__label`}>\n {labelToRender}\n {Pill || Pill_Component ? (\n <Fragment>\n &nbsp;\n {RenderServerComponent({\n Component: Pill,\n Fallback: Pill_Component,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n payload,\n permissions,\n } satisfies ServerProps,\n })}\n </Fragment>\n ) : null}\n </span>\n </DocumentTabLink>\n )\n }\n\n return null\n}\n"],"mappings":";AAGA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AAEzB,SAASC,eAAe,QAAQ;AAGhC,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,MAAMC,WAAA,GAERC,KAAA;EACH,MAAM;IACJC,MAAM;IACNC,gBAAgB;IAChBC,SAAS;IACTC,YAAY;IACZC,IAAA,EAAMC,OAAO;IACbC,IAAI;IACJC,QAAA,EAAUC,WAAW;IACrBC,KAAK;IACLC,MAAM;IACNC,OAAO;IACPC,WAAW;IACXC,IAAI;IACJC;EAAc,CACf,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAM,CAAE,GAAGJ,OAAA;EACnB,MAAM;IAAEK;EAAM,CAAE,GAAGD,MAAA;EAEnB,IAAIX,IAAA,GAAO,OAAOC,OAAA,KAAY,WAAWA,OAAA,GAAU;EACnD,IAAIE,QAAA,GAAW,OAAOC,WAAA,KAAgB,YAAYA,WAAA,GAAc;EAEhE,IAAI,OAAOH,OAAA,KAAY,YAAY;IACjCD,IAAA,GAAOC,OAAA,CAAQ;MACbL,MAAA;MACAiB,UAAA,EAAYhB,gBAAA;MACZiB,MAAA,EAAQf,YAAA;MACRa;IACF;EACF;EAEA,IAAI,OAAOR,WAAA,KAAgB,YAAY;IACrCD,QAAA,GAAWC,WAAA,CAAY;MACrBJ;IACF;EACF;EAEA,MAAMe,cAAA,GACJ,CAACjB,SAAA,IACAA,SAAA,IAAakB,OAAA,CAAQlB,SAAA,CAAU;IAAED,gBAAA;IAAkBc,MAAA;IAAQZ,YAAA;IAAcS;EAAY;EAExF,IAAIO,cAAA,EAAgB;IAClB,MAAME,aAAA,GACJ,OAAOZ,KAAA,KAAU,aACbA,KAAA,CAAM;MACJa,CAAA,EAAGhB,IAAA,CAAKgB;IACV,KACAb,KAAA;IAEN,oBACEc,IAAA,CAAC3B,eAAA;MACC4B,UAAA,EAAYR,MAAA,CAAOS,KAAK;MACxBC,SAAA,EAAWL,aAAA;MACXxB,SAAA,EAAWA,SAAA;MACXO,IAAA,EAAMA,IAAA;MACNG,QAAA,EAAUA,QAAA;MACVG,MAAA,EAAQA,MAAA;gBAER,aAAAiB,KAAA,CAAC;QAAKC,SAAA,EAAW,GAAG/B,SAAA,SAAkB;mBACnCwB,aAAA,EACAR,IAAA,IAAQC,cAAA,gBACPa,KAAA,CAAChC,QAAA;qBAAS,KAEPD,qBAAA,CAAsB;YACrBmC,SAAA,EAAWhB,IAAA;YACXiB,QAAA,EAAUhB,cAAA;YACViB,SAAA,EAAWpB,OAAA,CAAQoB,SAAS;YAC5BC,WAAA,EAAa;cACX1B,IAAA;cACAK,OAAA;cACAC;YACF;UACF;aAEA;;;EAIZ;EAEA,OAAO;AACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","Fragment","DocumentTabLink","baseClass","DocumentTab","props","apiURL","collectionConfig","condition","globalConfig","href","tabHref","i18n","isActive","tabIsActive","label","newTab","payload","permissions","Pill","Pill_Component","config","routes","collection","global","meetsCondition","Boolean","labelToRender","t","_jsx","adminRoute","admin","ariaLabel","isCollection","_jsxs","className","Component","Fallback","importMap","serverProps"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type { DocumentTabConfig, DocumentTabServerProps, ServerProps } from 'payload'\nimport type React from 'react'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { Fragment } from 'react'\n\nimport { DocumentTabLink } from './TabLink.js'\nimport './index.scss'\n\nexport const baseClass = 'doc-tab'\n\nexport const DocumentTab: React.FC<\n { readonly Pill_Component?: React.FC } & DocumentTabConfig & DocumentTabServerProps\n> = (props) => {\n const {\n apiURL,\n collectionConfig,\n condition,\n globalConfig,\n href: tabHref,\n i18n,\n isActive: tabIsActive,\n label,\n newTab,\n payload,\n permissions,\n Pill,\n Pill_Component,\n } = props\n\n const { config } = payload\n const { routes } = config\n\n let href = typeof tabHref === 'string' ? tabHref : ''\n let isActive = typeof tabIsActive === 'boolean' ? tabIsActive : false\n\n if (typeof tabHref === 'function') {\n href = tabHref({\n apiURL,\n collection: collectionConfig,\n global: globalConfig,\n routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const meetsCondition =\n !condition ||\n (condition && Boolean(condition({ collectionConfig, config, globalConfig, permissions })))\n\n if (meetsCondition) {\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={routes.admin}\n ariaLabel={labelToRender}\n baseClass={baseClass}\n href={href}\n isActive={isActive}\n isCollection={!!collectionConfig && !globalConfig}\n newTab={newTab}\n >\n <span className={`${baseClass}__label`}>\n {labelToRender}\n {Pill || Pill_Component ? (\n <Fragment>\n &nbsp;\n {RenderServerComponent({\n Component: Pill,\n Fallback: Pill_Component,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n payload,\n permissions,\n } satisfies ServerProps,\n })}\n </Fragment>\n ) : null}\n </span>\n </DocumentTabLink>\n )\n }\n\n return null\n}\n"],"mappings":";AAGA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AAEzB,SAASC,eAAe,QAAQ;AAGhC,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,MAAMC,WAAA,GAERC,KAAA;EACH,MAAM;IACJC,MAAM;IACNC,gBAAgB;IAChBC,SAAS;IACTC,YAAY;IACZC,IAAA,EAAMC,OAAO;IACbC,IAAI;IACJC,QAAA,EAAUC,WAAW;IACrBC,KAAK;IACLC,MAAM;IACNC,OAAO;IACPC,WAAW;IACXC,IAAI;IACJC;EAAc,CACf,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAM,CAAE,GAAGJ,OAAA;EACnB,MAAM;IAAEK;EAAM,CAAE,GAAGD,MAAA;EAEnB,IAAIX,IAAA,GAAO,OAAOC,OAAA,KAAY,WAAWA,OAAA,GAAU;EACnD,IAAIE,QAAA,GAAW,OAAOC,WAAA,KAAgB,YAAYA,WAAA,GAAc;EAEhE,IAAI,OAAOH,OAAA,KAAY,YAAY;IACjCD,IAAA,GAAOC,OAAA,CAAQ;MACbL,MAAA;MACAiB,UAAA,EAAYhB,gBAAA;MACZiB,MAAA,EAAQf,YAAA;MACRa;IACF;EACF;EAEA,IAAI,OAAOR,WAAA,KAAgB,YAAY;IACrCD,QAAA,GAAWC,WAAA,CAAY;MACrBJ;IACF;EACF;EAEA,MAAMe,cAAA,GACJ,CAACjB,SAAA,IACAA,SAAA,IAAakB,OAAA,CAAQlB,SAAA,CAAU;IAAED,gBAAA;IAAkBc,MAAA;IAAQZ,YAAA;IAAcS;EAAY;EAExF,IAAIO,cAAA,EAAgB;IAClB,MAAME,aAAA,GACJ,OAAOZ,KAAA,KAAU,aACbA,KAAA,CAAM;MACJa,CAAA,EAAGhB,IAAA,CAAKgB;IACV,KACAb,KAAA;IAEN,oBACEc,IAAA,CAAC3B,eAAA;MACC4B,UAAA,EAAYR,MAAA,CAAOS,KAAK;MACxBC,SAAA,EAAWL,aAAA;MACXxB,SAAA,EAAWA,SAAA;MACXO,IAAA,EAAMA,IAAA;MACNG,QAAA,EAAUA,QAAA;MACVoB,YAAA,EAAc,CAAC,CAAC1B,gBAAA,IAAoB,CAACE,YAAA;MACrCO,MAAA,EAAQA,MAAA;gBAER,aAAAkB,KAAA,CAAC;QAAKC,SAAA,EAAW,GAAGhC,SAAA,SAAkB;mBACnCwB,aAAA,EACAR,IAAA,IAAQC,cAAA,gBACPc,KAAA,CAACjC,QAAA;qBAAS,KAEPD,qBAAA,CAAsB;YACrBoC,SAAA,EAAWjB,IAAA;YACXkB,QAAA,EAAUjB,cAAA;YACVkB,SAAA,EAAWrB,OAAA,CAAQqB,SAAS;YAC5BC,WAAA,EAAa;cACX3B,IAAA;cACAK,OAAA;cACAC;YACF;UACF;aAEA;;;EAIZ;EAEA,OAAO;AACT","ignoreList":[]}
@@ -1,26 +1,76 @@
1
+ @import '../../../../scss/styles.scss';
2
+
1
3
  @layer payload-default {
2
4
  .doc-tab {
3
- display: flex;
4
- justify-content: center;
5
- align-items: center;
6
- white-space: nowrap;
5
+ @extend %h5;
6
+ position: relative;
7
+
8
+ &__link {
9
+ text-decoration: none;
10
+ display: flex;
11
+ justify-content: center;
12
+ align-items: center;
13
+ white-space: nowrap;
14
+
15
+ // Use a pseudo element for the accessability so that it doesn't take up DOM space
16
+ // Also because the parent element has `overflow: hidden` which would clip an outline
17
+ &:focus-visible::after {
18
+ content: '';
19
+ border: var(--accessibility-outline);
20
+ position: absolute;
21
+ top: 0;
22
+ right: 0;
23
+ bottom: 0;
24
+ left: 0;
25
+ pointer-events: none;
26
+ }
27
+ }
28
+
29
+ &:focus:not(:focus-visible) {
30
+ opacity: 1;
31
+ }
32
+
33
+ &::before {
34
+ content: '';
35
+ display: block;
36
+ position: absolute;
37
+ width: 100%;
38
+ height: 100%;
39
+ border-radius: var(--style-radius-s);
40
+ background-color: var(--theme-elevation-50);
41
+ opacity: 0;
42
+ }
7
43
 
8
44
  &:hover {
9
- .pill-version-count {
45
+ &::before {
46
+ opacity: 1;
47
+ }
48
+
49
+ .doc-tab__count {
10
50
  background-color: var(--theme-elevation-150);
11
51
  }
12
52
  }
13
53
 
14
54
  &--active {
15
- .pill-version-count {
16
- background-color: var(--theme-elevation-250);
55
+ font-weight: 600;
56
+ &::before {
57
+ opacity: 1;
58
+ background-color: var(--theme-elevation-100);
17
59
  }
18
60
 
19
- &:hover {
20
- .pill-version-count {
61
+ .doc-tab {
62
+ &__count {
21
63
  background-color: var(--theme-elevation-250);
22
64
  }
23
65
  }
66
+
67
+ &:hover {
68
+ .doc-tab {
69
+ &__count {
70
+ background-color: var(--theme-elevation-250);
71
+ }
72
+ }
73
+ }
24
74
  }
25
75
 
26
76
  &__label {
@@ -30,7 +80,16 @@
30
80
  gap: 4px;
31
81
  width: 100%;
32
82
  height: 100%;
33
- line-height: calc(var(--base) * 1.2);
83
+ line-height: base(1.2);
84
+ padding: base(0.2) base(0.6);
85
+ }
86
+
87
+ &__count {
88
+ line-height: base(0.8);
89
+ min-width: base(0.8);
90
+ text-align: center;
91
+ background-color: var(--theme-elevation-100);
92
+ border-radius: var(--style-radius-s);
34
93
  }
35
94
  }
36
95
  }
@@ -1,4 +1,3 @@
1
1
  import React from 'react';
2
- import './index.scss';
3
2
  export declare const VersionsPill: React.FC;
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAQhC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAQhC,CAAA"}
@@ -4,7 +4,7 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import { useDocumentInfo } from '@payloadcms/ui';
6
6
  import React from 'react';
7
- const baseClass = 'pill-version-count';
7
+ import { baseClass } from '../../Tab/index.js';
8
8
  export const VersionsPill = () => {
9
9
  const $ = _c(2);
10
10
  const {
@@ -16,7 +16,7 @@ export const VersionsPill = () => {
16
16
  let t0;
17
17
  if ($[0] !== versionCount) {
18
18
  t0 = _jsx("span", {
19
- className: baseClass,
19
+ className: `${baseClass}__count`,
20
20
  children: versionCount
21
21
  });
22
22
  $[0] = versionCount;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useDocumentInfo","React","baseClass","VersionsPill","$","versionCount","t0","_jsx","className","children"],"sources":["../../../../../../src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx"],"sourcesContent":["'use client'\nimport { useDocumentInfo } from '@payloadcms/ui'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'pill-version-count'\n\nexport const VersionsPill: React.FC = () => {\n const { versionCount } = useDocumentInfo()\n\n if (!versionCount) {\n return null\n }\n\n return <span className={baseClass}>{versionCount}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,eAAe,QAAQ;AAChC,OAAOC,KAAA,MAAW;AAIlB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAAyBA,CAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACpC;IAAAM;EAAA,IAAyBL,eAAA;EAAA,KAEpBK,YAAA;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IAIEC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAAN,SAAA;MAAAO,QAAA,EAA4BJ;IAAA,C;;;;;;SAA7BC,E;CACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useDocumentInfo","React","baseClass","VersionsPill","$","versionCount","t0","_jsx","className","children"],"sources":["../../../../../../src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx"],"sourcesContent":["'use client'\nimport { useDocumentInfo } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { baseClass } from '../../Tab/index.js'\n\nexport const VersionsPill: React.FC = () => {\n const { versionCount } = useDocumentInfo()\n\n if (!versionCount) {\n return null\n }\n\n return <span className={`${baseClass}__count`}>{versionCount}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,eAAe,QAAQ;AAChC,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAE1B,OAAO,MAAMC,YAAA,GAAyBA,CAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACpC;IAAAM;EAAA,IAAyBL,eAAA;EAAA,KAEpBK,YAAA;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IAIEC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAgB,GAAAN,SAAA,SAAqB;MAAAO,QAAA,EAAGJ;IAAA,C;;;;;;SAAzCC,E;CACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;CAC/B,CAiFA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;CAC/B,CA4DA,CAAA"}