@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.
- package/dist/adapters/router.d.ts +5 -0
- package/dist/adapters/router.d.ts.map +1 -0
- package/dist/adapters/router.js +53 -0
- package/dist/adapters/router.js.map +1 -0
- package/dist/adapters/server.d.ts +7 -0
- package/dist/adapters/server.d.ts.map +1 -0
- package/dist/adapters/server.js +39 -0
- package/dist/adapters/server.js.map +1 -0
- package/dist/cjs/withPayload.cjs +12 -14
- package/dist/cjs/withPayload.cjs.map +2 -2
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.css +47 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.css +54 -0
- package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +1 -0
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.css +11 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/index.css +38 -0
- package/dist/elements/DocumentHeader/index.d.ts +1 -1
- package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/index.js +9 -12
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.d.ts +8 -0
- package/dist/elements/Nav/NavSidebarToggle/index.d.ts.map +1 -0
- package/dist/elements/Nav/{NavHamburger → NavSidebarToggle}/index.js +3 -3
- package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -0
- package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +21 -24
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.css +1 -1
- package/dist/elements/Nav/index.css +1 -24
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +2 -10
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/exports/client.d.ts +1 -1
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +1 -1
- package/dist/exports/client.js.map +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +4 -0
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/playground.d.ts.map +1 -1
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/templates/Default/Wrapper/index.css +40 -0
- package/dist/templates/Default/Wrapper/index.d.ts +1 -1
- package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +16 -19
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.css +23 -0
- package/dist/templates/Default/index.d.ts +2 -2
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +5 -21
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Minimal/index.css +25 -0
- package/dist/templates/Minimal/index.d.ts +1 -1
- package/dist/templates/Minimal/index.d.ts.map +1 -1
- package/dist/templates/Minimal/index.js.map +1 -1
- package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
- package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
- package/dist/utilities/getRequestHighContrast.d.ts.map +1 -1
- package/dist/utilities/getRequestTheme.d.ts.map +1 -1
- package/dist/utilities/getRouteWithoutAdmin.d.ts.map +1 -1
- package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
- package/dist/utilities/initReq.d.ts.map +1 -1
- package/dist/utilities/initReq.js +2 -0
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/utilities/isCustomAdminView.d.ts.map +1 -1
- package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
- package/dist/utilities/meta.d.ts.map +1 -1
- package/dist/utilities/timestamp.d.ts.map +1 -1
- package/dist/views/API/RenderJSON/index.d.ts.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +1 -0
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CollectionTrash/metadata.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +32 -25
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.css +69 -0
- package/dist/views/CreateFirstUser/index.d.ts +1 -1
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +9 -5
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +69 -42
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +25 -22
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -2
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +299 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.d.ts +0 -6
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +3 -0
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +1 -0
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getCustomDocumentViewByKey.d.ts.map +1 -1
- package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
- package/dist/views/Document/getDocPreferences.d.ts.map +1 -1
- package/dist/views/Document/getDocumentData.d.ts.map +1 -1
- package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
- package/dist/views/Document/getDocumentView.d.ts.map +1 -1
- package/dist/views/Document/getIsLocked.d.ts.map +1 -1
- package/dist/views/Document/getVersions.d.ts.map +1 -1
- package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
- package/dist/views/Document/handleServerFunction.js +1 -0
- package/dist/views/Document/handleServerFunction.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +5 -0
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +1 -0
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/List/createSerializableValue.d.ts.map +1 -1
- package/dist/views/List/extractRelationshipDisplayValue.d.ts.map +1 -1
- package/dist/views/List/extractValueOrRelationshipID.d.ts.map +1 -1
- package/dist/views/List/handleGroupBy.d.ts.map +1 -1
- package/dist/views/List/handleHierarchy.d.ts.map +1 -1
- package/dist/views/List/handleHierarchy.js +1 -0
- package/dist/views/List/handleHierarchy.js.map +1 -1
- package/dist/views/List/handleServerFunction.d.ts.map +1 -1
- package/dist/views/List/handleServerFunction.js +1 -0
- package/dist/views/List/handleServerFunction.js.map +1 -1
- package/dist/views/List/index.css +3 -0
- package/dist/views/List/index.d.ts +1 -0
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +7 -4
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/metadata.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.js +2 -1
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -1
- package/dist/views/List/transformColumnsToSelect.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.css +51 -0
- package/dist/views/Login/LoginForm/index.d.ts +1 -1
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +16 -10
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/index.css +8 -0
- package/dist/views/Login/index.d.ts +1 -1
- package/dist/views/Login/index.d.ts.map +1 -1
- package/dist/views/Login/index.js +3 -0
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/NotFound/index.client.d.ts +2 -4
- package/dist/views/NotFound/index.client.d.ts.map +1 -1
- package/dist/views/NotFound/index.client.js +25 -42
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/NotFound/index.css +47 -0
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +2 -3
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/NotFound/metadata.d.ts.map +1 -1
- package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +1 -0
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/isPathMatchingRoute.d.ts.map +1 -1
- package/dist/views/Root/metadata.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.css +44 -0
- package/dist/views/Unauthorized/index.d.ts +1 -1
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +12 -33
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.d.ts.map +1 -1
- package/dist/views/Verify/index.js +1 -0
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +4 -4
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +0 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.d.ts +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Version/VersionPillLabel/index.css +23 -0
- package/dist/views/Version/fetchVersions.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +18 -18
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.css +7 -0
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/index.client.d.ts.map +1 -1
- package/dist/views/Versions/index.client.js +7 -23
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.css +85 -0
- package/dist/views/Versions/index.d.ts +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +1 -1
- package/dist/views/Versions/index.js.map +1 -1
- package/dist/withPayload/withPayload.d.ts +1 -127
- package/dist/withPayload/withPayload.d.ts.map +1 -1
- package/dist/withPayload/withPayload.js +7 -7
- package/dist/withPayload/withPayload.js.map +1 -1
- package/package.json +8 -8
- package/dist/elements/Nav/NavHamburger/index.d.ts +0 -8
- package/dist/elements/Nav/NavHamburger/index.d.ts.map +0 -1
- package/dist/elements/Nav/NavHamburger/index.js.map +0 -1
- package/dist/templates/Default/NavHamburger/index.d.ts +0 -3
- package/dist/templates/Default/NavHamburger/index.d.ts.map +0 -1
- package/dist/templates/Default/NavHamburger/index.js +0 -25
- package/dist/templates/Default/NavHamburger/index.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { RenderTitle } from '@payloadcms/ui';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { DocumentTabs } from './Tabs/index.js';
|
|
5
5
|
const baseClass = `doc-header`;
|
|
@@ -15,18 +15,15 @@ export const DocumentHeader = props => {
|
|
|
15
15
|
permissions,
|
|
16
16
|
req
|
|
17
17
|
} = props;
|
|
18
|
-
return /*#__PURE__*/_jsxs(
|
|
18
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
19
19
|
className: baseClass,
|
|
20
|
-
children: [/*#__PURE__*/
|
|
21
|
-
className: `${baseClass}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
permissions: permissions,
|
|
28
|
-
req: req
|
|
29
|
-
})]
|
|
20
|
+
children: [/*#__PURE__*/_jsx(RenderTitle, {
|
|
21
|
+
className: `${baseClass}__title`
|
|
22
|
+
}), !hideTabs && /*#__PURE__*/_jsx(DocumentTabs, {
|
|
23
|
+
collectionConfig: collectionConfig,
|
|
24
|
+
globalConfig: globalConfig,
|
|
25
|
+
permissions: permissions,
|
|
26
|
+
req: req
|
|
30
27
|
}), AfterHeader ? /*#__PURE__*/_jsx("div", {
|
|
31
28
|
className: `${baseClass}__after-header`,
|
|
32
29
|
children: AfterHeader
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["RenderTitle","React","DocumentTabs","baseClass","DocumentHeader","props","AfterHeader","collectionConfig","globalConfig","hideTabs","permissions","req","_jsxs","className","_jsx"],"sources":["../../../src/elements/DocumentHeader/index.tsx"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from 'payload'\n\nimport { Gutter, RenderTitle } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DocumentTabs } from './Tabs/index.js'\nimport './index.css'\n\nconst baseClass = `doc-header`\n\n/**\n * @internal\n */\nexport const DocumentHeader: React.FC<{\n AfterHeader?: React.ReactNode\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hideTabs?: boolean\n permissions: SanitizedPermissions\n req: PayloadRequest\n}> = (props) => {\n const { AfterHeader, collectionConfig, globalConfig, hideTabs, permissions, req } = props\n\n return (\n <div className={baseClass}>\n <RenderTitle className={`${baseClass}__title`} />\n {!hideTabs && (\n <DocumentTabs\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n {AfterHeader ? <div className={`${baseClass}__after-header`}>{AfterHeader}</div> : null}\n </div>\n )\n}\n"],"mappings":";AAOA,SAAiBA,WAAW,QAAQ;AACpC,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAG7B,MAAMC,SAAA,GAAY,YAAY;AAE9B;;;AAGA,OAAO,MAAMC,cAAA,GAOPC,KAAA;EACJ,MAAM;IAAEC,WAAW;IAAEC,gBAAgB;IAAEC,YAAY;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAGN,KAAA;EAEpF,oBACEO,KAAA,CAAC;IAAIC,SAAA,EAAWV,SAAA;4BACdW,IAAA,CAACd,WAAA;MAAYa,SAAA,EAAW,GAAGV,SAAA;QAC1B,CAACM,QAAA,iBACAK,IAAA,CAACZ,YAAA;MACCK,gBAAA,EAAkBA,gBAAA;MAClBC,YAAA,EAAcA,YAAA;MACdE,WAAA,EAAaA,WAAA;MACbC,GAAA,EAAKA;QAGRL,WAAA,gBAAcQ,IAAA,CAAC;MAAID,SAAA,EAAW,GAAGV,SAAA,gBAAyB;gBAAGG;SAAqB;;AAGzF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Nav/NavSidebarToggle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAeA,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 {
|
|
5
|
+
import { SidebarToggle, useNav } from '@payloadcms/ui';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
/**
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
|
-
export const
|
|
10
|
+
export const NavSidebarToggle = t0 => {
|
|
11
11
|
const $ = _c(6);
|
|
12
12
|
const {
|
|
13
13
|
baseClass
|
|
@@ -35,7 +35,7 @@ export const NavHamburger = t0 => {
|
|
|
35
35
|
onClick: t2,
|
|
36
36
|
tabIndex: t3,
|
|
37
37
|
type: "button",
|
|
38
|
-
children: _jsx(
|
|
38
|
+
children: _jsx(SidebarToggle, {
|
|
39
39
|
isActive: true
|
|
40
40
|
})
|
|
41
41
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","SidebarToggle","useNav","React","NavSidebarToggle","t0","$","baseClass","navOpen","setNavOpen","t1","t2","t3","undefined","t4","_jsx","className","onClick","tabIndex","type","children","isActive"],"sources":["../../../../src/elements/Nav/NavSidebarToggle/index.tsx"],"sourcesContent":["'use client'\nimport { SidebarToggle, useNav } from '@payloadcms/ui'\nimport React from 'react'\n\n/**\n * @internal\n */\nexport const NavSidebarToggle: React.FC<{\n baseClass?: string\n}> = ({ baseClass }) => {\n const { navOpen, setNavOpen } = useNav()\n\n return (\n <button\n className={`${baseClass}__mobile-close`}\n onClick={() => {\n setNavOpen(false)\n }}\n tabIndex={!navOpen ? -1 : undefined}\n type=\"button\"\n >\n <SidebarToggle isActive />\n </button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,aAAa,EAAEC,MAAM,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB;;;AAGA,OAAO,MAAMC,gBAAA,GAERC,EAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAAC;IAAAO;EAAA,IAAAF,EAAa;EACjB;IAAAG,OAAA;IAAAC;EAAA,IAAgCP,MAAA;EAIjB,MAAAQ,EAAA,MAAGH,SAAA,gBAAyB;EAAA,IAAAI,EAAA;EAAA,IAAAL,CAAA,QAAAG,UAAA;IAC9BE,EAAA,GAAAA,CAAA;MACPF,UAAA,MAAW;IAAA;IACbH,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EACU,MAAAM,EAAA,IAACJ,OAAA,QAAAK,SAAe;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAI,EAAA,IAAAJ,CAAA,QAAAK,EAAA,IAAAL,CAAA,QAAAM,EAAA;IAL5BE,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EACYN,EAA4B;MAAAO,OAAA,EAC9BN,EAET;MAAAO,QAAA,EACUN,EAAgB;MAAAO,IAAA,EACrB;MAAAC,QAAA,EAELL,IAAA,CAAAd,aAAA;QAAAoB,QAAA;MAAA,C;;;;;;;;;SARFP,E;CAWJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAqBA,CAAA"}
|
|
@@ -8,7 +8,7 @@ import React from 'react';
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
export const NavWrapper = props => {
|
|
11
|
-
const $ = _c(
|
|
11
|
+
const $ = _c(10);
|
|
12
12
|
const {
|
|
13
13
|
baseClass,
|
|
14
14
|
children
|
|
@@ -16,46 +16,43 @@ export const NavWrapper = props => {
|
|
|
16
16
|
const {
|
|
17
17
|
hydrated,
|
|
18
18
|
navOpen,
|
|
19
|
-
navRef
|
|
20
|
-
shouldAnimate
|
|
19
|
+
navRef
|
|
21
20
|
} = useNav();
|
|
22
21
|
const t0 = navOpen && `${baseClass}--nav-open`;
|
|
23
|
-
const t1 =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
t3 = [baseClass, t0, t1, t2].filter(Boolean);
|
|
22
|
+
const t1 = hydrated && `${baseClass}--nav-hydrated`;
|
|
23
|
+
let t2;
|
|
24
|
+
if ($[0] !== baseClass || $[1] !== t0 || $[2] !== t1) {
|
|
25
|
+
t2 = [baseClass, t0, t1].filter(Boolean);
|
|
28
26
|
$[0] = baseClass;
|
|
29
27
|
$[1] = t0;
|
|
30
28
|
$[2] = t1;
|
|
31
29
|
$[3] = t2;
|
|
32
|
-
$[4] = t3;
|
|
33
30
|
} else {
|
|
34
|
-
|
|
31
|
+
t2 = $[3];
|
|
35
32
|
}
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
let
|
|
40
|
-
if ($[
|
|
41
|
-
|
|
42
|
-
className:
|
|
43
|
-
inert:
|
|
33
|
+
const t3 = t2.join(" ");
|
|
34
|
+
const t4 = !navOpen ? true : undefined;
|
|
35
|
+
const t5 = `${baseClass}__scroll`;
|
|
36
|
+
let t6;
|
|
37
|
+
if ($[4] !== children || $[5] !== navRef || $[6] !== t3 || $[7] !== t4 || $[8] !== t5) {
|
|
38
|
+
t6 = _jsx("aside", {
|
|
39
|
+
className: t3,
|
|
40
|
+
inert: t4,
|
|
44
41
|
children: _jsx("div", {
|
|
45
|
-
className:
|
|
42
|
+
className: t5,
|
|
46
43
|
ref: navRef,
|
|
47
44
|
children
|
|
48
45
|
})
|
|
49
46
|
});
|
|
50
|
-
$[
|
|
51
|
-
$[
|
|
47
|
+
$[4] = children;
|
|
48
|
+
$[5] = navRef;
|
|
49
|
+
$[6] = t3;
|
|
52
50
|
$[7] = t4;
|
|
53
51
|
$[8] = t5;
|
|
54
52
|
$[9] = t6;
|
|
55
|
-
$[10] = t7;
|
|
56
53
|
} else {
|
|
57
|
-
|
|
54
|
+
t6 = $[9];
|
|
58
55
|
}
|
|
59
|
-
return
|
|
56
|
+
return t6;
|
|
60
57
|
};
|
|
61
58
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useNav","React","NavWrapper","props","$","baseClass","children","hydrated","navOpen","navRef","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useNav","React","NavWrapper","props","$","baseClass","children","hydrated","navOpen","navRef","t0","t1","t2","filter","Boolean","t3","join","t4","undefined","t5","t6","_jsx","className","inert","ref"],"sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"sourcesContent":["'use client'\nimport { useNav } from '@payloadcms/ui'\nimport React from 'react'\n\nimport './index.scss'\n\n/**\n * @internal\n */\nexport const NavWrapper: React.FC<{\n baseClass?: string\n children: React.ReactNode\n}> = (props) => {\n const { baseClass, children } = props\n\n const { hydrated, navOpen, navRef } = useNav()\n\n return (\n <aside\n className={[\n baseClass,\n navOpen && `${baseClass}--nav-open`,\n hydrated && `${baseClass}--nav-hydrated`,\n ]\n .filter(Boolean)\n .join(' ')}\n inert={!navOpen ? true : undefined}\n >\n <div className={`${baseClass}__scroll`} ref={navRef}>\n {children}\n </div>\n </aside>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,MAAM,QAAQ;AACvB,OAAOC,KAAA,MAAW;AAIlB;;;AAGA,OAAO,MAAMC,UAAA,GAGRC,KAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACH;IAAAM,SAAA;IAAAC;EAAA,IAAgCH,KAAA;EAEhC;IAAAI,QAAA;IAAAC,OAAA;IAAAC;EAAA,IAAsCT,MAAA;EAMhC,MAAAU,EAAA,GAAAF,OAAA,IAAW,GAAGH,SAAA,YAAqB;EACnC,MAAAM,EAAA,GAAAJ,QAAA,IAAY,GAAGF,SAAA,gBAAyB;EAAA,IAAAO,EAAA;EAAA,IAAAR,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAM,EAAA,IAAAN,CAAA,QAAAO,EAAA;IAH/BC,EAAA,IACTP,SAAA,EACAK,EAAmC,EACnCC,EAAwC,EAAAE,MAAA,CAAAC,OAEhC;IAAAV,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EALC,MAAAW,EAAA,GAAAH,EAKD,CAAAI,IAAA,CACF;EACD,MAAAC,EAAA,IAACT,OAAA,UAAAU,SAAiB;EAET,MAAAC,EAAA,MAAGd,SAAA,UAAmB;EAAA,IAAAe,EAAA;EAAA,IAAAhB,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAa,EAAA,IAAAb,CAAA,QAAAe,EAAA;IAVxCC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EACYP,EAMH;MAAAQ,KAAA,EACDN,EAAkB;MAAAX,QAAA,EAEzBe,IAAA,CAAC;QAAAC,SAAA,EAAeH,EAAsB;QAAAK,GAAA,EAAOf,MAAA;QAAAH;MAAA,C;;;;;;;;;;;SAV/Cc,E;CAeJ","ignoreList":[]}
|
|
@@ -156,7 +156,7 @@ export const SidebarTabsClient = ({
|
|
|
156
156
|
type: "button",
|
|
157
157
|
children: [/*#__PURE__*/_jsx(Tooltip, {
|
|
158
158
|
className: `${baseClass}__tooltip`,
|
|
159
|
-
position:
|
|
159
|
+
position: "bottom",
|
|
160
160
|
show: hoveredTab === tab_0.slug,
|
|
161
161
|
children: tab_0.label
|
|
162
162
|
}), /*#__PURE__*/_jsx("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["DelayedSpinner","SidebarTabsProvider","Tooltip","usePreferences","useServerFunctions","PREFERENCE_KEYS","React","useCallback","useRef","useState","TabError","SidebarTabsClient","baseClass","initialActiveTabID","initialTabContents","loadingDelay","tabs","setPreference","serverFunction","activeTabID","setActiveTabID","tabContent","setTabContent","loadingTab","setLoadingTab","hoveredTab","setHoveredTab","loadingTabsRef","Set","tabContentRef","useEffect","current","prev","loadTabContent","tabSlug","revalidate","hasCachedContent","Boolean","has","add","result","name","args","newContent","component","error","errorMessage","Error","message","handleRetry","clearedContent","_jsx","onRetry","delete","reloadTabContent","handleTabChange","slug","NAV_SIDEBAR_ACTIVE_TAB","activeTab","tab","find","t","lazyLoadable","handleTabKeyDown","e","currentIndex","key","preventDefault","direction","newIndex","length","newTab","setTimeout","document","querySelector","focus","activeContent","_Fragment","activeTabSlug","_jsxs","className","role","map","index","isActive","onClick","onKeyDown","onMouseEnter","onMouseLeave","tabIndex","type","position","show","label","icon","delay","isLoading","content","style","undefined","display"],"sources":["../../../../src/elements/Nav/SidebarTabs/index.client.tsx"],"sourcesContent":["'use client'\n\nimport {\n DelayedSpinner,\n SidebarTabsProvider,\n Tooltip,\n usePreferences,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport { PREFERENCE_KEYS } from 'payload/shared'\nimport React, { useCallback, useRef, useState } from 'react'\n\nimport type { RenderTabServerFnArgs, RenderTabServerFnReturnType } from './renderTabServerFn.js'\n\nimport { TabError } from './TabError/index.js'\n\nexport type TabMetadata = {\n icon: React.ReactNode\n isDefaultActive?: boolean\n label: string\n /** Whether this tab can be loaded/revalidated via serverFunction */\n lazyLoadable?: boolean\n slug: string\n}\n\nexport type SidebarTabsClientProps = {\n baseClass: string\n initialActiveTabID: string\n initialTabContents: Record<string, React.ReactNode>\n /**\n * Delay before showing loading spinner (in ms), prevents flashing on fast loads\n * @default 200\n */\n loadingDelay?: number\n tabs: TabMetadata[]\n}\n\nexport const SidebarTabsClient: React.FC<SidebarTabsClientProps> = ({\n baseClass,\n initialActiveTabID,\n initialTabContents,\n loadingDelay = 200,\n tabs,\n}) => {\n const { setPreference } = usePreferences()\n const { serverFunction } = useServerFunctions()\n\n const [activeTabID, setActiveTabID] = useState(initialActiveTabID)\n const [tabContent, setTabContent] = useState<Record<string, React.ReactNode>>(initialTabContents)\n const [loadingTab, setLoadingTab] = useState<null | string>(null)\n const [hoveredTab, setHoveredTab] = useState<null | string>(null)\n const loadingTabsRef = useRef<Set<string>>(new Set())\n const tabContentRef = useRef(initialTabContents)\n\n // Update cached content when server provides new initialTabContents\n // This is needed because useState only uses initialValue on first mount\n React.useEffect(() => {\n tabContentRef.current = { ...tabContentRef.current, ...initialTabContents }\n setTabContent((prev) => ({ ...prev, ...initialTabContents }))\n }, [initialTabContents])\n\n const loadTabContent = useCallback(\n async (tabSlug: string, { revalidate = false }: { revalidate?: boolean } = {}) => {\n const hasCachedContent = Boolean(tabContentRef.current[tabSlug])\n\n // Skip if already loaded (unless revalidating) or currently loading\n if ((hasCachedContent && !revalidate) || loadingTabsRef.current.has(tabSlug)) {\n return\n }\n\n // Mark as loading - only show spinner if no cached content\n loadingTabsRef.current.add(tabSlug)\n if (!hasCachedContent) {\n setLoadingTab(tabSlug)\n }\n\n try {\n const result = (await serverFunction({\n name: 'render-tab',\n args: { tabSlug } as RenderTabServerFnArgs,\n })) as RenderTabServerFnReturnType\n\n const newContent = {\n ...tabContentRef.current,\n [tabSlug]: result.component,\n }\n\n tabContentRef.current = newContent\n setTabContent(newContent)\n } catch (error) {\n // On revalidate failure, keep showing cached content\n if (hasCachedContent && revalidate) {\n return\n }\n\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n\n const handleRetry = () => {\n // Clear the error and retry loading\n const clearedContent = { ...tabContentRef.current }\n delete clearedContent[tabSlug]\n tabContentRef.current = clearedContent\n setTabContent(clearedContent)\n void loadTabContent(tabSlug)\n }\n\n const newContent = {\n ...tabContentRef.current,\n [tabSlug]: <TabError message={errorMessage} onRetry={handleRetry} />,\n }\n\n tabContentRef.current = newContent\n setTabContent(newContent)\n } finally {\n loadingTabsRef.current.delete(tabSlug)\n setLoadingTab(null)\n }\n },\n [serverFunction],\n )\n\n const reloadTabContent = useCallback(\n (tabSlug: string) => {\n // Clear cached content to force reload\n const clearedContent = { ...tabContentRef.current }\n delete clearedContent[tabSlug]\n tabContentRef.current = clearedContent\n setTabContent(clearedContent)\n\n void loadTabContent(tabSlug)\n },\n [loadTabContent],\n )\n\n const handleTabChange = useCallback(\n (slug: string) => {\n setActiveTabID(slug)\n void setPreference(PREFERENCE_KEYS.NAV_SIDEBAR_ACTIVE_TAB, { activeTab: slug })\n // Only revalidate tabs that can be loaded via serverFunction\n // Pre-rendered React elements (like default nav) can't be revalidated\n const tab = tabs.find((t) => t.slug === slug)\n void loadTabContent(slug, { revalidate: tab?.lazyLoadable ?? false })\n },\n [setPreference, loadTabContent, tabs],\n )\n\n const handleTabKeyDown = useCallback(\n (e: React.KeyboardEvent, currentIndex: number) => {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault()\n const direction = e.key === 'ArrowLeft' ? -1 : 1\n const newIndex = (currentIndex + direction + tabs.length) % tabs.length\n const newTab = tabs[newIndex]\n handleTabChange(newTab.slug)\n // Focus will be handled by the tabIndex change\n setTimeout(() => {\n document.querySelector<HTMLButtonElement>(`.${baseClass}__tab--active`)?.focus()\n }, 0)\n }\n },\n [baseClass, handleTabChange, tabs],\n )\n\n const activeContent = tabContent[activeTabID]\n\n // If there's only one tab (the default nav), render it without tab UI\n if (tabs.length === 1) {\n return <>{activeContent}</>\n }\n\n return (\n <SidebarTabsProvider activeTabSlug={activeTabID} reloadTabContent={reloadTabContent}>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs`} role=\"tablist\">\n {tabs.map((tab, index) => {\n const isActive = tab.slug === activeTabID\n\n return (\n <button\n aria-selected={isActive}\n className={`${baseClass}__tab ${isActive ? `${baseClass}__tab--active` : ''}`}\n key={tab.slug}\n onClick={() => handleTabChange(tab.slug)}\n onKeyDown={(e) => handleTabKeyDown(e, index)}\n onMouseEnter={() => setHoveredTab(tab.slug)}\n onMouseLeave={() => setHoveredTab(null)}\n role=\"tab\"\n tabIndex={isActive ? 0 : -1}\n type=\"button\"\n >\n <Tooltip\n className={`${baseClass}__tooltip`}\n position={index === 0 ? 'bottom' : 'top'} // TODO: set to \"top\" when we portal tooltips\n show={hoveredTab === tab.slug}\n >\n {tab.label}\n </Tooltip>\n <span className={`${baseClass}__tab-icon`}>{tab.icon}</span>\n <span className={`${baseClass}__tab-label`}>{tab.label}</span>\n </button>\n )\n })}\n </div>\n <div className={`${baseClass}__content`} role=\"tabpanel\">\n <DelayedSpinner\n baseClass={baseClass}\n delay={loadingDelay}\n isLoading={loadingTab === activeTabID}\n />\n {tabs.map((tab) => {\n const content = tabContent[tab.slug]\n if (!content) {\n return null\n }\n const isActive = tab.slug === activeTabID && loadingTab !== activeTabID\n return (\n <div key={tab.slug} style={isActive ? undefined : { display: 'none' }}>\n {content}\n </div>\n )\n })}\n </div>\n </div>\n </SidebarTabsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["DelayedSpinner","SidebarTabsProvider","Tooltip","usePreferences","useServerFunctions","PREFERENCE_KEYS","React","useCallback","useRef","useState","TabError","SidebarTabsClient","baseClass","initialActiveTabID","initialTabContents","loadingDelay","tabs","setPreference","serverFunction","activeTabID","setActiveTabID","tabContent","setTabContent","loadingTab","setLoadingTab","hoveredTab","setHoveredTab","loadingTabsRef","Set","tabContentRef","useEffect","current","prev","loadTabContent","tabSlug","revalidate","hasCachedContent","Boolean","has","add","result","name","args","newContent","component","error","errorMessage","Error","message","handleRetry","clearedContent","_jsx","onRetry","delete","reloadTabContent","handleTabChange","slug","NAV_SIDEBAR_ACTIVE_TAB","activeTab","tab","find","t","lazyLoadable","handleTabKeyDown","e","currentIndex","key","preventDefault","direction","newIndex","length","newTab","setTimeout","document","querySelector","focus","activeContent","_Fragment","activeTabSlug","_jsxs","className","role","map","index","isActive","onClick","onKeyDown","onMouseEnter","onMouseLeave","tabIndex","type","position","show","label","icon","delay","isLoading","content","style","undefined","display"],"sources":["../../../../src/elements/Nav/SidebarTabs/index.client.tsx"],"sourcesContent":["'use client'\n\nimport {\n DelayedSpinner,\n SidebarTabsProvider,\n Tooltip,\n usePreferences,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport { PREFERENCE_KEYS } from 'payload/shared'\nimport React, { useCallback, useRef, useState } from 'react'\n\nimport type { RenderTabServerFnArgs, RenderTabServerFnReturnType } from './renderTabServerFn.js'\n\nimport { TabError } from './TabError/index.js'\n\nexport type TabMetadata = {\n icon: React.ReactNode\n isDefaultActive?: boolean\n label: string\n /** Whether this tab can be loaded/revalidated via serverFunction */\n lazyLoadable?: boolean\n slug: string\n}\n\nexport type SidebarTabsClientProps = {\n baseClass: string\n initialActiveTabID: string\n initialTabContents: Record<string, React.ReactNode>\n /**\n * Delay before showing loading spinner (in ms), prevents flashing on fast loads\n * @default 200\n */\n loadingDelay?: number\n tabs: TabMetadata[]\n}\n\nexport const SidebarTabsClient: React.FC<SidebarTabsClientProps> = ({\n baseClass,\n initialActiveTabID,\n initialTabContents,\n loadingDelay = 200,\n tabs,\n}) => {\n const { setPreference } = usePreferences()\n const { serverFunction } = useServerFunctions()\n\n const [activeTabID, setActiveTabID] = useState(initialActiveTabID)\n const [tabContent, setTabContent] = useState<Record<string, React.ReactNode>>(initialTabContents)\n const [loadingTab, setLoadingTab] = useState<null | string>(null)\n const [hoveredTab, setHoveredTab] = useState<null | string>(null)\n const loadingTabsRef = useRef<Set<string>>(new Set())\n const tabContentRef = useRef(initialTabContents)\n\n // Update cached content when server provides new initialTabContents\n // This is needed because useState only uses initialValue on first mount\n React.useEffect(() => {\n tabContentRef.current = { ...tabContentRef.current, ...initialTabContents }\n setTabContent((prev) => ({ ...prev, ...initialTabContents }))\n }, [initialTabContents])\n\n const loadTabContent = useCallback(\n async (tabSlug: string, { revalidate = false }: { revalidate?: boolean } = {}) => {\n const hasCachedContent = Boolean(tabContentRef.current[tabSlug])\n\n // Skip if already loaded (unless revalidating) or currently loading\n if ((hasCachedContent && !revalidate) || loadingTabsRef.current.has(tabSlug)) {\n return\n }\n\n // Mark as loading - only show spinner if no cached content\n loadingTabsRef.current.add(tabSlug)\n if (!hasCachedContent) {\n setLoadingTab(tabSlug)\n }\n\n try {\n const result = (await serverFunction({\n name: 'render-tab',\n args: { tabSlug } as RenderTabServerFnArgs,\n })) as RenderTabServerFnReturnType\n\n const newContent = {\n ...tabContentRef.current,\n [tabSlug]: result.component,\n }\n\n tabContentRef.current = newContent\n setTabContent(newContent)\n } catch (error) {\n // On revalidate failure, keep showing cached content\n if (hasCachedContent && revalidate) {\n return\n }\n\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n\n const handleRetry = () => {\n // Clear the error and retry loading\n const clearedContent = { ...tabContentRef.current }\n delete clearedContent[tabSlug]\n tabContentRef.current = clearedContent\n setTabContent(clearedContent)\n void loadTabContent(tabSlug)\n }\n\n const newContent = {\n ...tabContentRef.current,\n [tabSlug]: <TabError message={errorMessage} onRetry={handleRetry} />,\n }\n\n tabContentRef.current = newContent\n setTabContent(newContent)\n } finally {\n loadingTabsRef.current.delete(tabSlug)\n setLoadingTab(null)\n }\n },\n [serverFunction],\n )\n\n const reloadTabContent = useCallback(\n (tabSlug: string) => {\n // Clear cached content to force reload\n const clearedContent = { ...tabContentRef.current }\n delete clearedContent[tabSlug]\n tabContentRef.current = clearedContent\n setTabContent(clearedContent)\n\n void loadTabContent(tabSlug)\n },\n [loadTabContent],\n )\n\n const handleTabChange = useCallback(\n (slug: string) => {\n setActiveTabID(slug)\n void setPreference(PREFERENCE_KEYS.NAV_SIDEBAR_ACTIVE_TAB, { activeTab: slug })\n // Only revalidate tabs that can be loaded via serverFunction\n // Pre-rendered React elements (like default nav) can't be revalidated\n const tab = tabs.find((t) => t.slug === slug)\n void loadTabContent(slug, { revalidate: tab?.lazyLoadable ?? false })\n },\n [setPreference, loadTabContent, tabs],\n )\n\n const handleTabKeyDown = useCallback(\n (e: React.KeyboardEvent, currentIndex: number) => {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault()\n const direction = e.key === 'ArrowLeft' ? -1 : 1\n const newIndex = (currentIndex + direction + tabs.length) % tabs.length\n const newTab = tabs[newIndex]\n handleTabChange(newTab.slug)\n // Focus will be handled by the tabIndex change\n setTimeout(() => {\n document.querySelector<HTMLButtonElement>(`.${baseClass}__tab--active`)?.focus()\n }, 0)\n }\n },\n [baseClass, handleTabChange, tabs],\n )\n\n const activeContent = tabContent[activeTabID]\n\n // If there's only one tab (the default nav), render it without tab UI\n if (tabs.length === 1) {\n return <>{activeContent}</>\n }\n\n return (\n <SidebarTabsProvider activeTabSlug={activeTabID} reloadTabContent={reloadTabContent}>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs`} role=\"tablist\">\n {tabs.map((tab, index) => {\n const isActive = tab.slug === activeTabID\n\n return (\n <button\n aria-selected={isActive}\n className={`${baseClass}__tab ${isActive ? `${baseClass}__tab--active` : ''}`}\n key={tab.slug}\n onClick={() => handleTabChange(tab.slug)}\n onKeyDown={(e) => handleTabKeyDown(e, index)}\n onMouseEnter={() => setHoveredTab(tab.slug)}\n onMouseLeave={() => setHoveredTab(null)}\n role=\"tab\"\n tabIndex={isActive ? 0 : -1}\n type=\"button\"\n >\n <Tooltip\n className={`${baseClass}__tooltip`}\n position=\"bottom\"\n show={hoveredTab === tab.slug}\n >\n {tab.label}\n </Tooltip>\n <span className={`${baseClass}__tab-icon`}>{tab.icon}</span>\n <span className={`${baseClass}__tab-label`}>{tab.label}</span>\n </button>\n )\n })}\n </div>\n <div className={`${baseClass}__content`} role=\"tabpanel\">\n <DelayedSpinner\n baseClass={baseClass}\n delay={loadingDelay}\n isLoading={loadingTab === activeTabID}\n />\n {tabs.map((tab) => {\n const content = tabContent[tab.slug]\n if (!content) {\n return null\n }\n const isActive = tab.slug === activeTabID && loadingTab !== activeTabID\n return (\n <div key={tab.slug} style={isActive ? undefined : { display: 'none' }}>\n {content}\n </div>\n )\n })}\n </div>\n </div>\n </SidebarTabsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
padding: 0 var(--spacer-1);
|
|
27
27
|
cursor: pointer;
|
|
28
28
|
border-radius: var(--radius-medium);
|
|
29
|
-
border:
|
|
29
|
+
border: var(--stroke-width-small) solid transparent;
|
|
30
30
|
background-color: transparent;
|
|
31
31
|
color: var(--color-icon-secondary);
|
|
32
32
|
transition:
|
|
@@ -7,11 +7,10 @@
|
|
|
7
7
|
height: 100vh;
|
|
8
8
|
width: var(--nav-width);
|
|
9
9
|
border-right: 1px solid var(--color-border);
|
|
10
|
-
opacity: 0;
|
|
11
10
|
overflow: hidden;
|
|
12
11
|
--nav-padding-inline-start: var(--spacer-2-5);
|
|
13
12
|
--nav-padding-inline-end: var(--spacer-2-5);
|
|
14
|
-
--nav-padding-block-start: var(--
|
|
13
|
+
--nav-padding-block-start: var(--spacer-2-5);
|
|
15
14
|
--nav-padding-block-end: var(--spacer-5);
|
|
16
15
|
}
|
|
17
16
|
|
|
@@ -20,28 +19,6 @@
|
|
|
20
19
|
border-left: 1px solid var(--color-border);
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
.nav--nav-animate {
|
|
24
|
-
transition: opacity var(--nav-trans-time) ease-in-out;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.nav--nav-open {
|
|
28
|
-
opacity: 1;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.nav__header {
|
|
32
|
-
position: absolute;
|
|
33
|
-
top: 0;
|
|
34
|
-
width: 100vw;
|
|
35
|
-
height: var(--app-header-height);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.nav__header-content {
|
|
39
|
-
z-index: 1;
|
|
40
|
-
position: relative;
|
|
41
|
-
height: 100%;
|
|
42
|
-
width: 100%;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
22
|
.nav__mobile-close {
|
|
46
23
|
display: none;
|
|
47
24
|
background: none;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1D,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1D,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAMpB,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,GAAG,WAAW,CAAA;AAEf,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CA0NzC,CAAA"}
|
|
@@ -5,7 +5,6 @@ import { groupNavItems } from '@payloadcms/ui/shared';
|
|
|
5
5
|
import { EntityType } from 'payload';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { DefaultNavClient } from './index.client.js';
|
|
8
|
-
import { NavHamburger } from './NavHamburger/index.js';
|
|
9
8
|
import { NavWrapper } from './NavWrapper/index.js';
|
|
10
9
|
import { SettingsMenuButton } from './SettingsMenuButton/index.js';
|
|
11
10
|
import { SidebarTabs } from './SidebarTabs/index.js';
|
|
@@ -191,6 +190,7 @@ export const DefaultNav = async props => {
|
|
|
191
190
|
permissions: permissions,
|
|
192
191
|
req: req,
|
|
193
192
|
searchParams: searchParams,
|
|
193
|
+
server: req?.server,
|
|
194
194
|
tabs: allTabs,
|
|
195
195
|
user: user,
|
|
196
196
|
viewType: viewType
|
|
@@ -200,15 +200,7 @@ export const DefaultNav = async props => {
|
|
|
200
200
|
settingsMenu: RenderedSettingsMenu
|
|
201
201
|
}), LogoutComponent]
|
|
202
202
|
})]
|
|
203
|
-
}), RenderedAfterNav
|
|
204
|
-
className: `${baseClass}__header`,
|
|
205
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
206
|
-
className: `${baseClass}__header-content`,
|
|
207
|
-
children: /*#__PURE__*/_jsx(NavHamburger, {
|
|
208
|
-
baseClass: baseClass
|
|
209
|
-
})
|
|
210
|
-
})
|
|
211
|
-
})]
|
|
203
|
+
}), RenderedAfterNav]
|
|
212
204
|
});
|
|
213
205
|
};
|
|
214
206
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["AlignJustifiedIcon","Logout","RenderServerComponent","groupNavItems","EntityType","React","DefaultNavClient","NavHamburger","NavWrapper","SettingsMenuButton","SidebarTabs","baseClass","getNavPrefs","DefaultNav","props","documentSubViewType","i18n","locale","params","payload","permissions","req","searchParams","user","viewType","visibleEntities","config","admin","components","afterNav","afterNavLinks","beforeNav","beforeNavLinks","logout","settingsMenu","collections","globals","groups","filter","slug","includes","map","collection","type","entity","global","navPreferences","LogoutComponent","clientProps","Component","Button","Fallback","importMap","serverProps","RenderedSettingsMenu","Array","isArray","item","index","key","RenderedBeforeNav","RenderedBeforeNavLinks","RenderedAfterNavLinks","RenderedAfterNav","allTabs","Content","_jsxs","_Fragment","_jsx","Icon","size","isDefaultActive","label","t","sidebar","tabs","tab","disabled","className"],"sources":["../../../src/elements/Nav/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { PayloadRequest, ServerProps } from 'payload'\n\nimport { AlignJustifiedIcon, Logout } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { groupNavItems } from '@payloadcms/ui/shared'\nimport { EntityType } from 'payload'\nimport React from 'react'\n\nimport { DefaultNavClient } from './index.client.js'\nimport { NavHamburger } from './NavHamburger/index.js'\nimport { NavWrapper } from './NavWrapper/index.js'\nimport { SettingsMenuButton } from './SettingsMenuButton/index.js'\nimport { SidebarTabs } from './SidebarTabs/index.js'\nimport './index.css'\n\nconst baseClass = 'nav'\n\nimport { getNavPrefs } from './getNavPrefs.js'\n\nexport type NavProps = {\n req?: PayloadRequest\n} & ServerProps\n\nexport const DefaultNav: React.FC<NavProps> = async (props) => {\n const {\n documentSubViewType,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n user,\n viewType,\n visibleEntities,\n } = props\n\n if (!payload?.config) {\n return null\n }\n\n const {\n admin: {\n components: { afterNav, afterNavLinks, beforeNav, beforeNavLinks, logout, settingsMenu },\n },\n collections,\n globals,\n } = payload.config\n\n // Group collections and globals for nav display\n // These groups are passed to SidebarTabs -> CollectionsTab to avoid recomputing\n const groups = groupNavItems(\n [\n ...collections\n .filter(({ slug }) => visibleEntities.collections.includes(slug))\n .map(\n (collection) =>\n ({\n type: EntityType.collection,\n entity: collection,\n }) satisfies EntityToGroup,\n ),\n ...globals\n .filter(({ slug }) => visibleEntities.globals.includes(slug))\n .map(\n (global) =>\n ({\n type: EntityType.global,\n entity: global,\n }) satisfies EntityToGroup,\n ),\n ],\n permissions,\n i18n,\n )\n\n const navPreferences = await getNavPrefs(req)\n\n const LogoutComponent = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: logout?.Button,\n Fallback: Logout,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedSettingsMenu =\n settingsMenu && Array.isArray(settingsMenu)\n ? settingsMenu.map((item, index) =>\n RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: item,\n importMap: payload.importMap,\n key: `settings-menu-item-${index}`,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n }),\n )\n : []\n\n const RenderedBeforeNav = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: beforeNav,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedBeforeNavLinks = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: beforeNavLinks,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedAfterNavLinks = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: afterNavLinks,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedAfterNav = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: afterNav,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n // Build the full tabs array, starting with the default nav tab\n const allTabs = [\n {\n slug: 'nav',\n components: {\n Content: (\n <>\n {RenderedBeforeNavLinks}\n <DefaultNavClient groups={groups} navPreferences={navPreferences} />\n {RenderedAfterNavLinks}\n </>\n ),\n Icon: <AlignJustifiedIcon size={24} />,\n },\n isDefaultActive: true,\n label: i18n.t('general:collections'),\n },\n ...(payload.config.admin?.components?.sidebar?.tabs?.filter((tab) => !tab.disabled) || []),\n ]\n\n return (\n <NavWrapper baseClass={baseClass}>\n {RenderedBeforeNav}\n <nav className={`${baseClass}__wrap`}>\n <SidebarTabs\n documentSubViewType={documentSubViewType}\n i18n={i18n}\n locale={locale}\n navPreferences={navPreferences}\n params={params}\n payload={payload}\n permissions={permissions}\n req={req}\n searchParams={searchParams}\n tabs={allTabs}\n user={user}\n viewType={viewType}\n />\n <div className={`${baseClass}__controls`}>\n <SettingsMenuButton settingsMenu={RenderedSettingsMenu} />\n {LogoutComponent}\n </div>\n </nav>\n {RenderedAfterNav}\n <div className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <NavHamburger baseClass={baseClass} />\n </div>\n </div>\n </NavWrapper>\n )\n}\n"],"mappings":";AAGA,SAASA,kBAAkB,EAAEC,MAAM,QAAQ;AAC3C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,YAAY,QAAQ;AAC7B,SAASC,UAAU,QAAQ;AAC3B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,WAAW,QAAQ;AAG5B,MAAMC,SAAA,GAAY;AAElB,SAASC,WAAW,QAAQ;AAM5B,OAAO,MAAMC,UAAA,GAAiC,MAAOC,KAAA;EACnD,MAAM;IACJC,mBAAmB;IACnBC,IAAI;IACJC,MAAM;IACNC,MAAM;IACNC,OAAO;IACPC,WAAW;IACXC,GAAG;IACHC,YAAY;IACZC,IAAI;IACJC,QAAQ;IACRC;EAAe,CAChB,GAAGX,KAAA;EAEJ,IAAI,CAACK,OAAA,EAASO,MAAA,EAAQ;IACpB,OAAO;EACT;EAEA,MAAM;IACJC,KAAA,EAAO;MACLC,UAAA,EAAY;QAAEC,QAAQ;QAAEC,aAAa;QAAEC,SAAS;QAAEC,cAAc;QAAEC,MAAM;QAAEC;MAAY;IAAE,CACzF;IACDC,WAAW;IACXC;EAAO,CACR,GAAGjB,OAAA,CAAQO,MAAM;EAElB;EACA;EACA,MAAMW,MAAA,GAASlC,aAAA,CACb,C,GACKgC,WAAA,CACAG,MAAM,CAAC,CAAC;IAAEC;EAAI,CAAE,KAAKd,eAAA,CAAgBU,WAAW,CAACK,QAAQ,CAACD,IAAA,GAC1DE,GAAG,CACDC,UAAA,KACE;IACCC,IAAA,EAAMvC,UAAA,CAAWsC,UAAU;IAC3BE,MAAA,EAAQF;EACV,K,GAEHN,OAAA,CACAE,MAAM,CAAC,CAAC;IAAEC;EAAI,CAAE,KAAKd,eAAA,CAAgBW,OAAO,CAACI,QAAQ,CAACD,IAAA,GACtDE,GAAG,CACDI,MAAA,KACE;IACCF,IAAA,EAAMvC,UAAA,CAAWyC,MAAM;IACvBD,MAAA,EAAQC;EACV,IAEP,EACDzB,WAAA,EACAJ,IAAA;EAGF,MAAM8B,cAAA,GAAiB,MAAMlC,WAAA,CAAYS,GAAA;EAEzC,MAAM0B,eAAA,GAAkB7C,qBAAA,CAAsB;IAC5C8C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWhB,MAAA,EAAQiB,MAAA;IACnBC,QAAA,EAAUlD,MAAA;IACVmD,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAM+B,oBAAA,GACJpB,YAAA,IAAgBqB,KAAA,CAAMC,OAAO,CAACtB,YAAA,IAC1BA,YAAA,CAAaO,GAAG,CAAC,CAACgB,IAAA,EAAMC,KAAA,KACtBxD,qBAAA,CAAsB;IACpB8C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWQ,IAAA;IACXL,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BO,GAAA,EAAK,sBAAsBD,KAAA,EAAO;IAClCL,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF,MAEF,EAAE;EAER,MAAMqC,iBAAA,GAAoB1D,qBAAA,CAAsB;IAC9C8C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWlB,SAAA;IACXqB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAMsC,sBAAA,GAAyB3D,qBAAA,CAAsB;IACnD8C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWjB,cAAA;IACXoB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAMuC,qBAAA,GAAwB5D,qBAAA,CAAsB;IAClD8C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWnB,aAAA;IACXsB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAMwC,gBAAA,GAAmB7D,qBAAA,CAAsB;IAC7C8C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWpB,QAAA;IACXuB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA;EACA,MAAMyC,OAAA,GAAU,CACd;IACEzB,IAAA,EAAM;IACNX,UAAA,EAAY;MACVqC,OAAA,eACEC,KAAA,CAAAC,SAAA;mBACGN,sBAAA,E,aACDO,IAAA,CAAC9D,gBAAA;UAAiB+B,MAAA,EAAQA,MAAA;UAAQS,cAAA,EAAgBA;YACjDgB,qBAAA;;MAGLO,IAAA,eAAMD,IAAA,CAACpE,kBAAA;QAAmBsE,IAAA,EAAM;;IAClC;IACAC,eAAA,EAAiB;IACjBC,KAAA,EAAOxD,IAAA,CAAKyD,CAAC,CAAC;EAChB,G,IACItD,OAAA,CAAQO,MAAM,CAACC,KAAK,EAAEC,UAAA,EAAY8C,OAAA,EAASC,IAAA,EAAMrC,MAAA,CAAQsC,GAAA,IAAQ,CAACA,GAAA,CAAIC,QAAQ,KAAK,EAAE,EAC1F;EAED,oBACEX,KAAA,CAAC1D,UAAA;IAAWG,SAAA,EAAWA,SAAA;eACpBiD,iBAAA,E,aACDM,KAAA,CAAC;MAAIY,SAAA,EAAW,GAAGnE,SAAA,QAAiB;8BAClCyD,IAAA,CAAC1D,WAAA;QACCK,mBAAA,EAAqBA,mBAAA;QACrBC,IAAA,EAAMA,IAAA;QACNC,MAAA,EAAQA,MAAA;QACR6B,cAAA,EAAgBA,cAAA;QAChB5B,MAAA,EAAQA,MAAA;QACRC,OAAA,EAASA,OAAA;QACTC,WAAA,EAAaA,WAAA;QACbC,GAAA,EAAKA,GAAA;QACLC,YAAA,EAAcA,YAAA;QACdqD,IAAA,EAAMX,OAAA;QACNzC,IAAA,EAAMA,IAAA;QACNC,QAAA,EAAUA;uBAEZ0C,KAAA,CAAC;QAAIY,SAAA,EAAW,GAAGnE,SAAA,YAAqB;gCACtCyD,IAAA,CAAC3D,kBAAA;UAAmByB,YAAA,EAAcoB;YACjCP,eAAA;;QAGJgB,gBAAA,E,aACDK,IAAA,CAAC;MAAIU,SAAA,EAAW,GAAGnE,SAAA,UAAmB;gBACpC,aAAAyD,IAAA,CAAC;QAAIU,SAAA,EAAW,GAAGnE,SAAA,kBAA2B;kBAC5C,aAAAyD,IAAA,CAAC7D,YAAA;UAAaI,SAAA,EAAWA;;;;;AAKnC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["AlignJustifiedIcon","Logout","RenderServerComponent","groupNavItems","EntityType","React","DefaultNavClient","NavWrapper","SettingsMenuButton","SidebarTabs","baseClass","getNavPrefs","DefaultNav","props","documentSubViewType","i18n","locale","params","payload","permissions","req","searchParams","user","viewType","visibleEntities","config","admin","components","afterNav","afterNavLinks","beforeNav","beforeNavLinks","logout","settingsMenu","collections","globals","groups","filter","slug","includes","map","collection","type","entity","global","navPreferences","LogoutComponent","clientProps","Component","Button","Fallback","importMap","serverProps","RenderedSettingsMenu","Array","isArray","item","index","key","RenderedBeforeNav","RenderedBeforeNavLinks","RenderedAfterNavLinks","RenderedAfterNav","allTabs","Content","_jsxs","_Fragment","_jsx","Icon","size","isDefaultActive","label","t","sidebar","tabs","tab","disabled","className","server"],"sources":["../../../src/elements/Nav/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { PayloadRequest, ServerProps } from 'payload'\n\nimport { AlignJustifiedIcon, Logout } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { groupNavItems } from '@payloadcms/ui/shared'\nimport { EntityType } from 'payload'\nimport React from 'react'\n\nimport { DefaultNavClient } from './index.client.js'\nimport { NavWrapper } from './NavWrapper/index.js'\nimport { SettingsMenuButton } from './SettingsMenuButton/index.js'\nimport { SidebarTabs } from './SidebarTabs/index.js'\nimport './index.css'\n\nconst baseClass = 'nav'\n\nimport { getNavPrefs } from './getNavPrefs.js'\n\nexport type NavProps = {\n req?: PayloadRequest\n} & ServerProps\n\nexport const DefaultNav: React.FC<NavProps> = async (props) => {\n const {\n documentSubViewType,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n user,\n viewType,\n visibleEntities,\n } = props\n\n if (!payload?.config) {\n return null\n }\n\n const {\n admin: {\n components: { afterNav, afterNavLinks, beforeNav, beforeNavLinks, logout, settingsMenu },\n },\n collections,\n globals,\n } = payload.config\n\n // Group collections and globals for nav display\n // These groups are passed to SidebarTabs -> CollectionsTab to avoid recomputing\n const groups = groupNavItems(\n [\n ...collections\n .filter(({ slug }) => visibleEntities.collections.includes(slug))\n .map(\n (collection) =>\n ({\n type: EntityType.collection,\n entity: collection,\n }) satisfies EntityToGroup,\n ),\n ...globals\n .filter(({ slug }) => visibleEntities.globals.includes(slug))\n .map(\n (global) =>\n ({\n type: EntityType.global,\n entity: global,\n }) satisfies EntityToGroup,\n ),\n ],\n permissions,\n i18n,\n )\n\n const navPreferences = await getNavPrefs(req)\n\n const LogoutComponent = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: logout?.Button,\n Fallback: Logout,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedSettingsMenu =\n settingsMenu && Array.isArray(settingsMenu)\n ? settingsMenu.map((item, index) =>\n RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: item,\n importMap: payload.importMap,\n key: `settings-menu-item-${index}`,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n }),\n )\n : []\n\n const RenderedBeforeNav = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: beforeNav,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedBeforeNavLinks = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: beforeNavLinks,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedAfterNavLinks = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: afterNavLinks,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const RenderedAfterNav = RenderServerComponent({\n clientProps: {\n documentSubViewType,\n viewType,\n },\n Component: afterNav,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n // Build the full tabs array, starting with the default nav tab\n const allTabs = [\n {\n slug: 'nav',\n components: {\n Content: (\n <>\n {RenderedBeforeNavLinks}\n <DefaultNavClient groups={groups} navPreferences={navPreferences} />\n {RenderedAfterNavLinks}\n </>\n ),\n Icon: <AlignJustifiedIcon size={24} />,\n },\n isDefaultActive: true,\n label: i18n.t('general:collections'),\n },\n ...(payload.config.admin?.components?.sidebar?.tabs?.filter((tab) => !tab.disabled) || []),\n ]\n\n return (\n <NavWrapper baseClass={baseClass}>\n {RenderedBeforeNav}\n <nav className={`${baseClass}__wrap`}>\n <SidebarTabs\n documentSubViewType={documentSubViewType}\n i18n={i18n}\n locale={locale}\n navPreferences={navPreferences}\n params={params}\n payload={payload}\n permissions={permissions}\n req={req}\n searchParams={searchParams}\n server={req?.server}\n tabs={allTabs}\n user={user}\n viewType={viewType}\n />\n <div className={`${baseClass}__controls`}>\n <SettingsMenuButton settingsMenu={RenderedSettingsMenu} />\n {LogoutComponent}\n </div>\n </nav>\n {RenderedAfterNav}\n </NavWrapper>\n )\n}\n"],"mappings":";AAGA,SAASA,kBAAkB,EAAEC,MAAM,QAAQ;AAC3C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,WAAW,QAAQ;AAG5B,MAAMC,SAAA,GAAY;AAElB,SAASC,WAAW,QAAQ;AAM5B,OAAO,MAAMC,UAAA,GAAiC,MAAOC,KAAA;EACnD,MAAM;IACJC,mBAAmB;IACnBC,IAAI;IACJC,MAAM;IACNC,MAAM;IACNC,OAAO;IACPC,WAAW;IACXC,GAAG;IACHC,YAAY;IACZC,IAAI;IACJC,QAAQ;IACRC;EAAe,CAChB,GAAGX,KAAA;EAEJ,IAAI,CAACK,OAAA,EAASO,MAAA,EAAQ;IACpB,OAAO;EACT;EAEA,MAAM;IACJC,KAAA,EAAO;MACLC,UAAA,EAAY;QAAEC,QAAQ;QAAEC,aAAa;QAAEC,SAAS;QAAEC,cAAc;QAAEC,MAAM;QAAEC;MAAY;IAAE,CACzF;IACDC,WAAW;IACXC;EAAO,CACR,GAAGjB,OAAA,CAAQO,MAAM;EAElB;EACA;EACA,MAAMW,MAAA,GAASjC,aAAA,CACb,C,GACK+B,WAAA,CACAG,MAAM,CAAC,CAAC;IAAEC;EAAI,CAAE,KAAKd,eAAA,CAAgBU,WAAW,CAACK,QAAQ,CAACD,IAAA,GAC1DE,GAAG,CACDC,UAAA,KACE;IACCC,IAAA,EAAMtC,UAAA,CAAWqC,UAAU;IAC3BE,MAAA,EAAQF;EACV,K,GAEHN,OAAA,CACAE,MAAM,CAAC,CAAC;IAAEC;EAAI,CAAE,KAAKd,eAAA,CAAgBW,OAAO,CAACI,QAAQ,CAACD,IAAA,GACtDE,GAAG,CACDI,MAAA,KACE;IACCF,IAAA,EAAMtC,UAAA,CAAWwC,MAAM;IACvBD,MAAA,EAAQC;EACV,IAEP,EACDzB,WAAA,EACAJ,IAAA;EAGF,MAAM8B,cAAA,GAAiB,MAAMlC,WAAA,CAAYS,GAAA;EAEzC,MAAM0B,eAAA,GAAkB5C,qBAAA,CAAsB;IAC5C6C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWhB,MAAA,EAAQiB,MAAA;IACnBC,QAAA,EAAUjD,MAAA;IACVkD,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAM+B,oBAAA,GACJpB,YAAA,IAAgBqB,KAAA,CAAMC,OAAO,CAACtB,YAAA,IAC1BA,YAAA,CAAaO,GAAG,CAAC,CAACgB,IAAA,EAAMC,KAAA,KACtBvD,qBAAA,CAAsB;IACpB6C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWQ,IAAA;IACXL,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BO,GAAA,EAAK,sBAAsBD,KAAA,EAAO;IAClCL,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF,MAEF,EAAE;EAER,MAAMqC,iBAAA,GAAoBzD,qBAAA,CAAsB;IAC9C6C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWlB,SAAA;IACXqB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAMsC,sBAAA,GAAyB1D,qBAAA,CAAsB;IACnD6C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWjB,cAAA;IACXoB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAMuC,qBAAA,GAAwB3D,qBAAA,CAAsB;IAClD6C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWnB,aAAA;IACXsB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA,MAAMwC,gBAAA,GAAmB5D,qBAAA,CAAsB;IAC7C6C,WAAA,EAAa;MACXjC,mBAAA;MACAS;IACF;IACAyB,SAAA,EAAWpB,QAAA;IACXuB,SAAA,EAAWjC,OAAA,CAAQiC,SAAS;IAC5BC,WAAA,EAAa;MACXrC,IAAA;MACAC,MAAA;MACAC,MAAA;MACAC,OAAA;MACAC,WAAA;MACAE,YAAA;MACAC;IACF;EACF;EAEA;EACA,MAAMyC,OAAA,GAAU,CACd;IACEzB,IAAA,EAAM;IACNX,UAAA,EAAY;MACVqC,OAAA,eACEC,KAAA,CAAAC,SAAA;mBACGN,sBAAA,E,aACDO,IAAA,CAAC7D,gBAAA;UAAiB8B,MAAA,EAAQA,MAAA;UAAQS,cAAA,EAAgBA;YACjDgB,qBAAA;;MAGLO,IAAA,eAAMD,IAAA,CAACnE,kBAAA;QAAmBqE,IAAA,EAAM;;IAClC;IACAC,eAAA,EAAiB;IACjBC,KAAA,EAAOxD,IAAA,CAAKyD,CAAC,CAAC;EAChB,G,IACItD,OAAA,CAAQO,MAAM,CAACC,KAAK,EAAEC,UAAA,EAAY8C,OAAA,EAASC,IAAA,EAAMrC,MAAA,CAAQsC,GAAA,IAAQ,CAACA,GAAA,CAAIC,QAAQ,KAAK,EAAE,EAC1F;EAED,oBACEX,KAAA,CAAC1D,UAAA;IAAWG,SAAA,EAAWA,SAAA;eACpBiD,iBAAA,E,aACDM,KAAA,CAAC;MAAIY,SAAA,EAAW,GAAGnE,SAAA,QAAiB;8BAClCyD,IAAA,CAAC1D,WAAA;QACCK,mBAAA,EAAqBA,mBAAA;QACrBC,IAAA,EAAMA,IAAA;QACNC,MAAA,EAAQA,MAAA;QACR6B,cAAA,EAAgBA,cAAA;QAChB5B,MAAA,EAAQA,MAAA;QACRC,OAAA,EAASA,OAAA;QACTC,WAAA,EAAaA,WAAA;QACbC,GAAA,EAAKA,GAAA;QACLC,YAAA,EAAcA,YAAA;QACdyD,MAAA,EAAQ1D,GAAA,EAAK0D,MAAA;QACbJ,IAAA,EAAMX,OAAA;QACNzC,IAAA,EAAMA,IAAA;QACNC,QAAA,EAAUA;uBAEZ0C,KAAA,CAAC;QAAIY,SAAA,EAAW,GAAGnE,SAAA,YAAqB;gCACtCyD,IAAA,CAAC3D,kBAAA;UAAmByB,YAAA,EAAcoB;YACjCP,eAAA;;QAGJgB,gBAAA;;AAGP","ignoreList":[]}
|
package/dist/exports/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { HierarchyTypeField } from '../elements/HierarchyTypeField/index.js';
|
|
2
2
|
export { DefaultNavClient } from '../elements/Nav/index.client.js';
|
|
3
|
-
export {
|
|
3
|
+
export { NavSidebarToggle } from '../elements/Nav/NavSidebarToggle/index.js';
|
|
4
4
|
export { NavWrapper } from '../elements/Nav/NavWrapper/index.js';
|
|
5
5
|
export { QueryPresetsAccessCell, QueryPresetsColumnField, QueryPresetsColumnsCell, QueryPresetsGroupByCell, QueryPresetsGroupByField, QueryPresetsWhereCell, QueryPresetsWhereField, SlugField, } from '@payloadcms/ui';
|
|
6
6
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAChE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,GACV,MAAM,gBAAgB,CAAA"}
|
package/dist/exports/client.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
export { HierarchyTypeField } from '../elements/HierarchyTypeField/index.js';
|
|
4
4
|
export { DefaultNavClient } from '../elements/Nav/index.client.js';
|
|
5
|
-
export {
|
|
5
|
+
export { NavSidebarToggle } from '../elements/Nav/NavSidebarToggle/index.js';
|
|
6
6
|
export { NavWrapper } from '../elements/Nav/NavWrapper/index.js';
|
|
7
7
|
export { QueryPresetsAccessCell, QueryPresetsColumnField, QueryPresetsColumnsCell, QueryPresetsGroupByCell, QueryPresetsGroupByField, QueryPresetsWhereCell, QueryPresetsWhereField, SlugField } from '@payloadcms/ui';
|
|
8
8
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["HierarchyTypeField","DefaultNavClient","
|
|
1
|
+
{"version":3,"file":"client.js","names":["HierarchyTypeField","DefaultNavClient","NavSidebarToggle","NavWrapper","QueryPresetsAccessCell","QueryPresetsColumnField","QueryPresetsColumnsCell","QueryPresetsGroupByCell","QueryPresetsGroupByField","QueryPresetsWhereCell","QueryPresetsWhereField","SlugField"],"sources":["../../src/exports/client.ts"],"sourcesContent":["'use client'\n\nexport { HierarchyTypeField } from '../elements/HierarchyTypeField/index.js'\nexport { DefaultNavClient } from '../elements/Nav/index.client.js'\nexport { NavSidebarToggle } from '../elements/Nav/NavSidebarToggle/index.js'\nexport { NavWrapper } from '../elements/Nav/NavWrapper/index.js'\nexport {\n QueryPresetsAccessCell,\n QueryPresetsColumnField,\n QueryPresetsColumnsCell,\n QueryPresetsGroupByCell,\n QueryPresetsGroupByField,\n QueryPresetsWhereCell,\n QueryPresetsWhereField,\n SlugField,\n} from '@payloadcms/ui'\n"],"mappings":"AAAA;;AAEA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SACEC,sBAAsB,EACtBC,uBAAuB,EACvBC,uBAAuB,EACvBC,uBAAuB,EACvBC,wBAAwB,EACxBC,qBAAqB,EACrBC,sBAAsB,EACtBC,SAAS,QACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAmB,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAmB,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAShG,OAAO,KAAmB,MAAM,OAAO,CAAA;AAUvC,OAAO,8BAA8B,CAAA;AAYrC,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAA;IAC9D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,kFAOxB,eAAe,sBAoBjB,CAAA"}
|
|
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { rtlLanguages } from '@payloadcms/translations';
|
|
3
3
|
import { ProgressBar, RootProvider } from '@payloadcms/ui';
|
|
4
4
|
import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
|
|
5
|
+
// @ts-expect-error - TS6 NodeNext rejects deep imports into `next` (no `exports` field), but Next.js compiler requires this exact specifier
|
|
5
6
|
import { Inter, Roboto_Mono } from 'next/font/google';
|
|
6
7
|
import { cookies as nextCookies } from 'next/headers.js';
|
|
7
8
|
import { applyLocaleFiltering } from 'payload/shared';
|
|
8
9
|
import React, { Suspense } from 'react';
|
|
10
|
+
import { NextRouterAdapter } from '../../adapters/router.js';
|
|
9
11
|
import { getNavPrefs } from '../../elements/Nav/getNavPrefs.js';
|
|
10
12
|
import { getRequestHighContrast } from '../../utilities/getRequestHighContrast.js';
|
|
11
13
|
import { getRequestTheme } from '../../utilities/getRequestTheme.js';
|
|
@@ -139,6 +141,7 @@ const RootLayoutContent = async ({
|
|
|
139
141
|
languageOptions: languageOptions,
|
|
140
142
|
locale: req.locale,
|
|
141
143
|
permissions: req.user ? permissions : null,
|
|
144
|
+
RouterAdapter: NextRouterAdapter,
|
|
142
145
|
serverFunction: serverFunction,
|
|
143
146
|
switchLanguageServerAction: switchLanguageServerAction,
|
|
144
147
|
theme: theme,
|
|
@@ -151,6 +154,7 @@ const RootLayoutContent = async ({
|
|
|
151
154
|
i18n: req.i18n,
|
|
152
155
|
payload: req.payload,
|
|
153
156
|
permissions,
|
|
157
|
+
server: req.server,
|
|
154
158
|
user: req.user
|
|
155
159
|
},
|
|
156
160
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["rtlLanguages","ProgressBar","RootProvider","getClientConfig","Inter","Roboto_Mono","cookies","nextCookies","applyLocaleFiltering","React","Suspense","getNavPrefs","getRequestHighContrast","getRequestTheme","initReq","checkDependencies","NestProviders","inter","subsets","variable","robotoMono","metadata","description","title","RootLayout","children","config","configPromise","head","htmlProps","importMap","serverFunction","content","_jsx","RootLayoutContent","process","env","PAYLOAD_CACHE_COMPONENTS_ENABLED","fallback","headFromProps","headers","languageCode","permissions","req","payload","key","theme","highContrastMode","dir","includes","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","maxAge","path","navPrefs","clientConfig","user","_jsxs","className","filter","Boolean","join","undefined","suppressHydrationWarning","admin","dateFNSKey","fallbackLang","fallbackLanguage","isNavOpen","open","locale","Array","isArray","components","providers","length","serverProps","id"],"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { ImportMap, LanguageOptions, SanitizedConfig, ServerFunctionClient } from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { ProgressBar, RootProvider } from '@payloadcms/ui'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { Inter, Roboto_Mono } from 'next/font/google'\nimport { cookies as nextCookies } from 'next/headers.js'\nimport { applyLocaleFiltering } from 'payload/shared'\nimport React, { Suspense } from 'react'\n\nimport { getNavPrefs } from '../../elements/Nav/getNavPrefs.js'\nimport { getRequestHighContrast } from '../../utilities/getRequestHighContrast.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { initReq } from '../../utilities/initReq.js'\nimport { checkDependencies } from './checkDependencies.js'\nimport { NestProviders } from './NestProviders.js'\n\nimport '@payloadcms/ui/scss/app.scss'\n\nconst inter = Inter({\n subsets: ['latin'],\n variable: '--font-family-sans',\n})\n\nconst robotoMono = Roboto_Mono({\n subsets: ['latin'],\n variable: '--font-family-mono',\n})\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\ntype RootLayoutProps = {\n readonly children: React.ReactNode\n readonly config: Promise<SanitizedConfig>\n /**\n * Custom content to render inside the admin panel's `<head>` element.\n *\n * Use this to inject scripts, meta tags, or links — for example, analytics\n * snippets via `next/script`, custom favicons, or preconnect hints.\n *\n * @example\n * ```tsx\n * import Script from 'next/script'\n *\n * <RootLayout\n * head={<Script src=\"https://example.com/analytics.js\" strategy=\"afterInteractive\" />}\n * {...rest}\n * />\n * ```\n */\n readonly head?: React.ReactNode\n readonly htmlProps?: React.HtmlHTMLAttributes<HTMLHtmlElement>\n readonly importMap: ImportMap\n readonly serverFunction: ServerFunctionClient\n}\n\nexport const RootLayout = ({\n children,\n config: configPromise,\n head,\n htmlProps,\n importMap,\n serverFunction,\n}: RootLayoutProps) => {\n checkDependencies()\n\n const content = (\n <RootLayoutContent\n config={configPromise}\n head={head}\n htmlProps={htmlProps}\n importMap={importMap}\n serverFunction={serverFunction}\n >\n {children}\n </RootLayoutContent>\n )\n\n if (process.env.PAYLOAD_CACHE_COMPONENTS_ENABLED === 'true') {\n return <Suspense fallback={null}>{content}</Suspense>\n }\n\n return content\n}\n\nconst RootLayoutContent = async ({\n children,\n config: configPromise,\n head: headFromProps,\n htmlProps = {},\n importMap,\n serverFunction,\n}: RootLayoutProps) => {\n const {\n cookies,\n headers,\n languageCode,\n permissions,\n req,\n req: {\n payload: { config },\n },\n } = await initReq({ configPromise, importMap, key: 'RootLayout' })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const highContrastMode = getRequestHighContrast({\n config,\n cookies,\n headers,\n })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions: LanguageOptions = Object.entries(\n config.i18n.supportedLanguages || {},\n ).reduce((acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n }, [])\n\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n const cookies = await nextCookies()\n cookies.set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n maxAge: 60 * 60 * 24 * 365,\n path: '/',\n value: lang,\n })\n }\n\n const navPrefs = await getNavPrefs(req)\n\n const clientConfig = getClientConfig({\n config,\n i18n: req.i18n,\n importMap,\n user: req.user,\n })\n\n await applyLocaleFiltering({ clientConfig, config, req })\n\n return (\n <html\n {...htmlProps}\n className={[inter.variable, robotoMono.variable, htmlProps?.className]\n .filter(Boolean)\n .join(' ')}\n data-enhanced-contrast={highContrastMode ? '' : undefined}\n data-theme={theme}\n dir={dir}\n lang={languageCode}\n suppressHydrationWarning={config?.admin?.suppressHydrationWarning ?? false}\n >\n <head>\n <style>{`@layer payload-default, payload;`}</style>\n {headFromProps}\n </head>\n <body>\n <RootProvider\n config={clientConfig}\n dateFNSKey={req.i18n.dateFNSKey}\n fallbackLang={config.i18n.fallbackLanguage}\n highContrastMode={highContrastMode}\n isNavOpen={navPrefs?.open ?? true}\n languageCode={languageCode}\n languageOptions={languageOptions}\n locale={req.locale}\n permissions={req.user ? permissions : null}\n serverFunction={serverFunction}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={req.i18n.translations}\n user={req.user}\n >\n <ProgressBar />\n {Array.isArray(config.admin?.components?.providers) &&\n config.admin?.components?.providers.length > 0 ? (\n <NestProviders\n importMap={req.payload.importMap}\n providers={config.admin?.components?.providers}\n serverProps={{\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n user: req.user,\n }}\n >\n {children}\n </NestProviders>\n ) : (\n children\n )}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["rtlLanguages","ProgressBar","RootProvider","getClientConfig","Inter","Roboto_Mono","cookies","nextCookies","applyLocaleFiltering","React","Suspense","NextRouterAdapter","getNavPrefs","getRequestHighContrast","getRequestTheme","initReq","checkDependencies","NestProviders","inter","subsets","variable","robotoMono","metadata","description","title","RootLayout","children","config","configPromise","head","htmlProps","importMap","serverFunction","content","_jsx","RootLayoutContent","process","env","PAYLOAD_CACHE_COMPONENTS_ENABLED","fallback","headFromProps","headers","languageCode","permissions","req","payload","key","theme","highContrastMode","dir","includes","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","maxAge","path","navPrefs","clientConfig","user","_jsxs","className","filter","Boolean","join","undefined","suppressHydrationWarning","admin","dateFNSKey","fallbackLang","fallbackLanguage","isNavOpen","open","locale","RouterAdapter","Array","isArray","components","providers","length","serverProps","server","id"],"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { ImportMap, LanguageOptions, SanitizedConfig, ServerFunctionClient } from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { ProgressBar, RootProvider } from '@payloadcms/ui'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\n// @ts-expect-error - TS6 NodeNext rejects deep imports into `next` (no `exports` field), but Next.js compiler requires this exact specifier\nimport { Inter, Roboto_Mono } from 'next/font/google'\nimport { cookies as nextCookies } from 'next/headers.js'\nimport { applyLocaleFiltering } from 'payload/shared'\nimport React, { Suspense } from 'react'\n\nimport { NextRouterAdapter } from '../../adapters/router.js'\nimport { getNavPrefs } from '../../elements/Nav/getNavPrefs.js'\nimport { getRequestHighContrast } from '../../utilities/getRequestHighContrast.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { initReq } from '../../utilities/initReq.js'\nimport { checkDependencies } from './checkDependencies.js'\nimport { NestProviders } from './NestProviders.js'\n\nimport '@payloadcms/ui/scss/app.scss'\n\nconst inter = Inter({\n subsets: ['latin'],\n variable: '--font-family-sans',\n})\n\nconst robotoMono = Roboto_Mono({\n subsets: ['latin'],\n variable: '--font-family-mono',\n})\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\ntype RootLayoutProps = {\n readonly children: React.ReactNode\n readonly config: Promise<SanitizedConfig>\n /**\n * Custom content to render inside the admin panel's `<head>` element.\n *\n * Use this to inject scripts, meta tags, or links — for example, analytics\n * snippets via `next/script`, custom favicons, or preconnect hints.\n *\n * @example\n * ```tsx\n * import Script from 'next/script'\n *\n * <RootLayout\n * head={<Script src=\"https://example.com/analytics.js\" strategy=\"afterInteractive\" />}\n * {...rest}\n * />\n * ```\n */\n readonly head?: React.ReactNode\n readonly htmlProps?: React.HtmlHTMLAttributes<HTMLHtmlElement>\n readonly importMap: ImportMap\n readonly serverFunction: ServerFunctionClient\n}\n\nexport const RootLayout = ({\n children,\n config: configPromise,\n head,\n htmlProps,\n importMap,\n serverFunction,\n}: RootLayoutProps) => {\n checkDependencies()\n\n const content = (\n <RootLayoutContent\n config={configPromise}\n head={head}\n htmlProps={htmlProps}\n importMap={importMap}\n serverFunction={serverFunction}\n >\n {children}\n </RootLayoutContent>\n )\n\n if (process.env.PAYLOAD_CACHE_COMPONENTS_ENABLED === 'true') {\n return <Suspense fallback={null}>{content}</Suspense>\n }\n\n return content\n}\n\nconst RootLayoutContent = async ({\n children,\n config: configPromise,\n head: headFromProps,\n htmlProps = {},\n importMap,\n serverFunction,\n}: RootLayoutProps) => {\n const {\n cookies,\n headers,\n languageCode,\n permissions,\n req,\n req: {\n payload: { config },\n },\n } = await initReq({ configPromise, importMap, key: 'RootLayout' })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const highContrastMode = getRequestHighContrast({\n config,\n cookies,\n headers,\n })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions: LanguageOptions = Object.entries(\n config.i18n.supportedLanguages || {},\n ).reduce((acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n }, [])\n\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n const cookies = await nextCookies()\n cookies.set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n maxAge: 60 * 60 * 24 * 365,\n path: '/',\n value: lang,\n })\n }\n\n const navPrefs = await getNavPrefs(req)\n\n const clientConfig = getClientConfig({\n config,\n i18n: req.i18n,\n importMap,\n user: req.user,\n })\n\n await applyLocaleFiltering({ clientConfig, config, req })\n\n return (\n <html\n {...htmlProps}\n className={[inter.variable, robotoMono.variable, htmlProps?.className]\n .filter(Boolean)\n .join(' ')}\n data-enhanced-contrast={highContrastMode ? '' : undefined}\n data-theme={theme}\n dir={dir}\n lang={languageCode}\n suppressHydrationWarning={config?.admin?.suppressHydrationWarning ?? false}\n >\n <head>\n <style>{`@layer payload-default, payload;`}</style>\n {headFromProps}\n </head>\n <body>\n <RootProvider\n config={clientConfig}\n dateFNSKey={req.i18n.dateFNSKey}\n fallbackLang={config.i18n.fallbackLanguage}\n highContrastMode={highContrastMode}\n isNavOpen={navPrefs?.open ?? true}\n languageCode={languageCode}\n languageOptions={languageOptions}\n locale={req.locale}\n permissions={req.user ? permissions : null}\n RouterAdapter={NextRouterAdapter}\n serverFunction={serverFunction}\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={req.i18n.translations}\n user={req.user}\n >\n <ProgressBar />\n {Array.isArray(config.admin?.components?.providers) &&\n config.admin?.components?.providers.length > 0 ? (\n <NestProviders\n importMap={req.payload.importMap}\n providers={config.admin?.components?.providers}\n serverProps={{\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n server: req.server,\n user: req.user,\n }}\n >\n {children}\n </NestProviders>\n ) : (\n children\n )}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|