@payloadcms/next 4.0.0-internal.38b7f1d → 4.0.0-internal.c2b57ce

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 (237) hide show
  1. package/dist/adapters/router.d.ts +5 -0
  2. package/dist/adapters/router.d.ts.map +1 -0
  3. package/dist/adapters/router.js +53 -0
  4. package/dist/adapters/router.js.map +1 -0
  5. package/dist/adapters/server.d.ts +7 -0
  6. package/dist/adapters/server.d.ts.map +1 -0
  7. package/dist/adapters/server.js +39 -0
  8. package/dist/adapters/server.js.map +1 -0
  9. package/dist/cjs/withPayload.cjs +12 -14
  10. package/dist/cjs/withPayload.cjs.map +2 -2
  11. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -1
  12. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +47 -0
  14. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  17. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/index.css +54 -0
  19. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  21. package/dist/elements/DocumentHeader/Tabs/index.js +1 -0
  22. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.css +11 -0
  24. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +1 -1
  25. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  27. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  28. package/dist/elements/DocumentHeader/index.css +38 -0
  29. package/dist/elements/DocumentHeader/index.d.ts +1 -1
  30. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentHeader/index.js +9 -12
  32. package/dist/elements/DocumentHeader/index.js.map +1 -1
  33. package/dist/elements/Nav/NavSidebarToggle/index.d.ts +8 -0
  34. package/dist/elements/Nav/NavSidebarToggle/index.d.ts.map +1 -0
  35. package/dist/elements/Nav/{NavHamburger → NavSidebarToggle}/index.js +3 -3
  36. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -0
  37. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  38. package/dist/elements/Nav/NavWrapper/index.js +21 -24
  39. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  40. package/dist/elements/Nav/SidebarTabs/index.client.js +1 -1
  41. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  42. package/dist/elements/Nav/SidebarTabs/index.css +1 -1
  43. package/dist/elements/Nav/index.css +1 -24
  44. package/dist/elements/Nav/index.d.ts.map +1 -1
  45. package/dist/elements/Nav/index.js +2 -10
  46. package/dist/elements/Nav/index.js.map +1 -1
  47. package/dist/exports/client.d.ts +1 -1
  48. package/dist/exports/client.d.ts.map +1 -1
  49. package/dist/exports/client.js +1 -1
  50. package/dist/exports/client.js.map +1 -1
  51. package/dist/layouts/Root/index.d.ts.map +1 -1
  52. package/dist/layouts/Root/index.js +4 -0
  53. package/dist/layouts/Root/index.js.map +1 -1
  54. package/dist/prod/styles.css +1 -1
  55. package/dist/routes/graphql/handler.d.ts.map +1 -1
  56. package/dist/routes/graphql/playground.d.ts.map +1 -1
  57. package/dist/routes/rest/index.d.ts.map +1 -1
  58. package/dist/templates/Default/Wrapper/index.css +40 -0
  59. package/dist/templates/Default/Wrapper/index.d.ts +1 -1
  60. package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
  61. package/dist/templates/Default/Wrapper/index.js +16 -19
  62. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  63. package/dist/templates/Default/index.css +23 -0
  64. package/dist/templates/Default/index.d.ts +2 -2
  65. package/dist/templates/Default/index.d.ts.map +1 -1
  66. package/dist/templates/Default/index.js +5 -21
  67. package/dist/templates/Default/index.js.map +1 -1
  68. package/dist/templates/Minimal/index.css +25 -0
  69. package/dist/templates/Minimal/index.d.ts +1 -1
  70. package/dist/templates/Minimal/index.d.ts.map +1 -1
  71. package/dist/templates/Minimal/index.js.map +1 -1
  72. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  73. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  74. package/dist/utilities/getRequestHighContrast.d.ts.map +1 -1
  75. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  76. package/dist/utilities/getRouteWithoutAdmin.d.ts.map +1 -1
  77. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  78. package/dist/utilities/initReq.d.ts.map +1 -1
  79. package/dist/utilities/initReq.js +2 -0
  80. package/dist/utilities/initReq.js.map +1 -1
  81. package/dist/utilities/isCustomAdminView.d.ts.map +1 -1
  82. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  83. package/dist/utilities/meta.d.ts.map +1 -1
  84. package/dist/utilities/timestamp.d.ts.map +1 -1
  85. package/dist/views/API/RenderJSON/index.d.ts.map +1 -1
  86. package/dist/views/Account/index.d.ts.map +1 -1
  87. package/dist/views/Account/index.js +1 -0
  88. package/dist/views/Account/index.js.map +1 -1
  89. package/dist/views/CollectionTrash/metadata.d.ts.map +1 -1
  90. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  91. package/dist/views/CreateFirstUser/index.client.js +32 -25
  92. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  93. package/dist/views/CreateFirstUser/index.css +69 -0
  94. package/dist/views/CreateFirstUser/index.d.ts +1 -1
  95. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  96. package/dist/views/CreateFirstUser/index.js +9 -5
  97. package/dist/views/CreateFirstUser/index.js.map +1 -1
  98. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  99. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +69 -42
  100. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  101. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
  102. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +25 -22
  103. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  104. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  105. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -2
  106. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  107. package/dist/views/Dashboard/Default/ModularDashboard/index.css +299 -0
  108. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts +1 -1
  109. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  110. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  111. package/dist/views/Dashboard/Default/index.d.ts +0 -6
  112. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  113. package/dist/views/Dashboard/Default/index.js +3 -0
  114. package/dist/views/Dashboard/Default/index.js.map +1 -1
  115. package/dist/views/Dashboard/index.d.ts.map +1 -1
  116. package/dist/views/Dashboard/index.js +1 -0
  117. package/dist/views/Dashboard/index.js.map +1 -1
  118. package/dist/views/Document/getCustomDocumentViewByKey.d.ts.map +1 -1
  119. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  120. package/dist/views/Document/getDocPreferences.d.ts.map +1 -1
  121. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  122. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  123. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  124. package/dist/views/Document/getIsLocked.d.ts.map +1 -1
  125. package/dist/views/Document/getVersions.d.ts.map +1 -1
  126. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  127. package/dist/views/Document/handleServerFunction.js +1 -0
  128. package/dist/views/Document/handleServerFunction.js.map +1 -1
  129. package/dist/views/Document/index.d.ts.map +1 -1
  130. package/dist/views/Document/index.js +5 -0
  131. package/dist/views/Document/index.js.map +1 -1
  132. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  133. package/dist/views/Document/renderDocumentSlots.js +1 -0
  134. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  135. package/dist/views/List/createSerializableValue.d.ts.map +1 -1
  136. package/dist/views/List/extractRelationshipDisplayValue.d.ts.map +1 -1
  137. package/dist/views/List/extractValueOrRelationshipID.d.ts.map +1 -1
  138. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  139. package/dist/views/List/handleHierarchy.d.ts.map +1 -1
  140. package/dist/views/List/handleHierarchy.js +1 -0
  141. package/dist/views/List/handleHierarchy.js.map +1 -1
  142. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  143. package/dist/views/List/handleServerFunction.js +1 -0
  144. package/dist/views/List/handleServerFunction.js.map +1 -1
  145. package/dist/views/List/index.css +3 -0
  146. package/dist/views/List/index.d.ts +1 -0
  147. package/dist/views/List/index.d.ts.map +1 -1
  148. package/dist/views/List/index.js +7 -4
  149. package/dist/views/List/index.js.map +1 -1
  150. package/dist/views/List/metadata.d.ts.map +1 -1
  151. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  152. package/dist/views/List/renderListViewSlots.js +2 -1
  153. package/dist/views/List/renderListViewSlots.js.map +1 -1
  154. package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -1
  155. package/dist/views/List/transformColumnsToSelect.d.ts.map +1 -1
  156. package/dist/views/Login/LoginForm/index.css +51 -0
  157. package/dist/views/Login/LoginForm/index.d.ts +1 -1
  158. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  159. package/dist/views/Login/LoginForm/index.js +16 -10
  160. package/dist/views/Login/LoginForm/index.js.map +1 -1
  161. package/dist/views/Login/index.css +8 -0
  162. package/dist/views/Login/index.d.ts +1 -1
  163. package/dist/views/Login/index.d.ts.map +1 -1
  164. package/dist/views/Login/index.js +3 -0
  165. package/dist/views/Login/index.js.map +1 -1
  166. package/dist/views/NotFound/index.client.d.ts +2 -4
  167. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  168. package/dist/views/NotFound/index.client.js +25 -42
  169. package/dist/views/NotFound/index.client.js.map +1 -1
  170. package/dist/views/NotFound/index.css +47 -0
  171. package/dist/views/NotFound/index.d.ts.map +1 -1
  172. package/dist/views/NotFound/index.js +2 -3
  173. package/dist/views/NotFound/index.js.map +1 -1
  174. package/dist/views/NotFound/metadata.d.ts.map +1 -1
  175. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -1
  176. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  177. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  178. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  179. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  180. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  181. package/dist/views/Root/index.d.ts.map +1 -1
  182. package/dist/views/Root/index.js +1 -0
  183. package/dist/views/Root/index.js.map +1 -1
  184. package/dist/views/Root/isPathMatchingRoute.d.ts.map +1 -1
  185. package/dist/views/Root/metadata.d.ts.map +1 -1
  186. package/dist/views/Unauthorized/index.css +44 -0
  187. package/dist/views/Unauthorized/index.d.ts +1 -1
  188. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  189. package/dist/views/Unauthorized/index.js +12 -33
  190. package/dist/views/Unauthorized/index.js.map +1 -1
  191. package/dist/views/Verify/index.d.ts.map +1 -1
  192. package/dist/views/Verify/index.js +1 -0
  193. package/dist/views/Verify/index.js.map +1 -1
  194. package/dist/views/Version/Default/index.d.ts.map +1 -1
  195. package/dist/views/Version/Default/index.js +4 -4
  196. package/dist/views/Version/Default/index.js.map +1 -1
  197. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +1 -1
  198. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  199. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
  200. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  201. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  202. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  203. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  204. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +0 -1
  205. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  206. package/dist/views/Version/VersionPillLabel/VersionPillLabel.d.ts +1 -1
  207. package/dist/views/Version/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  208. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  209. package/dist/views/Version/VersionPillLabel/index.css +23 -0
  210. package/dist/views/Version/fetchVersions.d.ts.map +1 -1
  211. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  212. package/dist/views/Versions/buildColumns.js +18 -18
  213. package/dist/views/Versions/buildColumns.js.map +1 -1
  214. package/dist/views/Versions/cells/AutosaveCell/index.css +7 -0
  215. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +1 -1
  216. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  217. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  218. package/dist/views/Versions/index.client.d.ts.map +1 -1
  219. package/dist/views/Versions/index.client.js +7 -23
  220. package/dist/views/Versions/index.client.js.map +1 -1
  221. package/dist/views/Versions/index.css +85 -0
  222. package/dist/views/Versions/index.d.ts +1 -1
  223. package/dist/views/Versions/index.d.ts.map +1 -1
  224. package/dist/views/Versions/index.js +1 -1
  225. package/dist/views/Versions/index.js.map +1 -1
  226. package/dist/withPayload/withPayload.d.ts +1 -127
  227. package/dist/withPayload/withPayload.d.ts.map +1 -1
  228. package/dist/withPayload/withPayload.js +7 -7
  229. package/dist/withPayload/withPayload.js.map +1 -1
  230. package/package.json +8 -8
  231. package/dist/elements/Nav/NavHamburger/index.d.ts +0 -8
  232. package/dist/elements/Nav/NavHamburger/index.d.ts.map +0 -1
  233. package/dist/elements/Nav/NavHamburger/index.js.map +0 -1
  234. package/dist/templates/Default/NavHamburger/index.d.ts +0 -3
  235. package/dist/templates/Default/NavHamburger/index.d.ts.map +0 -1
  236. package/dist/templates/Default/NavHamburger/index.js +0 -25
  237. package/dist/templates/Default/NavHamburger/index.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const NextRouterAdapter: React.FC<{
3
+ children: React.ReactNode;
4
+ }>;
5
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/adapters/router.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAA;AAiCzB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA4BrE,CAAA"}
@@ -0,0 +1,53 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { RouterAdapterContext } from '@payloadcms/ui';
5
+ import NextLinkImport from 'next/link.js';
6
+ import { useParams as useNextParams, usePathname as useNextPathname, useRouter as useNextRouter, useSearchParams as useNextSearchParams } from 'next/navigation.js';
7
+ import React from 'react';
8
+ const NextLink = 'default' in NextLinkImport ? NextLinkImport.default : NextLinkImport;
9
+ const NextLinkAdapter = ({
10
+ children,
11
+ href,
12
+ prefetch,
13
+ ref,
14
+ replace,
15
+ scroll,
16
+ ...rest
17
+ }) => {
18
+ return /*#__PURE__*/_jsx(NextLink, {
19
+ href: href,
20
+ prefetch: prefetch,
21
+ ref: ref,
22
+ replace: replace,
23
+ scroll: scroll,
24
+ ...rest,
25
+ children: children
26
+ });
27
+ };
28
+ export const NextRouterAdapter = ({
29
+ children
30
+ }) => {
31
+ const nextRouter = useNextRouter();
32
+ const pathname = useNextPathname();
33
+ const searchParams = useNextSearchParams();
34
+ const params = useNextParams();
35
+ const router = React.useMemo(() => ({
36
+ back: nextRouter.back,
37
+ push: nextRouter.push,
38
+ refresh: nextRouter.refresh,
39
+ replace: nextRouter.replace
40
+ }), [nextRouter]);
41
+ const value = React.useMemo(() => ({
42
+ Link: NextLinkAdapter,
43
+ params: params,
44
+ pathname,
45
+ router,
46
+ searchParams
47
+ }), [params, pathname, router, searchParams]);
48
+ return /*#__PURE__*/_jsx(RouterAdapterContext, {
49
+ value: value,
50
+ children: children
51
+ });
52
+ };
53
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","names":["RouterAdapterContext","NextLinkImport","useParams","useNextParams","usePathname","useNextPathname","useRouter","useNextRouter","useSearchParams","useNextSearchParams","React","NextLink","default","NextLinkAdapter","children","href","prefetch","ref","replace","scroll","rest","_jsx","NextRouterAdapter","nextRouter","pathname","searchParams","params","router","useMemo","back","push","refresh","value","Link"],"sources":["../../src/adapters/router.tsx"],"sourcesContent":["'use client'\nimport type { RouterAdapterContextValue } from '@payloadcms/ui'\nimport type { LinkAdapterProps } from 'payload'\n\nimport { RouterAdapterContext } from '@payloadcms/ui'\nimport NextLinkImport from 'next/link.js'\nimport {\n useParams as useNextParams,\n usePathname as useNextPathname,\n useRouter as useNextRouter,\n useSearchParams as useNextSearchParams,\n} from 'next/navigation.js'\nimport React from 'react'\n\ntype LinkComponent = React.FC<\n {\n children?: React.ReactNode\n href: string\n prefetch?: boolean\n ref?: React.Ref<HTMLAnchorElement>\n replace?: boolean\n scroll?: boolean\n } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>\n>\n\nconst NextLink: LinkComponent = ('default' in NextLinkImport\n ? NextLinkImport.default\n : NextLinkImport) as unknown as LinkComponent\n\nconst NextLinkAdapter: React.FC<LinkAdapterProps> = ({\n children,\n href,\n prefetch,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n return (\n <NextLink href={href} prefetch={prefetch} ref={ref} replace={replace} scroll={scroll} {...rest}>\n {children}\n </NextLink>\n )\n}\n\nexport const NextRouterAdapter: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const nextRouter = useNextRouter()\n const pathname = useNextPathname()\n const searchParams = useNextSearchParams()\n const params = useNextParams()\n\n const router = React.useMemo<RouterAdapterContextValue['router']>(\n () => ({\n back: nextRouter.back,\n push: nextRouter.push,\n refresh: nextRouter.refresh,\n replace: nextRouter.replace,\n }),\n [nextRouter],\n )\n\n const value = React.useMemo<RouterAdapterContextValue>(\n () => ({\n Link: NextLinkAdapter,\n params: params as Record<string, string | string[]>,\n pathname,\n router,\n searchParams,\n }),\n [params, pathname, router, searchParams],\n )\n\n return <RouterAdapterContext value={value}>{children}</RouterAdapterContext>\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,oBAAoB,QAAQ;AACrC,OAAOC,cAAA,MAAoB;AAC3B,SACEC,SAAA,IAAaC,aAAa,EAC1BC,WAAA,IAAeC,eAAe,EAC9BC,SAAA,IAAaC,aAAa,EAC1BC,eAAA,IAAmBC,mBAAmB,QACjC;AACP,OAAOC,KAAA,MAAW;AAalB,MAAMC,QAAA,GAA2B,aAAaV,cAAA,GAC1CA,cAAA,CAAeW,OAAO,GACtBX,cAAA;AAEJ,MAAMY,eAAA,GAA8CA,CAAC;EACnDC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,GAAG;EACHC,OAAO;EACPC,MAAM;EACN,GAAGC;AAAA,CACJ;EACC,oBACEC,IAAA,CAACV,QAAA;IAASI,IAAA,EAAMA,IAAA;IAAMC,QAAA,EAAUA,QAAA;IAAUC,GAAA,EAAKA,GAAA;IAAKC,OAAA,EAASA,OAAA;IAASC,MAAA,EAAQA,MAAA;IAAS,GAAGC,IAAI;cAC3FN;;AAGP;AAEA,OAAO,MAAMQ,iBAAA,GAA6DA,CAAC;EAAER;AAAQ,CAAE;EACrF,MAAMS,UAAA,GAAahB,aAAA;EACnB,MAAMiB,QAAA,GAAWnB,eAAA;EACjB,MAAMoB,YAAA,GAAehB,mBAAA;EACrB,MAAMiB,MAAA,GAASvB,aAAA;EAEf,MAAMwB,MAAA,GAASjB,KAAA,CAAMkB,OAAO,CAC1B,OAAO;IACLC,IAAA,EAAMN,UAAA,CAAWM,IAAI;IACrBC,IAAA,EAAMP,UAAA,CAAWO,IAAI;IACrBC,OAAA,EAASR,UAAA,CAAWQ,OAAO;IAC3Bb,OAAA,EAASK,UAAA,CAAWL;EACtB,IACA,CAACK,UAAA,CAAW;EAGd,MAAMS,KAAA,GAAQtB,KAAA,CAAMkB,OAAO,CACzB,OAAO;IACLK,IAAA,EAAMpB,eAAA;IACNa,MAAA,EAAQA,MAAA;IACRF,QAAA;IACAG,MAAA;IACAF;EACF,IACA,CAACC,MAAA,EAAQF,QAAA,EAAUG,MAAA,EAAQF,YAAA,CAAa;EAG1C,oBAAOJ,IAAA,CAACrB,oBAAA;IAAqBgC,KAAA,EAAOA,KAAA;cAAQlB;;AAC9C","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { ServerAdapter } from 'payload';
2
+ /**
3
+ * Adapts Next.js server-side APIs to the framework-agnostic `ServerAdapter` interface.
4
+ * This way we can invoke these methods within our server components and plugins without importing Next.js modules directly.
5
+ */
6
+ export declare const nextServerAdapter: ServerAdapter;
7
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/adapters/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,SAAS,CAAA;AA0BzD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAY/B,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { cookies as getNextCookies, headers as getNextHeaders } from 'next/headers.js';
2
+ import { forbidden as nextForbidden, notFound as nextNotFound, permanentRedirect as nextPermanentRedirect, redirect as nextRedirect, unauthorized as nextUnauthorized } from 'next/navigation.js';
3
+ const toCookieStore = async () => {
4
+ const store = await getNextCookies();
5
+ return {
6
+ get: name => {
7
+ const cookie = store.get(name);
8
+ return cookie ? {
9
+ name: cookie.name,
10
+ value: cookie.value
11
+ } : undefined;
12
+ },
13
+ getAll: () => store.getAll().map(cookie => ({
14
+ name: cookie.name,
15
+ value: cookie.value
16
+ })),
17
+ set: (name, value, options) => {
18
+ store.set(name, value, options);
19
+ }
20
+ };
21
+ };
22
+ /**
23
+ * Adapts Next.js server-side APIs to the framework-agnostic `ServerAdapter` interface.
24
+ * This way we can invoke these methods within our server components and plugins without importing Next.js modules directly.
25
+ */
26
+ export const nextServerAdapter = {
27
+ forbidden: () => nextForbidden(),
28
+ getCookies: toCookieStore,
29
+ getHeaders: () => getNextHeaders(),
30
+ notFound: () => nextNotFound(),
31
+ permanentRedirect: path => nextPermanentRedirect(path),
32
+ redirect: path => nextRedirect(path),
33
+ setCookie: async (name, value, options) => {
34
+ const store = await getNextCookies();
35
+ store.set(name, value, options);
36
+ },
37
+ unauthorized: () => nextUnauthorized()
38
+ };
39
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","names":["cookies","getNextCookies","headers","getNextHeaders","forbidden","nextForbidden","notFound","nextNotFound","permanentRedirect","nextPermanentRedirect","redirect","nextRedirect","unauthorized","nextUnauthorized","toCookieStore","store","get","name","cookie","value","undefined","getAll","map","set","options","nextServerAdapter","getCookies","getHeaders","path","setCookie"],"sources":["../../src/adapters/server.ts"],"sourcesContent":["import type { CookieStore, ServerAdapter } from 'payload'\n\nimport { cookies as getNextCookies, headers as getNextHeaders } from 'next/headers.js'\nimport {\n forbidden as nextForbidden,\n notFound as nextNotFound,\n permanentRedirect as nextPermanentRedirect,\n redirect as nextRedirect,\n unauthorized as nextUnauthorized,\n} from 'next/navigation.js'\n\nconst toCookieStore = async (): Promise<CookieStore> => {\n const store = await getNextCookies()\n\n return {\n get: (name) => {\n const cookie = store.get(name)\n return cookie ? { name: cookie.name, value: cookie.value } : undefined\n },\n getAll: () => store.getAll().map((cookie) => ({ name: cookie.name, value: cookie.value })),\n set: (name, value, options) => {\n store.set(name, value, options)\n },\n }\n}\n\n/**\n * Adapts Next.js server-side APIs to the framework-agnostic `ServerAdapter` interface.\n * This way we can invoke these methods within our server components and plugins without importing Next.js modules directly.\n */\nexport const nextServerAdapter: ServerAdapter = {\n forbidden: () => nextForbidden(),\n getCookies: toCookieStore,\n getHeaders: () => getNextHeaders(),\n notFound: () => nextNotFound(),\n permanentRedirect: (path) => nextPermanentRedirect(path),\n redirect: (path) => nextRedirect(path),\n setCookie: async (name, value, options) => {\n const store = await getNextCookies()\n store.set(name, value, options)\n },\n unauthorized: () => nextUnauthorized(),\n}\n"],"mappings":"AAEA,SAASA,OAAA,IAAWC,cAAc,EAAEC,OAAA,IAAWC,cAAc,QAAQ;AACrE,SACEC,SAAA,IAAaC,aAAa,EAC1BC,QAAA,IAAYC,YAAY,EACxBC,iBAAA,IAAqBC,qBAAqB,EAC1CC,QAAA,IAAYC,YAAY,EACxBC,YAAA,IAAgBC,gBAAgB,QAC3B;AAEP,MAAMC,aAAA,GAAgB,MAAAA,CAAA;EACpB,MAAMC,KAAA,GAAQ,MAAMd,cAAA;EAEpB,OAAO;IACLe,GAAA,EAAMC,IAAA;MACJ,MAAMC,MAAA,GAASH,KAAA,CAAMC,GAAG,CAACC,IAAA;MACzB,OAAOC,MAAA,GAAS;QAAED,IAAA,EAAMC,MAAA,CAAOD,IAAI;QAAEE,KAAA,EAAOD,MAAA,CAAOC;MAAM,IAAIC,SAAA;IAC/D;IACAC,MAAA,EAAQA,CAAA,KAAMN,KAAA,CAAMM,MAAM,GAAGC,GAAG,CAAEJ,MAAA,KAAY;MAAED,IAAA,EAAMC,MAAA,CAAOD,IAAI;MAAEE,KAAA,EAAOD,MAAA,CAAOC;IAAM;IACvFI,GAAA,EAAKA,CAACN,IAAA,EAAME,KAAA,EAAOK,OAAA;MACjBT,KAAA,CAAMQ,GAAG,CAACN,IAAA,EAAME,KAAA,EAAOK,OAAA;IACzB;EACF;AACF;AAEA;;;;AAIA,OAAO,MAAMC,iBAAA,GAAmC;EAC9CrB,SAAA,EAAWA,CAAA,KAAMC,aAAA;EACjBqB,UAAA,EAAYZ,aAAA;EACZa,UAAA,EAAYA,CAAA,KAAMxB,cAAA;EAClBG,QAAA,EAAUA,CAAA,KAAMC,YAAA;EAChBC,iBAAA,EAAoBoB,IAAA,IAASnB,qBAAA,CAAsBmB,IAAA;EACnDlB,QAAA,EAAWkB,IAAA,IAASjB,YAAA,CAAaiB,IAAA;EACjCC,SAAA,EAAW,MAAAA,CAAOZ,IAAA,EAAME,KAAA,EAAOK,OAAA;IAC7B,MAAMT,KAAA,GAAQ,MAAMd,cAAA;IACpBc,KAAA,CAAMQ,GAAG,CAACN,IAAA,EAAME,KAAA,EAAOK,OAAA;EACzB;EACAZ,YAAA,EAAcA,CAAA,KAAMC,gBAAA;AACtB","ignoreList":[]}
@@ -114,6 +114,17 @@ var withPayload = (nextConfig = {}, options = {}) => {
114
114
  // WHY: without externalizing graphql, a graphql version error will be thrown
115
115
  // during runtime ("Ensure that there is only one instance of \"graphql\" in the node_modules\ndirectory.")
116
116
  "graphql",
117
+ "drizzle-kit",
118
+ "drizzle-kit/api",
119
+ "sharp",
120
+ "libsql",
121
+ "require-in-the-middle",
122
+ "json-schema-to-typescript",
123
+ // Prevents turbopack build errors by the thread-stream package which is installed by pino
124
+ "pino",
125
+ // file-type v22 uses `import(specifier)` with a non-literal specifier, which Turbopack rejects
126
+ // with "Cannot find module as expression is too dynamic"
127
+ "file-type",
117
128
  ...process.env.NODE_ENV === "development" && options.devBundleServerPackages !== true ? (
118
129
  /**
119
130
  * Unless explicitly disabled by the user, by passing `devBundleServerPackages: true` to withPayload, we
@@ -212,20 +223,7 @@ var withPayload = (nextConfig = {}, options = {}) => {
212
223
  process.env.NEXT_BASE_PATH = nextConfig.basePath;
213
224
  baseConfig.env.NEXT_BASE_PATH = nextConfig.basePath;
214
225
  }
215
- return {
216
- ...baseConfig,
217
- serverExternalPackages: [
218
- ...baseConfig.serverExternalPackages || [],
219
- "drizzle-kit",
220
- "drizzle-kit/api",
221
- "sharp",
222
- "libsql",
223
- "require-in-the-middle",
224
- "json-schema-to-typescript",
225
- // Prevents turbopack build errors by the thread-stream package which is installed by pino
226
- "pino"
227
- ]
228
- };
226
+ return baseConfig;
229
227
  };
230
228
  var withPayload_default = withPayload;
231
229
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/withPayload/withPayload.js"],
4
- "sourcesContent": ["/**\n * These files must remain as plain JavaScript (.js) rather than TypeScript (.ts) because they are\n * imported directly in next.config.mjs files. Since next.config files run before the build process,\n * TypeScript compilation is not available. This ensures compatibility with all templates and\n * user projects regardless of their TypeScript setup.\n */\n\nconst poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n}\n\n/**\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 false\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 (nextConfig.cacheComponents) {\n env.PAYLOAD_CACHE_COMPONENTS_ENABLED = 'true'\n }\n\n const consoleWarn = console.warn\n\n const sassWarningTexts = [\n // This warning is a lie - without silencing import deprecation warnings, sass will spam the console with deprecation warnings\n 'Future import deprecation is not yet active, so silencing it is unnecessary',\n // Sometimes happens despite silenceDeprecations\n 'The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0',\n ]\n console.warn = (...args) => {\n if (\n (typeof args[1] === 'string' && sassWarningTexts.some((text) => args[1].includes(text))) ||\n (typeof args[0] === 'string' && sassWarningTexts.some((text) => args[0].includes(text)))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n\n /** @type {import('next').NextConfig} */\n const baseConfig = {\n ...nextConfig,\n env,\n experimental: {\n ...(nextConfig.experimental || {}),\n // Server fast refresh breaks HMR\n turbopackServerFastRefresh: false,\n },\n sassOptions: {\n ...(nextConfig.sassOptions || {}),\n /**\n * This prevents scss warning spam during pnpm dev that looks like this:\n * ⚠ ./test/admin/components/views/CustomMinimal/index.scss\n * Issue while running loader\n * SassWarning: Deprecation Warning on line 8, column 8 of file:///Users/alessio/Documents/GitHub/ payload/packages/ui/src/scss/styles.scss:8:8:\n * Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.\n *\n * More info and automated migrator: https://sass-lang.com/d/import\n *\n * 8 | @import 'queries';\n *\n *\n * packages/ui/src/scss/styles.scss 9:9 @import\n * test/admin/components/views/CustomMinimal/index.scss 1:9 root stylesheet\n *\n * @todo: update all outdated scss imports to use @use instead of @import. Then, we can remove this.\n */\n silenceDeprecations: [...(nextConfig.sassOptions?.silenceDeprecations || []), 'import'],\n },\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 turbopack: {\n ...(nextConfig.turbopack || {}),\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 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 source: '/:path*',\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig.serverExternalPackages || []),\n // WHY: without externalizing graphql, a graphql version error will be thrown\n // during runtime (\"Ensure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory.\")\n 'graphql',\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages !== true\n ? /**\n * Unless explicitly disabled by the user, by passing `devBundleServerPackages: true` to withPayload, we\n * do not bundle server-only packages during dev for two reasons:\n *\n * 1. Performance: Fewer files to compile means faster compilation speeds.\n * 2. Turbopack support: Webpack's externals are not supported by Turbopack.\n *\n * Regarding Turbopack support: Unlike webpack.externals, we cannot use serverExternalPackages to\n * externalized packages that are not resolvable from the project root. So including a package like\n * \"drizzle-kit\" in here would do nothing - Next.js will ignore the rule and still bundle the package -\n * because it detects that the package is not resolvable from the project root (= not directly installed\n * by the user in their own package.json).\n *\n * Instead, we can use serverExternalPackages for the entry-point packages that *are* installed directly\n * by the user (e.g. db-postgres, which then installs drizzle-kit as a dependency).\n *\n *\n *\n * We should only do this during development, not build, because externalizing these packages can hurt\n * the bundle size. Not only does it disable tree-shaking, it also risks installing duplicate copies of the\n * same package.\n *\n * Example:\n * - @payloadcms/richtext-lexical (in bundle) -> installs qs-esm (bundled because of importer)\n * - payload (not in bundle, external) -> installs qs-esm (external because of importer)\n * Result: we have two copies of qs-esm installed - one in the bundle, and one in node_modules.\n *\n * During development, these bundle size difference do not matter much, and development speed /\n * turbopack support are more important.\n */\n [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/db-d1-sqlite',\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 // see: https://github.com/vercel/next.js/discussions/76991\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 /**\n * See the explanation in the serverExternalPackages section above.\n * We need to force Webpack to emit require() calls for these packages, even though they are not\n * resolvable from the project root. You would expect this to error during runtime, but Next.js seems to be able to require these just fine.\n *\n * This is the only way to get Webpack Build to work, without the bundle size caveats of externalizing the\n * entry point packages, as explained in the serverExternalPackages section above.\n */\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n 'json-schema-to-typescript',\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 /*\n * This fixes the following warning when running next build with webpack (tested on Next.js 16.0.3 with Payload 3.64.0):\n *\n * ⚠ Compiled with warnings in 8.7s\n *\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/deps.js\n * Module not found: Can't resolve 'aws4' in '/Users/alessio/Documents/temp/next16p/node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib'\n *\n * Import trace for requested module:\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/deps.js\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.js\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/index.js\n * ./node_modules/.pnpm/mongoose@8.15.1/node_modules/mongoose/lib/index.js\n * ./node_modules/.pnpm/mongoose@8.15.1/node_modules/mongoose/index.js\n * ./node_modules/.pnpm/@payloadcms+db-mongodb@3.64.0_payload@3.64.0_graphql@16.12.0_typescript@5.7.3_/node_modules/@payloadcms/db-mongodb/dist/index.js\n * ./src/payload.config.ts\n * ./src/app/my-route/route.ts\n *\n **/\n aws4: false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n process.env.NEXT_BASE_PATH = nextConfig.basePath\n baseConfig.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return {\n ...baseConfig,\n serverExternalPackages: [\n ...(baseConfig.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n 'json-schema-to-typescript',\n // Prevents turbopack build errors by the thread-stream package which is installed by pino\n 'pino',\n ],\n }\n}\n\nexport default withPayload\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAOA,IAAMA,kBAAkB;EACtBC,KAAK;EACLC,OAAO;AACT;AAOO,IAAMC,cAAcA,CAACC,aAAa,CAAC,GAAGC,UAAU,CAAC,MAAC;AACvD,QAAMC,MAAMF,WAAWE,OAAO,CAAC;AAE/B,MAAIF,WAAWG,cAAcC,YAAYC,SAAS;AAChDC,YAAQC,KACN,gXAAA;AAEFL,QAAIM,0CAA0C;EAChD;AAEA,MAAIR,WAAWS,iBAAiB;AAC9BP,QAAIQ,mCAAmC;EACzC;AAEA,QAAMC,cAAcL,QAAQC;AAE5B,QAAMK,mBAAmB;;IAEvB;;IAEA;EAAA;AAEFN,UAAQC,OAAO,IAAIM,SAAA;AACjB,QACE,OAAQA,KAAK,CAAA,MAAO,YAAYD,iBAAiBE,KAAMC,UAASF,KAAK,CAAA,EAAGG,SAASD,IAAA,CAAA,KAChF,OAAOF,KAAK,CAAA,MAAO,YAAYD,iBAAiBE,KAAMC,UAASF,KAAK,CAAA,EAAGG,SAASD,IAAA,CAAA,GACjF;AACA;IACF;AAEAJ,gBAAA,GAAeE,IAAA;EACjB;AAGA,QAAMI,aAAa;IACjB,GAAGjB;IACHE;IACAC,cAAc;MACZ,GAAIH,WAAWG,gBAAgB,CAAC;;MAEhCe,4BAA4B;IAC9B;IACAC,aAAa;MACX,GAAInB,WAAWmB,eAAe,CAAC;;;;;;;;;;;;;;;;;;MAkB/BC,qBAAqB,CAAA,GAAKpB,WAAWmB,aAAaC,uBAAuB,CAAA,GAAK,QAAA;IAChF;IACAC,2BAA2B;MACzB,GAAIrB,WAAWqB,6BAA6B,CAAC;MAC7C,QAAQ,CAAA,GACFrB,WAAWqB,4BAA4B,MAAA,KAAW,CAAA,GACtD,eACA,iBAAA;IAEJ;IACAC,2BAA2B;MACzB,GAAItB,WAAWsB,6BAA6B,CAAC;MAC7C,QAAQ,CAAA,GAAKtB,WAAWsB,4BAA4B,MAAA,KAAW,CAAA,GAAK,gBAAA;IACtE;IACAC,WAAW;MACT,GAAIvB,WAAWuB,aAAa,CAAC;IAC/B;;IAEA,GAAIvB,WAAWJ,oBAAoB,QAAQ;MAAEA,iBAAiB;IAAM,IAAI,CAAC;IACzE4B,SAAS,YAAA;AACP,YAAMC,oBAAoB,aAAazB,aAAa,MAAMA,WAAWwB,QAAO,IAAK,CAAA;AAEjF,aAAO,CAAA,GACDC,qBAAqB,CAAA,GACzB;QACED,SAAS,CACP;UACE3B,KAAK;UACLC,OAAO;QACT,GACA;UACED,KAAK;UACLC,OAAO;QACT,GACA;UACED,KAAK;UACLC,OAAO;QACT,GAAA,GACIE,WAAWJ,oBAAoB,QAAQ,CAACA,eAAA,IAAmB,CAAA,CAAE;QAEnE8B,QAAQ;MACV,CAAA;IAEJ;IACAC,wBAAwB;MAAA,GAClB3B,WAAW2B,0BAA0B,CAAA;;;MAGzC;MAAA,GACIC,QAAQ1B,IAAI2B,aAAa,iBAAiB5B,QAAQ6B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+B9E,CACE,WACA,0BACA,2BACA,yBACA,kCACA,4BACA,uBACA,gCACA,4BACA,uBACA,6BACA,8BAAA;UAaF,CAAA;IAAE;IAERC,SAASA,CAACC,eAAeC,mBAAA;AACvB,YAAMC,wBACJ,OAAOlC,WAAW+B,YAAY,aAC1B/B,WAAW+B,QAAQC,eAAeC,cAAA,IAClCD;AAEN,aAAO;QACL,GAAGE;QACHC,WAAW;UAAA,GACLD,uBAAuBC,aAAa,CAAA;;;;;;;;;UASxC;UACA;UACA;UACA;UACA;UACA;QAAA;QAEFC,SAAS;UAAA,GACHF,uBAAuBE,WAAW,CAAA;;UAEtC,IAAIH,eAAeF,QAAQM,aAAa;YACtCC,gBAAgB;UAClB,CAAA;QAAA;QAEFC,SAAS;UACP,GAAIL,uBAAuBK,WAAW,CAAC;UACvCC,OAAO;YACL,GAAIN,uBAAuBK,SAASC,SAAS,CAAC;UAChD;UACAC,UAAU;YACR,GAAIP,uBAAuBK,SAASE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;YAoBjDC,MAAM;UACR;QACF;MACF;IACF;EACF;AAEA,MAAI1C,WAAW2C,UAAU;AACvBf,YAAQ1B,IAAI0C,iBAAiB5C,WAAW2C;AACxC1B,eAAWf,IAAI0C,iBAAiB5C,WAAW2C;EAC7C;AAEA,SAAO;IACL,GAAG1B;IACHU,wBAAwB;MAAA,GAClBV,WAAWU,0BAA0B,CAAA;MACzC;MACA;MACA;MACA;MACA;MACA;;MAEA;IAAA;EAEJ;AACF;AAEA,IAAA,sBAAe5B;",
4
+ "sourcesContent": ["/**\n * These files must remain as plain JavaScript (.js) rather than TypeScript (.ts) because they are\n * imported directly in next.config.mjs files. Since next.config files run before the build process,\n * TypeScript compilation is not available. This ensures compatibility with all templates and\n * user projects regardless of their TypeScript setup.\n */\n\nconst poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n}\n\n/**\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 false\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 (nextConfig.cacheComponents) {\n env.PAYLOAD_CACHE_COMPONENTS_ENABLED = 'true'\n }\n\n const consoleWarn = console.warn\n\n const sassWarningTexts = [\n // This warning is a lie - without silencing import deprecation warnings, sass will spam the console with deprecation warnings\n 'Future import deprecation is not yet active, so silencing it is unnecessary',\n // Sometimes happens despite silenceDeprecations\n 'The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0',\n ]\n console.warn = (...args) => {\n if (\n (typeof args[1] === 'string' && sassWarningTexts.some((text) => args[1].includes(text))) ||\n (typeof args[0] === 'string' && sassWarningTexts.some((text) => args[0].includes(text)))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n\n /** @type {import('next').NextConfig} */\n const baseConfig = {\n ...nextConfig,\n env,\n experimental: {\n ...(nextConfig.experimental || {}),\n // Server fast refresh breaks HMR\n turbopackServerFastRefresh: false,\n },\n sassOptions: {\n ...(nextConfig.sassOptions || {}),\n /**\n * This prevents scss warning spam during pnpm dev that looks like this:\n * ⚠ ./test/admin/components/views/CustomMinimal/index.scss\n * Issue while running loader\n * SassWarning: Deprecation Warning on line 8, column 8 of file:///Users/alessio/Documents/GitHub/ payload/packages/ui/src/scss/styles.scss:8:8:\n * Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.\n *\n * More info and automated migrator: https://sass-lang.com/d/import\n *\n * 8 | @import 'queries';\n *\n *\n * packages/ui/src/scss/styles.scss 9:9 @import\n * test/admin/components/views/CustomMinimal/index.scss 1:9 root stylesheet\n *\n * @todo: update all outdated scss imports to use @use instead of @import. Then, we can remove this.\n */\n silenceDeprecations: [...(nextConfig.sassOptions?.silenceDeprecations || []), 'import'],\n },\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 turbopack: {\n ...(nextConfig.turbopack || {}),\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 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 source: '/:path*',\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig.serverExternalPackages || []),\n // WHY: without externalizing graphql, a graphql version error will be thrown\n // during runtime (\"Ensure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory.\")\n 'graphql',\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n 'json-schema-to-typescript',\n // Prevents turbopack build errors by the thread-stream package which is installed by pino\n 'pino',\n // file-type v22 uses `import(specifier)` with a non-literal specifier, which Turbopack rejects\n // with \"Cannot find module as expression is too dynamic\"\n 'file-type',\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages !== true\n ? /**\n * Unless explicitly disabled by the user, by passing `devBundleServerPackages: true` to withPayload, we\n * do not bundle server-only packages during dev for two reasons:\n *\n * 1. Performance: Fewer files to compile means faster compilation speeds.\n * 2. Turbopack support: Webpack's externals are not supported by Turbopack.\n *\n * Regarding Turbopack support: Unlike webpack.externals, we cannot use serverExternalPackages to\n * externalized packages that are not resolvable from the project root. So including a package like\n * \"drizzle-kit\" in here would do nothing - Next.js will ignore the rule and still bundle the package -\n * because it detects that the package is not resolvable from the project root (= not directly installed\n * by the user in their own package.json).\n *\n * Instead, we can use serverExternalPackages for the entry-point packages that *are* installed directly\n * by the user (e.g. db-postgres, which then installs drizzle-kit as a dependency).\n *\n *\n *\n * We should only do this during development, not build, because externalizing these packages can hurt\n * the bundle size. Not only does it disable tree-shaking, it also risks installing duplicate copies of the\n * same package.\n *\n * Example:\n * - @payloadcms/richtext-lexical (in bundle) -> installs qs-esm (bundled because of importer)\n * - payload (not in bundle, external) -> installs qs-esm (external because of importer)\n * Result: we have two copies of qs-esm installed - one in the bundle, and one in node_modules.\n *\n * During development, these bundle size difference do not matter much, and development speed /\n * turbopack support are more important.\n */\n [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/db-d1-sqlite',\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 // see: https://github.com/vercel/next.js/discussions/76991\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 /**\n * See the explanation in the serverExternalPackages section above.\n * We need to force Webpack to emit require() calls for these packages, even though they are not\n * resolvable from the project root. You would expect this to error during runtime, but Next.js seems to be able to require these just fine.\n *\n * This is the only way to get Webpack Build to work, without the bundle size caveats of externalizing the\n * entry point packages, as explained in the serverExternalPackages section above.\n */\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n 'json-schema-to-typescript',\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 /*\n * This fixes the following warning when running next build with webpack (tested on Next.js 16.0.3 with Payload 3.64.0):\n *\n * ⚠ Compiled with warnings in 8.7s\n *\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/deps.js\n * Module not found: Can't resolve 'aws4' in '/Users/alessio/Documents/temp/next16p/node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib'\n *\n * Import trace for requested module:\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/deps.js\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.js\n * ./node_modules/.pnpm/mongodb@6.16.0/node_modules/mongodb/lib/index.js\n * ./node_modules/.pnpm/mongoose@8.15.1/node_modules/mongoose/lib/index.js\n * ./node_modules/.pnpm/mongoose@8.15.1/node_modules/mongoose/index.js\n * ./node_modules/.pnpm/@payloadcms+db-mongodb@3.64.0_payload@3.64.0_graphql@16.12.0_typescript@5.7.3_/node_modules/@payloadcms/db-mongodb/dist/index.js\n * ./src/payload.config.ts\n * ./src/app/my-route/route.ts\n *\n **/\n aws4: false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n process.env.NEXT_BASE_PATH = nextConfig.basePath\n baseConfig.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return baseConfig\n}\n\nexport default withPayload\n"],
5
+ "mappings": "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",
6
6
  "names": ["poweredByHeader", "key", "value", "withPayload", "nextConfig", "options", "env", "experimental", "staleTimes", "dynamic", "console", "warn", "NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH", "cacheComponents", "PAYLOAD_CACHE_COMPONENTS_ENABLED", "consoleWarn", "sassWarningTexts", "args", "some", "text", "includes", "baseConfig", "turbopackServerFastRefresh", "sassOptions", "silenceDeprecations", "outputFileTracingExcludes", "outputFileTracingIncludes", "turbopack", "headers", "headersFromConfig", "source", "serverExternalPackages", "process", "NODE_ENV", "devBundleServerPackages", "webpack", "webpackConfig", "webpackOptions", "incomingWebpackConfig", "externals", "plugins", "IgnorePlugin", "resourceRegExp", "resolve", "alias", "fallback", "aws4", "basePath", "NEXT_BASE_PATH"]
7
7
  }
@@ -53,7 +53,7 @@ export const DocumentTabLink = t0 => {
53
53
  const isActive = href === docPath && pathname === docPath || href !== docPath && pathname.startsWith(href) || isActiveFromProps;
54
54
  t3 = _jsx(Button, {
55
55
  "aria-label": ariaLabel,
56
- buttonStyle: "tab",
56
+ buttonStyle: isActive ? "pill" : "ghost",
57
57
  className: [baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(" "),
58
58
  disabled: isActive,
59
59
  el: !isActive || href !== pathname ? "link" : "div",
@@ -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","segmentFour","segments","isCollection","t1","t2","path","docPath","hrefWithLocale","t3","startsWith","_jsx","buttonStyle","className","filter","Boolean","join","disabled","el","margin","size","to","undefined"],"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) {\n if (segmentThree === 'trash' && segmentFour) {\n docPath += `/trash/${segmentFour}`\n } else if (segmentThree) {\n docPath += `/${segmentThree}`\n }\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 margin={false}\n newTab={newTab}\n size=\"medium\"\n to={!isActive || href !== pathname ? hrefWithLocale : undefined}\n >\n {children}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,EAAEC,WAAW,EAAEC,eAAe,QAAQ;AACxD,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,OAAO,MAAMC,eAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,IAAA,EAAAC,aAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC;EAAA,IAAAV,EAQL;EACC,MAAAW,QAAA,GAAiBhB,WAAA;EACjB,MAAAiB,MAAA,GAAelB,SAAA;EAEf,MAAAmB,YAAA,GAAqBjB,eAAA;EAErB,MAAAkB,MAAA,GAAeD,YAAA,CAAAE,GAAA,CAAiB;EAEhC,OAAAC,UAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,WAAA,IAAqEP,MAAA,CAAAQ,QAAA,MAAqB;EAC1F,MAAAC,YAAA,GAAqBL,UAAA,KAAe;EAI5B,MAAAM,EAAA,OAAID,YAAA,GAAe,gBAAgB,aAAaJ,UAAA,EAAY;EAAA,IAAAM,EAAA;EAAA,IAAAtB,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAqB,EAAA;IAFtDC,EAAA,GAAA1B,cAAA;MAAAK,UAAA;MAAAsB,IAAA,EAENF;IAA4D,CACpE;IAAArB,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAqB,EAAA;IAAArB,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAHA,IAAAwB,OAAA,GAAcF,EAGd;EAAA,IAEIF,YAAA;IAAA,IACEH,YAAA,KAAiB,WAAWC,WAAA;MAC9BM,OAAA,GAAAA,OAAA,GAAW,UAAUN,WAAA,EAAa;IAAA;MAAA,IACzBD,YAAA;QACTO,OAAA,GAAAA,OAAA,GAAW,IAAIP,YAAA,EAAc;MAAA;IAAA;EAAA;EAIjC,MAAAZ,IAAA,GAAa,GAAGmB,OAAA,GAAUlB,aAAA,EAAe;EAEzC,MAAAmB,cAAA,GAAuB,GAAGpB,IAAA,GAAOQ,MAAA,GAAS,WAAWA,MAAA,EAAQ,GAAG,IAAI;EAAA,IAAAa,EAAA;EAAA,IAAA1B,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAwB,OAAA,IAAAxB,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAyB,cAAA,IAAAzB,CAAA,QAAAQ,iBAAA,IAAAR,CAAA,SAAAS,MAAA,IAAAT,CAAA,SAAAU,QAAA;IAEpE,MAAAH,QAAA,GACEF,IAAC,KAASmB,OAAA,IAAWd,QAAA,KAAac,OAAA,IACjCnB,IAAA,KAASmB,OAAA,IAAWd,QAAA,CAAAiB,UAAA,CAAoBtB,IAAA,KACzCG,iBAAA;IAGAkB,EAAA,GAAAE,IAAA,CAAApC,MAAA;MAAA,cACcU,SAAA;MAAA2B,WAAA,EACA;MAAAC,SAAA,EACD,CAAC3B,SAAA,EAAWI,QAAA,IAAY,GAAGJ,SAAA,UAAmB,EAAA4B,MAAA,CAAAC,OAAS,EAAAC,IAAA,CAAc;MAAAC,QAAA,EACtE3B,QAAA;MAAA4B,EAAA,EACN,CAAC5B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAW,SAAS;MAAA0B,MAAA;MAAA3B,MAAA;MAAA4B,IAAA,EAGzC;MAAAC,EAAA,EACD,CAAC/B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAWe,cAAA,GAAAc,SAAiB;MAAAnC;IAAA,C;;;;;;;;;;;;;;SATxDsB,E;CAcJ","ignoreList":[]}
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","segmentFour","segments","isCollection","t1","t2","path","docPath","hrefWithLocale","t3","startsWith","_jsx","buttonStyle","className","filter","Boolean","join","disabled","el","margin","size","to","undefined"],"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) {\n if (segmentThree === 'trash' && segmentFour) {\n docPath += `/trash/${segmentFour}`\n } else if (segmentThree) {\n docPath += `/${segmentThree}`\n }\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={isActive ? 'pill' : 'ghost'}\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n disabled={isActive}\n el={!isActive || href !== pathname ? 'link' : 'div'}\n margin={false}\n newTab={newTab}\n size=\"medium\"\n to={!isActive || href !== pathname ? hrefWithLocale : undefined}\n >\n {children}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,EAAEC,WAAW,EAAEC,eAAe,QAAQ;AACxD,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,OAAO,MAAMC,eAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,IAAA,EAAAC,aAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC;EAAA,IAAAV,EAQL;EACC,MAAAW,QAAA,GAAiBhB,WAAA;EACjB,MAAAiB,MAAA,GAAelB,SAAA;EAEf,MAAAmB,YAAA,GAAqBjB,eAAA;EAErB,MAAAkB,MAAA,GAAeD,YAAA,CAAAE,GAAA,CAAiB;EAEhC,OAAAC,UAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,WAAA,IAAqEP,MAAA,CAAAQ,QAAA,MAAqB;EAC1F,MAAAC,YAAA,GAAqBL,UAAA,KAAe;EAI5B,MAAAM,EAAA,OAAID,YAAA,GAAe,gBAAgB,aAAaJ,UAAA,EAAY;EAAA,IAAAM,EAAA;EAAA,IAAAtB,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAqB,EAAA;IAFtDC,EAAA,GAAA1B,cAAA;MAAAK,UAAA;MAAAsB,IAAA,EAENF;IAA4D,CACpE;IAAArB,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAqB,EAAA;IAAArB,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAHA,IAAAwB,OAAA,GAAcF,EAGd;EAAA,IAEIF,YAAA;IAAA,IACEH,YAAA,KAAiB,WAAWC,WAAA;MAC9BM,OAAA,GAAAA,OAAA,GAAW,UAAUN,WAAA,EAAa;IAAA;MAAA,IACzBD,YAAA;QACTO,OAAA,GAAAA,OAAA,GAAW,IAAIP,YAAA,EAAc;MAAA;IAAA;EAAA;EAIjC,MAAAZ,IAAA,GAAa,GAAGmB,OAAA,GAAUlB,aAAA,EAAe;EAEzC,MAAAmB,cAAA,GAAuB,GAAGpB,IAAA,GAAOQ,MAAA,GAAS,WAAWA,MAAA,EAAQ,GAAG,IAAI;EAAA,IAAAa,EAAA;EAAA,IAAA1B,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAwB,OAAA,IAAAxB,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAyB,cAAA,IAAAzB,CAAA,QAAAQ,iBAAA,IAAAR,CAAA,SAAAS,MAAA,IAAAT,CAAA,SAAAU,QAAA;IAEpE,MAAAH,QAAA,GACEF,IAAC,KAASmB,OAAA,IAAWd,QAAA,KAAac,OAAA,IACjCnB,IAAA,KAASmB,OAAA,IAAWd,QAAA,CAAAiB,UAAA,CAAoBtB,IAAA,KACzCG,iBAAA;IAGAkB,EAAA,GAAAE,IAAA,CAAApC,MAAA;MAAA,cACcU,SAAA;MAAA2B,WAAA,EACCtB,QAAA,GAAW,SAAS;MAAAuB,SAAA,EACtB,CAAC3B,SAAA,EAAWI,QAAA,IAAY,GAAGJ,SAAA,UAAmB,EAAA4B,MAAA,CAAAC,OAAS,EAAAC,IAAA,CAAc;MAAAC,QAAA,EACtE3B,QAAA;MAAA4B,EAAA,EACN,CAAC5B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAW,SAAS;MAAA0B,MAAA;MAAA3B,MAAA;MAAA4B,IAAA,EAGzC;MAAAC,EAAA,EACD,CAAC/B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAWe,cAAA,GAAAc,SAAiB;MAAAnC;IAAA,C;;;;;;;;;;;;;;SATxDsB,E;CAcJ","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ @layer payload-default {
2
+ .doc-tab {
3
+ display: flex;
4
+ justify-content: center;
5
+ align-items: center;
6
+ white-space: nowrap;
7
+ color: var(--color-text-secondary);
8
+ }
9
+
10
+ .doc-tab:hover {
11
+ color: var(--color-text);
12
+ }
13
+
14
+ .doc-tab:hover .pill-version-count {
15
+ background-color: var(--color-bg-tertiary);
16
+ color: var(--color-text);
17
+ }
18
+
19
+ .doc-tab--active {
20
+ color: var(--color-text);
21
+ }
22
+
23
+ .doc-tab--active .pill-version-count {
24
+ background-color: var(--color-bg-tertiary);
25
+ color: var(--color-text);
26
+ }
27
+
28
+ .doc-tab--active:hover .pill-version-count {
29
+ background-color: var(--color-bg-tertiary);
30
+ color: var(--color-text);
31
+ }
32
+
33
+ .doc-tab--active.btn--disabled {
34
+ color: var(--color-text);
35
+ cursor: default;
36
+ }
37
+
38
+ .doc-tab__label {
39
+ display: flex;
40
+ position: relative;
41
+ align-items: center;
42
+ gap: var(--spacer-1);
43
+ width: 100%;
44
+ height: 100%;
45
+ line-height: var(--spacer-3);
46
+ }
47
+ }
@@ -1,6 +1,6 @@
1
1
  import type { DocumentTabConfig, PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig, SanitizedPermissions } from 'payload';
2
2
  import type React from 'react';
3
- import './index.scss';
3
+ import './index.css';
4
4
  export declare const baseClass = "doc-tab";
5
5
  export declare const DefaultDocumentTab: React.FC<{
6
6
  apiURL?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;KAAE,GAAG,iBAAiB,CAAA;CACtE,CAkEA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;KAAE,GAAG,iBAAiB,CAAA;CACtE,CAmEA,CAAA"}
@@ -56,6 +56,7 @@ export const DefaultDocumentTab = props => {
56
56
  payload: req.payload,
57
57
  permissions,
58
58
  req,
59
+ server: req.server,
59
60
  user: req.user
60
61
  }
61
62
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RenderServerComponent","Fragment","DocumentTabLink","baseClass","DefaultDocumentTab","props","apiURL","collectionConfig","globalConfig","permissions","req","tabConfig","href","tabHref","isActive","tabIsActive","label","newTab","Pill","Pill_Component","collection","global","routes","payload","config","labelToRender","t","i18n","_jsx","adminRoute","admin","ariaLabel","_jsxs","className","Component","Fallback","importMap","serverProps","user"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type {\n DocumentTabConfig,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} 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 DefaultDocumentTab: React.FC<{\n apiURL?: string\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n path?: string\n permissions?: SanitizedPermissions\n req: PayloadRequest\n tabConfig: { readonly Pill_Component?: React.FC } & DocumentTabConfig\n}> = (props) => {\n const {\n apiURL,\n collectionConfig,\n globalConfig,\n permissions,\n req,\n tabConfig: { href: tabHref, isActive: tabIsActive, label, newTab, Pill, Pill_Component },\n } = props\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: req.payload.config.routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: req.i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={req.payload.config.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: req.payload.importMap,\n serverProps: {\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n user: req.user,\n } satisfies DocumentTabServerPropsOnly,\n })}\n </Fragment>\n ) : null}\n </span>\n </DocumentTabLink>\n )\n}\n"],"mappings":";AAUA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AAEzB,SAASC,eAAe,QAAQ;AAGhC,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,MAAMC,kBAAA,GAQPC,KAAA;EACJ,MAAM;IACJC,MAAM;IACNC,gBAAgB;IAChBC,YAAY;IACZC,WAAW;IACXC,GAAG;IACHC,SAAA,EAAW;MAAEC,IAAA,EAAMC,OAAO;MAAEC,QAAA,EAAUC,WAAW;MAAEC,KAAK;MAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAc;EAAE,CACzF,GAAGd,KAAA;EAEJ,IAAIO,IAAA,GAAO,OAAOC,OAAA,KAAY,WAAWA,OAAA,GAAU;EACnD,IAAIC,QAAA,GAAW,OAAOC,WAAA,KAAgB,YAAYA,WAAA,GAAc;EAEhE,IAAI,OAAOF,OAAA,KAAY,YAAY;IACjCD,IAAA,GAAOC,OAAA,CAAQ;MACbP,MAAA;MACAc,UAAA,EAAYb,gBAAA;MACZc,MAAA,EAAQb,YAAA;MACRc,MAAA,EAAQZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF;IAC7B;EACF;EAEA,IAAI,OAAOP,WAAA,KAAgB,YAAY;IACrCD,QAAA,GAAWC,WAAA,CAAY;MACrBH;IACF;EACF;EAEA,MAAMa,aAAA,GACJ,OAAOT,KAAA,KAAU,aACbA,KAAA,CAAM;IACJU,CAAA,EAAGhB,GAAA,CAAIiB,IAAI,CAACD;EACd,KACAV,KAAA;EAEN,oBACEY,IAAA,CAAC1B,eAAA;IACC2B,UAAA,EAAYnB,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,MAAM,CAACQ,KAAK;IAC3CC,SAAA,EAAWN,aAAA;IACXtB,SAAA,EAAWA,SAAA;IACXS,IAAA,EAAMA,IAAA;IACNE,QAAA,EAAUA,QAAA;IACVG,MAAA,EAAQA,MAAA;cAER,aAAAe,KAAA,CAAC;MAAKC,SAAA,EAAW,GAAG9B,SAAA,SAAkB;iBACnCsB,aAAA,EACAP,IAAA,IAAQC,cAAA,gBACPa,KAAA,CAAC/B,QAAA;mBAAS,KAEPD,qBAAA,CAAsB;UACrBkC,SAAA,EAAWhB,IAAA;UACXiB,QAAA,EAAUhB,cAAA;UACViB,SAAA,EAAW1B,GAAA,CAAIa,OAAO,CAACa,SAAS;UAChCC,WAAA,EAAa;YACXV,IAAA,EAAMjB,GAAA,CAAIiB,IAAI;YACdJ,OAAA,EAASb,GAAA,CAAIa,OAAO;YACpBd,WAAA;YACAC,GAAA;YACA4B,IAAA,EAAM5B,GAAA,CAAI4B;UACZ;QACF;WAEA;;;AAIZ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","Fragment","DocumentTabLink","baseClass","DefaultDocumentTab","props","apiURL","collectionConfig","globalConfig","permissions","req","tabConfig","href","tabHref","isActive","tabIsActive","label","newTab","Pill","Pill_Component","collection","global","routes","payload","config","labelToRender","t","i18n","_jsx","adminRoute","admin","ariaLabel","_jsxs","className","Component","Fallback","importMap","serverProps","server","user"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type {\n DocumentTabConfig,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} 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.css'\n\nexport const baseClass = 'doc-tab'\n\nexport const DefaultDocumentTab: React.FC<{\n apiURL?: string\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n path?: string\n permissions?: SanitizedPermissions\n req: PayloadRequest\n tabConfig: { readonly Pill_Component?: React.FC } & DocumentTabConfig\n}> = (props) => {\n const {\n apiURL,\n collectionConfig,\n globalConfig,\n permissions,\n req,\n tabConfig: { href: tabHref, isActive: tabIsActive, label, newTab, Pill, Pill_Component },\n } = props\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: req.payload.config.routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: req.i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={req.payload.config.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: req.payload.importMap,\n serverProps: {\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n server: req.server,\n user: req.user,\n } satisfies DocumentTabServerPropsOnly,\n })}\n </Fragment>\n ) : null}\n </span>\n </DocumentTabLink>\n )\n}\n"],"mappings":";AAUA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AAEzB,SAASC,eAAe,QAAQ;AAGhC,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,MAAMC,kBAAA,GAQPC,KAAA;EACJ,MAAM;IACJC,MAAM;IACNC,gBAAgB;IAChBC,YAAY;IACZC,WAAW;IACXC,GAAG;IACHC,SAAA,EAAW;MAAEC,IAAA,EAAMC,OAAO;MAAEC,QAAA,EAAUC,WAAW;MAAEC,KAAK;MAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAc;EAAE,CACzF,GAAGd,KAAA;EAEJ,IAAIO,IAAA,GAAO,OAAOC,OAAA,KAAY,WAAWA,OAAA,GAAU;EACnD,IAAIC,QAAA,GAAW,OAAOC,WAAA,KAAgB,YAAYA,WAAA,GAAc;EAEhE,IAAI,OAAOF,OAAA,KAAY,YAAY;IACjCD,IAAA,GAAOC,OAAA,CAAQ;MACbP,MAAA;MACAc,UAAA,EAAYb,gBAAA;MACZc,MAAA,EAAQb,YAAA;MACRc,MAAA,EAAQZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF;IAC7B;EACF;EAEA,IAAI,OAAOP,WAAA,KAAgB,YAAY;IACrCD,QAAA,GAAWC,WAAA,CAAY;MACrBH;IACF;EACF;EAEA,MAAMa,aAAA,GACJ,OAAOT,KAAA,KAAU,aACbA,KAAA,CAAM;IACJU,CAAA,EAAGhB,GAAA,CAAIiB,IAAI,CAACD;EACd,KACAV,KAAA;EAEN,oBACEY,IAAA,CAAC1B,eAAA;IACC2B,UAAA,EAAYnB,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,MAAM,CAACQ,KAAK;IAC3CC,SAAA,EAAWN,aAAA;IACXtB,SAAA,EAAWA,SAAA;IACXS,IAAA,EAAMA,IAAA;IACNE,QAAA,EAAUA,QAAA;IACVG,MAAA,EAAQA,MAAA;cAER,aAAAe,KAAA,CAAC;MAAKC,SAAA,EAAW,GAAG9B,SAAA,SAAkB;iBACnCsB,aAAA,EACAP,IAAA,IAAQC,cAAA,gBACPa,KAAA,CAAC/B,QAAA;mBAAS,KAEPD,qBAAA,CAAsB;UACrBkC,SAAA,EAAWhB,IAAA;UACXiB,QAAA,EAAUhB,cAAA;UACViB,SAAA,EAAW1B,GAAA,CAAIa,OAAO,CAACa,SAAS;UAChCC,WAAA,EAAa;YACXV,IAAA,EAAMjB,GAAA,CAAIiB,IAAI;YACdJ,OAAA,EAASb,GAAA,CAAIa,OAAO;YACpBd,WAAA;YACAC,GAAA;YACA4B,MAAA,EAAQ5B,GAAA,CAAI4B,MAAM;YAClBC,IAAA,EAAM7B,GAAA,CAAI6B;UACZ;QACF;WAEA;;;AAIZ","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ @layer payload-default {
2
+ .doc-tabs {
3
+ display: flex;
4
+ }
5
+
6
+ .doc-tabs__tabs {
7
+ display: flex;
8
+ gap: var(--spacer-2);
9
+ list-style: none;
10
+ align-items: center;
11
+ margin: 0;
12
+ padding-left: 0;
13
+ }
14
+
15
+ @media (max-width: 1024px) {
16
+ .doc-tabs {
17
+ width: 100%;
18
+ padding: 0;
19
+ overflow: auto;
20
+ }
21
+
22
+ /* this container has a gradient overlay as visual indication of `overflow: scroll` */
23
+ .doc-tabs::-webkit-scrollbar {
24
+ display: none;
25
+ }
26
+
27
+ .doc-tabs::after {
28
+ content: '';
29
+ display: block;
30
+ position: sticky;
31
+ right: 0;
32
+ width: var(--spacer-5);
33
+ height: var(--spacer-5);
34
+ background: linear-gradient(to right, transparent, var(--color-bg));
35
+ flex-shrink: 0;
36
+ z-index: 1111;
37
+ pointer-events: none;
38
+ }
39
+
40
+ .doc-tabs__tabs {
41
+ padding: 0;
42
+ }
43
+ }
44
+
45
+ @media (max-width: 768px) {
46
+ .doc-tabs__tabs-container {
47
+ margin-right: var(--spacer-6);
48
+ }
49
+
50
+ .doc-tabs__tabs {
51
+ gap: var(--spacer-6);
52
+ }
53
+ }
54
+ }
@@ -1,6 +1,6 @@
1
1
  import type { PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig, SanitizedPermissions } from 'payload';
2
2
  import React from 'react';
3
- import './index.scss';
3
+ import './index.css';
4
4
  export declare const DocumentTabs: React.FC<{
5
5
  collectionConfig: SanitizedCollectionConfig;
6
6
  globalConfig: SanitizedGlobalConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,YAAY,EAAE,qBAAqB,CAAA;IACnC,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CA6DA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,YAAY,EAAE,qBAAqB,CAAA;IACnC,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CA8DA,CAAA"}
@@ -57,6 +57,7 @@ export const DocumentTabs = ({
57
57
  payload: req.payload,
58
58
  permissions,
59
59
  req,
60
+ server: req.server,
60
61
  user: req.user
61
62
  }
62
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RenderServerComponent","React","ShouldRenderTabs","DefaultDocumentTab","getTabs","baseClass","DocumentTabs","collectionConfig","globalConfig","permissions","req","config","payload","tabs","_jsx","className","map","tab","tabConfig","viewPath","index","condition","meetsCondition","Component","clientProps","path","importMap","key","serverProps","i18n","user"],"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type {\n DocumentTabClientProps,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { ShouldRenderTabs } from './ShouldRenderTabs.js'\nimport { DefaultDocumentTab } from './Tab/index.js'\nimport { getTabs } from './tabs/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n globalConfig: SanitizedGlobalConfig\n permissions: SanitizedPermissions\n req: PayloadRequest\n}> = ({ collectionConfig, globalConfig, permissions, req }) => {\n const { config } = req.payload\n\n const tabs = getTabs({\n collectionConfig,\n globalConfig,\n })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {tabs?.map(({ tab: tabConfig, viewPath }, index) => {\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n condition({ collectionConfig, config, globalConfig, permissions, req })\n\n if (!meetsCondition) {\n return null\n }\n\n if (tabConfig?.Component) {\n return RenderServerComponent({\n clientProps: {\n path: viewPath,\n } satisfies DocumentTabClientProps,\n Component: tabConfig.Component,\n importMap: req.payload.importMap,\n key: `tab-${index}`,\n serverProps: {\n collectionConfig,\n globalConfig,\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n user: req.user,\n } satisfies DocumentTabServerPropsOnly,\n })\n }\n\n return (\n <DefaultDocumentTab\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n key={`tab-${index}`}\n path={viewPath}\n permissions={permissions}\n req={req}\n tabConfig={tabConfig}\n />\n )\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"mappings":";AASA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AAGxB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAKRA,CAAC;EAAEC,gBAAgB;EAAEC,YAAY;EAAEC,WAAW;EAAEC;AAAG,CAAE;EACxD,MAAM;IAAEC;EAAM,CAAE,GAAGD,GAAA,CAAIE,OAAO;EAE9B,MAAMC,IAAA,GAAOT,OAAA,CAAQ;IACnBG,gBAAA;IACAC;EACF;EAEA,oBACEM,IAAA,CAACZ,gBAAA;cACC,aAAAY,IAAA,CAAC;MAAIC,SAAA,EAAWV,SAAA;gBACd,aAAAS,IAAA,CAAC;QAAIC,SAAA,EAAW,GAAGV,SAAA,kBAA2B;kBAC5C,aAAAS,IAAA,CAAC;UAAGC,SAAA,EAAW,GAAGV,SAAA,QAAiB;oBAChCQ,IAAA,EAAMG,GAAA,CAAI,CAAC;YAAEC,GAAA,EAAKC,SAAS;YAAEC;UAAQ,CAAE,EAAEC,KAAA;YACxC,MAAM;cAAEC;YAAS,CAAE,GAAGH,SAAA,IAAa,CAAC;YAEpC,MAAMI,cAAA,GACJ,CAACD,SAAA,IACDA,SAAA,CAAU;cAAEd,gBAAA;cAAkBI,MAAA;cAAQH,YAAA;cAAcC,WAAA;cAAaC;YAAI;YAEvE,IAAI,CAACY,cAAA,EAAgB;cACnB,OAAO;YACT;YAEA,IAAIJ,SAAA,EAAWK,SAAA,EAAW;cACxB,OAAOvB,qBAAA,CAAsB;gBAC3BwB,WAAA,EAAa;kBACXC,IAAA,EAAMN;gBACR;gBACAI,SAAA,EAAWL,SAAA,CAAUK,SAAS;gBAC9BG,SAAA,EAAWhB,GAAA,CAAIE,OAAO,CAACc,SAAS;gBAChCC,GAAA,EAAK,OAAOP,KAAA,EAAO;gBACnBQ,WAAA,EAAa;kBACXrB,gBAAA;kBACAC,YAAA;kBACAqB,IAAA,EAAMnB,GAAA,CAAImB,IAAI;kBACdjB,OAAA,EAASF,GAAA,CAAIE,OAAO;kBACpBH,WAAA;kBACAC,GAAA;kBACAoB,IAAA,EAAMpB,GAAA,CAAIoB;gBACZ;cACF;YACF;YAEA,oBACEhB,IAAA,CAACX,kBAAA;cACCI,gBAAA,EAAkBA,gBAAA;cAClBC,YAAA,EAAcA,YAAA;cAEdiB,IAAA,EAAMN,QAAA;cACNV,WAAA,EAAaA,WAAA;cACbC,GAAA,EAAKA,GAAA;cACLQ,SAAA,EAAWA;eAJN,OAAOE,KAAA,EAAO;UAOzB;;;;;AAMZ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","React","ShouldRenderTabs","DefaultDocumentTab","getTabs","baseClass","DocumentTabs","collectionConfig","globalConfig","permissions","req","config","payload","tabs","_jsx","className","map","tab","tabConfig","viewPath","index","condition","meetsCondition","Component","clientProps","path","importMap","key","serverProps","i18n","server","user"],"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type {\n DocumentTabClientProps,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { ShouldRenderTabs } from './ShouldRenderTabs.js'\nimport { DefaultDocumentTab } from './Tab/index.js'\nimport { getTabs } from './tabs/index.js'\nimport './index.css'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n globalConfig: SanitizedGlobalConfig\n permissions: SanitizedPermissions\n req: PayloadRequest\n}> = ({ collectionConfig, globalConfig, permissions, req }) => {\n const { config } = req.payload\n\n const tabs = getTabs({\n collectionConfig,\n globalConfig,\n })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {tabs?.map(({ tab: tabConfig, viewPath }, index) => {\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n condition({ collectionConfig, config, globalConfig, permissions, req })\n\n if (!meetsCondition) {\n return null\n }\n\n if (tabConfig?.Component) {\n return RenderServerComponent({\n clientProps: {\n path: viewPath,\n } satisfies DocumentTabClientProps,\n Component: tabConfig.Component,\n importMap: req.payload.importMap,\n key: `tab-${index}`,\n serverProps: {\n collectionConfig,\n globalConfig,\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n server: req.server,\n user: req.user,\n } satisfies DocumentTabServerPropsOnly,\n })\n }\n\n return (\n <DefaultDocumentTab\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n key={`tab-${index}`}\n path={viewPath}\n permissions={permissions}\n req={req}\n tabConfig={tabConfig}\n />\n )\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"mappings":";AASA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AAGxB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAKRA,CAAC;EAAEC,gBAAgB;EAAEC,YAAY;EAAEC,WAAW;EAAEC;AAAG,CAAE;EACxD,MAAM;IAAEC;EAAM,CAAE,GAAGD,GAAA,CAAIE,OAAO;EAE9B,MAAMC,IAAA,GAAOT,OAAA,CAAQ;IACnBG,gBAAA;IACAC;EACF;EAEA,oBACEM,IAAA,CAACZ,gBAAA;cACC,aAAAY,IAAA,CAAC;MAAIC,SAAA,EAAWV,SAAA;gBACd,aAAAS,IAAA,CAAC;QAAIC,SAAA,EAAW,GAAGV,SAAA,kBAA2B;kBAC5C,aAAAS,IAAA,CAAC;UAAGC,SAAA,EAAW,GAAGV,SAAA,QAAiB;oBAChCQ,IAAA,EAAMG,GAAA,CAAI,CAAC;YAAEC,GAAA,EAAKC,SAAS;YAAEC;UAAQ,CAAE,EAAEC,KAAA;YACxC,MAAM;cAAEC;YAAS,CAAE,GAAGH,SAAA,IAAa,CAAC;YAEpC,MAAMI,cAAA,GACJ,CAACD,SAAA,IACDA,SAAA,CAAU;cAAEd,gBAAA;cAAkBI,MAAA;cAAQH,YAAA;cAAcC,WAAA;cAAaC;YAAI;YAEvE,IAAI,CAACY,cAAA,EAAgB;cACnB,OAAO;YACT;YAEA,IAAIJ,SAAA,EAAWK,SAAA,EAAW;cACxB,OAAOvB,qBAAA,CAAsB;gBAC3BwB,WAAA,EAAa;kBACXC,IAAA,EAAMN;gBACR;gBACAI,SAAA,EAAWL,SAAA,CAAUK,SAAS;gBAC9BG,SAAA,EAAWhB,GAAA,CAAIE,OAAO,CAACc,SAAS;gBAChCC,GAAA,EAAK,OAAOP,KAAA,EAAO;gBACnBQ,WAAA,EAAa;kBACXrB,gBAAA;kBACAC,YAAA;kBACAqB,IAAA,EAAMnB,GAAA,CAAImB,IAAI;kBACdjB,OAAA,EAASF,GAAA,CAAIE,OAAO;kBACpBH,WAAA;kBACAC,GAAA;kBACAoB,MAAA,EAAQpB,GAAA,CAAIoB,MAAM;kBAClBC,IAAA,EAAMrB,GAAA,CAAIqB;gBACZ;cACF;YACF;YAEA,oBACEjB,IAAA,CAACX,kBAAA;cACCI,gBAAA,EAAkBA,gBAAA;cAClBC,YAAA,EAAcA,YAAA;cAEdiB,IAAA,EAAMN,QAAA;cACNV,WAAA,EAAaA,WAAA;cACbC,GAAA,EAAKA,GAAA;cACLQ,SAAA,EAAWA;eAJN,OAAOE,KAAA,EAAO;UAOzB;;;;;AAMZ","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ @layer payload-default {
2
+ .pill-version-count {
3
+ line-height: var(--spacer-2-5);
4
+ min-width: var(--spacer-2-5);
5
+ text-align: center;
6
+ background-color: var(--color-bg-secondary);
7
+ border-radius: var(--radius-small);
8
+ padding: 2px var(--spacer-1);
9
+ color: var(--color-text-secondary);
10
+ }
11
+ }
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- import './index.scss';
2
+ import './index.css';
3
3
  export declare const VersionsPill: React.FC;
4
4
  //# 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;AAEzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAQhC,CAAA"}
@@ -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 './index.css'\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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,gBAAgB,UAAgD,CAAA;AAE7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,eAAO,MAAM,OAAO,wCAGjB;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;CACrC,KAAG;IAAE,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAqE/C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,gBAAgB,UAAgD,CAAA;AAE7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,eAAO,MAAM,OAAO,GAAI,qCAGrB;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;CACrC,KAAG;IAAE,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAqE/C,CAAA"}
@@ -0,0 +1,38 @@
1
+ @layer payload-default {
2
+ .doc-header {
3
+ width: 100%;
4
+ padding: var(--spacer-2-5) var(--gutter-h);
5
+ position: relative;
6
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
7
+ display: flex;
8
+ align-items: center;
9
+ gap: var(--spacer-2);
10
+ }
11
+
12
+ .doc-header__title {
13
+ flex-grow: 1;
14
+ white-space: nowrap;
15
+ overflow: hidden;
16
+ text-overflow: ellipsis;
17
+ margin: 0;
18
+ vertical-align: top;
19
+ }
20
+
21
+ .doc-header__after-header {
22
+ padding-top: var(--spacer-3);
23
+ }
24
+
25
+ @media (max-width: 1024px) {
26
+ .doc-header {
27
+ flex-direction: column;
28
+ }
29
+
30
+ .doc-header__title {
31
+ width: 100%;
32
+ }
33
+
34
+ .doc-header__after-header {
35
+ padding-top: var(--spacer-1);
36
+ }
37
+ }
38
+ }
@@ -1,6 +1,6 @@
1
1
  import type { PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig, SanitizedPermissions } from 'payload';
2
2
  import React from 'react';
3
- import './index.scss';
3
+ import './index.css';
4
4
  /**
5
5
  * @internal
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CAmBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,aAAa,CAAA;AAIpB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CAiBA,CAAA"}