@tandem-language-exchange/content-store 1.2.10 → 1.2.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/dist/sanity.js ADDED
@@ -0,0 +1,2789 @@
1
+ // src/shared/sanity/schemaTypes/audioPhrase.ts
2
+ import { defineField, defineType } from "sanity";
3
+ var audioPhrase_default = defineType({
4
+ name: "audioPhrase",
5
+ title: "Audio phrase",
6
+ type: "document",
7
+ fields: [
8
+ defineField({
9
+ name: "locale",
10
+ title: "Locale",
11
+ type: "string",
12
+ description: "Set by the document-internationalization plugin.",
13
+ hidden: true,
14
+ readOnly: true
15
+ }),
16
+ defineField({
17
+ name: "contentfulId",
18
+ title: "Contentful ID",
19
+ type: "string",
20
+ description: "Original Contentful entry ID; used to resolve references during migration.",
21
+ hidden: true,
22
+ readOnly: true
23
+ }),
24
+ defineField({
25
+ name: "phrase",
26
+ title: "Phrase",
27
+ type: "string"
28
+ }),
29
+ defineField({
30
+ name: "pronunciation",
31
+ title: "Pronunciation",
32
+ type: "string"
33
+ }),
34
+ defineField({
35
+ name: "translation",
36
+ title: "Translation",
37
+ type: "string"
38
+ }),
39
+ defineField({
40
+ name: "audio",
41
+ title: "Audio",
42
+ type: "image",
43
+ options: { hotspot: true }
44
+ }),
45
+ defineField({
46
+ name: "lang",
47
+ title: "Language",
48
+ type: "string"
49
+ })
50
+ ],
51
+ preview: {
52
+ select: {
53
+ title: "phrase",
54
+ locale: "locale"
55
+ },
56
+ prepare(selection) {
57
+ const { title, locale } = selection;
58
+ return {
59
+ title: title ?? "",
60
+ subtitle: locale ? ` [${locale}]` : ""
61
+ };
62
+ }
63
+ }
64
+ });
65
+
66
+ // src/shared/sanity/schemaTypes/banner.ts
67
+ import { defineField as defineField2, defineType as defineType2 } from "sanity";
68
+ var banner_default = defineType2({
69
+ name: "banner",
70
+ title: "Banner",
71
+ type: "document",
72
+ fields: [
73
+ defineField2({
74
+ name: "locale",
75
+ title: "Locale",
76
+ type: "string",
77
+ description: "Set by the document-internationalization plugin.",
78
+ hidden: true,
79
+ readOnly: true
80
+ }),
81
+ defineField2({
82
+ name: "contentfulId",
83
+ title: "Contentful ID",
84
+ type: "string",
85
+ description: "Original Contentful entry ID; used to resolve references during migration.",
86
+ hidden: true,
87
+ readOnly: true
88
+ }),
89
+ defineField2({
90
+ name: "id",
91
+ title: "ID",
92
+ type: "string",
93
+ validation: (rule) => rule.required()
94
+ }),
95
+ defineField2({
96
+ name: "heading",
97
+ title: "Heading",
98
+ type: "string"
99
+ }),
100
+ defineField2({
101
+ name: "body",
102
+ title: "Body",
103
+ type: "text"
104
+ }),
105
+ defineField2({
106
+ name: "links",
107
+ title: "Links",
108
+ type: "array",
109
+ of: [{ type: "reference", to: [{ type: "link" }] }]
110
+ }),
111
+ defineField2({
112
+ name: "style",
113
+ title: "Style",
114
+ type: "string",
115
+ validation: (rule) => rule.required()
116
+ }),
117
+ defineField2({
118
+ name: "background",
119
+ title: "Background",
120
+ type: "string"
121
+ }),
122
+ defineField2({
123
+ name: "customData",
124
+ title: "Custom Data",
125
+ type: "text",
126
+ description: "JSON data (migrated from Contentful Object field)."
127
+ }),
128
+ defineField2({
129
+ name: "devicesToRender",
130
+ title: "Devices To Render",
131
+ type: "array",
132
+ of: [{ type: "string" }]
133
+ })
134
+ ],
135
+ preview: {
136
+ select: {
137
+ title: "id",
138
+ locale: "locale"
139
+ },
140
+ prepare(selection) {
141
+ const { title, locale } = selection;
142
+ return {
143
+ title: title ?? "",
144
+ subtitle: locale ? ` [${locale}]` : ""
145
+ };
146
+ }
147
+ }
148
+ });
149
+
150
+ // src/shared/sanity/schemaTypes/blogGetAppBanner.ts
151
+ import { defineField as defineField3, defineType as defineType3 } from "sanity";
152
+ var blogGetAppBanner_default = defineType3({
153
+ name: "blogGetAppBanner",
154
+ title: "Blog Post Get App Banner",
155
+ type: "document",
156
+ fields: [
157
+ defineField3({
158
+ name: "locale",
159
+ title: "Locale",
160
+ type: "string",
161
+ description: "Set by the document-internationalization plugin.",
162
+ hidden: true,
163
+ readOnly: true
164
+ }),
165
+ defineField3({
166
+ name: "contentfulId",
167
+ title: "Contentful ID",
168
+ type: "string",
169
+ description: "Original Contentful entry ID; used to resolve references when migrating blog posts.",
170
+ hidden: true,
171
+ readOnly: true
172
+ }),
173
+ defineField3({
174
+ name: "title",
175
+ title: "Title",
176
+ type: "string",
177
+ validation: (rule) => rule.required()
178
+ }),
179
+ defineField3({
180
+ name: "body",
181
+ title: "Body",
182
+ type: "text"
183
+ }),
184
+ defineField3({
185
+ name: "image",
186
+ title: "Image",
187
+ type: "image",
188
+ options: { hotspot: true }
189
+ }),
190
+ defineField3({
191
+ name: "mobileImage",
192
+ title: "Mobile Image",
193
+ type: "image",
194
+ options: { hotspot: true }
195
+ }),
196
+ defineField3({
197
+ name: "qrCode",
198
+ title: "QR code",
199
+ type: "image",
200
+ options: { hotspot: true }
201
+ }),
202
+ defineField3({
203
+ name: "links",
204
+ title: "Links",
205
+ type: "array",
206
+ of: [{ type: "reference", to: [{ type: "button" }] }]
207
+ }),
208
+ defineField3({
209
+ name: "mobLinks",
210
+ title: "Mobile Links",
211
+ type: "array",
212
+ of: [{ type: "reference", to: [{ type: "button" }] }]
213
+ }),
214
+ defineField3({
215
+ name: "background",
216
+ title: "Background",
217
+ type: "string",
218
+ options: {
219
+ list: [
220
+ { title: "Transparent", value: "transparent" },
221
+ { title: "Light", value: "light" },
222
+ { title: "Dark", value: "dark" }
223
+ ],
224
+ layout: "radio"
225
+ }
226
+ })
227
+ ],
228
+ preview: {
229
+ select: {
230
+ title: "title",
231
+ locale: "locale"
232
+ },
233
+ prepare(selection) {
234
+ const { title, locale } = selection;
235
+ const localeSuffix = locale ? ` [${locale}]` : "";
236
+ return {
237
+ title: title ?? "",
238
+ subtitle: localeSuffix
239
+ };
240
+ }
241
+ }
242
+ });
243
+
244
+ // src/shared/sanity/schemaTypes/blogLanguagesSidebar.ts
245
+ import { defineField as defineField4, defineType as defineType4 } from "sanity";
246
+ var blogLanguagesSidebar_default = defineType4({
247
+ name: "blogLanguagesSidebar",
248
+ title: "Blog Languages Sidebar",
249
+ type: "document",
250
+ fields: [
251
+ defineField4({
252
+ name: "locale",
253
+ title: "Locale",
254
+ type: "string",
255
+ description: "Set by the document-internationalization plugin.",
256
+ hidden: true,
257
+ readOnly: true
258
+ }),
259
+ defineField4({
260
+ name: "title",
261
+ title: "Title",
262
+ type: "string",
263
+ validation: (rule) => rule.required()
264
+ }),
265
+ defineField4({
266
+ name: "languages",
267
+ title: "Languages",
268
+ type: "array",
269
+ description: "Languages that are available for practice",
270
+ of: [{ type: "string" }],
271
+ validation: (rule) => rule.required()
272
+ })
273
+ ],
274
+ preview: {
275
+ select: {
276
+ title: "title",
277
+ locale: "locale"
278
+ },
279
+ prepare(selection) {
280
+ const { title, locale } = selection;
281
+ const localeSuffix = locale ? ` [${locale}]` : "";
282
+ return {
283
+ title: title ?? "",
284
+ subtitle: localeSuffix
285
+ };
286
+ }
287
+ }
288
+ });
289
+
290
+ // src/shared/sanity/schemaTypes/blogPopup.ts
291
+ import { defineField as defineField5, defineType as defineType5 } from "sanity";
292
+ var blogPopup_default = defineType5({
293
+ name: "blogPopup",
294
+ title: "Blog Popup",
295
+ type: "document",
296
+ fields: [
297
+ defineField5({
298
+ name: "locale",
299
+ title: "Locale",
300
+ type: "string",
301
+ description: "Set by the document-internationalization plugin.",
302
+ hidden: true,
303
+ readOnly: true
304
+ }),
305
+ defineField5({
306
+ name: "contentfulId",
307
+ title: "Contentful ID",
308
+ type: "string",
309
+ description: "Original Contentful entry ID; used to resolve references when migrating blog posts.",
310
+ hidden: true,
311
+ readOnly: true
312
+ }),
313
+ defineField5({
314
+ name: "title",
315
+ title: "Title",
316
+ type: "string",
317
+ validation: (rule) => rule.required()
318
+ }),
319
+ defineField5({
320
+ name: "body",
321
+ title: "Body",
322
+ type: "text"
323
+ }),
324
+ defineField5({
325
+ name: "image",
326
+ title: "Image",
327
+ type: "image",
328
+ options: { hotspot: true }
329
+ }),
330
+ defineField5({
331
+ name: "mobileImage",
332
+ title: "Mobile Image",
333
+ type: "image",
334
+ options: { hotspot: true }
335
+ }),
336
+ defineField5({
337
+ name: "qrCode",
338
+ title: "QR Code",
339
+ type: "image",
340
+ options: { hotspot: true }
341
+ }),
342
+ defineField5({
343
+ name: "links",
344
+ title: "Links",
345
+ type: "array",
346
+ of: [{ type: "reference", to: [{ type: "button" }] }]
347
+ }),
348
+ defineField5({
349
+ name: "mobLinks",
350
+ title: "Mobile Links",
351
+ type: "array",
352
+ of: [{ type: "reference", to: [{ type: "button" }] }]
353
+ })
354
+ ],
355
+ preview: {
356
+ select: {
357
+ title: "title",
358
+ locale: "locale"
359
+ },
360
+ prepare(selection) {
361
+ const { title, locale } = selection;
362
+ const localeSuffix = locale ? ` [${locale}]` : "";
363
+ return {
364
+ title: title ?? "",
365
+ subtitle: localeSuffix
366
+ };
367
+ }
368
+ }
369
+ });
370
+
371
+ // src/shared/sanity/schemaTypes/blogPost.ts
372
+ import { defineField as defineField6, defineType as defineType6 } from "sanity";
373
+
374
+ // src/shared/sanity/validation/validateValidSlugOrUrl.ts
375
+ var asRule = (rule) => rule;
376
+ var isSlug = (v) => v.startsWith("/") && !v.startsWith("//");
377
+ var isAbsoluteUrl = (v) => {
378
+ try {
379
+ new URL(v);
380
+ return true;
381
+ } catch {
382
+ return false;
383
+ }
384
+ };
385
+ var message = (slug, absolute) => {
386
+ if (slug && absolute) return "Use a path starting with / or a valid URL";
387
+ if (slug) return "Use a path starting with / (e.g. /blog/my-post)";
388
+ return "Enter a valid URL";
389
+ };
390
+ var slugOrUrlRules = (rule, options) => {
391
+ const { slug, absolute, required = true } = options;
392
+ if (!slug && !absolute) {
393
+ throw new Error("slugOrUrlRules: set slug and/or absolute to true");
394
+ }
395
+ const r = asRule(rule);
396
+ const custom = (value) => {
397
+ if (typeof value !== "string" || !value.trim()) return true;
398
+ const v = value.trim();
399
+ if (slug && isSlug(v)) return true;
400
+ if (absolute && isAbsoluteUrl(v)) return true;
401
+ return message(slug, absolute);
402
+ };
403
+ return required ? [r.required(), r.custom(custom)] : [r.custom(custom)];
404
+ };
405
+
406
+ // src/shared/sanity/schemaTypes/blogPost.ts
407
+ var blogPost_default = defineType6({
408
+ name: "blogPost",
409
+ title: "Blog Post",
410
+ type: "document",
411
+ fields: [
412
+ defineField6({
413
+ name: "locale",
414
+ title: "Locale",
415
+ type: "string",
416
+ description: "Set by the document-internationalization plugin.",
417
+ hidden: true,
418
+ readOnly: true
419
+ }),
420
+ defineField6({
421
+ name: "contentfulId",
422
+ title: "Contentful ID",
423
+ type: "string",
424
+ description: "Original Contentful entry ID; used to resolve references.",
425
+ hidden: true,
426
+ readOnly: true
427
+ }),
428
+ defineField6({
429
+ name: "title",
430
+ title: "Title",
431
+ type: "string",
432
+ validation: (rule) => rule.required()
433
+ }),
434
+ defineField6({
435
+ name: "slug",
436
+ title: "Slug",
437
+ type: "string",
438
+ description: "URL path (e.g. /blog/my-post).",
439
+ validation: (rule) => [
440
+ ...slugOrUrlRules(rule, { slug: true, absolute: false }),
441
+ rule.custom(async (value, context) => {
442
+ if (!value) return true;
443
+ const { document, getClient } = context;
444
+ const client = getClient({ apiVersion: "2024-01-01" });
445
+ const id = document?._id.replace(/^drafts\./, "");
446
+ const count = await client.fetch(
447
+ 'count(*[_type == "blogPost" && slug == $slug && !(_id in [$draftId, $publishedId])])',
448
+ { slug: value, draftId: `drafts.${id}`, publishedId: id }
449
+ );
450
+ return count > 0 ? "A blog post with this slug already exists." : true;
451
+ })
452
+ ]
453
+ }),
454
+ defineField6({
455
+ name: "heroImage",
456
+ title: "Hero Image",
457
+ type: "reference",
458
+ to: [{ type: "heroImage" }],
459
+ validation: (rule) => rule.required()
460
+ }),
461
+ defineField6({
462
+ name: "thumbnailDescription",
463
+ title: "Thumbnail description",
464
+ type: "markdown",
465
+ description: "Markdown content for the blog card/thumbnail.",
466
+ validation: (rule) => rule.required()
467
+ }),
468
+ defineField6({
469
+ name: "body",
470
+ title: "Body",
471
+ type: "markdown",
472
+ description: "Markdown content (GitHub-flavoured). Supports image uploads.",
473
+ validation: (rule) => rule.required()
474
+ }),
475
+ defineField6({
476
+ name: "author",
477
+ title: "Author",
478
+ type: "string"
479
+ }),
480
+ defineField6({
481
+ name: "publishDate",
482
+ title: "Publish Date",
483
+ type: "datetime",
484
+ validation: (rule) => rule.required()
485
+ }),
486
+ defineField6({
487
+ name: "category",
488
+ title: "Category",
489
+ type: "string",
490
+ options: {
491
+ list: [
492
+ "culture",
493
+ "language",
494
+ "tandem-tales",
495
+ "tandem-tips",
496
+ "general",
497
+ "tandem-app",
498
+ "how-to-speak-spanish",
499
+ "how-to-speak-german",
500
+ "how-to-speak-french",
501
+ "how-to-speak-japanese",
502
+ "how-to-speak-russian",
503
+ "how-to-speak-italian",
504
+ "how-to-speak-korean",
505
+ "how-to-speak-portuguese"
506
+ ].map((value) => ({ title: value, value }))
507
+ },
508
+ validation: (rule) => rule.required()
509
+ }),
510
+ defineField6({
511
+ name: "tags",
512
+ title: "Tags",
513
+ type: "array",
514
+ of: [{ type: "string" }],
515
+ options: {
516
+ list: [
517
+ "Pronouns",
518
+ "Adjectives",
519
+ "Accents",
520
+ "Nouns",
521
+ "Alphabet",
522
+ "Japanese",
523
+ "Russian",
524
+ "Verbs",
525
+ "Spanish",
526
+ "French",
527
+ "German",
528
+ "Korean",
529
+ "Italian"
530
+ ].map((value) => ({ title: value, value }))
531
+ }
532
+ }),
533
+ defineField6({
534
+ name: "metaTitle",
535
+ title: "Meta Title",
536
+ type: "text"
537
+ }),
538
+ defineField6({
539
+ name: "metaDescription",
540
+ title: "Meta Description",
541
+ type: "text"
542
+ }),
543
+ defineField6({
544
+ name: "metaKeywords",
545
+ title: "Meta Keywords",
546
+ type: "array",
547
+ of: [{ type: "string" }]
548
+ }),
549
+ defineField6({
550
+ name: "linkedPosts",
551
+ title: "Linked Posts",
552
+ type: "array",
553
+ description: "Same post in other locales (translations).",
554
+ of: [{ type: "reference", to: [{ type: "blogPost" }] }]
555
+ }),
556
+ defineField6({
557
+ name: "previewImage",
558
+ title: "Preview image",
559
+ type: "image",
560
+ options: { hotspot: true }
561
+ }),
562
+ defineField6({
563
+ name: "imageAlt",
564
+ title: "Image Alt Text",
565
+ description: "Used for the blog card/thumbnail preview.",
566
+ type: "string"
567
+ }),
568
+ defineField6({
569
+ name: "cta",
570
+ title: "CTA",
571
+ type: "reference",
572
+ to: [{ type: "blogGetAppBanner" }]
573
+ }),
574
+ defineField6({
575
+ name: "smartBannerAdjustLink",
576
+ title: "Smart Banner Adjust Link",
577
+ type: "string",
578
+ description: "Adjust or other https URL, or an internal path starting with /.",
579
+ validation: (rule) => slugOrUrlRules(rule, { slug: true, absolute: true, required: false })
580
+ }),
581
+ defineField6({
582
+ name: "hideBlogPopup",
583
+ title: "Hide Blog Popup",
584
+ type: "boolean"
585
+ }),
586
+ defineField6({
587
+ name: "structuredData",
588
+ title: "Structured Data",
589
+ type: "text",
590
+ description: "Plain JSON (e.g. for SEO structured data).",
591
+ validation: (rule) => rule.custom((value) => {
592
+ if (value == null || value === "") return true;
593
+ try {
594
+ JSON.parse(value);
595
+ return true;
596
+ } catch {
597
+ return "Must be valid JSON";
598
+ }
599
+ })
600
+ })
601
+ ],
602
+ preview: {
603
+ select: {
604
+ title: "title",
605
+ locale: "locale"
606
+ },
607
+ prepare(selection) {
608
+ const { title, locale } = selection;
609
+ const localeSuffix = locale ? ` [${locale}]` : "";
610
+ return {
611
+ title: title ?? "",
612
+ subtitle: localeSuffix
613
+ };
614
+ }
615
+ }
616
+ });
617
+
618
+ // src/shared/sanity/schemaTypes/blogThumbs.ts
619
+ import { defineField as defineField7, defineType as defineType7 } from "sanity";
620
+ var blogThumbs_default = defineType7({
621
+ name: "blogThumbs",
622
+ title: "Blog thumbs",
623
+ type: "document",
624
+ fields: [
625
+ defineField7({
626
+ name: "locale",
627
+ title: "Locale",
628
+ type: "string",
629
+ description: "Set by the document-internationalization plugin.",
630
+ hidden: true,
631
+ readOnly: true
632
+ }),
633
+ defineField7({
634
+ name: "contentfulId",
635
+ title: "Contentful ID",
636
+ type: "string",
637
+ description: "Original Contentful entry ID; used to resolve references during migration.",
638
+ hidden: true,
639
+ readOnly: true
640
+ }),
641
+ defineField7({
642
+ name: "id",
643
+ title: "ID",
644
+ type: "string"
645
+ }),
646
+ defineField7({
647
+ name: "title",
648
+ title: "Title",
649
+ type: "string"
650
+ }),
651
+ defineField7({
652
+ name: "post1",
653
+ title: "Post 1",
654
+ type: "string"
655
+ }),
656
+ defineField7({
657
+ name: "post2",
658
+ title: "Post 2",
659
+ type: "string"
660
+ }),
661
+ defineField7({
662
+ name: "post3",
663
+ title: "Post 3",
664
+ type: "string"
665
+ }),
666
+ defineField7({
667
+ name: "style",
668
+ title: "Style",
669
+ type: "string"
670
+ })
671
+ ],
672
+ preview: {
673
+ select: {
674
+ title: "id",
675
+ locale: "locale"
676
+ },
677
+ prepare(selection) {
678
+ const { title, locale } = selection;
679
+ return {
680
+ title: title ?? "",
681
+ subtitle: locale ? ` [${locale}]` : ""
682
+ };
683
+ }
684
+ }
685
+ });
686
+
687
+ // src/shared/sanity/schemaTypes/columnizedText.ts
688
+ import { defineField as defineField8, defineType as defineType8 } from "sanity";
689
+ var columnizedText_default = defineType8({
690
+ name: "columnizedText",
691
+ title: "Columnized text",
692
+ type: "document",
693
+ fields: [
694
+ defineField8({
695
+ name: "locale",
696
+ title: "Locale",
697
+ type: "string",
698
+ description: "Set by the document-internationalization plugin.",
699
+ hidden: true,
700
+ readOnly: true
701
+ }),
702
+ defineField8({
703
+ name: "contentfulId",
704
+ title: "Contentful ID",
705
+ type: "string",
706
+ description: "Original Contentful entry ID; used to resolve references during migration.",
707
+ hidden: true,
708
+ readOnly: true
709
+ }),
710
+ defineField8({
711
+ name: "id",
712
+ title: "ID",
713
+ type: "string"
714
+ }),
715
+ defineField8({
716
+ name: "title",
717
+ title: "Title",
718
+ type: "string"
719
+ }),
720
+ defineField8({
721
+ name: "column1",
722
+ title: "Column 1",
723
+ type: "text",
724
+ validation: (rule) => rule.required()
725
+ }),
726
+ defineField8({
727
+ name: "column2",
728
+ title: "Column 2",
729
+ type: "text"
730
+ }),
731
+ defineField8({
732
+ name: "column3",
733
+ title: "Column 3",
734
+ type: "text"
735
+ }),
736
+ defineField8({
737
+ name: "background",
738
+ title: "Background",
739
+ type: "string"
740
+ }),
741
+ defineField8({
742
+ name: "alignButtonLeft",
743
+ title: "Align Button Left",
744
+ type: "boolean"
745
+ }),
746
+ defineField8({
747
+ name: "ctaLinks",
748
+ title: "CTA links",
749
+ type: "array",
750
+ of: [{ type: "reference", to: [{ type: "link" }] }]
751
+ }),
752
+ defineField8({
753
+ name: "mobileCtaLinks",
754
+ title: "Mobile CTA links",
755
+ type: "array",
756
+ of: [{ type: "reference", to: [{ type: "link" }] }]
757
+ }),
758
+ defineField8({
759
+ name: "buttonText",
760
+ title: "Button Text",
761
+ type: "string"
762
+ }),
763
+ defineField8({
764
+ name: "buttonLink",
765
+ title: "Button Link",
766
+ type: "string"
767
+ }),
768
+ defineField8({
769
+ name: "buttonStyle",
770
+ title: "buttonStyle",
771
+ type: "string"
772
+ }),
773
+ defineField8({
774
+ name: "invertButton",
775
+ title: "Invert button",
776
+ type: "boolean"
777
+ })
778
+ ],
779
+ preview: {
780
+ select: {
781
+ title: "id",
782
+ locale: "locale"
783
+ },
784
+ prepare(selection) {
785
+ const { title, locale } = selection;
786
+ return {
787
+ title: title ?? "",
788
+ subtitle: locale ? ` [${locale}]` : ""
789
+ };
790
+ }
791
+ }
792
+ });
793
+
794
+ // src/shared/sanity/schemaTypes/cookieBanner.ts
795
+ import { defineField as defineField9, defineType as defineType9 } from "sanity";
796
+ var cookieBanner_default = defineType9({
797
+ name: "cookieBanner",
798
+ title: "Cookie Banner",
799
+ type: "document",
800
+ fields: [
801
+ defineField9({
802
+ name: "locale",
803
+ title: "Locale",
804
+ type: "string",
805
+ description: "Set by the document-internationalization plugin.",
806
+ hidden: true,
807
+ readOnly: true
808
+ }),
809
+ defineField9({
810
+ name: "contentfulId",
811
+ title: "Contentful ID",
812
+ type: "string",
813
+ description: "Original Contentful entry ID; used to resolve references during migration.",
814
+ hidden: true,
815
+ readOnly: true
816
+ }),
817
+ defineField9({
818
+ name: "client",
819
+ title: "Client",
820
+ type: "string",
821
+ validation: (rule) => rule.required()
822
+ }),
823
+ defineField9({
824
+ name: "entryId",
825
+ title: "Entry ID",
826
+ type: "string",
827
+ validation: (rule) => rule.required()
828
+ }),
829
+ defineField9({
830
+ name: "body",
831
+ title: "Body",
832
+ type: "text",
833
+ validation: (rule) => rule.required()
834
+ }),
835
+ defineField9({
836
+ name: "settingsLinks",
837
+ title: "Settings Links",
838
+ type: "array",
839
+ of: [{ type: "reference", to: [{ type: "link" }] }],
840
+ validation: (rule) => rule.required()
841
+ }),
842
+ defineField9({
843
+ name: "settingsHeading",
844
+ title: "Settings Heading",
845
+ type: "string",
846
+ validation: (rule) => rule.required()
847
+ }),
848
+ defineField9({
849
+ name: "cookiesHeading",
850
+ title: "Cookies Heading",
851
+ type: "string",
852
+ validation: (rule) => rule.required()
853
+ }),
854
+ defineField9({
855
+ name: "categories",
856
+ title: "Categories",
857
+ type: "text",
858
+ description: "JSON data (migrated from Contentful Object field).",
859
+ validation: (rule) => rule.required()
860
+ }),
861
+ defineField9({
862
+ name: "cookies",
863
+ title: "Cookies",
864
+ type: "text",
865
+ description: "JSON data (migrated from Contentful Object field).",
866
+ validation: (rule) => rule.required()
867
+ }),
868
+ defineField9({
869
+ name: "settings",
870
+ title: "Settings",
871
+ type: "text",
872
+ description: "JSON data (migrated from Contentful Object field)."
873
+ }),
874
+ defineField9({
875
+ name: "performanceScripts",
876
+ title: "Performance Scripts",
877
+ type: "image",
878
+ options: { hotspot: true }
879
+ }),
880
+ defineField9({
881
+ name: "functionalScripts",
882
+ title: "Functional Scripts",
883
+ type: "image",
884
+ options: { hotspot: true }
885
+ }),
886
+ defineField9({
887
+ name: "advertisingScripts",
888
+ title: "Advertising Scripts",
889
+ type: "image",
890
+ options: { hotspot: true }
891
+ })
892
+ ],
893
+ preview: {
894
+ select: {
895
+ title: "entryId",
896
+ locale: "locale"
897
+ },
898
+ prepare(selection) {
899
+ const { title, locale } = selection;
900
+ return {
901
+ title: title ?? "",
902
+ subtitle: locale ? ` [${locale}]` : ""
903
+ };
904
+ }
905
+ }
906
+ });
907
+
908
+ // src/shared/sanity/schemaTypes/customJson.ts
909
+ import { defineField as defineField10, defineType as defineType10 } from "sanity";
910
+ var customJson_default = defineType10({
911
+ name: "customJson",
912
+ title: "Custom JSON",
913
+ type: "document",
914
+ fields: [
915
+ defineField10({
916
+ name: "locale",
917
+ title: "Locale",
918
+ type: "string",
919
+ description: "Set by the document-internationalization plugin.",
920
+ hidden: true,
921
+ readOnly: true
922
+ }),
923
+ defineField10({
924
+ name: "contentfulId",
925
+ title: "Contentful ID",
926
+ type: "string",
927
+ description: "Original Contentful entry ID; used to resolve references during migration.",
928
+ hidden: true,
929
+ readOnly: true
930
+ }),
931
+ defineField10({
932
+ name: "title",
933
+ title: "Title",
934
+ type: "string",
935
+ validation: (rule) => rule.required()
936
+ }),
937
+ defineField10({
938
+ name: "json",
939
+ title: "json",
940
+ type: "text",
941
+ description: "JSON data (migrated from Contentful Object field).",
942
+ validation: (rule) => rule.required()
943
+ })
944
+ ],
945
+ preview: {
946
+ select: {
947
+ title: "title",
948
+ locale: "locale"
949
+ },
950
+ prepare(selection) {
951
+ const { title, locale } = selection;
952
+ return {
953
+ title: title ?? "",
954
+ subtitle: locale ? ` [${locale}]` : ""
955
+ };
956
+ }
957
+ }
958
+ });
959
+
960
+ // src/shared/sanity/schemaTypes/downloadPage.ts
961
+ import { defineField as defineField11, defineType as defineType11 } from "sanity";
962
+ var downloadPage_default = defineType11({
963
+ name: "downloadPage",
964
+ title: "Download Page",
965
+ type: "document",
966
+ fields: [
967
+ defineField11({
968
+ name: "locale",
969
+ title: "Locale",
970
+ type: "string",
971
+ description: "Set by the document-internationalization plugin.",
972
+ hidden: true,
973
+ readOnly: true
974
+ }),
975
+ defineField11({
976
+ name: "contentfulId",
977
+ title: "Contentful ID",
978
+ type: "string",
979
+ description: "Original Contentful entry ID; used to resolve references during migration.",
980
+ hidden: true,
981
+ readOnly: true
982
+ }),
983
+ defineField11({
984
+ name: "name",
985
+ title: "Name",
986
+ type: "string",
987
+ validation: (rule) => rule.required()
988
+ }),
989
+ defineField11({
990
+ name: "slug",
991
+ title: "Slug",
992
+ type: "string",
993
+ validation: (rule) => rule.required()
994
+ }),
995
+ defineField11({
996
+ name: "title",
997
+ title: "Title",
998
+ type: "string",
999
+ validation: (rule) => rule.required()
1000
+ }),
1001
+ defineField11({
1002
+ name: "description",
1003
+ title: "Description",
1004
+ type: "text",
1005
+ validation: (rule) => rule.required()
1006
+ }),
1007
+ defineField11({
1008
+ name: "image",
1009
+ title: "Image",
1010
+ type: "image",
1011
+ options: { hotspot: true },
1012
+ validation: (rule) => rule.required()
1013
+ }),
1014
+ defineField11({
1015
+ name: "buttonLabel",
1016
+ title: "Button Label",
1017
+ type: "string",
1018
+ validation: (rule) => rule.required()
1019
+ }),
1020
+ defineField11({
1021
+ name: "url",
1022
+ title: "URL",
1023
+ type: "string",
1024
+ validation: (rule) => rule.required()
1025
+ }),
1026
+ defineField11({
1027
+ name: "colourScheme",
1028
+ title: "Colour Scheme",
1029
+ type: "string",
1030
+ validation: (rule) => rule.required()
1031
+ }),
1032
+ defineField11({
1033
+ name: "destination",
1034
+ title: "Destination",
1035
+ type: "string",
1036
+ validation: (rule) => rule.required()
1037
+ }),
1038
+ defineField11({
1039
+ name: "metaTitle",
1040
+ title: "Meta Title",
1041
+ type: "string",
1042
+ validation: (rule) => rule.required()
1043
+ }),
1044
+ defineField11({
1045
+ name: "metaDescription",
1046
+ title: "Meta Description",
1047
+ type: "string",
1048
+ validation: (rule) => rule.required()
1049
+ }),
1050
+ defineField11({
1051
+ name: "titleQrCodeModal",
1052
+ title: "Title - QR Code Modal",
1053
+ type: "string",
1054
+ validation: (rule) => rule.required()
1055
+ }),
1056
+ defineField11({
1057
+ name: "subtitleQrCodeModal",
1058
+ title: "Subtitle - QR Code Modal",
1059
+ type: "string"
1060
+ }),
1061
+ defineField11({
1062
+ name: "backgroundImage",
1063
+ title: "Background Image",
1064
+ type: "image",
1065
+ options: { hotspot: true }
1066
+ })
1067
+ ],
1068
+ preview: {
1069
+ select: {
1070
+ title: "name",
1071
+ locale: "locale"
1072
+ },
1073
+ prepare(selection) {
1074
+ const { title, locale } = selection;
1075
+ return {
1076
+ title: title ?? "",
1077
+ subtitle: locale ? ` [${locale}]` : ""
1078
+ };
1079
+ }
1080
+ }
1081
+ });
1082
+
1083
+ // src/shared/sanity/schemaTypes/faqItem.ts
1084
+ import { defineField as defineField12, defineType as defineType12 } from "sanity";
1085
+ var faqItem_default = defineType12({
1086
+ name: "faqItem",
1087
+ title: "FAQ item",
1088
+ type: "document",
1089
+ fields: [
1090
+ defineField12({
1091
+ name: "locale",
1092
+ title: "Locale",
1093
+ type: "string",
1094
+ description: "Set by the document-internationalization plugin.",
1095
+ hidden: true,
1096
+ readOnly: true
1097
+ }),
1098
+ defineField12({
1099
+ name: "contentfulId",
1100
+ title: "Contentful ID",
1101
+ type: "string",
1102
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1103
+ hidden: true,
1104
+ readOnly: true
1105
+ }),
1106
+ defineField12({
1107
+ name: "category",
1108
+ title: "Category",
1109
+ type: "string"
1110
+ }),
1111
+ defineField12({
1112
+ name: "question",
1113
+ title: "Question",
1114
+ type: "string",
1115
+ validation: (rule) => rule.required()
1116
+ }),
1117
+ defineField12({
1118
+ name: "answer",
1119
+ title: "Answer",
1120
+ type: "text",
1121
+ validation: (rule) => rule.required()
1122
+ })
1123
+ ],
1124
+ preview: {
1125
+ select: {
1126
+ title: "question",
1127
+ locale: "locale"
1128
+ },
1129
+ prepare(selection) {
1130
+ const { title, locale } = selection;
1131
+ return {
1132
+ title: title ?? "",
1133
+ subtitle: locale ? ` [${locale}]` : ""
1134
+ };
1135
+ }
1136
+ }
1137
+ });
1138
+
1139
+ // src/shared/sanity/schemaTypes/freeformText.ts
1140
+ import { defineField as defineField13, defineType as defineType13 } from "sanity";
1141
+ var freeformText_default = defineType13({
1142
+ name: "freeformText",
1143
+ title: "Freeform Text",
1144
+ type: "document",
1145
+ fields: [
1146
+ defineField13({
1147
+ name: "locale",
1148
+ title: "Locale",
1149
+ type: "string",
1150
+ description: "Set by the document-internationalization plugin.",
1151
+ hidden: true,
1152
+ readOnly: true
1153
+ }),
1154
+ defineField13({
1155
+ name: "contentfulId",
1156
+ title: "Contentful ID",
1157
+ type: "string",
1158
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1159
+ hidden: true,
1160
+ readOnly: true
1161
+ }),
1162
+ defineField13({
1163
+ name: "title",
1164
+ title: "Title",
1165
+ type: "string",
1166
+ validation: (rule) => rule.required()
1167
+ }),
1168
+ defineField13({
1169
+ name: "body",
1170
+ title: "Body",
1171
+ type: "text",
1172
+ validation: (rule) => rule.required()
1173
+ }),
1174
+ defineField13({
1175
+ name: "button",
1176
+ title: "Button",
1177
+ type: "reference",
1178
+ to: [{ type: "link" }]
1179
+ }),
1180
+ defineField13({
1181
+ name: "alignment",
1182
+ title: "Alignment",
1183
+ type: "string",
1184
+ validation: (rule) => rule.required()
1185
+ }),
1186
+ defineField13({
1187
+ name: "width",
1188
+ title: "width",
1189
+ type: "string"
1190
+ }),
1191
+ defineField13({
1192
+ name: "borders",
1193
+ title: "borders",
1194
+ type: "array",
1195
+ of: [{ type: "string" }]
1196
+ }),
1197
+ defineField13({
1198
+ name: "padding",
1199
+ title: "Padding",
1200
+ type: "array",
1201
+ of: [{ type: "string" }]
1202
+ })
1203
+ ],
1204
+ preview: {
1205
+ select: {
1206
+ title: "title",
1207
+ locale: "locale"
1208
+ },
1209
+ prepare(selection) {
1210
+ const { title, locale } = selection;
1211
+ return {
1212
+ title: title ?? "",
1213
+ subtitle: locale ? ` [${locale}]` : ""
1214
+ };
1215
+ }
1216
+ }
1217
+ });
1218
+
1219
+ // src/shared/sanity/schemaTypes/gridLayout.ts
1220
+ import { defineField as defineField14, defineType as defineType14 } from "sanity";
1221
+ var gridLayout_default = defineType14({
1222
+ name: "gridLayout",
1223
+ title: "Grid Layout",
1224
+ type: "document",
1225
+ fields: [
1226
+ defineField14({
1227
+ name: "locale",
1228
+ title: "Locale",
1229
+ type: "string",
1230
+ description: "Set by the document-internationalization plugin.",
1231
+ hidden: true,
1232
+ readOnly: true
1233
+ }),
1234
+ defineField14({
1235
+ name: "contentfulId",
1236
+ title: "Contentful ID",
1237
+ type: "string",
1238
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1239
+ hidden: true,
1240
+ readOnly: true
1241
+ }),
1242
+ defineField14({
1243
+ name: "title",
1244
+ title: "Title",
1245
+ type: "string"
1246
+ }),
1247
+ defineField14({
1248
+ name: "bodyBefore",
1249
+ title: "Body Before",
1250
+ type: "text"
1251
+ }),
1252
+ defineField14({
1253
+ name: "columns",
1254
+ title: "Columns",
1255
+ type: "string",
1256
+ validation: (rule) => rule.required()
1257
+ }),
1258
+ defineField14({
1259
+ name: "refsType",
1260
+ title: "Refs Type",
1261
+ type: "string",
1262
+ validation: (rule) => rule.required()
1263
+ }),
1264
+ defineField14({
1265
+ name: "refs",
1266
+ title: "Refs",
1267
+ type: "array",
1268
+ of: [{ type: "reference", to: [{ type: "iconWithText" }, { type: "markDown" }] }]
1269
+ }),
1270
+ defineField14({
1271
+ name: "bodyAfter",
1272
+ title: "Body After",
1273
+ type: "text"
1274
+ }),
1275
+ defineField14({
1276
+ name: "textAlign",
1277
+ title: "Text Align",
1278
+ type: "string"
1279
+ }),
1280
+ defineField14({
1281
+ name: "width",
1282
+ title: "width",
1283
+ type: "string"
1284
+ }),
1285
+ defineField14({
1286
+ name: "borders",
1287
+ title: "borders",
1288
+ type: "array",
1289
+ of: [{ type: "string" }]
1290
+ }),
1291
+ defineField14({
1292
+ name: "padding",
1293
+ title: "padding",
1294
+ type: "array",
1295
+ of: [{ type: "string" }]
1296
+ })
1297
+ ],
1298
+ preview: {
1299
+ select: {
1300
+ title: "title",
1301
+ locale: "locale"
1302
+ },
1303
+ prepare(selection) {
1304
+ const { title, locale } = selection;
1305
+ return {
1306
+ title: title ?? "",
1307
+ subtitle: locale ? ` [${locale}]` : ""
1308
+ };
1309
+ }
1310
+ }
1311
+ });
1312
+
1313
+ // src/shared/sanity/schemaTypes/heroBlock.ts
1314
+ import { defineField as defineField15, defineType as defineType15 } from "sanity";
1315
+ var heroBlock_default = defineType15({
1316
+ name: "heroBlock",
1317
+ title: "Hero block",
1318
+ type: "document",
1319
+ fields: [
1320
+ defineField15({
1321
+ name: "locale",
1322
+ title: "Locale",
1323
+ type: "string",
1324
+ description: "Set by the document-internationalization plugin.",
1325
+ hidden: true,
1326
+ readOnly: true
1327
+ }),
1328
+ defineField15({
1329
+ name: "contentfulId",
1330
+ title: "Contentful ID",
1331
+ type: "string",
1332
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1333
+ hidden: true,
1334
+ readOnly: true
1335
+ }),
1336
+ defineField15({
1337
+ name: "title",
1338
+ title: "Title",
1339
+ type: "string"
1340
+ }),
1341
+ defineField15({
1342
+ name: "blurb",
1343
+ title: "Blurb",
1344
+ type: "string"
1345
+ }),
1346
+ defineField15({
1347
+ name: "footer",
1348
+ title: "Footer",
1349
+ type: "string"
1350
+ }),
1351
+ defineField15({
1352
+ name: "image",
1353
+ title: "Image",
1354
+ type: "image",
1355
+ options: { hotspot: true }
1356
+ }),
1357
+ defineField15({
1358
+ name: "portraitImage",
1359
+ title: "Portrait image",
1360
+ type: "image",
1361
+ options: { hotspot: true }
1362
+ }),
1363
+ defineField15({
1364
+ name: "tabletImage",
1365
+ title: "Tablet Image",
1366
+ type: "image",
1367
+ options: { hotspot: true }
1368
+ }),
1369
+ defineField15({
1370
+ name: "imageAlt",
1371
+ title: "Image Alt Text",
1372
+ type: "string"
1373
+ }),
1374
+ defineField15({
1375
+ name: "imageOnly",
1376
+ title: "Image Only",
1377
+ type: "boolean"
1378
+ }),
1379
+ defineField15({
1380
+ name: "ctaLinks",
1381
+ title: "CTA links",
1382
+ type: "array",
1383
+ of: [{ type: "reference", to: [{ type: "link" }] }]
1384
+ }),
1385
+ defineField15({
1386
+ name: "mobileCtaLinks",
1387
+ title: "Mobile CTA links",
1388
+ type: "array",
1389
+ of: [{ type: "reference", to: [{ type: "link" }] }]
1390
+ }),
1391
+ defineField15({
1392
+ name: "linkText",
1393
+ title: "Button text",
1394
+ type: "string"
1395
+ }),
1396
+ defineField15({
1397
+ name: "linkUrl",
1398
+ title: "Button URL",
1399
+ type: "string"
1400
+ }),
1401
+ defineField15({
1402
+ name: "skinny",
1403
+ title: "Skinny",
1404
+ type: "boolean"
1405
+ }),
1406
+ defineField15({
1407
+ name: "aboveTheFold",
1408
+ title: "aboveTheFold",
1409
+ type: "boolean"
1410
+ }),
1411
+ defineField15({
1412
+ name: "style",
1413
+ title: "Style",
1414
+ type: "string"
1415
+ }),
1416
+ defineField15({
1417
+ name: "invertedBackground",
1418
+ title: "Inverted Background",
1419
+ type: "boolean"
1420
+ }),
1421
+ defineField15({
1422
+ name: "width",
1423
+ title: "Width",
1424
+ type: "string"
1425
+ })
1426
+ ],
1427
+ preview: {
1428
+ select: {
1429
+ title: "title",
1430
+ locale: "locale"
1431
+ },
1432
+ prepare(selection) {
1433
+ const { title, locale } = selection;
1434
+ return {
1435
+ title: title ?? "",
1436
+ subtitle: locale ? ` [${locale}]` : ""
1437
+ };
1438
+ }
1439
+ }
1440
+ });
1441
+
1442
+ // src/shared/sanity/schemaTypes/iconWithText.ts
1443
+ import { defineField as defineField16, defineType as defineType16 } from "sanity";
1444
+ var iconWithText_default = defineType16({
1445
+ name: "iconWithText",
1446
+ title: "Icon With Text",
1447
+ type: "document",
1448
+ fields: [
1449
+ defineField16({
1450
+ name: "locale",
1451
+ title: "Locale",
1452
+ type: "string",
1453
+ description: "Set by the document-internationalization plugin.",
1454
+ hidden: true,
1455
+ readOnly: true
1456
+ }),
1457
+ defineField16({
1458
+ name: "contentfulId",
1459
+ title: "Contentful ID",
1460
+ type: "string",
1461
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1462
+ hidden: true,
1463
+ readOnly: true
1464
+ }),
1465
+ defineField16({
1466
+ name: "heading",
1467
+ title: "Heading",
1468
+ type: "string"
1469
+ }),
1470
+ defineField16({
1471
+ name: "hideHeading",
1472
+ title: "Hide Heading",
1473
+ type: "boolean"
1474
+ }),
1475
+ defineField16({
1476
+ name: "text",
1477
+ title: "Text",
1478
+ type: "text",
1479
+ validation: (rule) => rule.required()
1480
+ }),
1481
+ defineField16({
1482
+ name: "icon",
1483
+ title: "Icon",
1484
+ type: "image",
1485
+ options: { hotspot: true },
1486
+ validation: (rule) => rule.required()
1487
+ }),
1488
+ defineField16({
1489
+ name: "colour",
1490
+ title: "Colour",
1491
+ type: "string",
1492
+ validation: (rule) => rule.required()
1493
+ }),
1494
+ defineField16({
1495
+ name: "variant",
1496
+ title: "Variant",
1497
+ type: "string",
1498
+ validation: (rule) => rule.required()
1499
+ }),
1500
+ defineField16({
1501
+ name: "buttons",
1502
+ title: "Buttons",
1503
+ type: "array",
1504
+ of: [{ type: "reference", to: [{ type: "link" }] }]
1505
+ })
1506
+ ],
1507
+ preview: {
1508
+ select: {
1509
+ title: "heading",
1510
+ locale: "locale"
1511
+ },
1512
+ prepare(selection) {
1513
+ const { title, locale } = selection;
1514
+ return {
1515
+ title: title ?? "",
1516
+ subtitle: locale ? ` [${locale}]` : ""
1517
+ };
1518
+ }
1519
+ }
1520
+ });
1521
+
1522
+ // src/shared/sanity/schemaTypes/imageAndContent.ts
1523
+ import { defineField as defineField17, defineType as defineType17 } from "sanity";
1524
+ var imageAndContent_default = defineType17({
1525
+ name: "imageAndContent",
1526
+ title: "Image and Content",
1527
+ type: "document",
1528
+ fields: [
1529
+ defineField17({
1530
+ name: "locale",
1531
+ title: "Locale",
1532
+ type: "string",
1533
+ description: "Set by the document-internationalization plugin.",
1534
+ hidden: true,
1535
+ readOnly: true
1536
+ }),
1537
+ defineField17({
1538
+ name: "contentfulId",
1539
+ title: "Contentful ID",
1540
+ type: "string",
1541
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1542
+ hidden: true,
1543
+ readOnly: true
1544
+ }),
1545
+ defineField17({
1546
+ name: "title",
1547
+ title: "Title",
1548
+ type: "string"
1549
+ }),
1550
+ defineField17({
1551
+ name: "image",
1552
+ title: "Image",
1553
+ type: "image",
1554
+ options: { hotspot: true }
1555
+ }),
1556
+ defineField17({
1557
+ name: "mobileImage",
1558
+ title: "MobileImage",
1559
+ type: "image",
1560
+ options: { hotspot: true }
1561
+ }),
1562
+ defineField17({
1563
+ name: "body",
1564
+ title: "Body",
1565
+ type: "text",
1566
+ validation: (rule) => rule.required()
1567
+ }),
1568
+ defineField17({
1569
+ name: "imageWidth",
1570
+ title: "Image Width",
1571
+ type: "number",
1572
+ validation: (rule) => rule.integer()
1573
+ }),
1574
+ defineField17({
1575
+ name: "direction",
1576
+ title: "Direction",
1577
+ type: "string"
1578
+ }),
1579
+ defineField17({
1580
+ name: "directionMobile",
1581
+ title: "Direction Mobile",
1582
+ type: "string"
1583
+ }),
1584
+ defineField17({
1585
+ name: "borders",
1586
+ title: "Borders",
1587
+ type: "array",
1588
+ of: [{ type: "string" }]
1589
+ }),
1590
+ defineField17({
1591
+ name: "alignContent",
1592
+ title: "Align Content",
1593
+ type: "string"
1594
+ }),
1595
+ defineField17({
1596
+ name: "padding",
1597
+ title: "Padding",
1598
+ type: "array",
1599
+ of: [{ type: "string" }]
1600
+ }),
1601
+ defineField17({
1602
+ name: "cta",
1603
+ title: "CTA",
1604
+ type: "reference",
1605
+ to: [{ type: "link" }]
1606
+ })
1607
+ ],
1608
+ preview: {
1609
+ select: {
1610
+ title: "title",
1611
+ locale: "locale"
1612
+ },
1613
+ prepare(selection) {
1614
+ const { title, locale } = selection;
1615
+ return {
1616
+ title: title ?? "",
1617
+ subtitle: locale ? ` [${locale}]` : ""
1618
+ };
1619
+ }
1620
+ }
1621
+ });
1622
+
1623
+ // src/shared/sanity/schemaTypes/link.ts
1624
+ import { defineField as defineField18, defineType as defineType18 } from "sanity";
1625
+ var link_default = defineType18({
1626
+ name: "link",
1627
+ title: "Link",
1628
+ type: "document",
1629
+ fields: [
1630
+ defineField18({
1631
+ name: "locale",
1632
+ title: "Locale",
1633
+ type: "string",
1634
+ description: "Set by the document-internationalization plugin.",
1635
+ hidden: true,
1636
+ readOnly: true
1637
+ }),
1638
+ defineField18({
1639
+ name: "contentfulId",
1640
+ title: "Contentful ID",
1641
+ type: "string",
1642
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1643
+ hidden: true,
1644
+ readOnly: true
1645
+ }),
1646
+ defineField18({
1647
+ name: "text",
1648
+ title: "Text",
1649
+ type: "string"
1650
+ }),
1651
+ defineField18({
1652
+ name: "dataTrack",
1653
+ title: "Data-track",
1654
+ type: "string"
1655
+ }),
1656
+ defineField18({
1657
+ name: "url",
1658
+ title: "URL",
1659
+ type: "string"
1660
+ }),
1661
+ defineField18({
1662
+ name: "icon",
1663
+ title: "Icon",
1664
+ type: "image",
1665
+ options: { hotspot: true }
1666
+ }),
1667
+ defineField18({
1668
+ name: "links",
1669
+ title: "Links",
1670
+ type: "array",
1671
+ of: [{ type: "reference", to: [{ type: "link" }] }]
1672
+ }),
1673
+ defineField18({
1674
+ name: "description",
1675
+ title: "Description",
1676
+ type: "string"
1677
+ }),
1678
+ defineField18({
1679
+ name: "rel",
1680
+ title: "Rel",
1681
+ type: "string"
1682
+ }),
1683
+ defineField18({
1684
+ name: "buttonStyle",
1685
+ title: "Button style",
1686
+ type: "string"
1687
+ }),
1688
+ defineField18({
1689
+ name: "invertButton",
1690
+ title: "Invert button",
1691
+ type: "boolean"
1692
+ }),
1693
+ defineField18({
1694
+ name: "size",
1695
+ title: "size",
1696
+ type: "string"
1697
+ }),
1698
+ defineField18({
1699
+ name: "loggedInLinkToWebApp",
1700
+ title: "loggedInLinkToWebApp",
1701
+ type: "boolean"
1702
+ })
1703
+ ],
1704
+ preview: {
1705
+ select: {
1706
+ title: "text",
1707
+ locale: "locale"
1708
+ },
1709
+ prepare(selection) {
1710
+ const { title, locale } = selection;
1711
+ return {
1712
+ title: title ?? "",
1713
+ subtitle: locale ? ` [${locale}]` : ""
1714
+ };
1715
+ }
1716
+ }
1717
+ });
1718
+
1719
+ // src/shared/sanity/schemaTypes/longtailPage.ts
1720
+ import { defineField as defineField19, defineType as defineType19 } from "sanity";
1721
+ var longtailPage_default = defineType19({
1722
+ name: "longtailPage",
1723
+ title: "Longtail Page",
1724
+ type: "document",
1725
+ fields: [
1726
+ defineField19({
1727
+ name: "locale",
1728
+ title: "Locale",
1729
+ type: "string",
1730
+ description: "Set by the document-internationalization plugin.",
1731
+ hidden: true,
1732
+ readOnly: true
1733
+ }),
1734
+ defineField19({
1735
+ name: "contentfulId",
1736
+ title: "Contentful ID",
1737
+ type: "string",
1738
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1739
+ hidden: true,
1740
+ readOnly: true
1741
+ }),
1742
+ defineField19({
1743
+ name: "newSlug",
1744
+ title: "Slug",
1745
+ type: "string",
1746
+ validation: (rule) => rule.required()
1747
+ }),
1748
+ defineField19({
1749
+ name: "longtailPageType",
1750
+ title: "Longtail Page Type",
1751
+ type: "string",
1752
+ validation: (rule) => rule.required()
1753
+ }),
1754
+ defineField19({
1755
+ name: "sectionsAboveProfiles",
1756
+ title: "Sections Above Profiles",
1757
+ type: "array",
1758
+ of: [{ type: "reference", to: [{ type: "banner" }, { type: "columnizedText" }, { type: "heroBlock" }, { type: "refsList" }, { type: "statsBlock" }, { type: "pageSection" }] }]
1759
+ }),
1760
+ defineField19({
1761
+ name: "sections",
1762
+ title: "Sections",
1763
+ type: "array",
1764
+ of: [{ type: "reference", to: [{ type: "banner" }, { type: "columnizedText" }, { type: "heroBlock" }, { type: "refsList" }, { type: "statsBlock" }, { type: "pageSection" }, { type: "tagCloud" }] }]
1765
+ }),
1766
+ defineField19({
1767
+ name: "sectionsUnderProfiles",
1768
+ title: "Sections Under Profiles",
1769
+ type: "array",
1770
+ of: [{ type: "reference", to: [{ type: "columnizedText" }, { type: "refsList" }, { type: "statsBlock" }, { type: "pageSection" }, { type: "tagCloud" }] }]
1771
+ }),
1772
+ defineField19({
1773
+ name: "title",
1774
+ title: "Title",
1775
+ type: "string",
1776
+ validation: (rule) => rule.required()
1777
+ }),
1778
+ defineField19({
1779
+ name: "metaTitle",
1780
+ title: "Meta Title",
1781
+ type: "string",
1782
+ validation: (rule) => rule.required()
1783
+ }),
1784
+ defineField19({
1785
+ name: "metaDescription",
1786
+ title: "Meta Description",
1787
+ type: "string",
1788
+ validation: (rule) => rule.required()
1789
+ }),
1790
+ defineField19({
1791
+ name: "blurb",
1792
+ title: "Blurb",
1793
+ type: "string",
1794
+ validation: (rule) => rule.required()
1795
+ }),
1796
+ defineField19({
1797
+ name: "ctaLink",
1798
+ title: "CTA Link",
1799
+ type: "reference",
1800
+ to: [{ type: "link" }],
1801
+ validation: (rule) => rule.required()
1802
+ }),
1803
+ defineField19({
1804
+ name: "mobileCtaLink",
1805
+ title: "Mobile CTA Link",
1806
+ type: "reference",
1807
+ to: [{ type: "link" }],
1808
+ validation: (rule) => rule.required()
1809
+ }),
1810
+ defineField19({
1811
+ name: "idealPartnerPhrases",
1812
+ title: "Ideal Partner Phrases",
1813
+ type: "array",
1814
+ of: [{ type: "string" }],
1815
+ validation: (rule) => rule.required()
1816
+ }),
1817
+ defineField19({
1818
+ name: "countryCodesList",
1819
+ title: "Country Codes List",
1820
+ type: "reference",
1821
+ to: [{ type: "statsBlock" }]
1822
+ }),
1823
+ defineField19({
1824
+ name: "languageCodesList",
1825
+ title: "Language Codes List",
1826
+ type: "reference",
1827
+ to: [{ type: "statsBlock" }],
1828
+ validation: (rule) => rule.required()
1829
+ }),
1830
+ defineField19({
1831
+ name: "smartBannerAdjustLink",
1832
+ title: "Smart Banner Adjust Link",
1833
+ type: "string"
1834
+ }),
1835
+ defineField19({
1836
+ name: "deletedUsers",
1837
+ title: "Deleted Users",
1838
+ type: "reference",
1839
+ to: [{ type: "statsBlock" }],
1840
+ validation: (rule) => rule.required()
1841
+ }),
1842
+ defineField19({
1843
+ name: "summaryHeading",
1844
+ title: "SEO Summary Heading",
1845
+ type: "string"
1846
+ }),
1847
+ defineField19({
1848
+ name: "summaryBody",
1849
+ title: "SEO Summary Body",
1850
+ type: "text"
1851
+ })
1852
+ ],
1853
+ preview: {
1854
+ select: {
1855
+ title: "newSlug",
1856
+ locale: "locale"
1857
+ },
1858
+ prepare(selection) {
1859
+ const { title, locale } = selection;
1860
+ return {
1861
+ title: title ?? "",
1862
+ subtitle: locale ? ` [${locale}]` : ""
1863
+ };
1864
+ }
1865
+ }
1866
+ });
1867
+
1868
+ // src/shared/sanity/schemaTypes/markDown.ts
1869
+ import { defineField as defineField20, defineType as defineType20 } from "sanity";
1870
+ var markDown_default = defineType20({
1871
+ name: "markDown",
1872
+ title: "Markdown",
1873
+ type: "document",
1874
+ fields: [
1875
+ defineField20({
1876
+ name: "locale",
1877
+ title: "Locale",
1878
+ type: "string",
1879
+ description: "Set by the document-internationalization plugin.",
1880
+ hidden: true,
1881
+ readOnly: true
1882
+ }),
1883
+ defineField20({
1884
+ name: "contentfulId",
1885
+ title: "Contentful ID",
1886
+ type: "string",
1887
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1888
+ hidden: true,
1889
+ readOnly: true
1890
+ }),
1891
+ defineField20({
1892
+ name: "title",
1893
+ title: "Title",
1894
+ type: "string",
1895
+ validation: (rule) => rule.required()
1896
+ }),
1897
+ defineField20({
1898
+ name: "body",
1899
+ title: "Body",
1900
+ type: "text",
1901
+ validation: (rule) => rule.required()
1902
+ })
1903
+ ],
1904
+ preview: {
1905
+ select: {
1906
+ title: "title",
1907
+ locale: "locale"
1908
+ },
1909
+ prepare(selection) {
1910
+ const { title, locale } = selection;
1911
+ return {
1912
+ title: title ?? "",
1913
+ subtitle: locale ? ` [${locale}]` : ""
1914
+ };
1915
+ }
1916
+ }
1917
+ });
1918
+
1919
+ // src/shared/sanity/schemaTypes/menu.ts
1920
+ import { defineField as defineField21, defineType as defineType21 } from "sanity";
1921
+ var menu_default = defineType21({
1922
+ name: "menu",
1923
+ title: "Menu",
1924
+ type: "document",
1925
+ fields: [
1926
+ defineField21({
1927
+ name: "locale",
1928
+ title: "Locale",
1929
+ type: "string",
1930
+ description: "Set by the document-internationalization plugin.",
1931
+ hidden: true,
1932
+ readOnly: true
1933
+ }),
1934
+ defineField21({
1935
+ name: "contentfulId",
1936
+ title: "Contentful ID",
1937
+ type: "string",
1938
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1939
+ hidden: true,
1940
+ readOnly: true
1941
+ }),
1942
+ defineField21({
1943
+ name: "id",
1944
+ title: "ID",
1945
+ type: "string"
1946
+ }),
1947
+ defineField21({
1948
+ name: "title",
1949
+ title: "Title",
1950
+ type: "string"
1951
+ }),
1952
+ defineField21({
1953
+ name: "links",
1954
+ title: "Links",
1955
+ type: "array",
1956
+ of: [{ type: "reference", to: [{ type: "link" }] }],
1957
+ validation: (rule) => rule.required()
1958
+ })
1959
+ ],
1960
+ preview: {
1961
+ select: {
1962
+ title: "id",
1963
+ locale: "locale"
1964
+ },
1965
+ prepare(selection) {
1966
+ const { title, locale } = selection;
1967
+ return {
1968
+ title: title ?? "",
1969
+ subtitle: locale ? ` [${locale}]` : ""
1970
+ };
1971
+ }
1972
+ }
1973
+ });
1974
+
1975
+ // src/shared/sanity/schemaTypes/page.ts
1976
+ import { defineField as defineField22, defineType as defineType22 } from "sanity";
1977
+ var page_default = defineType22({
1978
+ name: "page",
1979
+ title: "Page",
1980
+ type: "document",
1981
+ fields: [
1982
+ defineField22({
1983
+ name: "locale",
1984
+ title: "Locale",
1985
+ type: "string",
1986
+ description: "Set by the document-internationalization plugin.",
1987
+ hidden: true,
1988
+ readOnly: true
1989
+ }),
1990
+ defineField22({
1991
+ name: "contentfulId",
1992
+ title: "Contentful ID",
1993
+ type: "string",
1994
+ description: "Original Contentful entry ID; used to resolve references during migration.",
1995
+ hidden: true,
1996
+ readOnly: true
1997
+ }),
1998
+ defineField22({
1999
+ name: "newSlug",
2000
+ title: "New Slug",
2001
+ type: "string",
2002
+ validation: (rule) => rule.required()
2003
+ }),
2004
+ defineField22({
2005
+ name: "title",
2006
+ title: "Title",
2007
+ type: "string",
2008
+ validation: (rule) => rule.required()
2009
+ }),
2010
+ defineField22({
2011
+ name: "blurb",
2012
+ title: "Blurb",
2013
+ type: "string"
2014
+ }),
2015
+ defineField22({
2016
+ name: "metaTitle",
2017
+ title: "Meta title",
2018
+ type: "string"
2019
+ }),
2020
+ defineField22({
2021
+ name: "metaDescription",
2022
+ title: "Meta description",
2023
+ type: "text"
2024
+ }),
2025
+ defineField22({
2026
+ name: "metaKeywords",
2027
+ title: "Meta Keywords",
2028
+ type: "array",
2029
+ of: [{ type: "string" }]
2030
+ }),
2031
+ defineField22({
2032
+ name: "sections",
2033
+ title: "Sections",
2034
+ type: "array",
2035
+ of: [{ type: "reference", to: [{ type: "banner" }, { type: "blogThumbs" }, { type: "profilesCarousel" }, { type: "columnizedText" }, { type: "heroBlock" }, { type: "refsList" }, { type: "statsBlock" }, { type: "menu" }, { type: "pageSection" }, { type: "imageAndContent" }, { type: "freeformText" }, { type: "gridLayout" }] }]
2036
+ }),
2037
+ defineField22({
2038
+ name: "heroImage",
2039
+ title: "Hero image",
2040
+ type: "image",
2041
+ options: { hotspot: true }
2042
+ }),
2043
+ defineField22({
2044
+ name: "portraitImage",
2045
+ title: "Portrait Hero Image",
2046
+ type: "image",
2047
+ options: { hotspot: true }
2048
+ }),
2049
+ defineField22({
2050
+ name: "imageAlt",
2051
+ title: "Image Alt Text",
2052
+ type: "string"
2053
+ }),
2054
+ defineField22({
2055
+ name: "isLight",
2056
+ title: "Light hero image",
2057
+ type: "boolean"
2058
+ }),
2059
+ defineField22({
2060
+ name: "body",
2061
+ title: "Body",
2062
+ type: "text"
2063
+ }),
2064
+ defineField22({
2065
+ name: "linkedPosts",
2066
+ title: "Linked pages",
2067
+ type: "array",
2068
+ of: [{ type: "reference", to: [{ type: "partnerPage" }, { type: "countryPage" }, { type: "learnLanguagePage" }, { type: "page" }] }]
2069
+ }),
2070
+ defineField22({
2071
+ name: "customRefs",
2072
+ title: "Custom references",
2073
+ type: "array",
2074
+ // TODO: no linkContentType constraint — restrict as needed
2075
+ of: [{ type: "reference", to: [{ type: "audioPhrase" }, { type: "banner" }, { type: "blogThumbs" }, { type: "columnizedText" }, { type: "cookieBanner" }, { type: "customJson" }, { type: "downloadPage" }, { type: "faqItem" }, { type: "freeformText" }, { type: "gridLayout" }, { type: "heroBlock" }, { type: "iconWithText" }, { type: "imageAndContent" }, { type: "link" }, { type: "longtailPage" }, { type: "markDown" }, { type: "menu" }, { type: "page" }, { type: "pageSection" }, { type: "profile" }, { type: "profilesCarousel" }, { type: "refsList" }, { type: "scheduledParty" }, { type: "sliderSection" }, { type: "statsBlock" }] }]
2076
+ }),
2077
+ defineField22({
2078
+ name: "customData",
2079
+ title: "Custom data",
2080
+ type: "text",
2081
+ description: "JSON data (migrated from Contentful Object field)."
2082
+ }),
2083
+ defineField22({
2084
+ name: "specialPageType",
2085
+ title: "Special Page Type",
2086
+ type: "string"
2087
+ }),
2088
+ defineField22({
2089
+ name: "hideFromSitemap",
2090
+ title: "Hide From Sitemap",
2091
+ type: "boolean"
2092
+ }),
2093
+ defineField22({
2094
+ name: "slug",
2095
+ title: "Slug",
2096
+ type: "string",
2097
+ validation: (rule) => rule.required()
2098
+ }),
2099
+ defineField22({
2100
+ name: "smartBannerAdjustLink",
2101
+ title: "Smart Banner Adjust Link",
2102
+ type: "string"
2103
+ }),
2104
+ defineField22({
2105
+ name: "customHeroImage",
2106
+ title: "Custom Hero Image",
2107
+ type: "reference",
2108
+ to: [{ type: "heroBlock" }]
2109
+ })
2110
+ ],
2111
+ preview: {
2112
+ select: {
2113
+ title: "title",
2114
+ locale: "locale"
2115
+ },
2116
+ prepare(selection) {
2117
+ const { title, locale } = selection;
2118
+ return {
2119
+ title: title ?? "",
2120
+ subtitle: locale ? ` [${locale}]` : ""
2121
+ };
2122
+ }
2123
+ }
2124
+ });
2125
+
2126
+ // src/shared/sanity/schemaTypes/pageSection.ts
2127
+ import { defineField as defineField23, defineType as defineType23 } from "sanity";
2128
+ var pageSection_default = defineType23({
2129
+ name: "pageSection",
2130
+ title: "Page section",
2131
+ type: "document",
2132
+ fields: [
2133
+ defineField23({
2134
+ name: "locale",
2135
+ title: "Locale",
2136
+ type: "string",
2137
+ description: "Set by the document-internationalization plugin.",
2138
+ hidden: true,
2139
+ readOnly: true
2140
+ }),
2141
+ defineField23({
2142
+ name: "contentfulId",
2143
+ title: "Contentful ID",
2144
+ type: "string",
2145
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2146
+ hidden: true,
2147
+ readOnly: true
2148
+ }),
2149
+ defineField23({
2150
+ name: "id",
2151
+ title: "ID",
2152
+ type: "string"
2153
+ }),
2154
+ defineField23({
2155
+ name: "title",
2156
+ title: "Title",
2157
+ type: "string"
2158
+ }),
2159
+ defineField23({
2160
+ name: "body",
2161
+ title: "Body",
2162
+ type: "text"
2163
+ }),
2164
+ defineField23({
2165
+ name: "image",
2166
+ title: "Image",
2167
+ type: "image",
2168
+ options: { hotspot: true }
2169
+ }),
2170
+ defineField23({
2171
+ name: "mobileImage",
2172
+ title: "Mobile Image",
2173
+ type: "image",
2174
+ options: { hotspot: true }
2175
+ }),
2176
+ defineField23({
2177
+ name: "imageAlt",
2178
+ title: "Image Alt Text",
2179
+ type: "string"
2180
+ }),
2181
+ defineField23({
2182
+ name: "imagePosition",
2183
+ title: "Image position",
2184
+ type: "string"
2185
+ }),
2186
+ defineField23({
2187
+ name: "links",
2188
+ title: "CTA Links",
2189
+ type: "array",
2190
+ of: [{ type: "reference", to: [{ type: "link" }] }]
2191
+ }),
2192
+ defineField23({
2193
+ name: "mobLinks",
2194
+ title: "CTA Mobile Links",
2195
+ type: "array",
2196
+ of: [{ type: "reference", to: [{ type: "link" }] }]
2197
+ }),
2198
+ defineField23({
2199
+ name: "linkText",
2200
+ title: "Link text",
2201
+ type: "string"
2202
+ }),
2203
+ defineField23({
2204
+ name: "linkUrl",
2205
+ title: "Link URL",
2206
+ type: "string"
2207
+ }),
2208
+ defineField23({
2209
+ name: "background",
2210
+ title: "Background",
2211
+ type: "string"
2212
+ }),
2213
+ defineField23({
2214
+ name: "subsections",
2215
+ title: "Subsections",
2216
+ type: "array",
2217
+ of: [{ type: "reference", to: [{ type: "faqItem" }, { type: "pageSection" }, { type: "sliderSection" }] }]
2218
+ }),
2219
+ defineField23({
2220
+ name: "style",
2221
+ title: "Style",
2222
+ type: "string"
2223
+ }),
2224
+ defineField23({
2225
+ name: "backgroundImage",
2226
+ title: "Background Image",
2227
+ type: "image",
2228
+ options: { hotspot: true }
2229
+ }),
2230
+ defineField23({
2231
+ name: "backgroundImageMobile",
2232
+ title: "Background Image Mobile",
2233
+ type: "image",
2234
+ options: { hotspot: true }
2235
+ }),
2236
+ defineField23({
2237
+ name: "customData",
2238
+ title: "Custom Data",
2239
+ type: "text",
2240
+ description: "JSON data (migrated from Contentful Object field)."
2241
+ })
2242
+ ],
2243
+ preview: {
2244
+ select: {
2245
+ title: "id",
2246
+ locale: "locale"
2247
+ },
2248
+ prepare(selection) {
2249
+ const { title, locale } = selection;
2250
+ return {
2251
+ title: title ?? "",
2252
+ subtitle: locale ? ` [${locale}]` : ""
2253
+ };
2254
+ }
2255
+ }
2256
+ });
2257
+
2258
+ // src/shared/sanity/schemaTypes/profile.ts
2259
+ import { defineField as defineField24, defineType as defineType24 } from "sanity";
2260
+ var profile_default = defineType24({
2261
+ name: "profile",
2262
+ title: "Profile",
2263
+ type: "document",
2264
+ fields: [
2265
+ defineField24({
2266
+ name: "locale",
2267
+ title: "Locale",
2268
+ type: "string",
2269
+ description: "Set by the document-internationalization plugin.",
2270
+ hidden: true,
2271
+ readOnly: true
2272
+ }),
2273
+ defineField24({
2274
+ name: "contentfulId",
2275
+ title: "Contentful ID",
2276
+ type: "string",
2277
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2278
+ hidden: true,
2279
+ readOnly: true
2280
+ }),
2281
+ defineField24({
2282
+ name: "id",
2283
+ title: "ID",
2284
+ type: "string",
2285
+ validation: (rule) => rule.required()
2286
+ }),
2287
+ defineField24({
2288
+ name: "type",
2289
+ title: "Type",
2290
+ type: "string",
2291
+ validation: (rule) => rule.required()
2292
+ }),
2293
+ defineField24({
2294
+ name: "name",
2295
+ title: "Name",
2296
+ type: "string",
2297
+ validation: (rule) => rule.required()
2298
+ }),
2299
+ defineField24({
2300
+ name: "nativeLanguage",
2301
+ title: "Native language",
2302
+ type: "string",
2303
+ validation: (rule) => rule.required()
2304
+ }),
2305
+ defineField24({
2306
+ name: "practicingLanguage",
2307
+ title: "Practicing language",
2308
+ type: "string",
2309
+ validation: (rule) => rule.required()
2310
+ }),
2311
+ defineField24({
2312
+ name: "picture",
2313
+ title: "Picture",
2314
+ type: "image",
2315
+ options: { hotspot: true },
2316
+ validation: (rule) => rule.required()
2317
+ }),
2318
+ defineField24({
2319
+ name: "useCase",
2320
+ title: "Tandem Use Case",
2321
+ type: "string",
2322
+ validation: (rule) => rule.required()
2323
+ }),
2324
+ defineField24({
2325
+ name: "text",
2326
+ title: "Text",
2327
+ type: "text",
2328
+ validation: (rule) => rule.required()
2329
+ })
2330
+ ],
2331
+ preview: {
2332
+ select: {
2333
+ title: "id",
2334
+ locale: "locale"
2335
+ },
2336
+ prepare(selection) {
2337
+ const { title, locale } = selection;
2338
+ return {
2339
+ title: title ?? "",
2340
+ subtitle: locale ? ` [${locale}]` : ""
2341
+ };
2342
+ }
2343
+ }
2344
+ });
2345
+
2346
+ // src/shared/sanity/schemaTypes/profilesCarousel.ts
2347
+ import { defineField as defineField25, defineType as defineType25 } from "sanity";
2348
+ var profilesCarousel_default = defineType25({
2349
+ name: "profilesCarousel",
2350
+ title: "Carousel: User Profiles",
2351
+ type: "document",
2352
+ fields: [
2353
+ defineField25({
2354
+ name: "locale",
2355
+ title: "Locale",
2356
+ type: "string",
2357
+ description: "Set by the document-internationalization plugin.",
2358
+ hidden: true,
2359
+ readOnly: true
2360
+ }),
2361
+ defineField25({
2362
+ name: "contentfulId",
2363
+ title: "Contentful ID",
2364
+ type: "string",
2365
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2366
+ hidden: true,
2367
+ readOnly: true
2368
+ }),
2369
+ defineField25({
2370
+ name: "heading",
2371
+ title: "Heading",
2372
+ type: "string",
2373
+ validation: (rule) => rule.required()
2374
+ }),
2375
+ defineField25({
2376
+ name: "practicingText",
2377
+ title: "Practicing text",
2378
+ type: "string",
2379
+ validation: (rule) => rule.required()
2380
+ }),
2381
+ defineField25({
2382
+ name: "nativeText",
2383
+ title: "Native text",
2384
+ type: "string",
2385
+ validation: (rule) => rule.required()
2386
+ }),
2387
+ defineField25({
2388
+ name: "buttonText",
2389
+ title: "Button text",
2390
+ type: "string",
2391
+ validation: (rule) => rule.required()
2392
+ }),
2393
+ defineField25({
2394
+ name: "dataTrack",
2395
+ title: "dataTrack",
2396
+ type: "string",
2397
+ validation: (rule) => rule.required()
2398
+ }),
2399
+ defineField25({
2400
+ name: "profiles",
2401
+ title: "Profiles",
2402
+ type: "array",
2403
+ of: [{ type: "reference", to: [{ type: "profile" }] }],
2404
+ validation: (rule) => rule.required()
2405
+ })
2406
+ ],
2407
+ preview: {
2408
+ select: {
2409
+ title: "heading",
2410
+ locale: "locale"
2411
+ },
2412
+ prepare(selection) {
2413
+ const { title, locale } = selection;
2414
+ return {
2415
+ title: title ?? "",
2416
+ subtitle: locale ? ` [${locale}]` : ""
2417
+ };
2418
+ }
2419
+ }
2420
+ });
2421
+
2422
+ // src/shared/sanity/schemaTypes/refsList.ts
2423
+ import { defineField as defineField26, defineType as defineType26 } from "sanity";
2424
+ var refsList_default = defineType26({
2425
+ name: "refsList",
2426
+ title: "List of refs",
2427
+ type: "document",
2428
+ fields: [
2429
+ defineField26({
2430
+ name: "locale",
2431
+ title: "Locale",
2432
+ type: "string",
2433
+ description: "Set by the document-internationalization plugin.",
2434
+ hidden: true,
2435
+ readOnly: true
2436
+ }),
2437
+ defineField26({
2438
+ name: "contentfulId",
2439
+ title: "Contentful ID",
2440
+ type: "string",
2441
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2442
+ hidden: true,
2443
+ readOnly: true
2444
+ }),
2445
+ defineField26({
2446
+ name: "id",
2447
+ title: "ID",
2448
+ type: "string",
2449
+ validation: (rule) => rule.required()
2450
+ }),
2451
+ defineField26({
2452
+ name: "title",
2453
+ title: "Title",
2454
+ type: "string"
2455
+ }),
2456
+ defineField26({
2457
+ name: "refs",
2458
+ title: "References",
2459
+ type: "array",
2460
+ // TODO: no linkContentType constraint — restrict as needed
2461
+ of: [{ type: "reference", to: [{ type: "audioPhrase" }, { type: "banner" }, { type: "blogThumbs" }, { type: "columnizedText" }, { type: "cookieBanner" }, { type: "customJson" }, { type: "downloadPage" }, { type: "faqItem" }, { type: "freeformText" }, { type: "gridLayout" }, { type: "heroBlock" }, { type: "iconWithText" }, { type: "imageAndContent" }, { type: "link" }, { type: "longtailPage" }, { type: "markDown" }, { type: "menu" }, { type: "page" }, { type: "pageSection" }, { type: "profile" }, { type: "profilesCarousel" }, { type: "refsList" }, { type: "scheduledParty" }, { type: "sliderSection" }, { type: "statsBlock" }] }]
2462
+ }),
2463
+ defineField26({
2464
+ name: "type",
2465
+ title: "type",
2466
+ type: "string",
2467
+ validation: (rule) => rule.required()
2468
+ }),
2469
+ defineField26({
2470
+ name: "background",
2471
+ title: "background",
2472
+ type: "string"
2473
+ }),
2474
+ defineField26({
2475
+ name: "customData",
2476
+ title: "Custom Data",
2477
+ type: "text",
2478
+ description: "JSON data (migrated from Contentful Object field)."
2479
+ }),
2480
+ defineField26({
2481
+ name: "width",
2482
+ title: "width",
2483
+ type: "string"
2484
+ }),
2485
+ defineField26({
2486
+ name: "alignTitle",
2487
+ title: "Align Title",
2488
+ type: "string"
2489
+ }),
2490
+ defineField26({
2491
+ name: "borders",
2492
+ title: "Borders",
2493
+ type: "array",
2494
+ of: [{ type: "string" }]
2495
+ })
2496
+ ],
2497
+ preview: {
2498
+ select: {
2499
+ title: "id",
2500
+ locale: "locale"
2501
+ },
2502
+ prepare(selection) {
2503
+ const { title, locale } = selection;
2504
+ return {
2505
+ title: title ?? "",
2506
+ subtitle: locale ? ` [${locale}]` : ""
2507
+ };
2508
+ }
2509
+ }
2510
+ });
2511
+
2512
+ // src/shared/sanity/schemaTypes/scheduledParty.ts
2513
+ import { defineField as defineField27, defineType as defineType27 } from "sanity";
2514
+ var scheduledParty_default = defineType27({
2515
+ name: "scheduledParty",
2516
+ title: "Scheduled Party",
2517
+ type: "document",
2518
+ fields: [
2519
+ defineField27({
2520
+ name: "locale",
2521
+ title: "Locale",
2522
+ type: "string",
2523
+ description: "Set by the document-internationalization plugin.",
2524
+ hidden: true,
2525
+ readOnly: true
2526
+ }),
2527
+ defineField27({
2528
+ name: "contentfulId",
2529
+ title: "Contentful ID",
2530
+ type: "string",
2531
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2532
+ hidden: true,
2533
+ readOnly: true
2534
+ }),
2535
+ defineField27({
2536
+ name: "title",
2537
+ title: "Title",
2538
+ type: "string",
2539
+ validation: (rule) => rule.required()
2540
+ }),
2541
+ defineField27({
2542
+ name: "date",
2543
+ title: "Date",
2544
+ type: "datetime",
2545
+ validation: (rule) => rule.required()
2546
+ }),
2547
+ defineField27({
2548
+ name: "languages",
2549
+ title: "Languages",
2550
+ type: "array",
2551
+ of: [{ type: "string" }],
2552
+ validation: (rule) => rule.required()
2553
+ })
2554
+ ],
2555
+ preview: {
2556
+ select: {
2557
+ title: "title",
2558
+ locale: "locale"
2559
+ },
2560
+ prepare(selection) {
2561
+ const { title, locale } = selection;
2562
+ return {
2563
+ title: title ?? "",
2564
+ subtitle: locale ? ` [${locale}]` : ""
2565
+ };
2566
+ }
2567
+ }
2568
+ });
2569
+
2570
+ // src/shared/sanity/schemaTypes/sliderSection.ts
2571
+ import { defineField as defineField28, defineType as defineType28 } from "sanity";
2572
+ var sliderSection_default = defineType28({
2573
+ name: "sliderSection",
2574
+ title: "Slider section",
2575
+ type: "document",
2576
+ fields: [
2577
+ defineField28({
2578
+ name: "locale",
2579
+ title: "Locale",
2580
+ type: "string",
2581
+ description: "Set by the document-internationalization plugin.",
2582
+ hidden: true,
2583
+ readOnly: true
2584
+ }),
2585
+ defineField28({
2586
+ name: "contentfulId",
2587
+ title: "Contentful ID",
2588
+ type: "string",
2589
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2590
+ hidden: true,
2591
+ readOnly: true
2592
+ }),
2593
+ defineField28({
2594
+ name: "id",
2595
+ title: "ID",
2596
+ type: "string"
2597
+ }),
2598
+ defineField28({
2599
+ name: "title",
2600
+ title: "Title",
2601
+ type: "string",
2602
+ validation: (rule) => rule.required()
2603
+ }),
2604
+ defineField28({
2605
+ name: "icon",
2606
+ title: "Icon",
2607
+ type: "image",
2608
+ options: { hotspot: true },
2609
+ validation: (rule) => rule.required()
2610
+ }),
2611
+ defineField28({
2612
+ name: "screen",
2613
+ title: "Screen",
2614
+ type: "image",
2615
+ options: { hotspot: true },
2616
+ validation: (rule) => rule.required()
2617
+ }),
2618
+ defineField28({
2619
+ name: "fallbackScreen",
2620
+ title: "Fallback Screen",
2621
+ type: "image",
2622
+ options: { hotspot: true },
2623
+ validation: (rule) => rule.required()
2624
+ }),
2625
+ defineField28({
2626
+ name: "still",
2627
+ title: "Still",
2628
+ type: "image",
2629
+ options: { hotspot: true },
2630
+ validation: (rule) => rule.required()
2631
+ })
2632
+ ],
2633
+ preview: {
2634
+ select: {
2635
+ title: "id",
2636
+ locale: "locale"
2637
+ },
2638
+ prepare(selection) {
2639
+ const { title, locale } = selection;
2640
+ return {
2641
+ title: title ?? "",
2642
+ subtitle: locale ? ` [${locale}]` : ""
2643
+ };
2644
+ }
2645
+ }
2646
+ });
2647
+
2648
+ // src/shared/sanity/schemaTypes/statsBlock.ts
2649
+ import { defineField as defineField29, defineType as defineType29 } from "sanity";
2650
+ var statsBlock_default = defineType29({
2651
+ name: "statsBlock",
2652
+ title: "List of texts",
2653
+ type: "document",
2654
+ fields: [
2655
+ defineField29({
2656
+ name: "locale",
2657
+ title: "Locale",
2658
+ type: "string",
2659
+ description: "Set by the document-internationalization plugin.",
2660
+ hidden: true,
2661
+ readOnly: true
2662
+ }),
2663
+ defineField29({
2664
+ name: "contentfulId",
2665
+ title: "Contentful ID",
2666
+ type: "string",
2667
+ description: "Original Contentful entry ID; used to resolve references during migration.",
2668
+ hidden: true,
2669
+ readOnly: true
2670
+ }),
2671
+ defineField29({
2672
+ name: "id",
2673
+ title: "ID",
2674
+ type: "string"
2675
+ }),
2676
+ defineField29({
2677
+ name: "type",
2678
+ title: "Type",
2679
+ type: "string"
2680
+ }),
2681
+ defineField29({
2682
+ name: "heading",
2683
+ title: "Heading",
2684
+ type: "string"
2685
+ }),
2686
+ defineField29({
2687
+ name: "subHeading",
2688
+ title: "Subheading",
2689
+ type: "string"
2690
+ }),
2691
+ defineField29({
2692
+ name: "elements",
2693
+ title: "Elements",
2694
+ type: "array",
2695
+ of: [{ type: "string" }]
2696
+ }),
2697
+ defineField29({
2698
+ name: "customData",
2699
+ title: "customData",
2700
+ type: "text",
2701
+ description: "JSON data (migrated from Contentful Object field)."
2702
+ }),
2703
+ defineField29({
2704
+ name: "cta",
2705
+ title: "CTA",
2706
+ type: "reference",
2707
+ to: [{ type: "link" }]
2708
+ })
2709
+ ],
2710
+ preview: {
2711
+ select: {
2712
+ title: "id",
2713
+ locale: "locale"
2714
+ },
2715
+ prepare(selection) {
2716
+ const { title, locale } = selection;
2717
+ return {
2718
+ title: title ?? "",
2719
+ subtitle: locale ? ` [${locale}]` : ""
2720
+ };
2721
+ }
2722
+ }
2723
+ });
2724
+
2725
+ // src/shared/sanity/schemaTypes/index.ts
2726
+ var schemaTypes_default = [
2727
+ audioPhrase_default,
2728
+ banner_default,
2729
+ blogGetAppBanner_default,
2730
+ blogLanguagesSidebar_default,
2731
+ blogPopup_default,
2732
+ blogPost_default,
2733
+ blogThumbs_default,
2734
+ columnizedText_default,
2735
+ cookieBanner_default,
2736
+ customJson_default,
2737
+ downloadPage_default,
2738
+ faqItem_default,
2739
+ freeformText_default,
2740
+ gridLayout_default,
2741
+ heroBlock_default,
2742
+ iconWithText_default,
2743
+ imageAndContent_default,
2744
+ link_default,
2745
+ longtailPage_default,
2746
+ markDown_default,
2747
+ menu_default,
2748
+ page_default,
2749
+ pageSection_default,
2750
+ profile_default,
2751
+ profilesCarousel_default,
2752
+ refsList_default,
2753
+ scheduledParty_default,
2754
+ sliderSection_default,
2755
+ statsBlock_default
2756
+ ];
2757
+ export {
2758
+ audioPhrase_default as audioPhrase,
2759
+ banner_default as banner,
2760
+ blogGetAppBanner_default as blogGetAppBanner,
2761
+ blogLanguagesSidebar_default as blogLanguagesSidebar,
2762
+ blogPopup_default as blogPopup,
2763
+ blogPost_default as blogPost,
2764
+ blogThumbs_default as blogThumbs,
2765
+ columnizedText_default as columnizedText,
2766
+ cookieBanner_default as cookieBanner,
2767
+ customJson_default as customJson,
2768
+ schemaTypes_default as default,
2769
+ downloadPage_default as downloadPage,
2770
+ faqItem_default as faqItem,
2771
+ freeformText_default as freeformText,
2772
+ gridLayout_default as gridLayout,
2773
+ heroBlock_default as heroBlock,
2774
+ iconWithText_default as iconWithText,
2775
+ imageAndContent_default as imageAndContent,
2776
+ link_default as link,
2777
+ longtailPage_default as longtailPage,
2778
+ markDown_default as markDown,
2779
+ menu_default as menu,
2780
+ page_default as page,
2781
+ pageSection_default as pageSection,
2782
+ profile_default as profile,
2783
+ profilesCarousel_default as profilesCarousel,
2784
+ refsList_default as refsList,
2785
+ scheduledParty_default as scheduledParty,
2786
+ sliderSection_default as sliderSection,
2787
+ statsBlock_default as statsBlock
2788
+ };
2789
+ //# sourceMappingURL=sanity.js.map