@payloadcms/next 3.84.1 → 4.0.0-internal.38b7f1d
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/cjs/withPayload.cjs +15 -176
- package/dist/cjs/withPayload.cjs.map +4 -4
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +0 -4
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/HierarchyTypeField/index.d.ts +9 -0
- package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -0
- package/dist/elements/HierarchyTypeField/index.js +114 -0
- package/dist/elements/HierarchyTypeField/index.js.map +1 -0
- package/dist/elements/HierarchyTypeField/index.server.d.ts +9 -0
- package/dist/elements/HierarchyTypeField/index.server.d.ts.map +1 -0
- package/dist/elements/HierarchyTypeField/index.server.js +32 -0
- package/dist/elements/HierarchyTypeField/index.server.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.css +29 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts +8 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.js +42 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/constants.d.ts +2 -0
- package/dist/elements/Nav/SidebarTabs/constants.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/constants.js +2 -0
- package/dist/elements/Nav/SidebarTabs/constants.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts +22 -0
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.client.js +195 -0
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.css +80 -0
- package/dist/elements/Nav/SidebarTabs/index.d.ts +17 -0
- package/dist/elements/Nav/SidebarTabs/index.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.js +85 -0
- package/dist/elements/Nav/SidebarTabs/index.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +10 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +54 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -0
- package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
- package/dist/elements/Nav/getNavPrefs.js +36 -2
- package/dist/elements/Nav/getNavPrefs.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +48 -63
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.css +155 -0
- package/dist/elements/Nav/index.d.ts +1 -1
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +39 -8
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/exports/client.d.ts +2 -1
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/rsc.d.ts +2 -1
- package/dist/exports/rsc.d.ts.map +1 -1
- package/dist/exports/rsc.js +2 -1
- package/dist/exports/rsc.js.map +1 -1
- package/dist/exports/utilities.d.ts +2 -67
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +1 -49
- package/dist/exports/utilities.js.map +1 -1
- package/dist/layouts/Root/index.d.ts +18 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +25 -4
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/getHierarchyAncestry.d.ts +24 -0
- package/dist/utilities/getHierarchyAncestry.d.ts.map +1 -0
- package/dist/utilities/getHierarchyAncestry.js +103 -0
- package/dist/utilities/getHierarchyAncestry.js.map +1 -0
- package/dist/utilities/getRequestHighContrast.d.ts +10 -0
- package/dist/utilities/getRequestHighContrast.d.ts.map +1 -0
- package/dist/utilities/getRequestHighContrast.js +18 -0
- package/dist/utilities/getRequestHighContrast.js.map +1 -0
- package/dist/utilities/handleServerFunctions.js +2 -2
- package/dist/utilities/handleServerFunctions.js.map +1 -1
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +2 -1
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/ToggleHighContrast/index.d.ts +3 -0
- package/dist/views/Account/ToggleHighContrast/index.d.ts.map +1 -0
- package/dist/views/Account/ToggleHighContrast/index.js +45 -0
- package/dist/views/Account/ToggleHighContrast/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -3
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Document/getDocumentView.d.ts.map +1 -1
- package/dist/views/Document/getDocumentView.js +3 -9
- package/dist/views/Document/getDocumentView.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +16 -8
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Hierarchy/index.d.ts +18 -0
- package/dist/views/Hierarchy/index.d.ts.map +1 -0
- package/dist/views/Hierarchy/index.js +20 -0
- package/dist/views/Hierarchy/index.js.map +1 -0
- package/dist/views/List/handleHierarchy.d.ts +18 -0
- package/dist/views/List/handleHierarchy.d.ts.map +1 -0
- package/dist/views/List/handleHierarchy.js +258 -0
- package/dist/views/List/handleHierarchy.js.map +1 -0
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +101 -30
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts +12 -0
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -0
- package/dist/views/Root/getCustomGlobalViewByRoute.js +46 -0
- package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -0
- package/dist/views/Root/getRouteData.d.ts +1 -4
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +83 -110
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +5 -12
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/metadata.d.ts.map +1 -1
- package/dist/views/Root/metadata.js +1 -37
- package/dist/views/Root/metadata.js.map +1 -1
- package/dist/views/Version/Restore/index.js +1 -1
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/withPayload/withPayload.d.ts +127 -1
- package/dist/withPayload/withPayload.d.ts.map +1 -1
- package/dist/withPayload/withPayload.js +8 -22
- package/dist/withPayload/withPayload.js.map +1 -1
- package/dist/withPayload/withPayload.utils.d.ts +0 -14
- package/dist/withPayload/withPayload.utils.d.ts.map +1 -1
- package/dist/withPayload/withPayload.utils.js +0 -73
- package/dist/withPayload/withPayload.utils.js.map +1 -1
- package/package.json +12 -12
- package/dist/views/BrowseByFolder/buildView.d.ts +0 -13
- package/dist/views/BrowseByFolder/buildView.d.ts.map +0 -1
- package/dist/views/BrowseByFolder/buildView.js +0 -170
- package/dist/views/BrowseByFolder/buildView.js.map +0 -1
- package/dist/views/BrowseByFolder/index.d.ts +0 -4
- package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
- package/dist/views/BrowseByFolder/index.js +0 -20
- package/dist/views/BrowseByFolder/index.js.map +0 -1
- package/dist/views/BrowseByFolder/metadata.d.ts +0 -4
- package/dist/views/BrowseByFolder/metadata.d.ts.map +0 -1
- package/dist/views/BrowseByFolder/metadata.js +0 -18
- package/dist/views/BrowseByFolder/metadata.js.map +0 -1
- package/dist/views/CollectionFolders/buildView.d.ts +0 -15
- package/dist/views/CollectionFolders/buildView.d.ts.map +0 -1
- package/dist/views/CollectionFolders/buildView.js +0 -156
- package/dist/views/CollectionFolders/buildView.js.map +0 -1
- package/dist/views/CollectionFolders/index.d.ts +0 -4
- package/dist/views/CollectionFolders/index.d.ts.map +0 -1
- package/dist/views/CollectionFolders/index.js +0 -20
- package/dist/views/CollectionFolders/index.js.map +0 -1
- package/dist/views/CollectionFolders/metadata.d.ts +0 -7
- package/dist/views/CollectionFolders/metadata.d.ts.map +0 -1
- package/dist/views/CollectionFolders/metadata.js +0 -25
- package/dist/views/CollectionFolders/metadata.js.map +0 -1
- package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +0 -11
- package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +0 -1
- package/dist/views/CollectionFolders/renderFolderViewSlots.js +0 -64
- package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +0 -1
- package/dist/withPayload/withPayloadLegacy.d.ts +0 -2
- package/dist/withPayload/withPayloadLegacy.d.ts.map +0 -1
- package/dist/withPayload/withPayloadLegacy.js +0 -47
- package/dist/withPayload/withPayloadLegacy.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Payload, PayloadRequest } from 'payload';
|
|
2
|
+
export type HierarchyAncestryItem = {
|
|
3
|
+
id: number | string;
|
|
4
|
+
path: Array<{
|
|
5
|
+
id: number | string;
|
|
6
|
+
title: string;
|
|
7
|
+
}>;
|
|
8
|
+
title: string;
|
|
9
|
+
};
|
|
10
|
+
export type HierarchyAncestryResult = {
|
|
11
|
+
items: HierarchyAncestryItem[];
|
|
12
|
+
};
|
|
13
|
+
export type GetHierarchyAncestryArgs = {
|
|
14
|
+
hierarchySlug: string;
|
|
15
|
+
ids: (number | string)[];
|
|
16
|
+
payload: Payload;
|
|
17
|
+
user?: PayloadRequest['user'];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Returns full ancestry paths for hierarchy items.
|
|
21
|
+
* Each item includes its own title and the path from root to self.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getHierarchyAncestry({ hierarchySlug, ids, payload, user, }: GetHierarchyAncestryArgs): Promise<HierarchyAncestryResult>;
|
|
24
|
+
//# sourceMappingURL=getHierarchyAncestry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHierarchyAncestry.d.ts","sourceRoot":"","sources":["../../src/utilities/getHierarchyAncestry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEtD,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC9B,CAAA;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,aAAa,EACb,GAAG,EACH,OAAO,EACP,IAAI,GACL,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAyH7D"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns full ancestry paths for hierarchy items.
|
|
3
|
+
* Each item includes its own title and the path from root to self.
|
|
4
|
+
*/export async function getHierarchyAncestry({
|
|
5
|
+
hierarchySlug,
|
|
6
|
+
ids,
|
|
7
|
+
payload,
|
|
8
|
+
user
|
|
9
|
+
}) {
|
|
10
|
+
if (ids.length === 0) {
|
|
11
|
+
return {
|
|
12
|
+
items: []
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const collectionConfig = payload.collections[hierarchySlug]?.config;
|
|
16
|
+
const hierarchyConfig = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
|
|
17
|
+
if (!hierarchyConfig) {
|
|
18
|
+
throw new Error(`Collection "${hierarchySlug}" is not a hierarchy`);
|
|
19
|
+
}
|
|
20
|
+
const parentFieldName = hierarchyConfig.parentFieldName;
|
|
21
|
+
const useAsTitle = collectionConfig.admin?.useAsTitle || 'id';
|
|
22
|
+
// Cache for already-fetched items to avoid redundant queries
|
|
23
|
+
const itemCache = new Map();
|
|
24
|
+
const fetchItem = async id => {
|
|
25
|
+
const cached = itemCache.get(id);
|
|
26
|
+
if (cached) {
|
|
27
|
+
return cached;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const item = await payload.findByID({
|
|
31
|
+
id,
|
|
32
|
+
collection: hierarchySlug,
|
|
33
|
+
depth: 0,
|
|
34
|
+
overrideAccess: false,
|
|
35
|
+
user
|
|
36
|
+
});
|
|
37
|
+
if (item) {
|
|
38
|
+
itemCache.set(id, item);
|
|
39
|
+
}
|
|
40
|
+
return item;
|
|
41
|
+
} catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const getTitle = (item, id) => {
|
|
46
|
+
const rawTitle = item[useAsTitle] || item.id || id;
|
|
47
|
+
if (rawTitle && typeof rawTitle === 'object') {
|
|
48
|
+
return JSON.stringify(rawTitle);
|
|
49
|
+
}
|
|
50
|
+
if (typeof rawTitle === 'string') {
|
|
51
|
+
return rawTitle;
|
|
52
|
+
}
|
|
53
|
+
if (typeof rawTitle === 'number') {
|
|
54
|
+
return String(rawTitle);
|
|
55
|
+
}
|
|
56
|
+
return String(id);
|
|
57
|
+
};
|
|
58
|
+
const getParentId = item => {
|
|
59
|
+
const parentValue = item[parentFieldName];
|
|
60
|
+
if (!parentValue) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (typeof parentValue === 'object' && parentValue !== null && 'id' in parentValue) {
|
|
64
|
+
return parentValue.id;
|
|
65
|
+
}
|
|
66
|
+
return parentValue;
|
|
67
|
+
};
|
|
68
|
+
const buildPath = async (startItem, startId) => {
|
|
69
|
+
const path = [];
|
|
70
|
+
let currentItem = startItem;
|
|
71
|
+
let currentId = startId;
|
|
72
|
+
while (currentItem && currentId !== null) {
|
|
73
|
+
path.unshift({
|
|
74
|
+
id: currentId,
|
|
75
|
+
title: getTitle(currentItem, currentId)
|
|
76
|
+
});
|
|
77
|
+
const nextParentId = getParentId(currentItem);
|
|
78
|
+
if (!nextParentId) {
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
currentItem = await fetchItem(nextParentId);
|
|
82
|
+
currentId = nextParentId;
|
|
83
|
+
}
|
|
84
|
+
return path;
|
|
85
|
+
};
|
|
86
|
+
const items = [];
|
|
87
|
+
for (const id of ids) {
|
|
88
|
+
const item = await fetchItem(id);
|
|
89
|
+
if (!item) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const path = await buildPath(item, id);
|
|
93
|
+
items.push({
|
|
94
|
+
id,
|
|
95
|
+
path,
|
|
96
|
+
title: getTitle(item, id)
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
items
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=getHierarchyAncestry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHierarchyAncestry.js","names":["getHierarchyAncestry","hierarchySlug","ids","payload","user","length","items","collectionConfig","collections","config","hierarchyConfig","hierarchy","undefined","Error","parentFieldName","useAsTitle","admin","itemCache","Map","fetchItem","id","cached","get","item","findByID","collection","depth","overrideAccess","set","getTitle","rawTitle","JSON","stringify","String","getParentId","parentValue","buildPath","startItem","startId","path","currentItem","currentId","unshift","title","nextParentId","push"],"sources":["../../src/utilities/getHierarchyAncestry.ts"],"sourcesContent":["import type { Payload, PayloadRequest } from 'payload'\n\nexport type HierarchyAncestryItem = {\n id: number | string\n path: Array<{ id: number | string; title: string }>\n title: string\n}\n\nexport type HierarchyAncestryResult = {\n items: HierarchyAncestryItem[]\n}\n\nexport type GetHierarchyAncestryArgs = {\n hierarchySlug: string\n ids: (number | string)[]\n payload: Payload\n user?: PayloadRequest['user']\n}\n\n/**\n * Returns full ancestry paths for hierarchy items.\n * Each item includes its own title and the path from root to self.\n */\nexport async function getHierarchyAncestry({\n hierarchySlug,\n ids,\n payload,\n user,\n}: GetHierarchyAncestryArgs): Promise<HierarchyAncestryResult> {\n if (ids.length === 0) {\n return { items: [] }\n }\n\n const collectionConfig = payload.collections[hierarchySlug]?.config\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n\n if (!hierarchyConfig) {\n throw new Error(`Collection \"${hierarchySlug}\" is not a hierarchy`)\n }\n\n const parentFieldName = hierarchyConfig.parentFieldName\n const useAsTitle = collectionConfig.admin?.useAsTitle || 'id'\n\n // Cache for already-fetched items to avoid redundant queries\n const itemCache = new Map<number | string, Record<string, unknown>>()\n\n const fetchItem = async (id: number | string): Promise<null | Record<string, unknown>> => {\n const cached = itemCache.get(id)\n if (cached) {\n return cached\n }\n\n try {\n const item = await payload.findByID({\n id,\n collection: hierarchySlug,\n depth: 0,\n overrideAccess: false,\n user,\n })\n\n if (item) {\n itemCache.set(id, item)\n }\n\n return item\n } catch {\n return null\n }\n }\n\n const getTitle = (item: Record<string, unknown>, id: number | string): string => {\n const rawTitle = item[useAsTitle] || item.id || id\n\n if (rawTitle && typeof rawTitle === 'object') {\n return JSON.stringify(rawTitle)\n }\n\n if (typeof rawTitle === 'string') {\n return rawTitle\n }\n\n if (typeof rawTitle === 'number') {\n return String(rawTitle)\n }\n\n return String(id)\n }\n\n const getParentId = (item: Record<string, unknown>): null | number | string => {\n const parentValue = item[parentFieldName]\n\n if (!parentValue) {\n return null\n }\n\n if (typeof parentValue === 'object' && parentValue !== null && 'id' in parentValue) {\n return (parentValue as { id: number | string }).id\n }\n\n return parentValue as number | string\n }\n\n const buildPath = async (\n startItem: Record<string, unknown>,\n startId: number | string,\n ): Promise<Array<{ id: number | string; title: string }>> => {\n const path: Array<{ id: number | string; title: string }> = []\n let currentItem: null | Record<string, unknown> = startItem\n let currentId: null | number | string = startId\n\n while (currentItem && currentId !== null) {\n path.unshift({\n id: currentId,\n title: getTitle(currentItem, currentId),\n })\n\n const nextParentId = getParentId(currentItem)\n if (!nextParentId) {\n break\n }\n\n currentItem = await fetchItem(nextParentId)\n currentId = nextParentId\n }\n\n return path\n }\n\n const items: HierarchyAncestryItem[] = []\n\n for (const id of ids) {\n const item = await fetchItem(id)\n if (!item) {\n continue\n }\n\n const path = await buildPath(item, id)\n items.push({\n id,\n path,\n title: getTitle(item, id),\n })\n }\n\n return { items }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js';
|
|
2
|
+
import type { SanitizedConfig } from 'payload';
|
|
3
|
+
type GetRequestHighContrastArgs = {
|
|
4
|
+
config: SanitizedConfig;
|
|
5
|
+
cookies: Map<string, string> | ReadonlyRequestCookies;
|
|
6
|
+
headers: Request['headers'];
|
|
7
|
+
};
|
|
8
|
+
export declare const getRequestHighContrast: ({ config, cookies, headers, }: GetRequestHighContrastArgs) => boolean;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=getRequestHighContrast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRequestHighContrast.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestHighContrast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAA;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB,CAAA;IACrD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,sBAAsB,kCAIhC,0BAA0B,KAAG,OAgB/B,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const getRequestHighContrast = ({
|
|
2
|
+
config,
|
|
3
|
+
cookies,
|
|
4
|
+
headers
|
|
5
|
+
}) => {
|
|
6
|
+
const cookieKey = `${config.cookiePrefix || 'payload'}-high-contrast-mode`;
|
|
7
|
+
const modeCookie = cookies.get(cookieKey);
|
|
8
|
+
const modeFromCookie = typeof modeCookie === 'string' ? modeCookie : modeCookie?.value;
|
|
9
|
+
if (modeFromCookie === 'true') {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (modeFromCookie === 'false') {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const contrastHeader = headers.get('Sec-CH-Prefers-Contrast');
|
|
16
|
+
return contrastHeader === 'more' || contrastHeader === 'forced';
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=getRequestHighContrast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRequestHighContrast.js","names":["getRequestHighContrast","config","cookies","headers","cookieKey","cookiePrefix","modeCookie","get","modeFromCookie","value","contrastHeader"],"sources":["../../src/utilities/getRequestHighContrast.ts"],"sourcesContent":["import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js'\nimport type { SanitizedConfig } from 'payload'\n\ntype GetRequestHighContrastArgs = {\n config: SanitizedConfig\n cookies: Map<string, string> | ReadonlyRequestCookies\n headers: Request['headers']\n}\n\nexport const getRequestHighContrast = ({\n config,\n cookies,\n headers,\n}: GetRequestHighContrastArgs): boolean => {\n const cookieKey = `${config.cookiePrefix || 'payload'}-high-contrast-mode`\n const modeCookie = cookies.get(cookieKey)\n\n const modeFromCookie = typeof modeCookie === 'string' ? modeCookie : modeCookie?.value\n\n if (modeFromCookie === 'true') {\n return true\n }\n if (modeFromCookie === 'false') {\n return false\n }\n\n const contrastHeader = headers.get('Sec-CH-Prefers-Contrast')\n\n return contrastHeader === 'more' || contrastHeader === 'forced'\n}\n"],"mappings":"AASA,OAAO,MAAMA,sBAAA,GAAyBA,CAAC;EACrCC,MAAM;EACNC,OAAO;EACPC;AAAO,CACoB;EAC3B,MAAMC,SAAA,GAAY,GAAGH,MAAA,CAAOI,YAAY,IAAI,8BAA8B;EAC1E,MAAMC,UAAA,GAAaJ,OAAA,CAAQK,GAAG,CAACH,SAAA;EAE/B,MAAMI,cAAA,GAAiB,OAAOF,UAAA,KAAe,WAAWA,UAAA,GAAaA,UAAA,EAAYG,KAAA;EAEjF,IAAID,cAAA,KAAmB,QAAQ;IAC7B,OAAO;EACT;EACA,IAAIA,cAAA,KAAmB,SAAS;IAC9B,OAAO;EACT;EAEA,MAAME,cAAA,GAAiBP,OAAA,CAAQI,GAAG,CAAC;EAEnC,OAAOG,cAAA,KAAmB,UAAUA,cAAA,KAAmB;AACzD","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc';
|
|
2
2
|
import { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState';
|
|
3
3
|
import { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState';
|
|
4
|
-
import { getFolderResultsComponentAndDataHandler } from '@payloadcms/ui/utilities/getFolderResultsComponentAndData';
|
|
5
4
|
import { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler';
|
|
5
|
+
import { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js';
|
|
6
6
|
import { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js';
|
|
7
7
|
import { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js';
|
|
8
8
|
import { renderDocumentHandler } from '../views/Document/handleServerFunction.js';
|
|
@@ -14,11 +14,11 @@ const baseServerFunctions = {
|
|
|
14
14
|
'copy-data-from-locale': copyDataFromLocaleHandler,
|
|
15
15
|
'form-state': buildFormStateHandler,
|
|
16
16
|
'get-default-layout': getDefaultLayoutHandler,
|
|
17
|
-
'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,
|
|
18
17
|
'render-document': renderDocumentHandler,
|
|
19
18
|
'render-document-slots': renderDocumentSlotsHandler,
|
|
20
19
|
'render-field': _internal_renderFieldHandler,
|
|
21
20
|
'render-list': renderListHandler,
|
|
21
|
+
'render-tab': renderTabHandler,
|
|
22
22
|
'render-widget': renderWidgetHandler,
|
|
23
23
|
'schedule-publish': schedulePublishHandler,
|
|
24
24
|
slugify: slugifyHandler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","
|
|
1
|
+
{"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","schedulePublishHandler","renderTabHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","slugifyHandler","baseServerFunctions","slugify","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","cookies","locale","permissions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { DefaultServerFunctionArgs, ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js'\nimport { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\nimport { slugifyHandler } from './slugify.js'\n\nconst baseServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'table-state': buildTableStateHandler,\n}\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { cookies, locale, permissions, req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: DefaultServerFunctionArgs = {\n ...fnArgs,\n cookies,\n importMap,\n locale,\n permissions,\n req,\n }\n\n const fn = extraServerFunctions?.[fnKey] || baseServerFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,yBAAyB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAE/B,MAAMC,mBAAA,GAAgE;EACpE,yBAAyBZ,yBAAA;EACzB,cAAcC,qBAAA;EACd,sBAAsBI,uBAAA;EACtB,mBAAmBE,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBT,4BAAA;EAChB,eAAeU,iBAAA;EACf,cAAcL,gBAAA;EACd,iBAAiBE,mBAAA;EACjB,oBAAoBH,sBAAA;EACpBU,OAAA,EAASF,cAAA;EACT,eAAeT;AACjB;AAEA,OAAO,MAAMY,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IACJC,IAAA,EAAMC,KAAK;IACXF,IAAA,EAAMG,MAAM;IACZC,MAAA,EAAQC,aAAa;IACrBC,SAAS;IACTC,eAAA,EAAiBC;EAAoB,CACtC,GAAGR,IAAA;EAEJ,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAG,MAAMjB,OAAA,CAAQ;IAC1DU,aAAA;IACAC,SAAA;IACAO,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA2C;IAC/C,GAAGX,MAAM;IACTM,OAAA;IACAH,SAAA;IACAI,MAAA;IACAC,WAAA;IACAC;EACF;EAEA,MAAMG,EAAA,GAAKP,oBAAA,GAAuBN,KAAA,CAAM,IAAIL,mBAAmB,CAACK,KAAA,CAAM;EAEtE,IAAI,CAACa,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4Bd,KAAA,EAAO;EACrD;EAEA,OAAOa,EAAA,CAAGD,aAAA;AACZ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAG9E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAG9E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAC1B,CAeA,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { FieldLabel } from '@payloadcms/ui';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { ResetPreferences } from '../ResetPreferences/index.js';
|
|
5
|
+
import { ToggleHighContrast } from '../ToggleHighContrast/index.js';
|
|
5
6
|
import { ToggleTheme } from '../ToggleTheme/index.js';
|
|
6
7
|
import { LanguageSelector } from './LanguageSelector.js';
|
|
7
8
|
const baseClass = 'payload-settings';
|
|
@@ -25,7 +26,7 @@ export const Settings = props => {
|
|
|
25
26
|
}), /*#__PURE__*/_jsx(LanguageSelector, {
|
|
26
27
|
languageOptions: languageOptions
|
|
27
28
|
})]
|
|
28
|
-
}), theme === 'all' && /*#__PURE__*/_jsx(ToggleTheme, {}), /*#__PURE__*/_jsx(ResetPreferences, {
|
|
29
|
+
}), theme === 'all' && /*#__PURE__*/_jsx(ToggleTheme, {}), /*#__PURE__*/_jsx(ToggleHighContrast, {}), /*#__PURE__*/_jsx(ResetPreferences, {
|
|
29
30
|
user: user
|
|
30
31
|
})]
|
|
31
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["FieldLabel","React","ResetPreferences","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","theme","user","_jsxs","filter","Boolean","join","_jsx","t","htmlFor","label"],"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { BasePayload, Config, LanguageOptions, TypedUser } from 'payload'\n\nimport { FieldLabel } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ResetPreferences } from '../ResetPreferences/index.js'\nimport './index.scss'\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport { LanguageSelector } from './LanguageSelector.js'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n readonly className?: string\n readonly i18n: I18n\n readonly languageOptions: LanguageOptions\n readonly payload: BasePayload\n readonly theme: Config['admin']['theme']\n readonly user?: TypedUser\n}> = (props) => {\n const { className, i18n, languageOptions, theme, user } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n {theme === 'all' && <ToggleTheme />}\n <ResetPreferences user={user} />\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AAEjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAOPC,KAAA;EACJ,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,eAAe;IAAEC,KAAK;IAAEC;EAAI,CAAE,GAAGL,KAAA;EAE1D,oBACEM,KAAA,CAAC;IAAIL,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACM,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;4BAC1DC,IAAA,CAAC;gBAAIR,IAAA,CAAKS,CAAC,CAAC;qBACZL,KAAA,CAAC;MAAIL,SAAA,EAAW,GAAGH,SAAA,YAAqB;8BACtCY,IAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["FieldLabel","React","ResetPreferences","ToggleHighContrast","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","theme","user","_jsxs","filter","Boolean","join","_jsx","t","htmlFor","label"],"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { BasePayload, Config, LanguageOptions, TypedUser } from 'payload'\n\nimport { FieldLabel } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ResetPreferences } from '../ResetPreferences/index.js'\nimport './index.scss'\nimport { ToggleHighContrast } from '../ToggleHighContrast/index.js'\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport { LanguageSelector } from './LanguageSelector.js'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n readonly className?: string\n readonly i18n: I18n\n readonly languageOptions: LanguageOptions\n readonly payload: BasePayload\n readonly theme: Config['admin']['theme']\n readonly user?: TypedUser\n}> = (props) => {\n const { className, i18n, languageOptions, theme, user } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n {theme === 'all' && <ToggleTheme />}\n <ToggleHighContrast />\n <ResetPreferences user={user} />\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AAEjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,WAAW,QAAQ;AAC5B,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAOPC,KAAA;EACJ,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,eAAe;IAAEC,KAAK;IAAEC;EAAI,CAAE,GAAGL,KAAA;EAE1D,oBACEM,KAAA,CAAC;IAAIL,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACM,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;4BAC1DC,IAAA,CAAC;gBAAIR,IAAA,CAAKS,CAAC,CAAC;qBACZL,KAAA,CAAC;MAAIL,SAAA,EAAW,GAAGH,SAAA,YAAqB;8BACtCY,IAAA,CAAClB,UAAA;QAAWoB,OAAA,EAAQ;QAAkBC,KAAA,EAAOX,IAAA,CAAKS,CAAC,CAAC;uBACpDD,IAAA,CAACb,gBAAA;QAAiBM,eAAA,EAAiBA;;QAEpCC,KAAA,KAAU,sBAASM,IAAA,CAACd,WAAA,O,aACrBc,IAAA,CAACf,kBAAA,O,aACDe,IAAA,CAAChB,gBAAA;MAAiBW,IAAA,EAAMA;;;AAG9B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/ToggleHighContrast/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAoBtC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { CheckboxInput, useTheme, useTranslation } from '@payloadcms/ui';
|
|
6
|
+
import React, { useCallback } from 'react';
|
|
7
|
+
export const ToggleHighContrast = () => {
|
|
8
|
+
const $ = _c(6);
|
|
9
|
+
const {
|
|
10
|
+
highContrastMode,
|
|
11
|
+
setHighContrastMode
|
|
12
|
+
} = useTheme();
|
|
13
|
+
const {
|
|
14
|
+
t
|
|
15
|
+
} = useTranslation();
|
|
16
|
+
let t0;
|
|
17
|
+
if ($[0] !== setHighContrastMode) {
|
|
18
|
+
t0 = event => {
|
|
19
|
+
setHighContrastMode(event.target.checked);
|
|
20
|
+
};
|
|
21
|
+
$[0] = setHighContrastMode;
|
|
22
|
+
$[1] = t0;
|
|
23
|
+
} else {
|
|
24
|
+
t0 = $[1];
|
|
25
|
+
}
|
|
26
|
+
const onToggle = t0;
|
|
27
|
+
let t1;
|
|
28
|
+
if ($[2] !== highContrastMode || $[3] !== onToggle || $[4] !== t) {
|
|
29
|
+
t1 = _jsx(CheckboxInput, {
|
|
30
|
+
checked: highContrastMode,
|
|
31
|
+
id: "field-highContrastMode",
|
|
32
|
+
label: t("general:enhancedContrastMode"),
|
|
33
|
+
name: "highContrastMode",
|
|
34
|
+
onToggle
|
|
35
|
+
});
|
|
36
|
+
$[2] = highContrastMode;
|
|
37
|
+
$[3] = onToggle;
|
|
38
|
+
$[4] = t;
|
|
39
|
+
$[5] = t1;
|
|
40
|
+
} else {
|
|
41
|
+
t1 = $[5];
|
|
42
|
+
}
|
|
43
|
+
return t1;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","CheckboxInput","useTheme","useTranslation","React","useCallback","ToggleHighContrast","$","highContrastMode","setHighContrastMode","t","t0","event","target","checked","onToggle","t1","_jsx","id","label","name"],"sources":["../../../../src/views/Account/ToggleHighContrast/index.tsx"],"sourcesContent":["'use client'\n\nimport { CheckboxInput, useTheme, useTranslation } from '@payloadcms/ui'\nimport React, { useCallback } from 'react'\n\nexport const ToggleHighContrast: React.FC = () => {\n const { highContrastMode, setHighContrastMode } = useTheme()\n const { t } = useTranslation()\n\n const onToggle = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setHighContrastMode(event.target.checked)\n },\n [setHighContrastMode],\n )\n\n return (\n <CheckboxInput\n checked={highContrastMode}\n id=\"field-highContrastMode\"\n label={t('general:enhancedContrastMode')}\n name=\"highContrastMode\"\n onToggle={onToggle}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,aAAa,EAAEC,QAAQ,EAAEC,cAAc,QAAQ;AACxD,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAEnC,OAAO,MAAMC,kBAAA,GAA+BA,CAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAC1C;IAAAQ,gBAAA;IAAAC;EAAA,IAAkDP,QAAA;EAClD;IAAAQ;EAAA,IAAcP,cAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAE,mBAAA;IAGZE,EAAA,GAAAC,KAAA;MACEH,mBAAA,CAAoBG,KAAA,CAAAC,MAAA,CAAAC,OAAoB;IAAA;IAC1CP,CAAA,MAAAE,mBAAA;IAAAF,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAHF,MAAAQ,QAAA,GAAiBJ,EAIM;EAAA,IAAAK,EAAA;EAAA,IAAAT,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAQ,QAAA,IAAAR,CAAA,QAAAG,CAAA;IAIrBM,EAAA,GAAAC,IAAA,CAAAhB,aAAA;MAAAa,OAAA,EACWN,gBAAA;MAAAU,EAAA,EACN;MAAAC,KAAA,EACIT,CAAA,CAAE;MAAAU,IAAA,EACJ;MAAAL;IAAA,C;;;;;;;;SAJPC,E;CAQJ","ignoreList":[]}
|
|
@@ -103,18 +103,18 @@ export function DashboardBreadcrumbDropdown(props) {
|
|
|
103
103
|
children: _jsx(Button, {
|
|
104
104
|
buttonStyle: "pill",
|
|
105
105
|
el: "span",
|
|
106
|
-
size: "
|
|
106
|
+
size: "medium",
|
|
107
107
|
children: t("dashboard:addButton")
|
|
108
108
|
})
|
|
109
109
|
}), _jsx(Button, {
|
|
110
110
|
buttonStyle: "pill",
|
|
111
111
|
onClick: onSaveChanges,
|
|
112
|
-
size: "
|
|
112
|
+
size: "medium",
|
|
113
113
|
children: t("fields:saveChanges")
|
|
114
114
|
}), _jsx(Button, {
|
|
115
115
|
buttonStyle: "pill",
|
|
116
116
|
onClick: onCancel,
|
|
117
|
-
size: "
|
|
117
|
+
size: "medium",
|
|
118
118
|
children: t("general:cancel")
|
|
119
119
|
})]
|
|
120
120
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardStepNav.js","names":["c","_c","Button","DrawerToggler","ItemsDrawer","ReactSelect","useStepNav","useTranslation","useEffect","useId","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","options","value","selectedOption","option","Array","isArray","handleChange","isClearable","isSearchable","menuIsOpen","undefined","onChange","placeholder"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport {\n Button,\n DrawerToggler,\n ItemsDrawer,\n type ReactSelectOption as Option,\n ReactSelect,\n useStepNav,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useEffect, useId } from 'react'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n const { t } = useTranslation()\n\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>{t('dashboard:editingDashboard')}</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"pill\" el=\"span\" size=\"
|
|
1
|
+
{"version":3,"file":"DashboardStepNav.js","names":["c","_c","Button","DrawerToggler","ItemsDrawer","ReactSelect","useStepNav","useTranslation","useEffect","useId","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","options","value","selectedOption","option","Array","isArray","handleChange","isClearable","isSearchable","menuIsOpen","undefined","onChange","placeholder"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport {\n Button,\n DrawerToggler,\n ItemsDrawer,\n type ReactSelectOption as Option,\n ReactSelect,\n useStepNav,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useEffect, useId } from 'react'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n const { t } = useTranslation()\n\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>{t('dashboard:editingDashboard')}</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"pill\" el=\"span\" size=\"medium\">\n {t('dashboard:addButton')}\n </Button>\n </DrawerToggler>\n <Button buttonStyle=\"pill\" onClick={onSaveChanges} size=\"medium\">\n {t('fields:saveChanges')}\n </Button>\n <Button buttonStyle=\"pill\" onClick={onCancel} size=\"medium\">\n {t('general:cancel')}\n </Button>\n </div>\n </div>\n )\n }\n\n const options = [\n { label: t('dashboard:editDashboard'), value: 'edit' },\n { label: t('dashboard:resetLayout'), value: 'reset' },\n ]\n\n const handleChange = (selectedOption: Option | Option[]) => {\n // Since isMulti is false, we expect a single Option\n const option = Array.isArray(selectedOption) ? selectedOption[0] : selectedOption\n\n if (option?.value === 'edit') {\n onEditClick()\n } else if (option?.value === 'reset') {\n onResetLayout()\n }\n }\n\n return (\n <ReactSelect\n className=\"dashboard-breadcrumb-select\"\n isClearable={false}\n isSearchable={false}\n menuIsOpen={undefined} // Let ReactSelect handle open/close\n onChange={handleChange}\n options={options}\n placeholder={t('general:dashboard')}\n value={{ label: t('general:dashboard'), value: 'dashboard' }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -405,7 +405,7 @@ function DroppableItem(t0) {
|
|
|
405
405
|
const t4 = `${id}-${position}`;
|
|
406
406
|
const t5 = position === "before" ? -2 : "auto";
|
|
407
407
|
const t6 = position === "after" ? -2 : "auto";
|
|
408
|
-
const t7 = isOver ? "var(--
|
|
408
|
+
const t7 = isOver ? "var(--color-bg-success)" : "transparent";
|
|
409
409
|
let t8;
|
|
410
410
|
if ($[5] !== setNodeRef || $[6] !== t4 || $[7] !== t5 || $[8] !== t6 || $[9] !== t7) {
|
|
411
411
|
t8 = _jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","ChevronIcon","Popup","PopupList","useTranslation","XIcon","React","useMemo","useState","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","padding","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport { ChevronIcon, Popup, PopupList, useTranslation, XIcon } from '@payloadcms/ui'\nimport React, { useMemo, useState } from 'react'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n padding: '6px',\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--theme-success-400)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","ChevronIcon","Popup","PopupList","useTranslation","XIcon","React","useMemo","useState","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","padding","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport { ChevronIcon, Popup, PopupList, useTranslation, XIcon } from '@payloadcms/ui'\nimport React, { useMemo, useState } from 'react'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n padding: '6px',\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--color-bg-success)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentView.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAU9C,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,eAAe,+EAMzB;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,6BAA6B,GAAG,yBAAyB,CAAA;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,KAAG;IACF,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,
|
|
1
|
+
{"version":3,"file":"getDocumentView.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAU9C,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,eAAe,+EAMzB;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,6BAA6B,GAAG,yBAAyB,CAAA;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,KAAG;IACF,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAyVH,CAAA"}
|
|
@@ -81,9 +81,7 @@ export const getDocumentView = ({
|
|
|
81
81
|
// --> /collections/:collectionSlug/:id/api
|
|
82
82
|
case 'api':
|
|
83
83
|
{
|
|
84
|
-
|
|
85
|
-
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
86
|
-
}
|
|
84
|
+
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
87
85
|
break;
|
|
88
86
|
}
|
|
89
87
|
case 'versions':
|
|
@@ -129,9 +127,7 @@ export const getDocumentView = ({
|
|
|
129
127
|
switch (segment5) {
|
|
130
128
|
case 'api':
|
|
131
129
|
{
|
|
132
|
-
|
|
133
|
-
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
134
|
-
}
|
|
130
|
+
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
135
131
|
break;
|
|
136
132
|
}
|
|
137
133
|
// --> /collections/:slug/trash/:id/versions
|
|
@@ -227,9 +223,7 @@ export const getDocumentView = ({
|
|
|
227
223
|
// --> /globals/:globalSlug/api
|
|
228
224
|
case 'api':
|
|
229
225
|
{
|
|
230
|
-
|
|
231
|
-
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
232
|
-
}
|
|
226
|
+
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
233
227
|
break;
|
|
234
228
|
}
|
|
235
229
|
case 'versions':
|