@payloadcms/ui 4.0.0-internal.7b031c8 → 4.0.0-internal.8867dba
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/elements/ArrayAction/index.d.ts +0 -2
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +24 -65
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
- package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
- package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +1 -8
- package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/clipboardUtilities.js +8 -40
- package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
- package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/index.js +1 -17
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/ClipboardAction/types.d.ts +0 -3
- package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/types.js.map +1 -1
- package/dist/elements/FileManager/index.d.ts +1 -1
- package/dist/elements/FileManager/index.d.ts.map +1 -1
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +1 -1
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
- package/dist/elements/TimezonePicker/index.js +1 -5
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/exports/shared/index.d.ts +0 -1
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +160 -97
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +195 -134
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +0 -2
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +20 -23
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +3 -14
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/RenderFields/index.css +2 -16
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +2 -4
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/providers/Theme/index.d.ts +2 -2
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +1 -2
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.d.ts +2 -7
- package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
- package/dist/providers/UploadHandlers/index.js +102 -42
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getRequestTheme.d.ts +1 -1
- package/dist/utilities/getRequestTheme.d.ts.map +1 -1
- package/dist/utilities/getRequestTheme.js +1 -1
- package/dist/utilities/getRequestTheme.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
- package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
- package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
- package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
- package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +0 -10
- package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +0 -1
- package/dist/elements/ClipboardAction/useCanPasteClipboard.js +0 -21
- package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +0 -1
- package/dist/providers/Theme/shared.d.ts +0 -3
- package/dist/providers/Theme/shared.d.ts.map +0 -1
- package/dist/providers/Theme/shared.js +0 -2
- package/dist/providers/Theme/shared.js.map +0 -1
- package/dist/utilities/getLanguageDir.d.ts +0 -12
- package/dist/utilities/getLanguageDir.d.ts.map +0 -1
- package/dist/utilities/getLanguageDir.js +0 -12
- package/dist/utilities/getLanguageDir.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestTheme.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"getRequestTheme.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAEtE,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;CAC5B,CAAA;AAID,eAAO,MAAM,eAAe,iCAAkC,mBAAmB,KAAG,KAkBnF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestTheme.js","names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","admin","theme","includes","themeFromCookie","get","cookiePrefix","themeFromHeader"],"sources":["../../src/utilities/getRequestTheme.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { defaultTheme, type Theme } from '../providers/Theme/
|
|
1
|
+
{"version":3,"file":"getRequestTheme.js","names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","admin","theme","includes","themeFromCookie","get","cookiePrefix","themeFromHeader"],"sources":["../../src/utilities/getRequestTheme.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { defaultTheme, type Theme } from '../providers/Theme/index.js'\n\ntype GetRequestThemeArgs = {\n config: SanitizedConfig\n cookies: Map<string, string>\n headers: Request['headers']\n}\n\nconst acceptedThemes: Theme[] = ['dark', 'light']\n\nexport const getRequestTheme = ({ config, cookies, headers }: GetRequestThemeArgs): Theme => {\n if (config.admin.theme !== 'all' && acceptedThemes.includes(config.admin.theme)) {\n return config.admin.theme\n }\n\n const themeFromCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`) as Theme\n\n if (themeFromCookie && acceptedThemes.includes(themeFromCookie)) {\n return themeFromCookie\n }\n\n const themeFromHeader = headers.get('Sec-CH-Prefers-Color-Scheme') as Theme\n\n if (themeFromHeader && acceptedThemes.includes(themeFromHeader)) {\n return themeFromHeader\n }\n\n return defaultTheme\n}\n"],"mappings":"AAEA,SAASA,YAAY,QAAoB;AAQzC,MAAMC,cAAA,GAA0B,CAAC,QAAQ,QAAQ;AAEjD,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAO,CAAuB;EAC/E,IAAIF,MAAA,CAAOG,KAAK,CAACC,KAAK,KAAK,SAASN,cAAA,CAAeO,QAAQ,CAACL,MAAA,CAAOG,KAAK,CAACC,KAAK,GAAG;IAC/E,OAAOJ,MAAA,CAAOG,KAAK,CAACC,KAAK;EAC3B;EAEA,MAAME,eAAA,GAAkBL,OAAA,CAAQM,GAAG,CAAC,GAAGP,MAAA,CAAOQ,YAAY,IAAI,iBAAiB;EAE/E,IAAIF,eAAA,IAAmBR,cAAA,CAAeO,QAAQ,CAACC,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,MAAMG,eAAA,GAAkBP,OAAA,CAAQK,GAAG,CAAC;EAEpC,IAAIE,eAAA,IAAmBX,cAAA,CAAeO,QAAQ,CAACI,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,OAAOZ,YAAA;AACT","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/ui",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.8867dba",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -294,7 +294,7 @@
|
|
|
294
294
|
"ts-essentials": "10.0.3",
|
|
295
295
|
"use-context-selector": "2.0.0",
|
|
296
296
|
"uuid": "14.0.0",
|
|
297
|
-
"@payloadcms/translations": "4.0.0-internal.
|
|
297
|
+
"@payloadcms/translations": "4.0.0-internal.8867dba"
|
|
298
298
|
},
|
|
299
299
|
"devDependencies": {
|
|
300
300
|
"@babel/cli": "7.27.2",
|
|
@@ -309,12 +309,12 @@
|
|
|
309
309
|
"esbuild": "0.27.1",
|
|
310
310
|
"esbuild-sass-plugin": "3.3.1",
|
|
311
311
|
"@payloadcms/eslint-config": "3.28.0",
|
|
312
|
-
"payload": "4.0.0-internal.
|
|
312
|
+
"payload": "4.0.0-internal.8867dba"
|
|
313
313
|
},
|
|
314
314
|
"peerDependencies": {
|
|
315
315
|
"react": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
316
316
|
"react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
317
|
-
"payload": "4.0.0-internal.
|
|
317
|
+
"payload": "4.0.0-internal.8867dba"
|
|
318
318
|
},
|
|
319
319
|
"engines": {
|
|
320
320
|
"node": ">=24.15.0"
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { canPasteClipboardData } from './clipboardUtilities.js';
|
|
3
|
-
const localStorageClipboardKey = '_payloadClipboard';
|
|
4
|
-
const textField = {
|
|
5
|
-
name: 'text',
|
|
6
|
-
type: 'text'
|
|
7
|
-
};
|
|
8
|
-
const numberField = {
|
|
9
|
-
name: 'num',
|
|
10
|
-
type: 'number'
|
|
11
|
-
};
|
|
12
|
-
const ctaBlock = {
|
|
13
|
-
slug: 'cta',
|
|
14
|
-
fields: [textField]
|
|
15
|
-
};
|
|
16
|
-
const otherBlock = {
|
|
17
|
-
slug: 'other',
|
|
18
|
-
fields: [numberField]
|
|
19
|
-
};
|
|
20
|
-
const arrayClipboard = {
|
|
21
|
-
type: 'array',
|
|
22
|
-
data: {
|
|
23
|
-
'items.0.text': {
|
|
24
|
-
valid: true,
|
|
25
|
-
value: 'hi'
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
fields: [textField],
|
|
29
|
-
path: 'items',
|
|
30
|
-
rowIndex: 0
|
|
31
|
-
};
|
|
32
|
-
const blocksClipboard = {
|
|
33
|
-
type: 'blocks',
|
|
34
|
-
blocks: [ctaBlock],
|
|
35
|
-
data: {
|
|
36
|
-
'layout.0.blockType': {
|
|
37
|
-
valid: true,
|
|
38
|
-
value: 'cta'
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
path: 'layout',
|
|
42
|
-
rowIndex: 0
|
|
43
|
-
};
|
|
44
|
-
class LocalStorageMock {
|
|
45
|
-
store = {};
|
|
46
|
-
clear() {
|
|
47
|
-
this.store = {};
|
|
48
|
-
}
|
|
49
|
-
getItem(key) {
|
|
50
|
-
return key in this.store ? this.store[key] : null;
|
|
51
|
-
}
|
|
52
|
-
removeItem(key) {
|
|
53
|
-
delete this.store[key];
|
|
54
|
-
}
|
|
55
|
-
setItem(key, value) {
|
|
56
|
-
this.store[key] = String(value);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
describe('canPasteClipboardData', () => {
|
|
60
|
-
let localStorageMock;
|
|
61
|
-
beforeEach(() => {
|
|
62
|
-
localStorageMock = new LocalStorageMock();
|
|
63
|
-
vi.stubGlobal('localStorage', localStorageMock);
|
|
64
|
-
});
|
|
65
|
-
afterEach(() => {
|
|
66
|
-
vi.unstubAllGlobals();
|
|
67
|
-
});
|
|
68
|
-
const writeClipboard = data => {
|
|
69
|
-
localStorageMock.setItem(localStorageClipboardKey, JSON.stringify(data));
|
|
70
|
-
};
|
|
71
|
-
it('should return false when the clipboard is empty', () => {
|
|
72
|
-
expect(canPasteClipboardData({
|
|
73
|
-
path: 'items',
|
|
74
|
-
schemaFields: [textField]
|
|
75
|
-
})).toBe(false);
|
|
76
|
-
});
|
|
77
|
-
it('should return false when the clipboard contains invalid JSON', () => {
|
|
78
|
-
localStorageMock.setItem(localStorageClipboardKey, 'not-json');
|
|
79
|
-
expect(canPasteClipboardData({
|
|
80
|
-
path: 'items',
|
|
81
|
-
schemaFields: [textField]
|
|
82
|
-
})).toBe(false);
|
|
83
|
-
});
|
|
84
|
-
it('should return true for an array field with a matching schema', () => {
|
|
85
|
-
writeClipboard(arrayClipboard);
|
|
86
|
-
expect(canPasteClipboardData({
|
|
87
|
-
path: 'items',
|
|
88
|
-
schemaFields: [textField]
|
|
89
|
-
})).toBe(true);
|
|
90
|
-
});
|
|
91
|
-
it('should return false for an array field with an incompatible schema', () => {
|
|
92
|
-
writeClipboard(arrayClipboard);
|
|
93
|
-
expect(canPasteClipboardData({
|
|
94
|
-
path: 'items',
|
|
95
|
-
schemaFields: [numberField]
|
|
96
|
-
})).toBe(false);
|
|
97
|
-
});
|
|
98
|
-
it('should return true for a blocks field with a matching schema', () => {
|
|
99
|
-
writeClipboard(blocksClipboard);
|
|
100
|
-
expect(canPasteClipboardData({
|
|
101
|
-
path: 'layout',
|
|
102
|
-
schemaBlocks: [ctaBlock]
|
|
103
|
-
})).toBe(true);
|
|
104
|
-
});
|
|
105
|
-
it('should return false for a blocks field with an incompatible schema', () => {
|
|
106
|
-
writeClipboard(blocksClipboard);
|
|
107
|
-
expect(canPasteClipboardData({
|
|
108
|
-
path: 'layout',
|
|
109
|
-
schemaBlocks: [otherBlock]
|
|
110
|
-
})).toBe(false);
|
|
111
|
-
});
|
|
112
|
-
it('should return false when pasting array data into a blocks field', () => {
|
|
113
|
-
writeClipboard(arrayClipboard);
|
|
114
|
-
expect(canPasteClipboardData({
|
|
115
|
-
path: 'layout',
|
|
116
|
-
schemaBlocks: [ctaBlock]
|
|
117
|
-
})).toBe(false);
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
//# sourceMappingURL=clipboardUtilities.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboardUtilities.spec.js","names":["afterEach","beforeEach","describe","expect","it","vi","canPasteClipboardData","localStorageClipboardKey","textField","name","type","numberField","ctaBlock","slug","fields","otherBlock","arrayClipboard","data","valid","value","path","rowIndex","blocksClipboard","blocks","LocalStorageMock","store","clear","getItem","key","removeItem","setItem","String","localStorageMock","stubGlobal","unstubAllGlobals","writeClipboard","JSON","stringify","schemaFields","toBe","schemaBlocks"],"sources":["../../../src/elements/ClipboardAction/clipboardUtilities.spec.ts"],"sourcesContent":["import type { ClientBlock, ClientField } from 'payload'\n\nimport { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport type { ClipboardPasteData } from './types.js'\n\nimport { canPasteClipboardData } from './clipboardUtilities.js'\n\nconst localStorageClipboardKey = '_payloadClipboard'\n\nconst textField = { name: 'text', type: 'text' } as ClientField\nconst numberField = { name: 'num', type: 'number' } as ClientField\n\nconst ctaBlock = { slug: 'cta', fields: [textField] } as ClientBlock\nconst otherBlock = { slug: 'other', fields: [numberField] } as ClientBlock\n\nconst arrayClipboard: ClipboardPasteData = {\n type: 'array',\n data: { 'items.0.text': { valid: true, value: 'hi' } },\n fields: [textField],\n path: 'items',\n rowIndex: 0,\n}\n\nconst blocksClipboard: ClipboardPasteData = {\n type: 'blocks',\n blocks: [ctaBlock],\n data: { 'layout.0.blockType': { valid: true, value: 'cta' } },\n path: 'layout',\n rowIndex: 0,\n}\n\nclass LocalStorageMock {\n private store: Record<string, string> = {}\n\n clear() {\n this.store = {}\n }\n\n getItem(key: string): null | string {\n return key in this.store ? this.store[key] : null\n }\n\n removeItem(key: string) {\n delete this.store[key]\n }\n\n setItem(key: string, value: string) {\n this.store[key] = String(value)\n }\n}\n\ndescribe('canPasteClipboardData', () => {\n let localStorageMock: LocalStorageMock\n\n beforeEach(() => {\n localStorageMock = new LocalStorageMock()\n vi.stubGlobal('localStorage', localStorageMock)\n })\n\n afterEach(() => {\n vi.unstubAllGlobals()\n })\n\n const writeClipboard = (data: ClipboardPasteData) => {\n localStorageMock.setItem(localStorageClipboardKey, JSON.stringify(data))\n }\n\n it('should return false when the clipboard is empty', () => {\n expect(canPasteClipboardData({ path: 'items', schemaFields: [textField] })).toBe(false)\n })\n\n it('should return false when the clipboard contains invalid JSON', () => {\n localStorageMock.setItem(localStorageClipboardKey, 'not-json')\n\n expect(canPasteClipboardData({ path: 'items', schemaFields: [textField] })).toBe(false)\n })\n\n it('should return true for an array field with a matching schema', () => {\n writeClipboard(arrayClipboard)\n\n expect(canPasteClipboardData({ path: 'items', schemaFields: [textField] })).toBe(true)\n })\n\n it('should return false for an array field with an incompatible schema', () => {\n writeClipboard(arrayClipboard)\n\n expect(canPasteClipboardData({ path: 'items', schemaFields: [numberField] })).toBe(false)\n })\n\n it('should return true for a blocks field with a matching schema', () => {\n writeClipboard(blocksClipboard)\n\n expect(canPasteClipboardData({ path: 'layout', schemaBlocks: [ctaBlock] })).toBe(true)\n })\n\n it('should return false for a blocks field with an incompatible schema', () => {\n writeClipboard(blocksClipboard)\n\n expect(canPasteClipboardData({ path: 'layout', schemaBlocks: [otherBlock] })).toBe(false)\n })\n\n it('should return false when pasting array data into a blocks field', () => {\n writeClipboard(arrayClipboard)\n\n expect(canPasteClipboardData({ path: 'layout', schemaBlocks: [ctaBlock] })).toBe(false)\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { isClipboardDataValid } from './isClipboardDataValid.js';
|
|
3
|
-
const textField = {
|
|
4
|
-
name: 'text',
|
|
5
|
-
type: 'text'
|
|
6
|
-
};
|
|
7
|
-
const numberField = {
|
|
8
|
-
name: 'num',
|
|
9
|
-
type: 'number'
|
|
10
|
-
};
|
|
11
|
-
const renamedTextField = {
|
|
12
|
-
name: 'title',
|
|
13
|
-
type: 'text'
|
|
14
|
-
};
|
|
15
|
-
const subArrayField = {
|
|
16
|
-
name: 'sub',
|
|
17
|
-
type: 'array',
|
|
18
|
-
fields: [textField]
|
|
19
|
-
};
|
|
20
|
-
const subArrayFieldMismatch = {
|
|
21
|
-
name: 'sub',
|
|
22
|
-
type: 'array',
|
|
23
|
-
fields: [numberField]
|
|
24
|
-
};
|
|
25
|
-
const ctaBlock = {
|
|
26
|
-
slug: 'cta',
|
|
27
|
-
fields: [textField]
|
|
28
|
-
};
|
|
29
|
-
const otherBlock = {
|
|
30
|
-
slug: 'other',
|
|
31
|
-
fields: [numberField]
|
|
32
|
-
};
|
|
33
|
-
const baseData = {
|
|
34
|
-
'items.0.text': {
|
|
35
|
-
valid: true,
|
|
36
|
-
value: 'hi'
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
const buildArrayArgs = ({
|
|
40
|
-
fields,
|
|
41
|
-
schemaFields,
|
|
42
|
-
...overrides
|
|
43
|
-
}) => ({
|
|
44
|
-
type: 'array',
|
|
45
|
-
data: baseData,
|
|
46
|
-
fieldPath: 'items',
|
|
47
|
-
fields,
|
|
48
|
-
path: 'items',
|
|
49
|
-
rowIndex: 0,
|
|
50
|
-
schemaFields,
|
|
51
|
-
...overrides
|
|
52
|
-
});
|
|
53
|
-
const buildBlocksArgs = ({
|
|
54
|
-
blocks,
|
|
55
|
-
schemaBlocks
|
|
56
|
-
}) => ({
|
|
57
|
-
type: 'blocks',
|
|
58
|
-
blocks,
|
|
59
|
-
data: {
|
|
60
|
-
'layout.0.blockType': {
|
|
61
|
-
valid: true,
|
|
62
|
-
value: 'cta'
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
fieldPath: 'layout',
|
|
66
|
-
path: 'layout',
|
|
67
|
-
rowIndex: 0,
|
|
68
|
-
schemaBlocks
|
|
69
|
-
});
|
|
70
|
-
describe('isClipboardDataValid', () => {
|
|
71
|
-
it('should return false when data is undefined', () => {
|
|
72
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
73
|
-
data: undefined,
|
|
74
|
-
fields: [textField],
|
|
75
|
-
schemaFields: [textField]
|
|
76
|
-
}))).toBe(false);
|
|
77
|
-
});
|
|
78
|
-
it('should return false when path is missing', () => {
|
|
79
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
80
|
-
fields: [textField],
|
|
81
|
-
path: '',
|
|
82
|
-
schemaFields: [textField]
|
|
83
|
-
}))).toBe(false);
|
|
84
|
-
});
|
|
85
|
-
describe('array fields', () => {
|
|
86
|
-
it('should return true for a matching schema', () => {
|
|
87
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
88
|
-
fields: [textField],
|
|
89
|
-
schemaFields: [textField]
|
|
90
|
-
}))).toBe(true);
|
|
91
|
-
});
|
|
92
|
-
it('should return false when field types differ', () => {
|
|
93
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
94
|
-
fields: [textField],
|
|
95
|
-
schemaFields: [numberField]
|
|
96
|
-
}))).toBe(false);
|
|
97
|
-
});
|
|
98
|
-
it('should return false when field names differ', () => {
|
|
99
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
100
|
-
fields: [textField],
|
|
101
|
-
schemaFields: [renamedTextField]
|
|
102
|
-
}))).toBe(false);
|
|
103
|
-
});
|
|
104
|
-
it('should return false when field counts differ', () => {
|
|
105
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
106
|
-
fields: [textField],
|
|
107
|
-
schemaFields: [textField, numberField]
|
|
108
|
-
}))).toBe(false);
|
|
109
|
-
});
|
|
110
|
-
it('should return true for matching nested sub-fields', () => {
|
|
111
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
112
|
-
fields: [subArrayField],
|
|
113
|
-
schemaFields: [subArrayField]
|
|
114
|
-
}))).toBe(true);
|
|
115
|
-
});
|
|
116
|
-
it('should return false for mismatching nested sub-fields', () => {
|
|
117
|
-
expect(isClipboardDataValid(buildArrayArgs({
|
|
118
|
-
fields: [subArrayField],
|
|
119
|
-
schemaFields: [subArrayFieldMismatch]
|
|
120
|
-
}))).toBe(false);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
describe('blocks fields', () => {
|
|
124
|
-
it('should return true for a matching block schema', () => {
|
|
125
|
-
expect(isClipboardDataValid(buildBlocksArgs({
|
|
126
|
-
blocks: [ctaBlock],
|
|
127
|
-
schemaBlocks: [ctaBlock]
|
|
128
|
-
}))).toBe(true);
|
|
129
|
-
});
|
|
130
|
-
it('should return false when a copied block slug is not in the target config', () => {
|
|
131
|
-
expect(isClipboardDataValid(buildBlocksArgs({
|
|
132
|
-
blocks: [ctaBlock],
|
|
133
|
-
schemaBlocks: [otherBlock]
|
|
134
|
-
}))).toBe(false);
|
|
135
|
-
});
|
|
136
|
-
it('should return false when the target has no blocks configured', () => {
|
|
137
|
-
expect(isClipboardDataValid(buildBlocksArgs({
|
|
138
|
-
blocks: [ctaBlock],
|
|
139
|
-
schemaBlocks: []
|
|
140
|
-
}))).toBe(false);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
//# sourceMappingURL=isClipboardDataValid.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isClipboardDataValid.spec.js","names":["describe","expect","it","isClipboardDataValid","textField","name","type","numberField","renamedTextField","subArrayField","fields","subArrayFieldMismatch","ctaBlock","slug","otherBlock","baseData","valid","value","buildArrayArgs","schemaFields","overrides","data","fieldPath","path","rowIndex","buildBlocksArgs","blocks","schemaBlocks","undefined","toBe"],"sources":["../../../src/elements/ClipboardAction/isClipboardDataValid.spec.ts"],"sourcesContent":["import type { ClientBlock, ClientField } from 'payload'\n\nimport { describe, expect, it } from 'vitest'\n\nimport type { ClipboardPasteActionValidateArgs, ClipboardPasteData } from './types.js'\n\nimport { isClipboardDataValid } from './isClipboardDataValid.js'\n\nconst textField = { name: 'text', type: 'text' } as ClientField\nconst numberField = { name: 'num', type: 'number' } as ClientField\nconst renamedTextField = { name: 'title', type: 'text' } as ClientField\n\nconst subArrayField = { name: 'sub', type: 'array', fields: [textField] } as ClientField\nconst subArrayFieldMismatch = { name: 'sub', type: 'array', fields: [numberField] } as ClientField\n\nconst ctaBlock = { slug: 'cta', fields: [textField] } as ClientBlock\nconst otherBlock = { slug: 'other', fields: [numberField] } as ClientBlock\n\nconst baseData: ClipboardPasteData['data'] = { 'items.0.text': { valid: true, value: 'hi' } }\n\nconst buildArrayArgs = ({\n fields,\n schemaFields,\n ...overrides\n}: {\n fields: ClientField[]\n schemaFields: ClientField[]\n} & Partial<ClipboardPasteActionValidateArgs>): ClipboardPasteActionValidateArgs =>\n ({\n type: 'array',\n data: baseData,\n fieldPath: 'items',\n fields,\n path: 'items',\n rowIndex: 0,\n schemaFields,\n ...overrides,\n }) as ClipboardPasteActionValidateArgs\n\nconst buildBlocksArgs = ({\n blocks,\n schemaBlocks,\n}: {\n blocks: ClientBlock[]\n schemaBlocks: ClientBlock[]\n}): ClipboardPasteActionValidateArgs =>\n ({\n type: 'blocks',\n blocks,\n data: { 'layout.0.blockType': { valid: true, value: 'cta' } },\n fieldPath: 'layout',\n path: 'layout',\n rowIndex: 0,\n schemaBlocks,\n }) as ClipboardPasteActionValidateArgs\n\ndescribe('isClipboardDataValid', () => {\n it('should return false when data is undefined', () => {\n expect(\n isClipboardDataValid(\n buildArrayArgs({ data: undefined, fields: [textField], schemaFields: [textField] }),\n ),\n ).toBe(false)\n })\n\n it('should return false when path is missing', () => {\n expect(\n isClipboardDataValid(\n buildArrayArgs({ fields: [textField], path: '', schemaFields: [textField] }),\n ),\n ).toBe(false)\n })\n\n describe('array fields', () => {\n it('should return true for a matching schema', () => {\n expect(\n isClipboardDataValid(buildArrayArgs({ fields: [textField], schemaFields: [textField] })),\n ).toBe(true)\n })\n\n it('should return false when field types differ', () => {\n expect(\n isClipboardDataValid(buildArrayArgs({ fields: [textField], schemaFields: [numberField] })),\n ).toBe(false)\n })\n\n it('should return false when field names differ', () => {\n expect(\n isClipboardDataValid(\n buildArrayArgs({ fields: [textField], schemaFields: [renamedTextField] }),\n ),\n ).toBe(false)\n })\n\n it('should return false when field counts differ', () => {\n expect(\n isClipboardDataValid(\n buildArrayArgs({ fields: [textField], schemaFields: [textField, numberField] }),\n ),\n ).toBe(false)\n })\n\n it('should return true for matching nested sub-fields', () => {\n expect(\n isClipboardDataValid(\n buildArrayArgs({ fields: [subArrayField], schemaFields: [subArrayField] }),\n ),\n ).toBe(true)\n })\n\n it('should return false for mismatching nested sub-fields', () => {\n expect(\n isClipboardDataValid(\n buildArrayArgs({ fields: [subArrayField], schemaFields: [subArrayFieldMismatch] }),\n ),\n ).toBe(false)\n })\n })\n\n describe('blocks fields', () => {\n it('should return true for a matching block schema', () => {\n expect(\n isClipboardDataValid(buildBlocksArgs({ blocks: [ctaBlock], schemaBlocks: [ctaBlock] })),\n ).toBe(true)\n })\n\n it('should return false when a copied block slug is not in the target config', () => {\n expect(\n isClipboardDataValid(buildBlocksArgs({ blocks: [ctaBlock], schemaBlocks: [otherBlock] })),\n ).toBe(false)\n })\n\n it('should return false when the target has no blocks configured', () => {\n expect(isClipboardDataValid(buildBlocksArgs({ blocks: [ctaBlock], schemaBlocks: [] }))).toBe(\n false,\n )\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ClipboardPasteEligibilityArgs } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Tracks whether the clipboard contents can be pasted into the target field.
|
|
4
|
-
* Call `refresh` when a paste menu opens to re-check against the field's schema.
|
|
5
|
-
*/
|
|
6
|
-
export declare function useCanPasteClipboard(args: ClipboardPasteEligibilityArgs): {
|
|
7
|
-
canPaste: boolean;
|
|
8
|
-
refresh: () => void;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=useCanPasteClipboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCanPasteClipboard.d.ts","sourceRoot":"","sources":["../../../src/elements/ClipboardAction/useCanPasteClipboard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAI/D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,6BAA6B,GAAG;IACzE,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAWA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { useCallback, useRef, useState } from 'react';
|
|
4
|
-
import { canPasteClipboardData } from './clipboardUtilities.js';
|
|
5
|
-
/**
|
|
6
|
-
* Tracks whether the clipboard contents can be pasted into the target field.
|
|
7
|
-
* Call `refresh` when a paste menu opens to re-check against the field's schema.
|
|
8
|
-
*/
|
|
9
|
-
export function useCanPasteClipboard(args) {
|
|
10
|
-
const [canPaste, setCanPaste] = useState(false);
|
|
11
|
-
const argsRef = useRef(args);
|
|
12
|
-
argsRef.current = args;
|
|
13
|
-
const refresh = useCallback(() => {
|
|
14
|
-
setCanPaste(canPasteClipboardData(argsRef.current));
|
|
15
|
-
}, []);
|
|
16
|
-
return {
|
|
17
|
-
canPaste,
|
|
18
|
-
refresh
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=useCanPasteClipboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCanPasteClipboard.js","names":["useCallback","useRef","useState","canPasteClipboardData","useCanPasteClipboard","args","canPaste","setCanPaste","argsRef","current","refresh"],"sources":["../../../src/elements/ClipboardAction/useCanPasteClipboard.ts"],"sourcesContent":["'use client'\nimport { useCallback, useRef, useState } from 'react'\n\nimport type { ClipboardPasteEligibilityArgs } from './types.js'\n\nimport { canPasteClipboardData } from './clipboardUtilities.js'\n\n/**\n * Tracks whether the clipboard contents can be pasted into the target field.\n * Call `refresh` when a paste menu opens to re-check against the field's schema.\n */\nexport function useCanPasteClipboard(args: ClipboardPasteEligibilityArgs): {\n canPaste: boolean\n refresh: () => void\n} {\n const [canPaste, setCanPaste] = useState<boolean>(false)\n\n const argsRef = useRef(args)\n argsRef.current = args\n\n const refresh = useCallback(() => {\n setCanPaste(canPasteClipboardData(argsRef.current))\n }, [])\n\n return { canPaste, refresh }\n}\n"],"mappings":"AAAA;;AACA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAI9C,SAASC,qBAAqB,QAAQ;AAEtC;;;;AAIA,OAAO,SAASC,qBAAqBC,IAAmC;EAItE,MAAM,CAACC,QAAA,EAAUC,WAAA,CAAY,GAAGL,QAAA,CAAkB;EAElD,MAAMM,OAAA,GAAUP,MAAA,CAAOI,IAAA;EACvBG,OAAA,CAAQC,OAAO,GAAGJ,IAAA;EAElB,MAAMK,OAAA,GAAUV,WAAA,CAAY;IAC1BO,WAAA,CAAYJ,qBAAA,CAAsBK,OAAA,CAAQC,OAAO;EACnD,GAAG,EAAE;EAEL,OAAO;IAAEH,QAAA;IAAUI;EAAQ;AAC7B","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/shared.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpC,eAAO,MAAM,YAAY,EAAE,KAAe,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","names":["defaultTheme"],"sources":["../../../src/providers/Theme/shared.ts"],"sourcesContent":["export type Theme = 'dark' | 'light'\n\nexport const defaultTheme: Theme = 'light'\n"],"mappings":"AAEA,OAAO,MAAMA,YAAA,GAAsB","ignoreList":[]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type Direction = 'ltr' | 'rtl';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves the `<html dir>` value for a language code. Returns lowercase
|
|
4
|
-
* `'ltr'`/`'rtl'` to match the `[dir='ltr']`/`[dir='rtl']` selectors the admin
|
|
5
|
-
* stylesheet scopes its layout rules under (e.g. the document sidebar divider).
|
|
6
|
-
* Single source of truth shared across framework adapters so the SSR'd `dir`
|
|
7
|
-
* never diverges from what the CSS expects.
|
|
8
|
-
*/
|
|
9
|
-
export declare const getLanguageDir: ({ languageCode }: {
|
|
10
|
-
languageCode: string;
|
|
11
|
-
}) => Direction;
|
|
12
|
-
//# sourceMappingURL=getLanguageDir.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getLanguageDir.d.ts","sourceRoot":"","sources":["../../src/utilities/getLanguageDir.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qBAAsB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,KAAG,SACA,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { rtlLanguages } from '@payloadcms/translations';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves the `<html dir>` value for a language code. Returns lowercase
|
|
4
|
-
* `'ltr'`/`'rtl'` to match the `[dir='ltr']`/`[dir='rtl']` selectors the admin
|
|
5
|
-
* stylesheet scopes its layout rules under (e.g. the document sidebar divider).
|
|
6
|
-
* Single source of truth shared across framework adapters so the SSR'd `dir`
|
|
7
|
-
* never diverges from what the CSS expects.
|
|
8
|
-
*/
|
|
9
|
-
export const getLanguageDir = ({
|
|
10
|
-
languageCode
|
|
11
|
-
}) => rtlLanguages.includes(languageCode) ? 'rtl' : 'ltr';
|
|
12
|
-
//# sourceMappingURL=getLanguageDir.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getLanguageDir.js","names":["rtlLanguages","getLanguageDir","languageCode","includes"],"sources":["../../src/utilities/getLanguageDir.ts"],"sourcesContent":["import { rtlLanguages } from '@payloadcms/translations'\n\nexport type Direction = 'ltr' | 'rtl'\n\n/**\n * Resolves the `<html dir>` value for a language code. Returns lowercase\n * `'ltr'`/`'rtl'` to match the `[dir='ltr']`/`[dir='rtl']` selectors the admin\n * stylesheet scopes its layout rules under (e.g. the document sidebar divider).\n * Single source of truth shared across framework adapters so the SSR'd `dir`\n * never diverges from what the CSS expects.\n */\nexport const getLanguageDir = ({ languageCode }: { languageCode: string }): Direction =>\n (rtlLanguages as readonly string[]).includes(languageCode) ? 'rtl' : 'ltr'\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAI7B;;;;;;;AAOA,OAAO,MAAMC,cAAA,GAAiBA,CAAC;EAAEC;AAAY,CAA4B,KACvEF,YAAC,CAAmCG,QAAQ,CAACD,YAAA,IAAgB,QAAQ","ignoreList":[]}
|