sanity-plugin-seofields 1.6.0 → 1.6.2

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.
Files changed (62) hide show
  1. package/dist/SeoHealthDashboard-FZTP4GS7.cjs +10 -0
  2. package/dist/{SeoHealthDashboard-7XMPVJRX.cjs.map → SeoHealthDashboard-FZTP4GS7.cjs.map} +1 -1
  3. package/dist/SeoHealthDashboard-PY5MKJCZ.js +4 -0
  4. package/dist/{SeoHealthDashboard-UWPLB5DM.js.map → SeoHealthDashboard-PY5MKJCZ.js.map} +1 -1
  5. package/dist/{SeoHealthTool-XCXINAQI.js → SeoHealthTool-SKY7FAKK.js} +3 -3
  6. package/dist/{SeoHealthTool-XCXINAQI.js.map → SeoHealthTool-SKY7FAKK.js.map} +1 -1
  7. package/dist/{SeoHealthTool-2H4XZR4I.cjs → SeoHealthTool-Z3O6NEKF.cjs} +4 -4
  8. package/dist/{SeoHealthTool-2H4XZR4I.cjs.map → SeoHealthTool-Z3O6NEKF.cjs.map} +1 -1
  9. package/dist/{SeoPreview-JDROKZLP.cjs → SeoPreview-PYYVZMY3.cjs} +41 -6
  10. package/dist/SeoPreview-PYYVZMY3.cjs.map +1 -0
  11. package/dist/{SeoPreview-F6GGPZWI.js → SeoPreview-XVAZYHCL.js} +43 -8
  12. package/dist/SeoPreview-XVAZYHCL.js.map +1 -0
  13. package/dist/{chunk-Z74QPO75.cjs → chunk-77U7CMJP.cjs} +12 -4
  14. package/dist/chunk-77U7CMJP.cjs.map +1 -0
  15. package/dist/{chunk-6NIHHOVS.js → chunk-IQG5JWVT.js} +2 -2
  16. package/dist/{chunk-6NIHHOVS.js.map → chunk-IQG5JWVT.js.map} +1 -1
  17. package/dist/{chunk-NHJBEV3A.js → chunk-KFFDQX22.js} +12 -4
  18. package/dist/chunk-KFFDQX22.js.map +1 -0
  19. package/dist/{chunk-KWUITSHS.js → chunk-ULFY5STC.js} +14 -14
  20. package/dist/chunk-ULFY5STC.js.map +1 -0
  21. package/dist/{chunk-WCLEWFAJ.cjs → chunk-XXQURVNE.cjs} +120 -120
  22. package/dist/chunk-XXQURVNE.cjs.map +1 -0
  23. package/dist/{chunk-7HCP5O62.cjs → chunk-YM3ZZ2HU.cjs} +2 -2
  24. package/dist/{chunk-7HCP5O62.cjs.map → chunk-YM3ZZ2HU.cjs.map} +1 -1
  25. package/dist/cli.js +1 -1
  26. package/dist/{component-7rqDvuy2.d.ts → component-CWZ0tlsq.d.ts} +7 -7
  27. package/dist/{component-J2nEQkOw.d.cts → component-DS-Ve_nw.d.cts} +7 -7
  28. package/dist/index.cjs +48 -41
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +57 -8
  31. package/dist/index.d.ts +57 -8
  32. package/dist/index.js +31 -20
  33. package/dist/index.js.map +1 -1
  34. package/dist/next.cjs +87 -88
  35. package/dist/next.cjs.map +1 -1
  36. package/dist/next.d.cts +4 -4
  37. package/dist/next.d.ts +4 -4
  38. package/dist/next.js +12 -9
  39. package/dist/next.js.map +1 -1
  40. package/dist/schema/next.cjs +80 -80
  41. package/dist/schema/next.d.cts +3 -3
  42. package/dist/schema/next.d.ts +3 -3
  43. package/dist/schema/next.js +3 -3
  44. package/dist/schema.cjs +153 -153
  45. package/dist/schema.cjs.map +1 -1
  46. package/dist/schema.d.cts +6 -6
  47. package/dist/schema.d.ts +6 -6
  48. package/dist/schema.js +2 -2
  49. package/dist/schema.js.map +1 -1
  50. package/dist/{types-BSgolLj3.d.cts → types-BjVpmBAX.d.cts} +1 -1
  51. package/dist/{types-BRn3hfQb.d.ts → types-Dy7r5det.d.ts} +1 -1
  52. package/package.json +1 -1
  53. package/dist/SeoHealthDashboard-7XMPVJRX.cjs +0 -10
  54. package/dist/SeoHealthDashboard-UWPLB5DM.js +0 -4
  55. package/dist/SeoPreview-F6GGPZWI.js.map +0 -1
  56. package/dist/SeoPreview-JDROKZLP.cjs.map +0 -1
  57. package/dist/chunk-KWUITSHS.js.map +0 -1
  58. package/dist/chunk-NHJBEV3A.js.map +0 -1
  59. package/dist/chunk-WCLEWFAJ.cjs.map +0 -1
  60. package/dist/chunk-Z74QPO75.cjs.map +0 -1
  61. package/dist/{types-DoUYMRVf.d.cts → types-BdaGoGQE.d.cts} +30 -30
  62. package/dist/{types-DnVvOp3o.d.ts → types-BwmZmt9I.d.ts} +30 -30
package/dist/next.cjs CHANGED
@@ -1,15 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkWCLEWFAJ_cjs = require('./chunk-WCLEWFAJ.cjs');
4
- require('./chunk-7HCP5O62.cjs');
3
+ var chunkXXQURVNE_cjs = require('./chunk-XXQURVNE.cjs');
4
+ require('./chunk-YM3ZZ2HU.cjs');
5
5
  var chunkS367Y35J_cjs = require('./chunk-S367Y35J.cjs');
6
- var React = require('react');
6
+ var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefault(React);
12
-
13
9
  // src/helpers/seoMeta.ts
14
10
  var VALID_OG_TYPES = [
15
11
  "website",
@@ -131,12 +127,15 @@ function SeoMetaTags({
131
127
  ((_f = meta.openGraph) == null ? void 0 : _f.title) && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:title", content: meta.openGraph.title }),
132
128
  ((_g = meta.openGraph) == null ? void 0 : _g.description) && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:description", content: meta.openGraph.description }),
133
129
  ((_h = meta.openGraph) == null ? void 0 : _h.siteName) && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:site_name", content: meta.openGraph.siteName }),
134
- (_j = (_i = meta.openGraph) == null ? void 0 : _i.images) == null ? void 0 : _j.map((img, i) => /* @__PURE__ */ jsxRuntime.jsxs(React__default.default.Fragment, { children: [
135
- /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image", content: img.url }),
136
- img.width && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image:width", content: String(img.width) }),
137
- img.height && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image:height", content: String(img.height) }),
138
- img.alt && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image:alt", content: img.alt })
139
- ] }, `og-img-${i}`)),
130
+ (_j = (_i = meta.openGraph) == null ? void 0 : _i.images) == null ? void 0 : _j.map((img, i) => (
131
+ // eslint-disable-next-line react/no-array-index-key
132
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
133
+ /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image", content: img.url }),
134
+ img.width && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image:width", content: String(img.width) }),
135
+ img.height && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image:height", content: String(img.height) }),
136
+ img.alt && /* @__PURE__ */ jsxRuntime.jsx("meta", { property: "og:image:alt", content: img.alt })
137
+ ] }, `og-img-${i}`)
138
+ )),
140
139
  ((_k = meta.twitter) == null ? void 0 : _k.card) && /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "twitter:card", content: meta.twitter.card }),
141
140
  ((_l = meta.twitter) == null ? void 0 : _l.site) && /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "twitter:site", content: meta.twitter.site }),
142
141
  ((_m = meta.twitter) == null ? void 0 : _m.creator) && /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "twitter:creator", content: meta.twitter.creator }),
@@ -150,303 +149,303 @@ function SeoMetaTags({
150
149
 
151
150
  Object.defineProperty(exports, "AggregateRatingSchema", {
152
151
  enumerable: true,
153
- get: function () { return chunkWCLEWFAJ_cjs.AggregateRatingSchema; }
152
+ get: function () { return chunkXXQURVNE_cjs.AggregateRatingSchema; }
154
153
  });
155
154
  Object.defineProperty(exports, "ArticleSchema", {
156
155
  enumerable: true,
157
- get: function () { return chunkWCLEWFAJ_cjs.ArticleSchema; }
156
+ get: function () { return chunkXXQURVNE_cjs.ArticleSchema; }
158
157
  });
159
158
  Object.defineProperty(exports, "BlogPostingSchema", {
160
159
  enumerable: true,
161
- get: function () { return chunkWCLEWFAJ_cjs.BlogPostingSchema; }
160
+ get: function () { return chunkXXQURVNE_cjs.BlogPostingSchema; }
162
161
  });
163
162
  Object.defineProperty(exports, "BookSchema", {
164
163
  enumerable: true,
165
- get: function () { return chunkWCLEWFAJ_cjs.BookSchema; }
164
+ get: function () { return chunkXXQURVNE_cjs.BookSchema; }
166
165
  });
167
166
  Object.defineProperty(exports, "BrandSchema", {
168
167
  enumerable: true,
169
- get: function () { return chunkWCLEWFAJ_cjs.BrandSchema; }
168
+ get: function () { return chunkXXQURVNE_cjs.BrandSchema; }
170
169
  });
171
170
  Object.defineProperty(exports, "BreadcrumbListSchema", {
172
171
  enumerable: true,
173
- get: function () { return chunkWCLEWFAJ_cjs.BreadcrumbListSchema; }
172
+ get: function () { return chunkXXQURVNE_cjs.BreadcrumbListSchema; }
174
173
  });
175
174
  Object.defineProperty(exports, "ContactPointSchema", {
176
175
  enumerable: true,
177
- get: function () { return chunkWCLEWFAJ_cjs.ContactPointSchema; }
176
+ get: function () { return chunkXXQURVNE_cjs.ContactPointSchema; }
178
177
  });
179
178
  Object.defineProperty(exports, "CountrySchema", {
180
179
  enumerable: true,
181
- get: function () { return chunkWCLEWFAJ_cjs.CountrySchema; }
180
+ get: function () { return chunkXXQURVNE_cjs.CountrySchema; }
182
181
  });
183
182
  Object.defineProperty(exports, "CourseSchema", {
184
183
  enumerable: true,
185
- get: function () { return chunkWCLEWFAJ_cjs.CourseSchema; }
184
+ get: function () { return chunkXXQURVNE_cjs.CourseSchema; }
186
185
  });
187
186
  Object.defineProperty(exports, "EventSchema", {
188
187
  enumerable: true,
189
- get: function () { return chunkWCLEWFAJ_cjs.EventSchema; }
188
+ get: function () { return chunkXXQURVNE_cjs.EventSchema; }
190
189
  });
191
190
  Object.defineProperty(exports, "FAQPageSchema", {
192
191
  enumerable: true,
193
- get: function () { return chunkWCLEWFAJ_cjs.FAQPageSchema; }
192
+ get: function () { return chunkXXQURVNE_cjs.FAQPageSchema; }
194
193
  });
195
194
  Object.defineProperty(exports, "HowToSchema", {
196
195
  enumerable: true,
197
- get: function () { return chunkWCLEWFAJ_cjs.HowToSchema; }
196
+ get: function () { return chunkXXQURVNE_cjs.HowToSchema; }
198
197
  });
199
198
  Object.defineProperty(exports, "ImageObjectSchema", {
200
199
  enumerable: true,
201
- get: function () { return chunkWCLEWFAJ_cjs.ImageObjectSchema; }
200
+ get: function () { return chunkXXQURVNE_cjs.ImageObjectSchema; }
202
201
  });
203
202
  Object.defineProperty(exports, "ItemListSchema", {
204
203
  enumerable: true,
205
- get: function () { return chunkWCLEWFAJ_cjs.ItemListSchema; }
204
+ get: function () { return chunkXXQURVNE_cjs.ItemListSchema; }
206
205
  });
207
206
  Object.defineProperty(exports, "JobPostingSchema", {
208
207
  enumerable: true,
209
- get: function () { return chunkWCLEWFAJ_cjs.JobPostingSchema; }
208
+ get: function () { return chunkXXQURVNE_cjs.JobPostingSchema; }
210
209
  });
211
210
  Object.defineProperty(exports, "LegalServiceSchema", {
212
211
  enumerable: true,
213
- get: function () { return chunkWCLEWFAJ_cjs.LegalServiceSchema; }
212
+ get: function () { return chunkXXQURVNE_cjs.LegalServiceSchema; }
214
213
  });
215
214
  Object.defineProperty(exports, "LocalBusinessSchema", {
216
215
  enumerable: true,
217
- get: function () { return chunkWCLEWFAJ_cjs.LocalBusinessSchema; }
216
+ get: function () { return chunkXXQURVNE_cjs.LocalBusinessSchema; }
218
217
  });
219
218
  Object.defineProperty(exports, "MovieSchema", {
220
219
  enumerable: true,
221
- get: function () { return chunkWCLEWFAJ_cjs.MovieSchema; }
220
+ get: function () { return chunkXXQURVNE_cjs.MovieSchema; }
222
221
  });
223
222
  Object.defineProperty(exports, "MusicAlbumSchema", {
224
223
  enumerable: true,
225
- get: function () { return chunkWCLEWFAJ_cjs.MusicAlbumSchema; }
224
+ get: function () { return chunkXXQURVNE_cjs.MusicAlbumSchema; }
226
225
  });
227
226
  Object.defineProperty(exports, "MusicRecordingSchema", {
228
227
  enumerable: true,
229
- get: function () { return chunkWCLEWFAJ_cjs.MusicRecordingSchema; }
228
+ get: function () { return chunkXXQURVNE_cjs.MusicRecordingSchema; }
230
229
  });
231
230
  Object.defineProperty(exports, "NewsArticleSchema", {
232
231
  enumerable: true,
233
- get: function () { return chunkWCLEWFAJ_cjs.NewsArticleSchema; }
232
+ get: function () { return chunkXXQURVNE_cjs.NewsArticleSchema; }
234
233
  });
235
234
  Object.defineProperty(exports, "OfferSchema", {
236
235
  enumerable: true,
237
- get: function () { return chunkWCLEWFAJ_cjs.OfferSchema; }
236
+ get: function () { return chunkXXQURVNE_cjs.OfferSchema; }
238
237
  });
239
238
  Object.defineProperty(exports, "OrganizationSchema", {
240
239
  enumerable: true,
241
- get: function () { return chunkWCLEWFAJ_cjs.OrganizationSchema; }
240
+ get: function () { return chunkXXQURVNE_cjs.OrganizationSchema; }
242
241
  });
243
242
  Object.defineProperty(exports, "PersonSchema", {
244
243
  enumerable: true,
245
- get: function () { return chunkWCLEWFAJ_cjs.PersonSchema; }
244
+ get: function () { return chunkXXQURVNE_cjs.PersonSchema; }
246
245
  });
247
246
  Object.defineProperty(exports, "PlaceSchema", {
248
247
  enumerable: true,
249
- get: function () { return chunkWCLEWFAJ_cjs.PlaceSchema; }
248
+ get: function () { return chunkXXQURVNE_cjs.PlaceSchema; }
250
249
  });
251
250
  Object.defineProperty(exports, "PostalAddressSchema", {
252
251
  enumerable: true,
253
- get: function () { return chunkWCLEWFAJ_cjs.PostalAddressSchema; }
252
+ get: function () { return chunkXXQURVNE_cjs.PostalAddressSchema; }
254
253
  });
255
254
  Object.defineProperty(exports, "ProductSchema", {
256
255
  enumerable: true,
257
- get: function () { return chunkWCLEWFAJ_cjs.ProductSchema; }
256
+ get: function () { return chunkXXQURVNE_cjs.ProductSchema; }
258
257
  });
259
258
  Object.defineProperty(exports, "ProfilePageSchema", {
260
259
  enumerable: true,
261
- get: function () { return chunkWCLEWFAJ_cjs.ProfilePageSchema; }
260
+ get: function () { return chunkXXQURVNE_cjs.ProfilePageSchema; }
262
261
  });
263
262
  Object.defineProperty(exports, "RecipeSchema", {
264
263
  enumerable: true,
265
- get: function () { return chunkWCLEWFAJ_cjs.RecipeSchema; }
264
+ get: function () { return chunkXXQURVNE_cjs.RecipeSchema; }
266
265
  });
267
266
  Object.defineProperty(exports, "RestaurantSchema", {
268
267
  enumerable: true,
269
- get: function () { return chunkWCLEWFAJ_cjs.RestaurantSchema; }
268
+ get: function () { return chunkXXQURVNE_cjs.RestaurantSchema; }
270
269
  });
271
270
  Object.defineProperty(exports, "ReviewSchema", {
272
271
  enumerable: true,
273
- get: function () { return chunkWCLEWFAJ_cjs.ReviewSchema; }
272
+ get: function () { return chunkXXQURVNE_cjs.ReviewSchema; }
274
273
  });
275
274
  Object.defineProperty(exports, "SchemaOrgScripts", {
276
275
  enumerable: true,
277
- get: function () { return chunkWCLEWFAJ_cjs.SchemaOrgScripts; }
276
+ get: function () { return chunkXXQURVNE_cjs.SchemaOrgScripts; }
278
277
  });
279
278
  Object.defineProperty(exports, "ServiceSchema", {
280
279
  enumerable: true,
281
- get: function () { return chunkWCLEWFAJ_cjs.ServiceSchema; }
280
+ get: function () { return chunkXXQURVNE_cjs.ServiceSchema; }
282
281
  });
283
282
  Object.defineProperty(exports, "SoftwareApplicationSchema", {
284
283
  enumerable: true,
285
- get: function () { return chunkWCLEWFAJ_cjs.SoftwareApplicationSchema; }
284
+ get: function () { return chunkXXQURVNE_cjs.SoftwareApplicationSchema; }
286
285
  });
287
286
  Object.defineProperty(exports, "VideoObjectSchema", {
288
287
  enumerable: true,
289
- get: function () { return chunkWCLEWFAJ_cjs.VideoObjectSchema; }
288
+ get: function () { return chunkXXQURVNE_cjs.VideoObjectSchema; }
290
289
  });
291
290
  Object.defineProperty(exports, "WebApplicationSchema", {
292
291
  enumerable: true,
293
- get: function () { return chunkWCLEWFAJ_cjs.WebApplicationSchema; }
292
+ get: function () { return chunkXXQURVNE_cjs.WebApplicationSchema; }
294
293
  });
295
294
  Object.defineProperty(exports, "WebPageSchema", {
296
295
  enumerable: true,
297
- get: function () { return chunkWCLEWFAJ_cjs.WebPageSchema; }
296
+ get: function () { return chunkXXQURVNE_cjs.WebPageSchema; }
298
297
  });
299
298
  Object.defineProperty(exports, "WebsiteSchema", {
300
299
  enumerable: true,
301
- get: function () { return chunkWCLEWFAJ_cjs.WebsiteSchema; }
300
+ get: function () { return chunkXXQURVNE_cjs.WebsiteSchema; }
302
301
  });
303
302
  Object.defineProperty(exports, "buildAggregateRatingJsonLd", {
304
303
  enumerable: true,
305
- get: function () { return chunkWCLEWFAJ_cjs.buildAggregateRatingJsonLd; }
304
+ get: function () { return chunkXXQURVNE_cjs.buildAggregateRatingJsonLd; }
306
305
  });
307
306
  Object.defineProperty(exports, "buildArticleJsonLd", {
308
307
  enumerable: true,
309
- get: function () { return chunkWCLEWFAJ_cjs.buildArticleJsonLd; }
308
+ get: function () { return chunkXXQURVNE_cjs.buildArticleJsonLd; }
310
309
  });
311
310
  Object.defineProperty(exports, "buildBlogPostingJsonLd", {
312
311
  enumerable: true,
313
- get: function () { return chunkWCLEWFAJ_cjs.buildBlogPostingJsonLd; }
312
+ get: function () { return chunkXXQURVNE_cjs.buildBlogPostingJsonLd; }
314
313
  });
315
314
  Object.defineProperty(exports, "buildBookJsonLd", {
316
315
  enumerable: true,
317
- get: function () { return chunkWCLEWFAJ_cjs.buildBookJsonLd; }
316
+ get: function () { return chunkXXQURVNE_cjs.buildBookJsonLd; }
318
317
  });
319
318
  Object.defineProperty(exports, "buildBrandJsonLd", {
320
319
  enumerable: true,
321
- get: function () { return chunkWCLEWFAJ_cjs.buildBrandJsonLd; }
320
+ get: function () { return chunkXXQURVNE_cjs.buildBrandJsonLd; }
322
321
  });
323
322
  Object.defineProperty(exports, "buildBreadcrumbListJsonLd", {
324
323
  enumerable: true,
325
- get: function () { return chunkWCLEWFAJ_cjs.buildBreadcrumbListJsonLd; }
324
+ get: function () { return chunkXXQURVNE_cjs.buildBreadcrumbListJsonLd; }
326
325
  });
327
326
  Object.defineProperty(exports, "buildContactPointJsonLd", {
328
327
  enumerable: true,
329
- get: function () { return chunkWCLEWFAJ_cjs.buildContactPointJsonLd; }
328
+ get: function () { return chunkXXQURVNE_cjs.buildContactPointJsonLd; }
330
329
  });
331
330
  Object.defineProperty(exports, "buildCountryJsonLd", {
332
331
  enumerable: true,
333
- get: function () { return chunkWCLEWFAJ_cjs.buildCountryJsonLd; }
332
+ get: function () { return chunkXXQURVNE_cjs.buildCountryJsonLd; }
334
333
  });
335
334
  Object.defineProperty(exports, "buildCourseJsonLd", {
336
335
  enumerable: true,
337
- get: function () { return chunkWCLEWFAJ_cjs.buildCourseJsonLd; }
336
+ get: function () { return chunkXXQURVNE_cjs.buildCourseJsonLd; }
338
337
  });
339
338
  Object.defineProperty(exports, "buildEventJsonLd", {
340
339
  enumerable: true,
341
- get: function () { return chunkWCLEWFAJ_cjs.buildEventJsonLd; }
340
+ get: function () { return chunkXXQURVNE_cjs.buildEventJsonLd; }
342
341
  });
343
342
  Object.defineProperty(exports, "buildFAQPageJsonLd", {
344
343
  enumerable: true,
345
- get: function () { return chunkWCLEWFAJ_cjs.buildFAQPageJsonLd; }
344
+ get: function () { return chunkXXQURVNE_cjs.buildFAQPageJsonLd; }
346
345
  });
347
346
  Object.defineProperty(exports, "buildHowToJsonLd", {
348
347
  enumerable: true,
349
- get: function () { return chunkWCLEWFAJ_cjs.buildHowToJsonLd; }
348
+ get: function () { return chunkXXQURVNE_cjs.buildHowToJsonLd; }
350
349
  });
351
350
  Object.defineProperty(exports, "buildImageObjectJsonLd", {
352
351
  enumerable: true,
353
- get: function () { return chunkWCLEWFAJ_cjs.buildImageObjectJsonLd; }
352
+ get: function () { return chunkXXQURVNE_cjs.buildImageObjectJsonLd; }
354
353
  });
355
354
  Object.defineProperty(exports, "buildItemListJsonLd", {
356
355
  enumerable: true,
357
- get: function () { return chunkWCLEWFAJ_cjs.buildItemListJsonLd; }
356
+ get: function () { return chunkXXQURVNE_cjs.buildItemListJsonLd; }
358
357
  });
359
358
  Object.defineProperty(exports, "buildJobPostingJsonLd", {
360
359
  enumerable: true,
361
- get: function () { return chunkWCLEWFAJ_cjs.buildJobPostingJsonLd; }
360
+ get: function () { return chunkXXQURVNE_cjs.buildJobPostingJsonLd; }
362
361
  });
363
362
  Object.defineProperty(exports, "buildLegalServiceJsonLd", {
364
363
  enumerable: true,
365
- get: function () { return chunkWCLEWFAJ_cjs.buildLegalServiceJsonLd; }
364
+ get: function () { return chunkXXQURVNE_cjs.buildLegalServiceJsonLd; }
366
365
  });
367
366
  Object.defineProperty(exports, "buildLocalBusinessJsonLd", {
368
367
  enumerable: true,
369
- get: function () { return chunkWCLEWFAJ_cjs.buildLocalBusinessJsonLd; }
368
+ get: function () { return chunkXXQURVNE_cjs.buildLocalBusinessJsonLd; }
370
369
  });
371
370
  Object.defineProperty(exports, "buildMovieJsonLd", {
372
371
  enumerable: true,
373
- get: function () { return chunkWCLEWFAJ_cjs.buildMovieJsonLd; }
372
+ get: function () { return chunkXXQURVNE_cjs.buildMovieJsonLd; }
374
373
  });
375
374
  Object.defineProperty(exports, "buildMusicAlbumJsonLd", {
376
375
  enumerable: true,
377
- get: function () { return chunkWCLEWFAJ_cjs.buildMusicAlbumJsonLd; }
376
+ get: function () { return chunkXXQURVNE_cjs.buildMusicAlbumJsonLd; }
378
377
  });
379
378
  Object.defineProperty(exports, "buildMusicRecordingJsonLd", {
380
379
  enumerable: true,
381
- get: function () { return chunkWCLEWFAJ_cjs.buildMusicRecordingJsonLd; }
380
+ get: function () { return chunkXXQURVNE_cjs.buildMusicRecordingJsonLd; }
382
381
  });
383
382
  Object.defineProperty(exports, "buildNewsArticleJsonLd", {
384
383
  enumerable: true,
385
- get: function () { return chunkWCLEWFAJ_cjs.buildNewsArticleJsonLd; }
384
+ get: function () { return chunkXXQURVNE_cjs.buildNewsArticleJsonLd; }
386
385
  });
387
386
  Object.defineProperty(exports, "buildOfferJsonLd", {
388
387
  enumerable: true,
389
- get: function () { return chunkWCLEWFAJ_cjs.buildOfferJsonLd; }
388
+ get: function () { return chunkXXQURVNE_cjs.buildOfferJsonLd; }
390
389
  });
391
390
  Object.defineProperty(exports, "buildOrganizationJsonLd", {
392
391
  enumerable: true,
393
- get: function () { return chunkWCLEWFAJ_cjs.buildOrganizationJsonLd; }
392
+ get: function () { return chunkXXQURVNE_cjs.buildOrganizationJsonLd; }
394
393
  });
395
394
  Object.defineProperty(exports, "buildPersonJsonLd", {
396
395
  enumerable: true,
397
- get: function () { return chunkWCLEWFAJ_cjs.buildPersonJsonLd; }
396
+ get: function () { return chunkXXQURVNE_cjs.buildPersonJsonLd; }
398
397
  });
399
398
  Object.defineProperty(exports, "buildPlaceJsonLd", {
400
399
  enumerable: true,
401
- get: function () { return chunkWCLEWFAJ_cjs.buildPlaceJsonLd; }
400
+ get: function () { return chunkXXQURVNE_cjs.buildPlaceJsonLd; }
402
401
  });
403
402
  Object.defineProperty(exports, "buildPostalAddressJsonLd", {
404
403
  enumerable: true,
405
- get: function () { return chunkWCLEWFAJ_cjs.buildPostalAddressJsonLd; }
404
+ get: function () { return chunkXXQURVNE_cjs.buildPostalAddressJsonLd; }
406
405
  });
407
406
  Object.defineProperty(exports, "buildProductJsonLd", {
408
407
  enumerable: true,
409
- get: function () { return chunkWCLEWFAJ_cjs.buildProductJsonLd; }
408
+ get: function () { return chunkXXQURVNE_cjs.buildProductJsonLd; }
410
409
  });
411
410
  Object.defineProperty(exports, "buildProfilePageJsonLd", {
412
411
  enumerable: true,
413
- get: function () { return chunkWCLEWFAJ_cjs.buildProfilePageJsonLd; }
412
+ get: function () { return chunkXXQURVNE_cjs.buildProfilePageJsonLd; }
414
413
  });
415
414
  Object.defineProperty(exports, "buildRecipeJsonLd", {
416
415
  enumerable: true,
417
- get: function () { return chunkWCLEWFAJ_cjs.buildRecipeJsonLd; }
416
+ get: function () { return chunkXXQURVNE_cjs.buildRecipeJsonLd; }
418
417
  });
419
418
  Object.defineProperty(exports, "buildRestaurantJsonLd", {
420
419
  enumerable: true,
421
- get: function () { return chunkWCLEWFAJ_cjs.buildRestaurantJsonLd; }
420
+ get: function () { return chunkXXQURVNE_cjs.buildRestaurantJsonLd; }
422
421
  });
423
422
  Object.defineProperty(exports, "buildReviewJsonLd", {
424
423
  enumerable: true,
425
- get: function () { return chunkWCLEWFAJ_cjs.buildReviewJsonLd; }
424
+ get: function () { return chunkXXQURVNE_cjs.buildReviewJsonLd; }
426
425
  });
427
426
  Object.defineProperty(exports, "buildServiceJsonLd", {
428
427
  enumerable: true,
429
- get: function () { return chunkWCLEWFAJ_cjs.buildServiceJsonLd; }
428
+ get: function () { return chunkXXQURVNE_cjs.buildServiceJsonLd; }
430
429
  });
431
430
  Object.defineProperty(exports, "buildSoftwareApplicationJsonLd", {
432
431
  enumerable: true,
433
- get: function () { return chunkWCLEWFAJ_cjs.buildSoftwareApplicationJsonLd; }
432
+ get: function () { return chunkXXQURVNE_cjs.buildSoftwareApplicationJsonLd; }
434
433
  });
435
434
  Object.defineProperty(exports, "buildVideoObjectJsonLd", {
436
435
  enumerable: true,
437
- get: function () { return chunkWCLEWFAJ_cjs.buildVideoObjectJsonLd; }
436
+ get: function () { return chunkXXQURVNE_cjs.buildVideoObjectJsonLd; }
438
437
  });
439
438
  Object.defineProperty(exports, "buildWebApplicationJsonLd", {
440
439
  enumerable: true,
441
- get: function () { return chunkWCLEWFAJ_cjs.buildWebApplicationJsonLd; }
440
+ get: function () { return chunkXXQURVNE_cjs.buildWebApplicationJsonLd; }
442
441
  });
443
442
  Object.defineProperty(exports, "buildWebPageJsonLd", {
444
443
  enumerable: true,
445
- get: function () { return chunkWCLEWFAJ_cjs.buildWebPageJsonLd; }
444
+ get: function () { return chunkXXQURVNE_cjs.buildWebPageJsonLd; }
446
445
  });
447
446
  Object.defineProperty(exports, "buildWebsiteJsonLd", {
448
447
  enumerable: true,
449
- get: function () { return chunkWCLEWFAJ_cjs.buildWebsiteJsonLd; }
448
+ get: function () { return chunkXXQURVNE_cjs.buildWebsiteJsonLd; }
450
449
  });
451
450
  exports.SeoMetaTags = SeoMetaTags;
452
451
  exports.buildSeoMeta = buildSeoMeta;
package/dist/next.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helpers/seoMeta.ts","../src/helpers/SeoMetaTags.tsx"],"names":["__spreadValues","jsxs","Fragment","jsx","React"],"mappings":"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","file":"next.cjs","sourcesContent":["/**\n * Headless CMS integration helpers for sanity-plugin-seofields\n *\n * Provides framework-agnostic SEO metadata utilities for use with:\n * - Next.js App Router → buildSeoMeta() inside generateMetadata()\n * - Next.js Pages Router → <SeoMetaTags> inside Next.js <Head>\n * - Nuxt / Remix / any SSR → <SeoMetaTags> inside your <head> slot\n */\n\nimport type {SanityImage, SanityImageWithAlt} from '../types'\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\n/** Structured metadata returned by buildSeoMeta(). Compatible with Next.js Metadata (App Router). */\nexport interface SeoMetadata {\n title?: string | null\n description?: string | null\n keywords?: string[]\n robots?: {\n index?: boolean\n follow?: boolean\n googleBot?: {\n index?: boolean\n follow?: boolean\n }\n }\n openGraph?: {\n type?: string\n url?: string\n title?: string\n description?: string\n siteName?: string\n images?: Array<{url: string; width?: number; height?: number; alt?: string}>\n }\n twitter?: {\n card?: string\n site?: string\n creator?: string\n title?: string\n description?: string\n images?: string[]\n }\n alternates?: {\n canonical?: string\n }\n /** Any custom meta attributes from seo.metaAttributes */\n other?: Record<string, string>\n}\n\n/** Default values used when SEO fields are missing. */\nexport interface SeoMetaDefaults {\n title?: string\n description?: string\n siteName?: string\n twitterSite?: string\n twitterCreator?: string\n /** Fallback image URL when no OG / Twitter image is set. */\n ogImage?: string\n}\n\n/**\n * Permissive image shape accepted by buildSeoMeta — compatible with both the\n * plugin's SanityImage and Sanity's code-generated image type (where `asset`\n * and `alt` are optional).\n */\ninterface SeoImageInput {\n _type?: string\n asset?: {_ref: string; _type: string; _weak?: boolean; [key: string]: unknown}\n hotspot?: unknown\n crop?: unknown\n alt?: string\n}\n\n/**\n * Input-compatible variant of SeoFields. Structurally matches Sanity's\n * code-generated types (where `asset`, `alt`, `key`, and `type` are all\n * optional), so you can pass `data.seo` from a sanityFetch result directly\n * without any `as any` or manual casting.\n */\nexport interface SeoFieldsInput {\n _type?: string\n robots?: {noIndex?: boolean | null; noFollow?: boolean | null} | null\n title?: string | null\n description?: string | null\n metaImage?: SeoImageInput | null\n metaAttributes?: Array<{_key?: string; key?: string; value?: string; type?: string}> | null\n keywords?: string[] | null\n canonicalUrl?: string | null\n openGraph?: {\n _type?: string\n url?: string | null\n title?: string | null\n description?: string | null\n siteName?: string | null\n type?: string | null\n imageType?: string | null\n image?: SeoImageInput | null\n imageUrl?: string | null\n } | null\n twitter?: {\n _type?: string\n card?: string | null\n site?: string | null\n creator?: string | null\n title?: string | null\n description?: string | null\n imageType?: string | null\n image?: SeoImageInput | null\n imageUrl?: string | null\n } | null\n}\n\n/** Options accepted by buildSeoMeta(). */\nexport interface BuildSeoMetaOptions {\n /**\n * The raw SEO object from Sanity (_type excluded or included — both work).\n * Pass `null` or `undefined` to fall back entirely to `defaults`.\n *\n * Accepts both the strict plugin `SeoFields` type and Sanity's code-generated\n * type (which has all nested fields optional) without any `as any` cast.\n */\n seo?: SeoFieldsInput | null\n\n /**\n * The base URL of your site, e.g. \"https://example.com\".\n * Used for canonical URL and OpenGraph URL construction.\n */\n baseUrl?: string\n\n /**\n * The path for the current page, e.g. \"/about\".\n * Combined with baseUrl to produce the canonical + OG url.\n * Defaults to \"\".\n */\n path?: string\n\n /**\n * Default values used when the Sanity SEO fields are empty / missing.\n */\n defaults?: SeoMetaDefaults\n\n /**\n * Resolve a Sanity image asset to a plain URL string.\n *\n * @example (using @sanity/image-url)\n * imageUrlResolver: (img) => urlFor(img).width(1200).url()\n */\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined\n}\n\n// ─── Internal helpers ─────────────────────────────────────────────────────────\n\nconst VALID_OG_TYPES = [\n 'website',\n 'article',\n 'profile',\n 'book',\n 'music',\n 'video',\n 'product',\n] as const\ntype OGType = (typeof VALID_OG_TYPES)[number]\n\n/**\n * Coerce an arbitrary string to a valid OpenGraph type.\n * Falls back to \"website\" when the value is invalid.\n */\nexport function sanitizeOGType(value?: string): OGType {\n if (value && (VALID_OG_TYPES as readonly string[]).includes(value)) {\n return value as OGType\n }\n return 'website'\n}\n\nconst VALID_TWITTER_CARDS = ['summary', 'summary_large_image', 'app', 'player'] as const\ntype TwitterCard = (typeof VALID_TWITTER_CARDS)[number]\n\n/**\n * Coerce an arbitrary string to a valid Twitter card type.\n * Falls back to \"summary_large_image\" when the value is invalid.\n */\nexport function sanitizeTwitterCard(value?: string): TwitterCard {\n if (value && (VALID_TWITTER_CARDS as readonly string[]).includes(value)) {\n return value as TwitterCard\n }\n return 'summary_large_image'\n}\n\n/**\n * Resolve OG image URL from SEO fields or defaults.\n */\nfunction resolveOgImage(\n seo: SeoFieldsInput | null | undefined,\n defaults: SeoMetaDefaults,\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined,\n): string {\n if (seo?.openGraph?.imageType === 'url' && seo.openGraph.imageUrl) {\n return seo.openGraph.imageUrl\n }\n if (seo?.openGraph?.image && imageUrlResolver) {\n return imageUrlResolver(seo.openGraph.image as SanityImage) || defaults.ogImage || ''\n }\n return defaults.ogImage || ''\n}\n\n/**\n * Resolve Twitter image URL from SEO fields, falling back to OG image.\n */\nfunction resolveTwitterImage(\n seo: SeoFieldsInput | null | undefined,\n ogImageURL: string,\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined,\n): string {\n if (seo?.twitter?.imageType === 'url' && seo.twitter.imageUrl) {\n return seo.twitter.imageUrl\n }\n if (seo?.twitter?.image && imageUrlResolver) {\n return imageUrlResolver(seo.twitter.image as SanityImage) || ogImageURL\n }\n return ogImageURL\n}\n\n/**\n * Build custom meta attributes map from SEO fields.\n */\nfunction buildCustomMetaMap(seo: SeoFieldsInput | null | undefined): Record<string, string> {\n const other: Record<string, string> = {}\n if (Array.isArray(seo?.metaAttributes)) {\n for (const attr of seo!.metaAttributes!) {\n if (attr.key && attr.value) {\n other[attr.key] = attr.value\n }\n }\n }\n return other\n}\n\n// ─── Core builder ─────────────────────────────────────────────────────────────\n\n/**\n * Convert a Sanity SEO object into a structured metadata object.\n *\n * The return value is structurally compatible with Next.js App Router's\n * `Metadata` type, so you can return it directly from `generateMetadata()`.\n *\n * @example Next.js App Router\n * ```ts\n * import { buildSeoMeta } from 'sanity-plugin-seofields'\n * import { urlFor } from '@/sanity/lib/image'\n *\n * export async function generateMetadata(): Promise<Metadata> {\n * const { seo } = await sanityFetch({ query: PAGE_SEO_QUERY })\n * return buildSeoMeta({\n * seo,\n * baseUrl: process.env.NEXT_PUBLIC_SITE_URL,\n * path: '/about',\n * defaults: { title: 'My Site', siteName: 'My Site' },\n * imageUrlResolver: (img) => urlFor(img).width(1200).url(),\n * })\n * }\n * ```\n */\nexport function buildSeoMeta(options: BuildSeoMetaOptions): SeoMetadata {\n const {seo, baseUrl = '', path = '', defaults = {}, imageUrlResolver} = options\n\n const normalizedBase = baseUrl.replace(/\\/+$/, '') // remove trailing /\n const normalizedPath = path.replace(/^\\/+/, '') // remove leading /\n\n const fullUrl = [normalizedBase, normalizedPath].filter(Boolean).join('/')\n\n const ogImageURL = resolveOgImage(seo, defaults, imageUrlResolver)\n const twitterImageURL = resolveTwitterImage(seo, ogImageURL, imageUrlResolver)\n const other = buildCustomMetaMap(seo)\n\n const ogUrl = seo?.openGraph?.url || fullUrl\n\n return {\n title: seo?.title ?? defaults.title ?? null,\n description: seo?.description ?? defaults.description ?? null,\n keywords: seo?.keywords?.length ? (seo.keywords as string[]) : undefined,\n robots: {\n index: !seo?.robots?.noIndex,\n follow: !seo?.robots?.noFollow,\n googleBot: {\n index: !seo?.robots?.noIndex,\n follow: !seo?.robots?.noFollow,\n },\n },\n openGraph: {\n type: sanitizeOGType(seo?.openGraph?.type ?? undefined),\n url: ogUrl || undefined,\n title: seo?.openGraph?.title ?? defaults.title,\n description: seo?.openGraph?.description ?? defaults.description,\n siteName: seo?.openGraph?.siteName ?? defaults.siteName,\n images: ogImageURL ? [{url: ogImageURL}] : [],\n },\n twitter: {\n card: sanitizeTwitterCard(seo?.twitter?.card ?? undefined),\n site: seo?.twitter?.site ?? defaults.twitterSite,\n creator: seo?.twitter?.creator ?? defaults.twitterCreator,\n title: seo?.twitter?.title ?? defaults.title,\n description: seo?.twitter?.description ?? defaults.description,\n images: twitterImageURL ? [twitterImageURL] : [],\n },\n alternates: {\n canonical: fullUrl || undefined,\n },\n ...(Object.keys(other).length > 0 ? {other} : {}),\n }\n}\n","/**\n * <SeoMetaTags> — Framework-agnostic React SEO meta tag renderer.\n *\n * Renders all SEO meta tags as plain React elements.\n * Place it inside your framework's <Head> component:\n *\n * @example Next.js Pages Router\n * ```tsx\n * import Head from 'next/head'\n * import { SeoMetaTags } from 'sanity-plugin-seofields'\n *\n * export default function Page({ seo }) {\n * return (\n * <>\n * <Head>\n * <SeoMetaTags\n * data={seo}\n * baseUrl=\"https://example.com\"\n * path=\"/about\"\n * defaults={{ title: 'My Site', siteName: 'My Site' }}\n * imageUrlResolver={(img) => urlFor(img).width(1200).url()}\n * />\n * </Head>\n * <main>...</main>\n * </>\n * )\n * }\n * ```\n *\n * @example Nuxt 3 / generic SSR (inside <Head> slot)\n * ```tsx\n * <Head>\n * <SeoMetaTags data={seo} baseUrl=\"https://example.com\" path=\"/\" />\n * </Head>\n * ```\n */\nimport React from 'react'\n\nimport type {SanityImage, SanityImageWithAlt, SeoFields} from '../types'\nimport {buildSeoMeta, type BuildSeoMetaOptions} from './seoMeta'\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface SeoMetaTagsProps {\n /**\n * The raw SEO object from Sanity.\n * Pass `null` / `undefined` to render only the defaults.\n */\n data?: Partial<SeoFields> | null\n\n /**\n * Base URL of your site, e.g. \"https://example.com\".\n * Used for canonical link, og:url fallback.\n */\n baseUrl?: string\n\n /**\n * Current page path, e.g. \"/about\".\n * Defaults to \"\".\n */\n path?: string\n\n /**\n * Default values used when SEO fields are missing.\n */\n defaults?: BuildSeoMetaOptions['defaults']\n\n /**\n * Resolve a Sanity image asset reference to a full URL string.\n *\n * @example\n * imageUrlResolver={(img) => urlFor(img).width(1200).url()}\n */\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Renders all SEO meta tags for a page as plain React elements.\n * Intended to be placed inside your framework's <Head> / <head> component.\n *\n * Renders:\n * - `<title>`\n * - `<meta name=\"description\">`\n * - `<meta name=\"keywords\">`\n * - `<meta name=\"robots\">`\n * - OpenGraph meta tags (`og:*`)\n * - Twitter Card meta tags (`twitter:*`)\n * - Any custom `seo.metaAttributes` as `<meta name=\"...\" content=\"...\">`\n */\nexport function SeoMetaTags({\n data,\n baseUrl,\n path,\n defaults,\n imageUrlResolver,\n}: SeoMetaTagsProps): React.JSX.Element {\n const meta = buildSeoMeta({seo: data, baseUrl, path, defaults, imageUrlResolver})\n\n const robotsContent = [\n meta.robots?.index === false ? 'noindex' : 'index',\n meta.robots?.follow === false ? 'nofollow' : 'follow',\n ].join(', ')\n\n return (\n <>\n {/* ── Title ── */}\n {meta.title && <title>{meta.title}</title>}\n\n {/* ── Basic meta ── */}\n {meta.description && <meta name=\"description\" content={meta.description} />}\n {meta.keywords?.length ? <meta name=\"keywords\" content={meta.keywords.join(', ')} /> : null}\n <meta name=\"robots\" content={robotsContent} />\n <meta name=\"googlebot\" content={robotsContent} />\n\n {/* ── Open Graph ── */}\n {meta.openGraph?.type && <meta property=\"og:type\" content={meta.openGraph.type} />}\n {meta.openGraph?.url && <meta property=\"og:url\" content={meta.openGraph.url} />}\n {meta.openGraph?.title && <meta property=\"og:title\" content={meta.openGraph.title} />}\n {meta.openGraph?.description && (\n <meta property=\"og:description\" content={meta.openGraph.description} />\n )}\n {meta.openGraph?.siteName && (\n <meta property=\"og:site_name\" content={meta.openGraph.siteName} />\n )}\n {meta.openGraph?.images?.map((img, i) => (\n <React.Fragment key={`og-img-${i}`}>\n <meta property=\"og:image\" content={img.url} />\n {img.width && <meta property=\"og:image:width\" content={String(img.width)} />}\n {img.height && <meta property=\"og:image:height\" content={String(img.height)} />}\n {img.alt && <meta property=\"og:image:alt\" content={img.alt} />}\n </React.Fragment>\n ))}\n\n {/* ── Twitter Card ── */}\n {meta.twitter?.card && <meta name=\"twitter:card\" content={meta.twitter.card} />}\n {meta.twitter?.site && <meta name=\"twitter:site\" content={meta.twitter.site} />}\n {meta.twitter?.creator && <meta name=\"twitter:creator\" content={meta.twitter.creator} />}\n {meta.twitter?.title && <meta name=\"twitter:title\" content={meta.twitter.title} />}\n {meta.twitter?.description && (\n <meta name=\"twitter:description\" content={meta.twitter.description} />\n )}\n {meta.twitter?.images?.map((url, i) => (\n <meta key={`tw-img-${i}`} name=\"twitter:image\" content={url} />\n ))}\n\n {/* ── Custom meta attributes ── */}\n {meta.other &&\n Object.entries(meta.other).map(([name, content]) => (\n <meta key={`custom-${name}`} name={name} content={content} />\n ))}\n\n {/* ── Canonical URL ── */}\n {meta.alternates?.canonical && <link rel=\"canonical\" href={meta.alternates.canonical} />}\n </>\n )\n}\n\nexport default SeoMetaTags\n"]}
1
+ {"version":3,"sources":["../src/helpers/seoMeta.ts","../src/helpers/SeoMetaTags.tsx"],"names":["__spreadValues","jsxs","Fragment","jsx"],"mappings":"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","file":"next.cjs","sourcesContent":["/**\n * Headless CMS integration helpers for sanity-plugin-seofields\n *\n * Provides framework-agnostic SEO metadata utilities for use with:\n * - Next.js App Router → buildSeoMeta() inside generateMetadata()\n * - Next.js Pages Router → <SeoMetaTags> inside Next.js <Head>\n * - Nuxt / Remix / any SSR → <SeoMetaTags> inside your <head> slot\n */\n\nimport type {SanityImage, SanityImageWithAlt} from '../types'\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\n/** Structured metadata returned by buildSeoMeta(). Compatible with Next.js Metadata (App Router). */\nexport interface SeoMetadata {\n title?: string | null\n description?: string | null\n keywords?: string[]\n robots?: {\n index?: boolean\n follow?: boolean\n googleBot?: {\n index?: boolean\n follow?: boolean\n }\n }\n openGraph?: {\n type?: string\n url?: string\n title?: string\n description?: string\n siteName?: string\n images?: Array<{url: string; width?: number; height?: number; alt?: string}>\n }\n twitter?: {\n card?: string\n site?: string\n creator?: string\n title?: string\n description?: string\n images?: string[]\n }\n alternates?: {\n canonical?: string\n }\n /** Any custom meta attributes from seo.metaAttributes */\n other?: Record<string, string>\n}\n\n/** Default values used when SEO fields are missing. */\nexport interface SeoMetaDefaults {\n title?: string\n description?: string\n siteName?: string\n twitterSite?: string\n twitterCreator?: string\n /** Fallback image URL when no OG / Twitter image is set. */\n ogImage?: string\n}\n\n/**\n * Permissive image shape accepted by buildSeoMeta — compatible with both the\n * plugin's SanityImage and Sanity's code-generated image type (where `asset`\n * and `alt` are optional).\n */\ninterface SeoImageInput {\n _type?: string\n asset?: {_ref: string; _type: string; _weak?: boolean; [key: string]: unknown}\n hotspot?: unknown\n crop?: unknown\n alt?: string\n}\n\n/**\n * Input-compatible variant of SeoFields. Structurally matches Sanity's\n * code-generated types (where `asset`, `alt`, `key`, and `type` are all\n * optional), so you can pass `data.seo` from a sanityFetch result directly\n * without any `as any` or manual casting.\n */\nexport interface SeoFieldsInput {\n _type?: string\n robots?: {noIndex?: boolean | null; noFollow?: boolean | null} | null\n title?: string | null\n description?: string | null\n metaImage?: SeoImageInput | null\n metaAttributes?: Array<{_key?: string; key?: string; value?: string; type?: string}> | null\n keywords?: string[] | null\n canonicalUrl?: string | null\n openGraph?: {\n _type?: string\n url?: string | null\n title?: string | null\n description?: string | null\n siteName?: string | null\n type?: string | null\n imageType?: string | null\n image?: SeoImageInput | null\n imageUrl?: string | null\n } | null\n twitter?: {\n _type?: string\n card?: string | null\n site?: string | null\n creator?: string | null\n title?: string | null\n description?: string | null\n imageType?: string | null\n image?: SeoImageInput | null\n imageUrl?: string | null\n } | null\n}\n\n/** Options accepted by buildSeoMeta(). */\nexport interface BuildSeoMetaOptions {\n /**\n * The raw SEO object from Sanity (_type excluded or included — both work).\n * Pass `null` or `undefined` to fall back entirely to `defaults`.\n *\n * Accepts both the strict plugin `SeoFields` type and Sanity's code-generated\n * type (which has all nested fields optional) without any `as any` cast.\n */\n seo?: SeoFieldsInput | null\n\n /**\n * The base URL of your site, e.g. \"https://example.com\".\n * Used for canonical URL and OpenGraph URL construction.\n */\n baseUrl?: string\n\n /**\n * The path for the current page, e.g. \"/about\".\n * Combined with baseUrl to produce the canonical + OG url.\n * Defaults to \"\".\n */\n path?: string\n\n /**\n * Default values used when the Sanity SEO fields are empty / missing.\n */\n defaults?: SeoMetaDefaults\n\n /**\n * Resolve a Sanity image asset to a plain URL string.\n *\n * @example (using @sanity/image-url)\n * imageUrlResolver: (img) => urlFor(img).width(1200).url()\n */\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined\n}\n\n// ─── Internal helpers ─────────────────────────────────────────────────────────\n\nconst VALID_OG_TYPES = [\n 'website',\n 'article',\n 'profile',\n 'book',\n 'music',\n 'video',\n 'product',\n] as const\ntype OGType = (typeof VALID_OG_TYPES)[number]\n\n/**\n * Coerce an arbitrary string to a valid OpenGraph type.\n * Falls back to \"website\" when the value is invalid.\n */\nexport function sanitizeOGType(value?: string): OGType {\n if (value && (VALID_OG_TYPES as readonly string[]).includes(value)) {\n return value as OGType\n }\n return 'website'\n}\n\nconst VALID_TWITTER_CARDS = ['summary', 'summary_large_image', 'app', 'player'] as const\ntype TwitterCard = (typeof VALID_TWITTER_CARDS)[number]\n\n/**\n * Coerce an arbitrary string to a valid Twitter card type.\n * Falls back to \"summary_large_image\" when the value is invalid.\n */\nexport function sanitizeTwitterCard(value?: string): TwitterCard {\n if (value && (VALID_TWITTER_CARDS as readonly string[]).includes(value)) {\n return value as TwitterCard\n }\n return 'summary_large_image'\n}\n\n/**\n * Resolve OG image URL from SEO fields or defaults.\n */\nfunction resolveOgImage(\n seo: SeoFieldsInput | null | undefined,\n defaults: SeoMetaDefaults,\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined,\n): string {\n if (seo?.openGraph?.imageType === 'url' && seo.openGraph.imageUrl) {\n return seo.openGraph.imageUrl\n }\n if (seo?.openGraph?.image && imageUrlResolver) {\n return imageUrlResolver(seo.openGraph.image as SanityImage) || defaults.ogImage || ''\n }\n return defaults.ogImage || ''\n}\n\n/**\n * Resolve Twitter image URL from SEO fields, falling back to OG image.\n */\nfunction resolveTwitterImage(\n seo: SeoFieldsInput | null | undefined,\n ogImageURL: string,\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined,\n): string {\n if (seo?.twitter?.imageType === 'url' && seo.twitter.imageUrl) {\n return seo.twitter.imageUrl\n }\n if (seo?.twitter?.image && imageUrlResolver) {\n return imageUrlResolver(seo.twitter.image as SanityImage) || ogImageURL\n }\n return ogImageURL\n}\n\n/**\n * Build custom meta attributes map from SEO fields.\n */\nfunction buildCustomMetaMap(seo: SeoFieldsInput | null | undefined): Record<string, string> {\n const other: Record<string, string> = {}\n if (Array.isArray(seo?.metaAttributes)) {\n for (const attr of seo!.metaAttributes!) {\n if (attr.key && attr.value) {\n other[attr.key] = attr.value\n }\n }\n }\n return other\n}\n\n// ─── Core builder ─────────────────────────────────────────────────────────────\n\n/**\n * Convert a Sanity SEO object into a structured metadata object.\n *\n * The return value is structurally compatible with Next.js App Router's\n * `Metadata` type, so you can return it directly from `generateMetadata()`.\n *\n * @example Next.js App Router\n * ```ts\n * import { buildSeoMeta } from 'sanity-plugin-seofields'\n * import { urlFor } from '@/sanity/lib/image'\n *\n * export async function generateMetadata(): Promise<Metadata> {\n * const { seo } = await sanityFetch({ query: PAGE_SEO_QUERY })\n * return buildSeoMeta({\n * seo,\n * baseUrl: process.env.NEXT_PUBLIC_SITE_URL,\n * path: '/about',\n * defaults: { title: 'My Site', siteName: 'My Site' },\n * imageUrlResolver: (img) => urlFor(img).width(1200).url(),\n * })\n * }\n * ```\n */\nexport function buildSeoMeta(options: BuildSeoMetaOptions): SeoMetadata {\n const {seo, baseUrl = '', path = '', defaults = {}, imageUrlResolver} = options\n\n const normalizedBase = baseUrl.replace(/\\/+$/, '') // remove trailing /\n const normalizedPath = path.replace(/^\\/+/, '') // remove leading /\n\n const fullUrl = [normalizedBase, normalizedPath].filter(Boolean).join('/')\n\n const ogImageURL = resolveOgImage(seo, defaults, imageUrlResolver)\n const twitterImageURL = resolveTwitterImage(seo, ogImageURL, imageUrlResolver)\n const other = buildCustomMetaMap(seo)\n\n const ogUrl = seo?.openGraph?.url || fullUrl\n\n return {\n title: seo?.title ?? defaults.title ?? null,\n description: seo?.description ?? defaults.description ?? null,\n keywords: seo?.keywords?.length ? (seo.keywords as string[]) : undefined,\n robots: {\n index: !seo?.robots?.noIndex,\n follow: !seo?.robots?.noFollow,\n googleBot: {\n index: !seo?.robots?.noIndex,\n follow: !seo?.robots?.noFollow,\n },\n },\n openGraph: {\n type: sanitizeOGType(seo?.openGraph?.type ?? undefined),\n url: ogUrl || undefined,\n title: seo?.openGraph?.title ?? defaults.title,\n description: seo?.openGraph?.description ?? defaults.description,\n siteName: seo?.openGraph?.siteName ?? defaults.siteName,\n images: ogImageURL ? [{url: ogImageURL}] : [],\n },\n twitter: {\n card: sanitizeTwitterCard(seo?.twitter?.card ?? undefined),\n site: seo?.twitter?.site ?? defaults.twitterSite,\n creator: seo?.twitter?.creator ?? defaults.twitterCreator,\n title: seo?.twitter?.title ?? defaults.title,\n description: seo?.twitter?.description ?? defaults.description,\n images: twitterImageURL ? [twitterImageURL] : [],\n },\n alternates: {\n canonical: fullUrl || undefined,\n },\n ...(Object.keys(other).length > 0 ? {other} : {}),\n }\n}\n","/**\n * <SeoMetaTags> — Framework-agnostic React SEO meta tag renderer.\n *\n * Renders all SEO meta tags as plain React elements.\n * Place it inside your framework's <Head> component:\n *\n * @example Next.js Pages Router\n * ```tsx\n * import Head from 'next/head'\n * import { SeoMetaTags } from 'sanity-plugin-seofields'\n *\n * export default function Page({ seo }) {\n * return (\n * <>\n * <Head>\n * <SeoMetaTags\n * data={seo}\n * baseUrl=\"https://example.com\"\n * path=\"/about\"\n * defaults={{ title: 'My Site', siteName: 'My Site' }}\n * imageUrlResolver={(img) => urlFor(img).width(1200).url()}\n * />\n * </Head>\n * <main>...</main>\n * </>\n * )\n * }\n * ```\n *\n * @example Nuxt 3 / generic SSR (inside <Head> slot)\n * ```tsx\n * <Head>\n * <SeoMetaTags data={seo} baseUrl=\"https://example.com\" path=\"/\" />\n * </Head>\n * ```\n */\nimport {Fragment, type JSX} from 'react'\n\nimport type {SanityImage, SanityImageWithAlt, SeoFields} from '../types'\nimport {buildSeoMeta, type BuildSeoMetaOptions} from './seoMeta'\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface SeoMetaTagsProps {\n /**\n * The raw SEO object from Sanity.\n * Pass `null` / `undefined` to render only the defaults.\n */\n data?: Partial<SeoFields> | null\n\n /**\n * Base URL of your site, e.g. \"https://example.com\".\n * Used for canonical link, og:url fallback.\n */\n baseUrl?: string\n\n /**\n * Current page path, e.g. \"/about\".\n * Defaults to \"\".\n */\n path?: string\n\n /**\n * Default values used when SEO fields are missing.\n */\n defaults?: BuildSeoMetaOptions['defaults']\n\n /**\n * Resolve a Sanity image asset reference to a full URL string.\n *\n * @example\n * imageUrlResolver={(img) => urlFor(img).width(1200).url()}\n */\n imageUrlResolver?: (image: SanityImage | SanityImageWithAlt) => string | null | undefined\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Renders all SEO meta tags for a page as plain React elements.\n * Intended to be placed inside your framework's <Head> / <head> component.\n *\n * Renders:\n * - `<title>`\n * - `<meta name=\"description\">`\n * - `<meta name=\"keywords\">`\n * - `<meta name=\"robots\">`\n * - OpenGraph meta tags (`og:*`)\n * - Twitter Card meta tags (`twitter:*`)\n * - Any custom `seo.metaAttributes` as `<meta name=\"...\" content=\"...\">`\n */\nexport function SeoMetaTags({\n data,\n baseUrl,\n path,\n defaults,\n imageUrlResolver,\n}: SeoMetaTagsProps): JSX.Element {\n const meta = buildSeoMeta({seo: data, baseUrl, path, defaults, imageUrlResolver})\n\n const robotsContent = [\n meta.robots?.index === false ? 'noindex' : 'index',\n meta.robots?.follow === false ? 'nofollow' : 'follow',\n ].join(', ')\n\n return (\n <>\n {/* ── Title ── */}\n {meta.title && <title>{meta.title}</title>}\n\n {/* ── Basic meta ── */}\n {meta.description && <meta name=\"description\" content={meta.description} />}\n {meta.keywords?.length ? <meta name=\"keywords\" content={meta.keywords.join(', ')} /> : null}\n <meta name=\"robots\" content={robotsContent} />\n <meta name=\"googlebot\" content={robotsContent} />\n\n {/* ── Open Graph ── */}\n {meta.openGraph?.type && <meta property=\"og:type\" content={meta.openGraph.type} />}\n {meta.openGraph?.url && <meta property=\"og:url\" content={meta.openGraph.url} />}\n {meta.openGraph?.title && <meta property=\"og:title\" content={meta.openGraph.title} />}\n {meta.openGraph?.description && (\n <meta property=\"og:description\" content={meta.openGraph.description} />\n )}\n {meta.openGraph?.siteName && (\n <meta property=\"og:site_name\" content={meta.openGraph.siteName} />\n )}\n {meta.openGraph?.images?.map((img, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Fragment key={`og-img-${i}`}>\n <meta property=\"og:image\" content={img.url} />\n {img.width && <meta property=\"og:image:width\" content={String(img.width)} />}\n {img.height && <meta property=\"og:image:height\" content={String(img.height)} />}\n {img.alt && <meta property=\"og:image:alt\" content={img.alt} />}\n </Fragment>\n ))}\n\n {/* ── Twitter Card ── */}\n {meta.twitter?.card && <meta name=\"twitter:card\" content={meta.twitter.card} />}\n {meta.twitter?.site && <meta name=\"twitter:site\" content={meta.twitter.site} />}\n {meta.twitter?.creator && <meta name=\"twitter:creator\" content={meta.twitter.creator} />}\n {meta.twitter?.title && <meta name=\"twitter:title\" content={meta.twitter.title} />}\n {meta.twitter?.description && (\n <meta name=\"twitter:description\" content={meta.twitter.description} />\n )}\n {meta.twitter?.images?.map((url, i) => (\n <meta key={`tw-img-${i}`} name=\"twitter:image\" content={url} />\n ))}\n\n {/* ── Custom meta attributes ── */}\n {meta.other &&\n Object.entries(meta.other).map(([name, content]) => (\n <meta key={`custom-${name}`} name={name} content={content} />\n ))}\n\n {/* ── Canonical URL ── */}\n {meta.alternates?.canonical && <link rel=\"canonical\" href={meta.alternates.canonical} />}\n </>\n )\n}\n\nexport default SeoMetaTags\n"]}
package/dist/next.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { c as SanityImage, d as SanityImageWithAlt, e as SeoFields } from './types-BtSRRG6C.cjs';
2
- import React from 'react';
3
- export { A as AggregateRatingSchema, a as AggregateRatingSchemaProps, b as ArticleSchema, c as ArticleSchemaProps, B as BlogPostingSchema, d as BlogPostingSchemaProps, e as BookSchema, f as BookSchemaProps, g as BrandSchema, h as BrandSchemaProps, i as BreadcrumbListSchema, j as BreadcrumbListSchemaProps, C as ContactPointSchema, k as ContactPointSchemaProps, l as CountrySchema, m as CountrySchemaProps, n as CourseSchema, o as CourseSchemaProps, E as EventSchema, p as EventSchemaProps, F as FAQPageSchema, q as FAQPageSchemaProps, H as HowToSchema, r as HowToSchemaProps, I as ImageObjectSchema, s as ImageObjectSchemaProps, t as ItemListSchema, u as ItemListSchemaProps, J as JobPostingSchema, v as JobPostingSchemaProps, L as LegalServiceSchema, w as LegalServiceSchemaProps, x as LocalBusinessSchema, y as LocalBusinessSchemaProps, M as MovieSchema, z as MovieSchemaProps, D as MusicAlbumSchema, G as MusicAlbumSchemaProps, K as MusicRecordingSchema, N as MusicRecordingSchemaProps, O as NewsArticleSchema, P as NewsArticleSchemaProps, Q as OfferSchema, R as OfferSchemaProps, S as OrganizationSchema, T as OrganizationSchemaProps, U as PersonSchema, V as PersonSchemaProps, W as PlaceSchema, X as PlaceSchemaProps, Y as PostalAddressSchema, Z as PostalAddressSchemaProps, _ as ProductSchema, $ as ProductSchemaProps, a0 as ProfilePageSchema, a1 as ProfilePageSchemaProps, a2 as RecipeSchema, a3 as RecipeSchemaProps, a4 as RestaurantSchema, a5 as RestaurantSchemaProps, a6 as ReviewSchema, a7 as ReviewSchemaProps, a8 as SchemaOrgScripts, a9 as SchemaOrgScriptsProps, aa as ServiceSchema, ab as ServiceSchemaProps, ac as SoftwareApplicationSchema, ad as SoftwareApplicationSchemaProps, ae as VideoObjectSchema, af as VideoObjectSchemaProps, ag as WebApplicationSchema, ah as WebApplicationSchemaProps, ai as WebPageSchema, aj as WebPageSchemaProps, ak as WebsiteSchema, al as WebsiteSchemaProps, am as buildAggregateRatingJsonLd, an as buildArticleJsonLd, ao as buildBlogPostingJsonLd, ap as buildBookJsonLd, aq as buildBrandJsonLd, ar as buildBreadcrumbListJsonLd, as as buildContactPointJsonLd, at as buildCountryJsonLd, au as buildCourseJsonLd, av as buildEventJsonLd, aw as buildFAQPageJsonLd, ax as buildHowToJsonLd, ay as buildImageObjectJsonLd, az as buildItemListJsonLd, aA as buildJobPostingJsonLd, aB as buildLegalServiceJsonLd, aC as buildLocalBusinessJsonLd, aD as buildMovieJsonLd, aE as buildMusicAlbumJsonLd, aF as buildMusicRecordingJsonLd, aG as buildNewsArticleJsonLd, aH as buildOfferJsonLd, aI as buildOrganizationJsonLd, aJ as buildPersonJsonLd, aK as buildPlaceJsonLd, aL as buildPostalAddressJsonLd, aM as buildProductJsonLd, aN as buildProfilePageJsonLd, aO as buildRecipeJsonLd, aP as buildRestaurantJsonLd, aQ as buildReviewJsonLd, aR as buildServiceJsonLd, aS as buildSoftwareApplicationJsonLd, aT as buildVideoObjectJsonLd, aU as buildWebApplicationJsonLd, aV as buildWebPageJsonLd, aW as buildWebsiteJsonLd } from './component-J2nEQkOw.cjs';
4
- import './types-DoUYMRVf.cjs';
2
+ import { JSX } from 'react';
3
+ export { A as AggregateRatingSchema, a as AggregateRatingSchemaProps, b as ArticleSchema, c as ArticleSchemaProps, B as BlogPostingSchema, d as BlogPostingSchemaProps, e as BookSchema, f as BookSchemaProps, g as BrandSchema, h as BrandSchemaProps, i as BreadcrumbListSchema, j as BreadcrumbListSchemaProps, C as ContactPointSchema, k as ContactPointSchemaProps, l as CountrySchema, m as CountrySchemaProps, n as CourseSchema, o as CourseSchemaProps, E as EventSchema, p as EventSchemaProps, F as FAQPageSchema, q as FAQPageSchemaProps, H as HowToSchema, r as HowToSchemaProps, I as ImageObjectSchema, s as ImageObjectSchemaProps, t as ItemListSchema, u as ItemListSchemaProps, J as JobPostingSchema, v as JobPostingSchemaProps, L as LegalServiceSchema, w as LegalServiceSchemaProps, x as LocalBusinessSchema, y as LocalBusinessSchemaProps, M as MovieSchema, z as MovieSchemaProps, D as MusicAlbumSchema, G as MusicAlbumSchemaProps, K as MusicRecordingSchema, N as MusicRecordingSchemaProps, O as NewsArticleSchema, P as NewsArticleSchemaProps, Q as OfferSchema, R as OfferSchemaProps, S as OrganizationSchema, T as OrganizationSchemaProps, U as PersonSchema, V as PersonSchemaProps, W as PlaceSchema, X as PlaceSchemaProps, Y as PostalAddressSchema, Z as PostalAddressSchemaProps, _ as ProductSchema, $ as ProductSchemaProps, a0 as ProfilePageSchema, a1 as ProfilePageSchemaProps, a2 as RecipeSchema, a3 as RecipeSchemaProps, a4 as RestaurantSchema, a5 as RestaurantSchemaProps, a6 as ReviewSchema, a7 as ReviewSchemaProps, a8 as SchemaOrgScripts, a9 as SchemaOrgScriptsProps, aa as ServiceSchema, ab as ServiceSchemaProps, ac as SoftwareApplicationSchema, ad as SoftwareApplicationSchemaProps, ae as VideoObjectSchema, af as VideoObjectSchemaProps, ag as WebApplicationSchema, ah as WebApplicationSchemaProps, ai as WebPageSchema, aj as WebPageSchemaProps, ak as WebsiteSchema, al as WebsiteSchemaProps, am as buildAggregateRatingJsonLd, an as buildArticleJsonLd, ao as buildBlogPostingJsonLd, ap as buildBookJsonLd, aq as buildBrandJsonLd, ar as buildBreadcrumbListJsonLd, as as buildContactPointJsonLd, at as buildCountryJsonLd, au as buildCourseJsonLd, av as buildEventJsonLd, aw as buildFAQPageJsonLd, ax as buildHowToJsonLd, ay as buildImageObjectJsonLd, az as buildItemListJsonLd, aA as buildJobPostingJsonLd, aB as buildLegalServiceJsonLd, aC as buildLocalBusinessJsonLd, aD as buildMovieJsonLd, aE as buildMusicAlbumJsonLd, aF as buildMusicRecordingJsonLd, aG as buildNewsArticleJsonLd, aH as buildOfferJsonLd, aI as buildOrganizationJsonLd, aJ as buildPersonJsonLd, aK as buildPlaceJsonLd, aL as buildPostalAddressJsonLd, aM as buildProductJsonLd, aN as buildProfilePageJsonLd, aO as buildRecipeJsonLd, aP as buildRestaurantJsonLd, aQ as buildReviewJsonLd, aR as buildServiceJsonLd, aS as buildSoftwareApplicationJsonLd, aT as buildVideoObjectJsonLd, aU as buildWebApplicationJsonLd, aV as buildWebPageJsonLd, aW as buildWebsiteJsonLd } from './component-DS-Ve_nw.cjs';
4
+ import './types-BdaGoGQE.cjs';
5
5
 
6
6
  /**
7
7
  * Headless CMS integration helpers for sanity-plugin-seofields
@@ -275,6 +275,6 @@ interface SeoMetaTagsProps {
275
275
  * - Twitter Card meta tags (`twitter:*`)
276
276
  * - Any custom `seo.metaAttributes` as `<meta name="..." content="...">`
277
277
  */
278
- declare function SeoMetaTags({ data, baseUrl, path, defaults, imageUrlResolver, }: SeoMetaTagsProps): React.JSX.Element;
278
+ declare function SeoMetaTags({ data, baseUrl, path, defaults, imageUrlResolver, }: SeoMetaTagsProps): JSX.Element;
279
279
 
280
280
  export { type BuildSeoMetaOptions, type SeoFieldsInput, type SeoMetaDefaults, SeoMetaTags, type SeoMetaTagsProps, type SeoMetadata, buildSeoMeta, sanitizeOGType, sanitizeTwitterCard };
package/dist/next.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { c as SanityImage, d as SanityImageWithAlt, e as SeoFields } from './types-BtSRRG6C.js';
2
- import React from 'react';
3
- export { A as AggregateRatingSchema, a as AggregateRatingSchemaProps, b as ArticleSchema, c as ArticleSchemaProps, B as BlogPostingSchema, d as BlogPostingSchemaProps, e as BookSchema, f as BookSchemaProps, g as BrandSchema, h as BrandSchemaProps, i as BreadcrumbListSchema, j as BreadcrumbListSchemaProps, C as ContactPointSchema, k as ContactPointSchemaProps, l as CountrySchema, m as CountrySchemaProps, n as CourseSchema, o as CourseSchemaProps, E as EventSchema, p as EventSchemaProps, F as FAQPageSchema, q as FAQPageSchemaProps, H as HowToSchema, r as HowToSchemaProps, I as ImageObjectSchema, s as ImageObjectSchemaProps, t as ItemListSchema, u as ItemListSchemaProps, J as JobPostingSchema, v as JobPostingSchemaProps, L as LegalServiceSchema, w as LegalServiceSchemaProps, x as LocalBusinessSchema, y as LocalBusinessSchemaProps, M as MovieSchema, z as MovieSchemaProps, D as MusicAlbumSchema, G as MusicAlbumSchemaProps, K as MusicRecordingSchema, N as MusicRecordingSchemaProps, O as NewsArticleSchema, P as NewsArticleSchemaProps, Q as OfferSchema, R as OfferSchemaProps, S as OrganizationSchema, T as OrganizationSchemaProps, U as PersonSchema, V as PersonSchemaProps, W as PlaceSchema, X as PlaceSchemaProps, Y as PostalAddressSchema, Z as PostalAddressSchemaProps, _ as ProductSchema, $ as ProductSchemaProps, a0 as ProfilePageSchema, a1 as ProfilePageSchemaProps, a2 as RecipeSchema, a3 as RecipeSchemaProps, a4 as RestaurantSchema, a5 as RestaurantSchemaProps, a6 as ReviewSchema, a7 as ReviewSchemaProps, a8 as SchemaOrgScripts, a9 as SchemaOrgScriptsProps, aa as ServiceSchema, ab as ServiceSchemaProps, ac as SoftwareApplicationSchema, ad as SoftwareApplicationSchemaProps, ae as VideoObjectSchema, af as VideoObjectSchemaProps, ag as WebApplicationSchema, ah as WebApplicationSchemaProps, ai as WebPageSchema, aj as WebPageSchemaProps, ak as WebsiteSchema, al as WebsiteSchemaProps, am as buildAggregateRatingJsonLd, an as buildArticleJsonLd, ao as buildBlogPostingJsonLd, ap as buildBookJsonLd, aq as buildBrandJsonLd, ar as buildBreadcrumbListJsonLd, as as buildContactPointJsonLd, at as buildCountryJsonLd, au as buildCourseJsonLd, av as buildEventJsonLd, aw as buildFAQPageJsonLd, ax as buildHowToJsonLd, ay as buildImageObjectJsonLd, az as buildItemListJsonLd, aA as buildJobPostingJsonLd, aB as buildLegalServiceJsonLd, aC as buildLocalBusinessJsonLd, aD as buildMovieJsonLd, aE as buildMusicAlbumJsonLd, aF as buildMusicRecordingJsonLd, aG as buildNewsArticleJsonLd, aH as buildOfferJsonLd, aI as buildOrganizationJsonLd, aJ as buildPersonJsonLd, aK as buildPlaceJsonLd, aL as buildPostalAddressJsonLd, aM as buildProductJsonLd, aN as buildProfilePageJsonLd, aO as buildRecipeJsonLd, aP as buildRestaurantJsonLd, aQ as buildReviewJsonLd, aR as buildServiceJsonLd, aS as buildSoftwareApplicationJsonLd, aT as buildVideoObjectJsonLd, aU as buildWebApplicationJsonLd, aV as buildWebPageJsonLd, aW as buildWebsiteJsonLd } from './component-7rqDvuy2.js';
4
- import './types-DnVvOp3o.js';
2
+ import { JSX } from 'react';
3
+ export { A as AggregateRatingSchema, a as AggregateRatingSchemaProps, b as ArticleSchema, c as ArticleSchemaProps, B as BlogPostingSchema, d as BlogPostingSchemaProps, e as BookSchema, f as BookSchemaProps, g as BrandSchema, h as BrandSchemaProps, i as BreadcrumbListSchema, j as BreadcrumbListSchemaProps, C as ContactPointSchema, k as ContactPointSchemaProps, l as CountrySchema, m as CountrySchemaProps, n as CourseSchema, o as CourseSchemaProps, E as EventSchema, p as EventSchemaProps, F as FAQPageSchema, q as FAQPageSchemaProps, H as HowToSchema, r as HowToSchemaProps, I as ImageObjectSchema, s as ImageObjectSchemaProps, t as ItemListSchema, u as ItemListSchemaProps, J as JobPostingSchema, v as JobPostingSchemaProps, L as LegalServiceSchema, w as LegalServiceSchemaProps, x as LocalBusinessSchema, y as LocalBusinessSchemaProps, M as MovieSchema, z as MovieSchemaProps, D as MusicAlbumSchema, G as MusicAlbumSchemaProps, K as MusicRecordingSchema, N as MusicRecordingSchemaProps, O as NewsArticleSchema, P as NewsArticleSchemaProps, Q as OfferSchema, R as OfferSchemaProps, S as OrganizationSchema, T as OrganizationSchemaProps, U as PersonSchema, V as PersonSchemaProps, W as PlaceSchema, X as PlaceSchemaProps, Y as PostalAddressSchema, Z as PostalAddressSchemaProps, _ as ProductSchema, $ as ProductSchemaProps, a0 as ProfilePageSchema, a1 as ProfilePageSchemaProps, a2 as RecipeSchema, a3 as RecipeSchemaProps, a4 as RestaurantSchema, a5 as RestaurantSchemaProps, a6 as ReviewSchema, a7 as ReviewSchemaProps, a8 as SchemaOrgScripts, a9 as SchemaOrgScriptsProps, aa as ServiceSchema, ab as ServiceSchemaProps, ac as SoftwareApplicationSchema, ad as SoftwareApplicationSchemaProps, ae as VideoObjectSchema, af as VideoObjectSchemaProps, ag as WebApplicationSchema, ah as WebApplicationSchemaProps, ai as WebPageSchema, aj as WebPageSchemaProps, ak as WebsiteSchema, al as WebsiteSchemaProps, am as buildAggregateRatingJsonLd, an as buildArticleJsonLd, ao as buildBlogPostingJsonLd, ap as buildBookJsonLd, aq as buildBrandJsonLd, ar as buildBreadcrumbListJsonLd, as as buildContactPointJsonLd, at as buildCountryJsonLd, au as buildCourseJsonLd, av as buildEventJsonLd, aw as buildFAQPageJsonLd, ax as buildHowToJsonLd, ay as buildImageObjectJsonLd, az as buildItemListJsonLd, aA as buildJobPostingJsonLd, aB as buildLegalServiceJsonLd, aC as buildLocalBusinessJsonLd, aD as buildMovieJsonLd, aE as buildMusicAlbumJsonLd, aF as buildMusicRecordingJsonLd, aG as buildNewsArticleJsonLd, aH as buildOfferJsonLd, aI as buildOrganizationJsonLd, aJ as buildPersonJsonLd, aK as buildPlaceJsonLd, aL as buildPostalAddressJsonLd, aM as buildProductJsonLd, aN as buildProfilePageJsonLd, aO as buildRecipeJsonLd, aP as buildRestaurantJsonLd, aQ as buildReviewJsonLd, aR as buildServiceJsonLd, aS as buildSoftwareApplicationJsonLd, aT as buildVideoObjectJsonLd, aU as buildWebApplicationJsonLd, aV as buildWebPageJsonLd, aW as buildWebsiteJsonLd } from './component-CWZ0tlsq.js';
4
+ import './types-BwmZmt9I.js';
5
5
 
6
6
  /**
7
7
  * Headless CMS integration helpers for sanity-plugin-seofields
@@ -275,6 +275,6 @@ interface SeoMetaTagsProps {
275
275
  * - Twitter Card meta tags (`twitter:*`)
276
276
  * - Any custom `seo.metaAttributes` as `<meta name="..." content="...">`
277
277
  */
278
- declare function SeoMetaTags({ data, baseUrl, path, defaults, imageUrlResolver, }: SeoMetaTagsProps): React.JSX.Element;
278
+ declare function SeoMetaTags({ data, baseUrl, path, defaults, imageUrlResolver, }: SeoMetaTagsProps): JSX.Element;
279
279
 
280
280
  export { type BuildSeoMetaOptions, type SeoFieldsInput, type SeoMetaDefaults, SeoMetaTags, type SeoMetaTagsProps, type SeoMetadata, buildSeoMeta, sanitizeOGType, sanitizeTwitterCard };