@sittari/payload-pages 0.1.0

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/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # @sittari/payload-pages
2
+
3
+ A small for-internal-use Payload CMS plugin that adds a `pages` collection with configurable page types.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pnpm add @sittari/payload-pages
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { buildConfig } from "payload";
15
+ import { pagesPlugin } from "@sittari/payload-pages";
16
+
17
+ export default buildConfig({
18
+ plugins: [
19
+ pagesPlugin({
20
+ blockSlugs: ["hero", "content"],
21
+
22
+ pageTypes: ({ defaultPageTypes }) => ({
23
+ ...defaultPageTypes,
24
+ blogIndex: {
25
+ label: "Blog Index",
26
+ fields: [
27
+ {
28
+ name: "heading",
29
+ type: "text",
30
+ },
31
+ ],
32
+ },
33
+ }),
34
+
35
+ slugField: ({ defaultSlugField }) => ({
36
+ ...defaultSlugField,
37
+ admin: {
38
+ position: "sidebar",
39
+ },
40
+ }),
41
+
42
+ fields: ({ defaultFields }) => [
43
+ ...defaultFields,
44
+ {
45
+ name: "internalName",
46
+ type: "text",
47
+ },
48
+ ],
49
+ }),
50
+ ],
51
+ collections: [],
52
+ });
53
+ ```
54
+
55
+ ## Default page types
56
+
57
+ - `standardContent` with a `content` rich text field
58
+ - `flexible` with a `blocks` field using the configured `blockSlugs` as block references
59
+
60
+ Page-type fields are stored inside a group named after the page type and are shown conditionally based on the `pageType` field.
@@ -0,0 +1,2 @@
1
+ export declare function SlugInstruction(): import("react").JSX.Element;
2
+ //# sourceMappingURL=SlugInstruction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlugInstruction.d.ts","sourceRoot":"","sources":["../../src/admin/SlugInstruction.tsx"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,gCAkB9B"}
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useTranslation } from "@payloadcms/ui";
4
+ const messages = {
5
+ en: 'For the home page, set the slug to "home".',
6
+ ru: 'Для главной страницы установите слаг "home".',
7
+ uk: 'Для головної сторінки встановіть слаг "home".',
8
+ };
9
+ export function SlugInstruction() {
10
+ const { i18n } = useTranslation();
11
+ const language = i18n.language.split("-")[0];
12
+ return (_jsx("div", { style: {
13
+ marginTop: "-12px",
14
+ marginBottom: "20px",
15
+ color: "var(--theme-elevation-500)",
16
+ fontSize: "13px",
17
+ lineHeight: 1.4,
18
+ }, children: messages[language] ?? messages.en }));
19
+ }
20
+ //# sourceMappingURL=SlugInstruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlugInstruction.js","sourceRoot":"","sources":["../../src/admin/SlugInstruction.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,QAAQ,GAAG;IACf,EAAE,EAAE,4CAA4C;IAChD,EAAE,EAAE,8CAA8C;IAClD,EAAE,EAAE,+CAA+C;CAC3C,CAAC;AAIX,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAsB,CAAC;IAElE,OAAO,CACL,cACE,KAAK,EAAE;YACL,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,MAAM;YACpB,KAAK,EAAE,4BAA4B;YACnC,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,GAAG;SAChB,YAEA,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAE,GAC9B,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SlugInstruction } from '../admin/SlugInstruction.js';
2
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ export { SlugInstruction } from '../admin/SlugInstruction.js';
3
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export type { PagesPluginConfig, PageTypeConfig, PageTypes } from '../types.js';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export { pagesPlugin } from './plugin.js';
2
+ export type { PagesPluginConfig, PageTypeConfig, PageTypes } from './types.js';
3
+ export { pagesPlugin as default } from './plugin.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE9E,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { pagesPlugin } from './plugin.js';
2
+ export { pagesPlugin as default } from './plugin.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { Config } from 'payload';
2
+ import type { PagesPluginConfig } from './types.js';
3
+ export declare const pagesPlugin: (pluginConfig?: PagesPluginConfig) => (incomingConfig: Config) => Config;
4
+ export default pagesPlugin;
5
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,MAAM,EAA6B,MAAM,SAAS,CAAA;AAIlF,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,YAAY,CAAA;AA2L9D,eAAO,MAAM,WAAW,GACrB,eAAc,iBAAsB,MAClC,gBAAgB,MAAM,KAAG,MASzB,CAAA;AAEL,eAAe,WAAW,CAAA"}
package/dist/plugin.js ADDED
@@ -0,0 +1,171 @@
1
+ import { slugField } from 'payload';
2
+ import slugify from 'slugify';
3
+ const createDefaultPageTypes = (blockSlugs) => ({
4
+ standardContent: {
5
+ label: {
6
+ en: 'Standard Content',
7
+ ru: 'Стандартный контент',
8
+ uk: 'Стандартний контент'
9
+ },
10
+ fields: [
11
+ {
12
+ name: 'content',
13
+ label: {
14
+ "en": 'Content',
15
+ "ru": 'Контент',
16
+ "uk": 'Контент'
17
+ },
18
+ type: 'richText',
19
+ },
20
+ ],
21
+ },
22
+ flexible: {
23
+ label: {
24
+ en: 'Flexible',
25
+ ru: 'Конструктор',
26
+ uk: 'Конструктор'
27
+ },
28
+ fields: [
29
+ {
30
+ name: 'blocks',
31
+ type: 'blocks',
32
+ label: {
33
+ "en": 'Blocks',
34
+ "ru": 'Блоки',
35
+ "uk": 'Блоки'
36
+ },
37
+ labels: {
38
+ singular: {
39
+ "en": 'Block',
40
+ "ru": 'Блок',
41
+ "uk": 'Блок'
42
+ },
43
+ plural: {
44
+ "en": 'Blocks',
45
+ "ru": 'Блоки',
46
+ "uk": 'Блоки'
47
+ }
48
+ },
49
+ blockReferences: blockSlugs,
50
+ blocks: [],
51
+ },
52
+ ],
53
+ },
54
+ });
55
+ const createDefaultSlugField = ({ useAsSlug = 'title', }) => slugField({
56
+ useAsSlug,
57
+ required: true,
58
+ localized: true,
59
+ position: 'sidebar',
60
+ overrides: (defaultField) => {
61
+ const slugIndex = defaultField.fields.findIndex((field) => field.type === 'text' &&
62
+ 'name' in field &&
63
+ field.name === 'slug');
64
+ if (slugIndex === -1) {
65
+ return defaultField;
66
+ }
67
+ const field = defaultField.fields[slugIndex];
68
+ const instructionField = {
69
+ name: 'slugInstruction',
70
+ type: 'ui',
71
+ admin: {
72
+ disableListColumn: true,
73
+ disableBulkEdit: true,
74
+ components: {
75
+ Field: '@sittari/payload-pages/client#SlugInstruction',
76
+ },
77
+ },
78
+ };
79
+ defaultField.fields.splice(slugIndex, 1, {
80
+ ...field,
81
+ label: {
82
+ en: 'Slug',
83
+ ru: 'Слаг',
84
+ uk: 'Слаг',
85
+ },
86
+ }, instructionField);
87
+ return defaultField;
88
+ },
89
+ slugify: ({ valueToSlugify }) => typeof valueToSlugify === 'string' && valueToSlugify.length > 0
90
+ ? slugify(valueToSlugify, {
91
+ lower: true,
92
+ replacement: '-',
93
+ strict: true,
94
+ })
95
+ : '',
96
+ });
97
+ const createPageTypeFields = (pageTypes) => Object.entries(pageTypes).map(([name, pageType]) => ({
98
+ name,
99
+ type: 'group',
100
+ label: false,
101
+ fields: pageType.fields,
102
+ admin: {
103
+ hideGutter: true,
104
+ condition: (_, siblingData) => siblingData?.pageType === name,
105
+ },
106
+ }));
107
+ const createPagesCollection = (pluginConfig) => {
108
+ const defaultPageTypes = createDefaultPageTypes(pluginConfig.blockSlugs ?? []);
109
+ const pageTypes = pluginConfig.pageTypes?.({ defaultPageTypes }) ?? defaultPageTypes;
110
+ const defaultSlugField = createDefaultSlugField({});
111
+ const slugField = pluginConfig.slugField?.({ defaultSlugField }) ?? defaultSlugField;
112
+ const defaultFields = [
113
+ {
114
+ name: 'title',
115
+ type: 'text',
116
+ label: {
117
+ en: 'Title',
118
+ ru: 'Заголовок',
119
+ uk: 'Заголовок'
120
+ },
121
+ required: true,
122
+ },
123
+ slugField,
124
+ {
125
+ name: 'pageType',
126
+ type: 'select',
127
+ label: {
128
+ en: 'Page Type',
129
+ ru: 'Тип страницы',
130
+ uk: 'Тип сторінки'
131
+ },
132
+ required: true,
133
+ defaultValue: Object.keys(pageTypes)[0],
134
+ options: Object.entries(pageTypes).map(([value, pageType]) => ({
135
+ label: pageType.label,
136
+ value,
137
+ })),
138
+ },
139
+ ...createPageTypeFields(pageTypes),
140
+ ];
141
+ return {
142
+ slug: 'pages',
143
+ admin: {
144
+ useAsTitle: 'title',
145
+ },
146
+ labels: {
147
+ singular: {
148
+ en: 'Page',
149
+ ru: 'Страница',
150
+ uk: 'Сторінка'
151
+ },
152
+ plural: {
153
+ en: 'Pages',
154
+ ru: 'Страницы',
155
+ uk: 'Сторінки'
156
+ }
157
+ },
158
+ fields: pluginConfig.fields?.({ defaultFields }) ?? defaultFields,
159
+ };
160
+ };
161
+ export const pagesPlugin = (pluginConfig = {}) => (incomingConfig) => {
162
+ if (pluginConfig.enabled === false) {
163
+ return incomingConfig;
164
+ }
165
+ return {
166
+ ...incomingConfig,
167
+ collections: [...(incomingConfig.collections ?? []), createPagesCollection(pluginConfig)],
168
+ };
169
+ };
170
+ export default pagesPlugin;
171
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Field, RowField } from 'payload';
2
+ export type PageTypeConfig = {
3
+ fields: Field[];
4
+ label: string | {
5
+ [locale: string]: string;
6
+ };
7
+ };
8
+ export type PageTypes = Record<string, PageTypeConfig>;
9
+ export type PagesPluginConfig = {
10
+ /** Block slugs made available to the default flexible page type. */
11
+ blockSlugs?: string[];
12
+ /** Enable or disable the plugin. */
13
+ enabled?: boolean;
14
+ /** Extend or replace the final fields of the pages collection. */
15
+ fields?: (args: {
16
+ defaultFields: Field[];
17
+ }) => Field[];
18
+ /** Extend, remove, or replace the default page types. */
19
+ pageTypes?: (args: {
20
+ defaultPageTypes: PageTypes;
21
+ }) => PageTypes;
22
+ /** Override the default slug field. */
23
+ slugField?: (args: {
24
+ defaultSlugField: RowField;
25
+ }) => RowField;
26
+ };
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IAErB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IAIjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,aAAa,EAAE,KAAK,EAAE,CAAA;KAAE,KAAK,KAAK,EAAE,CAAA;IAEtD,yDAAyD;IACzD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,gBAAgB,EAAE,SAAS,CAAA;KAAE,KAAK,SAAS,CAAA;IAEhE,uCAAuC;IACvC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,gBAAgB,EAAE,QAAQ,CAAA;KAAE,KAAK,QAAQ,CAAA;CAC/D,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@sittari/payload-pages",
3
+ "version": "0.1.0",
4
+ "description": "PayloadCMS pages plugin.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./types": {
16
+ "types": "./dist/exports/types.d.ts",
17
+ "import": "./dist/exports/types.js"
18
+ },
19
+ "./client": {
20
+ "types": "./dist/exports/client.d.ts",
21
+ "import": "./dist/exports/client.js"
22
+ }
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "README.md"
27
+ ],
28
+ "sideEffects": false,
29
+ "scripts": {
30
+ "build": "pnpm run clean && pnpm run build:types && pnpm run build:js",
31
+ "build:js": "tsc -p tsconfig.build.json --declaration false --declarationMap false",
32
+ "build:types": "tsc -p tsconfig.build.json --emitDeclarationOnly",
33
+ "typecheck": "tsc --noEmit",
34
+ "test": "pnpm run test:int",
35
+ "test:int": "vitest run",
36
+ "dev": "node ../../scripts/dev-package.mjs",
37
+ "clean": "rm -rf dist *.tsbuildinfo",
38
+ "prepublishOnly": "pnpm run clean && pnpm run build"
39
+ },
40
+ "peerDependencies": {
41
+ "payload": "^3.0.0"
42
+ },
43
+ "devDependencies": {
44
+ "payload": "^3.0.0",
45
+ "typescript": "5.9.3",
46
+ "vitest": "4.1.9",
47
+ "@types/react": "^19.0.0",
48
+ "react": "^19.0.0"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ },
53
+ "keywords": [
54
+ "payload",
55
+ "payloadcms",
56
+ "payload-plugin",
57
+ "cms",
58
+ "pages"
59
+ ],
60
+ "dependencies": {
61
+ "@payloadcms/ui": "^3.0.0",
62
+ "slugify": "^1.6.9"
63
+ }
64
+ }