@payloadcms/plugin-seo 1.0.10 → 1.0.12
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 +18 -7
- package/dist/defaults.js.map +1 -1
- package/dist/fields/MetaDescription.js +20 -23
- package/dist/fields/MetaDescription.js.map +1 -1
- package/dist/fields/MetaImage.js +18 -21
- package/dist/fields/MetaImage.js.map +1 -1
- package/dist/fields/MetaTitle.js +20 -23
- package/dist/fields/MetaTitle.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +123 -106
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +6 -6
- package/dist/ui/LengthIndicator.js +4 -10
- package/dist/ui/LengthIndicator.js.map +1 -1
- package/dist/ui/Overview.js +5 -16
- package/dist/ui/Overview.js.map +1 -1
- package/dist/ui/Pill.js +1 -2
- package/dist/ui/Pill.js.map +1 -1
- package/dist/ui/Preview.js +8 -8
- package/dist/ui/Preview.js.map +1 -1
- package/package.json +25 -4
- package/dist/collections/FormSubmissions/hooks/createCharge.d.ts +0 -3
- package/dist/collections/FormSubmissions/hooks/createCharge.js +0 -53
- package/dist/collections/FormSubmissions/hooks/createCharge.js.map +0 -1
- package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts +0 -3
- package/dist/collections/FormSubmissions/hooks/sendEmail.js +0 -151
- package/dist/collections/FormSubmissions/hooks/sendEmail.js.map +0 -1
- package/dist/collections/FormSubmissions/index.d.ts +0 -3
- package/dist/collections/FormSubmissions/index.js +0 -137
- package/dist/collections/FormSubmissions/index.js.map +0 -1
- package/dist/collections/Forms/DynamicFieldSelector.d.ts +0 -3
- package/dist/collections/Forms/DynamicFieldSelector.js +0 -62
- package/dist/collections/Forms/DynamicFieldSelector.js.map +0 -1
- package/dist/collections/Forms/DynamicPriceSelector.d.ts +0 -3
- package/dist/collections/Forms/DynamicPriceSelector.js +0 -76
- package/dist/collections/Forms/DynamicPriceSelector.js.map +0 -1
- package/dist/collections/Forms/fields.d.ts +0 -6
- package/dist/collections/Forms/fields.js +0 -481
- package/dist/collections/Forms/fields.js.map +0 -1
- package/dist/collections/Forms/index.d.ts +0 -3
- package/dist/collections/Forms/index.js +0 -194
- package/dist/collections/Forms/index.js.map +0 -1
- package/dist/mocks/serverModule.d.ts +0 -2
- package/dist/mocks/serverModule.js +0 -4
- package/dist/mocks/serverModule.js.map +0 -1
- package/dist/utilities/deepMerge.d.ts +0 -2
- package/dist/utilities/deepMerge.js +0 -44
- package/dist/utilities/deepMerge.js.map +0 -1
- package/dist/utilities/generateMetaDescription.d.ts +0 -2
- package/dist/utilities/generateMetaDescription.js +0 -57
- package/dist/utilities/generateMetaDescription.js.map +0 -1
- package/dist/utilities/generateMetaImage.d.ts +0 -2
- package/dist/utilities/generateMetaImage.js +0 -14
- package/dist/utilities/generateMetaImage.js.map +0 -1
- package/dist/utilities/generateMetaTitle.d.ts +0 -2
- package/dist/utilities/generateMetaTitle.js +0 -74
- package/dist/utilities/generateMetaTitle.js.map +0 -1
- package/dist/utilities/replaceDoubleCurlys.d.ts +0 -7
- package/dist/utilities/replaceDoubleCurlys.js +0 -20
- package/dist/utilities/replaceDoubleCurlys.js.map +0 -1
- package/dist/utilities/serializeRichText.d.ts +0 -10
- package/dist/utilities/serializeRichText.js +0 -49
- package/dist/utilities/serializeRichText.js.map +0 -1
- package/dist/utilities/stringifyRichText.d.ts +0 -3
- package/dist/utilities/stringifyRichText.js +0 -16
- package/dist/utilities/stringifyRichText.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,12 +6,12 @@ A plugin for [Payload CMS](https://github.com/payloadcms/payload) to auto-genera
|
|
|
6
6
|
|
|
7
7
|
Core features:
|
|
8
8
|
|
|
9
|
-
- Adds a `meta` field to every SEO-enabled collection or global
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
9
|
+
- Adds a `meta` field group to every SEO-enabled collection or global
|
|
10
|
+
- Auto-generates meta data using your document's existing content
|
|
11
|
+
- Displays hints and indicators to help content editor write effective meta
|
|
12
|
+
- Renders a snippet of what a search engine might display
|
|
13
|
+
- Extendable so you can define custom fields like `og:title` or `json-ld`
|
|
14
|
+
- Soon will dynamic support variable injection
|
|
15
15
|
|
|
16
16
|
## Installation
|
|
17
17
|
|
|
@@ -68,13 +68,24 @@ export default config;
|
|
|
68
68
|
|
|
69
69
|
An array of global slugs to enable SEO. Enabled globals receive a `meta` field which is an object of title, description, and image subfields.
|
|
70
70
|
|
|
71
|
+
- `fields` Field[] | optional
|
|
72
|
+
|
|
73
|
+
Append your own custom fields onto the `meta` field group. The following fields are provided by default:
|
|
74
|
+
|
|
75
|
+
- `title`: text
|
|
76
|
+
- `description`: textarea
|
|
77
|
+
- `image`: upload (if an `uploadsCollection` is provided)
|
|
78
|
+
- `preview`: ui
|
|
79
|
+
|
|
71
80
|
- `uploadsCollection` : string | optional
|
|
72
81
|
|
|
73
82
|
An upload-enabled collection slug, for the meta image to access.
|
|
74
83
|
|
|
75
84
|
- `tabbedUI` : boolean | optional
|
|
76
85
|
|
|
77
|
-
|
|
86
|
+
Appends an `SEO` tab onto your config using Payload's [Tabs Field](https://payloadcms.com/docs/fields/tabs). If your collection is not already tab-enabled, meaning the first field in your config is not of type `tabs`, then one will be created for you called `Content`. Defaults to `false`.
|
|
87
|
+
|
|
88
|
+
> If you wish to continue to use top-level or sidebar fields with `tabbedUI`, you must not let the default `Content` tab get created for you (see the note above). Instead, you must define the first field of your config with type `tabs` and place all other fields adjacent to this one.
|
|
78
89
|
|
|
79
90
|
- `generateTitle` : method | optional
|
|
80
91
|
|
package/dist/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACtB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;KACd;IACD,WAAW,EAAE;QACX,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;CACF,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACtB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;KACd;IACD,WAAW,EAAE;QACX,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;CACF,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
var __assign = (this && this.__assign) || function () {
|
|
3
4
|
__assign = Object.assign || function(t) {
|
|
4
5
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -77,9 +78,9 @@ exports.getMetaDescriptionField = exports.MetaDescription = void 0;
|
|
|
77
78
|
var react_1 = __importStar(require("react"));
|
|
78
79
|
var forms_1 = require("payload/components/forms");
|
|
79
80
|
var utilities_1 = require("payload/components/utilities");
|
|
80
|
-
var LengthIndicator_1 = require("../ui/LengthIndicator");
|
|
81
|
-
var defaults_1 = require("../defaults");
|
|
82
81
|
var Input_1 = __importDefault(require("payload/dist/admin/components/forms/field-types/Textarea/Input"));
|
|
82
|
+
var defaults_1 = require("../defaults");
|
|
83
|
+
var LengthIndicator_1 = require("../ui/LengthIndicator");
|
|
83
84
|
var _a = defaults_1.defaults.description, minLength = _a.minLength, maxLength = _a.maxLength;
|
|
84
85
|
var MetaDescription = function (props) {
|
|
85
86
|
var _a = props || {}, path = _a.path, label = _a.label, name = _a.name, pluginConfig = _a.pluginConfig; // TODO: this typing is temporary until payload types are updated for custom field props
|
|
@@ -88,7 +89,7 @@ var MetaDescription = function (props) {
|
|
|
88
89
|
var field = (0, forms_1.useField)({
|
|
89
90
|
label: label,
|
|
90
91
|
name: name,
|
|
91
|
-
path: path
|
|
92
|
+
path: path,
|
|
92
93
|
});
|
|
93
94
|
var value = field.value, setValue = field.setValue, showError = field.showError;
|
|
94
95
|
var regenerateDescription = (0, react_1.useCallback)(function () {
|
|
@@ -110,12 +111,7 @@ var MetaDescription = function (props) {
|
|
|
110
111
|
});
|
|
111
112
|
}); };
|
|
112
113
|
getDescription();
|
|
113
|
-
}, [
|
|
114
|
-
fields,
|
|
115
|
-
setValue,
|
|
116
|
-
pluginConfig,
|
|
117
|
-
locale
|
|
118
|
-
]);
|
|
114
|
+
}, [fields, setValue, pluginConfig, locale]);
|
|
119
115
|
return (react_1.default.createElement("div", { style: {
|
|
120
116
|
marginBottom: '20px',
|
|
121
117
|
} },
|
|
@@ -124,27 +120,28 @@ var MetaDescription = function (props) {
|
|
|
124
120
|
position: 'relative',
|
|
125
121
|
} },
|
|
126
122
|
react_1.default.createElement("div", null,
|
|
127
|
-
label,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
123
|
+
label && typeof label === 'string' && label,
|
|
124
|
+
typeof pluginConfig.generateDescription === 'function' && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
125
|
+
"\u00A0 \u2014 \u00A0",
|
|
126
|
+
react_1.default.createElement("button", { onClick: regenerateDescription, type: "button", style: {
|
|
127
|
+
padding: 0,
|
|
128
|
+
background: 'none',
|
|
129
|
+
border: 'none',
|
|
130
|
+
backgroundColor: 'transparent',
|
|
131
|
+
cursor: 'pointer',
|
|
132
|
+
textDecoration: 'underline',
|
|
133
|
+
color: 'currentcolor',
|
|
134
|
+
} }, "Auto-generate")))),
|
|
138
135
|
react_1.default.createElement("div", { style: {
|
|
139
136
|
color: '#9A9A9A',
|
|
140
|
-
} }, "This should be between ".concat(minLength, " and ").concat(maxLength, " characters.
|
|
137
|
+
} }, "This should be between ".concat(minLength, " and ").concat(maxLength, " characters. For help in writing quality meta descriptions, see "),
|
|
141
138
|
react_1.default.createElement("a", { href: "https://developers.google.com/search/docs/advanced/appearance/snippet#meta-descriptions", rel: "noopener noreferrer", target: "_blank" }, "best practices"))),
|
|
142
139
|
react_1.default.createElement("div", { style: {
|
|
143
140
|
marginBottom: '10px',
|
|
144
141
|
position: 'relative',
|
|
145
142
|
} },
|
|
146
143
|
react_1.default.createElement(Input_1.default, { path: name, name: name, onChange: setValue, value: value, showError: showError, style: {
|
|
147
|
-
marginBottom: 0
|
|
144
|
+
marginBottom: 0,
|
|
148
145
|
} })),
|
|
149
146
|
react_1.default.createElement("div", { style: {
|
|
150
147
|
display: 'flex',
|
|
@@ -154,6 +151,6 @@ var MetaDescription = function (props) {
|
|
|
154
151
|
react_1.default.createElement(LengthIndicator_1.LengthIndicator, { text: value, minLength: minLength, maxLength: maxLength }))));
|
|
155
152
|
};
|
|
156
153
|
exports.MetaDescription = MetaDescription;
|
|
157
|
-
var getMetaDescriptionField = function (props) { return
|
|
154
|
+
var getMetaDescriptionField = function (props) { return react_1.default.createElement(exports.MetaDescription, __assign({}, props)); };
|
|
158
155
|
exports.getMetaDescriptionField = getMetaDescriptionField;
|
|
159
156
|
//# sourceMappingURL=MetaDescription.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaDescription.js","sourceRoot":"","sources":["../../src/fields/MetaDescription.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetaDescription.js","sourceRoot":"","sources":["../../src/fields/MetaDescription.tsx"],"names":[],"mappings":"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"}
|
package/dist/fields/MetaImage.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
var __assign = (this && this.__assign) || function () {
|
|
3
4
|
__assign = Object.assign || function(t) {
|
|
4
5
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -75,9 +76,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
75
76
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
77
|
exports.getMetaImageField = exports.MetaImage = void 0;
|
|
77
78
|
var react_1 = __importStar(require("react"));
|
|
79
|
+
var forms_1 = require("payload/components/forms");
|
|
78
80
|
var utilities_1 = require("payload/components/utilities");
|
|
79
81
|
var Input_1 = __importDefault(require("payload/dist/admin/components/forms/field-types/Upload/Input"));
|
|
80
|
-
var forms_1 = require("payload/components/forms");
|
|
81
82
|
var Pill_1 = require("../ui/Pill");
|
|
82
83
|
var MetaImage = function (props) {
|
|
83
84
|
var _a = props || {}, label = _a.label, relationTo = _a.relationTo, fieldTypes = _a.fieldTypes, name = _a.name, pluginConfig = _a.pluginConfig; // TODO: this typing is temporary until payload types are updated for custom field props
|
|
@@ -104,12 +105,7 @@ var MetaImage = function (props) {
|
|
|
104
105
|
});
|
|
105
106
|
}); };
|
|
106
107
|
getDescription();
|
|
107
|
-
}, [
|
|
108
|
-
fields,
|
|
109
|
-
setValue,
|
|
110
|
-
pluginConfig,
|
|
111
|
-
locale,
|
|
112
|
-
]);
|
|
108
|
+
}, [fields, setValue, pluginConfig, locale]);
|
|
113
109
|
var hasImage = Boolean(value);
|
|
114
110
|
var config = (0, utilities_1.useConfig)();
|
|
115
111
|
var collections = config.collections, serverURL = config.serverURL, _b = config.routes, _c = _b === void 0 ? {} : _b, api = _c.api;
|
|
@@ -122,20 +118,21 @@ var MetaImage = function (props) {
|
|
|
122
118
|
position: 'relative',
|
|
123
119
|
} },
|
|
124
120
|
react_1.default.createElement("div", null,
|
|
125
|
-
label,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
121
|
+
label && typeof label === 'string' && label,
|
|
122
|
+
typeof pluginConfig.generateImage === 'function' && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
123
|
+
"\u00A0 \u2014 \u00A0",
|
|
124
|
+
react_1.default.createElement("button", { onClick: regenerateImage, type: "button", style: {
|
|
125
|
+
padding: 0,
|
|
126
|
+
background: 'none',
|
|
127
|
+
border: 'none',
|
|
128
|
+
backgroundColor: 'transparent',
|
|
129
|
+
cursor: 'pointer',
|
|
130
|
+
textDecoration: 'underline',
|
|
131
|
+
color: 'currentcolor',
|
|
132
|
+
} }, "Auto-generate")))),
|
|
133
|
+
typeof pluginConfig.generateImage === 'function' && (react_1.default.createElement("div", { style: {
|
|
137
134
|
color: '#9A9A9A',
|
|
138
|
-
} }, "Auto-generation will retrieve the selected hero image.")),
|
|
135
|
+
} }, "Auto-generation will retrieve the selected hero image."))),
|
|
139
136
|
react_1.default.createElement("div", { style: {
|
|
140
137
|
marginBottom: '10px',
|
|
141
138
|
position: 'relative',
|
|
@@ -159,6 +156,6 @@ var MetaImage = function (props) {
|
|
|
159
156
|
react_1.default.createElement(Pill_1.Pill, { backgroundColor: hasImage ? 'green' : 'red', color: "white", label: hasImage ? 'Good' : 'No Image' }))));
|
|
160
157
|
};
|
|
161
158
|
exports.MetaImage = MetaImage;
|
|
162
|
-
var getMetaImageField = function (props) { return
|
|
159
|
+
var getMetaImageField = function (props) { return react_1.default.createElement(exports.MetaImage, __assign({}, props)); };
|
|
163
160
|
exports.getMetaImageField = getMetaImageField;
|
|
164
161
|
//# sourceMappingURL=MetaImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaImage.js","sourceRoot":"","sources":["../../src/fields/MetaImage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetaImage.js","sourceRoot":"","sources":["../../src/fields/MetaImage.tsx"],"names":[],"mappings":"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"}
|
package/dist/fields/MetaTitle.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
var __assign = (this && this.__assign) || function () {
|
|
3
4
|
__assign = Object.assign || function(t) {
|
|
4
5
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -75,18 +76,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
75
76
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
77
|
exports.getMetaTitleField = exports.MetaTitle = void 0;
|
|
77
78
|
var react_1 = __importStar(require("react"));
|
|
79
|
+
var forms_1 = require("payload/components/forms");
|
|
78
80
|
var utilities_1 = require("payload/components/utilities");
|
|
79
81
|
var Input_1 = __importDefault(require("payload/dist/admin/components/forms/field-types/Text/Input"));
|
|
80
|
-
var forms_1 = require("payload/components/forms");
|
|
81
|
-
var LengthIndicator_1 = require("../ui/LengthIndicator");
|
|
82
82
|
var defaults_1 = require("../defaults");
|
|
83
|
+
var LengthIndicator_1 = require("../ui/LengthIndicator");
|
|
83
84
|
var _a = defaults_1.defaults.title, minLength = _a.minLength, maxLength = _a.maxLength;
|
|
84
85
|
var MetaTitle = function (props) {
|
|
85
86
|
var _a = props || {}, label = _a.label, name = _a.name, path = _a.path, pluginConfig = _a.pluginConfig; // TODO: this typing is temporary until payload types are updated for custom field props
|
|
86
87
|
var field = (0, forms_1.useField)({
|
|
87
88
|
label: label,
|
|
88
89
|
name: name,
|
|
89
|
-
path: path
|
|
90
|
+
path: path,
|
|
90
91
|
});
|
|
91
92
|
var locale = (0, utilities_1.useLocale)();
|
|
92
93
|
var fields = (0, forms_1.useAllFormFields)()[0];
|
|
@@ -110,12 +111,7 @@ var MetaTitle = function (props) {
|
|
|
110
111
|
});
|
|
111
112
|
}); };
|
|
112
113
|
getTitle();
|
|
113
|
-
}, [
|
|
114
|
-
fields,
|
|
115
|
-
setValue,
|
|
116
|
-
pluginConfig,
|
|
117
|
-
locale,
|
|
118
|
-
]);
|
|
114
|
+
}, [fields, setValue, pluginConfig, locale]);
|
|
119
115
|
return (react_1.default.createElement("div", { style: {
|
|
120
116
|
marginBottom: '20px',
|
|
121
117
|
} },
|
|
@@ -124,20 +120,21 @@ var MetaTitle = function (props) {
|
|
|
124
120
|
position: 'relative',
|
|
125
121
|
} },
|
|
126
122
|
react_1.default.createElement("div", null,
|
|
127
|
-
label,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
123
|
+
label && typeof label === 'string' && label,
|
|
124
|
+
typeof pluginConfig.generateTitle === 'function' && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
125
|
+
"\u00A0 \u2014 \u00A0",
|
|
126
|
+
react_1.default.createElement("button", { onClick: regenerateTitle, type: "button", style: {
|
|
127
|
+
padding: 0,
|
|
128
|
+
background: 'none',
|
|
129
|
+
border: 'none',
|
|
130
|
+
backgroundColor: 'transparent',
|
|
131
|
+
cursor: 'pointer',
|
|
132
|
+
textDecoration: 'underline',
|
|
133
|
+
color: 'currentcolor',
|
|
134
|
+
} }, "Auto-generate")))),
|
|
138
135
|
react_1.default.createElement("div", { style: {
|
|
139
136
|
color: '#9A9A9A',
|
|
140
|
-
} }, "This should be between ".concat(minLength, " and ").concat(maxLength, " characters.
|
|
137
|
+
} }, "This should be between ".concat(minLength, " and ").concat(maxLength, " characters. For help in writing quality meta titles, see "),
|
|
141
138
|
react_1.default.createElement("a", { href: "https://developers.google.com/search/docs/advanced/appearance/title-link#page-titles", rel: "noopener noreferrer", target: "_blank" }, "best practices"),
|
|
142
139
|
".")),
|
|
143
140
|
react_1.default.createElement("div", { style: {
|
|
@@ -145,7 +142,7 @@ var MetaTitle = function (props) {
|
|
|
145
142
|
marginBottom: '10px',
|
|
146
143
|
} },
|
|
147
144
|
react_1.default.createElement(Input_1.default, { path: name, name: name, onChange: setValue, value: value, showError: showError, style: {
|
|
148
|
-
marginBottom: 0
|
|
145
|
+
marginBottom: 0,
|
|
149
146
|
} })),
|
|
150
147
|
react_1.default.createElement("div", { style: {
|
|
151
148
|
display: 'flex',
|
|
@@ -155,6 +152,6 @@ var MetaTitle = function (props) {
|
|
|
155
152
|
react_1.default.createElement(LengthIndicator_1.LengthIndicator, { text: value, minLength: minLength, maxLength: maxLength }))));
|
|
156
153
|
};
|
|
157
154
|
exports.MetaTitle = MetaTitle;
|
|
158
|
-
var getMetaTitleField = function (props) { return
|
|
155
|
+
var getMetaTitleField = function (props) { return react_1.default.createElement(exports.MetaTitle, __assign({}, props)); };
|
|
159
156
|
exports.getMetaTitleField = getMetaTitleField;
|
|
160
157
|
//# sourceMappingURL=MetaTitle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaTitle.js","sourceRoot":"","sources":["../../src/fields/MetaTitle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetaTitle.js","sourceRoot":"","sources":["../../src/fields/MetaTitle.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Config } from 'payload/config';
|
|
2
|
-
import { PluginConfig } from './types';
|
|
1
|
+
import type { Config } from 'payload/config';
|
|
2
|
+
import type { PluginConfig } from './types';
|
|
3
3
|
declare const seo: (pluginConfig: PluginConfig) => (config: Config) => Config;
|
|
4
4
|
export default seo;
|