@orion-studios/payload-studio 0.5.0-beta.98 → 0.6.0-beta.1

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 (63) hide show
  1. package/README.md +58 -68
  2. package/dist/admin/client.d.mts +5 -0
  3. package/dist/admin/client.d.ts +5 -0
  4. package/dist/admin/client.js +4491 -736
  5. package/dist/admin/client.mjs +3367 -752
  6. package/dist/admin/index.d.mts +2 -1
  7. package/dist/admin/index.d.ts +2 -1
  8. package/dist/admin/index.js +498 -53
  9. package/dist/admin/index.mjs +2 -1
  10. package/dist/admin-app/client.d.mts +1 -0
  11. package/dist/admin-app/client.d.ts +1 -0
  12. package/dist/admin-app/client.js +285 -109
  13. package/dist/admin-app/client.mjs +59 -871
  14. package/dist/admin-app/index.d.mts +2 -1
  15. package/dist/admin-app/index.d.ts +2 -1
  16. package/dist/admin-app/index.mjs +5 -3
  17. package/dist/admin-app/styles.css +1708 -56
  18. package/dist/admin.css +158 -35
  19. package/dist/blocks/index.js +415 -200
  20. package/dist/blocks/index.mjs +2 -2
  21. package/dist/{chunk-XK3K5GRP.mjs → chunk-JQAHXYAM.mjs} +271 -67
  22. package/dist/chunk-KPIX7OSV.mjs +1051 -0
  23. package/dist/chunk-OQSEJXC4.mjs +166 -0
  24. package/dist/{chunk-XHWQJUX5.mjs → chunk-OTHERBGX.mjs} +3 -3
  25. package/dist/chunk-PF3EBZXF.mjs +326 -0
  26. package/dist/chunk-Q2HGC67S.mjs +904 -0
  27. package/dist/{chunk-XVH5SCBD.mjs → chunk-RKTIFEUY.mjs} +4 -19
  28. package/dist/chunk-W2UOCJDX.mjs +32 -0
  29. package/dist/{chunk-C4J35SPJ.mjs → chunk-XKUTZ7IU.mjs} +257 -452
  30. package/dist/{index-ZbOx4OCF.d.ts → index-52HdVLQq.d.ts} +12 -22
  31. package/dist/index-BMitiKK8.d.ts +435 -0
  32. package/dist/index-Crx_MtPw.d.ts +223 -0
  33. package/dist/index-Cv-6qnrw.d.mts +223 -0
  34. package/dist/{index-ZbOx4OCF.d.mts → index-DEQC3Dwj.d.mts} +12 -22
  35. package/dist/{index-BIwu3qIH.d.mts → index-DWmudwDm.d.mts} +2 -1
  36. package/dist/{index-BIwu3qIH.d.ts → index-DWmudwDm.d.ts} +2 -1
  37. package/dist/index-D_b24Gef.d.mts +435 -0
  38. package/dist/index.d.mts +5 -4
  39. package/dist/index.d.ts +5 -4
  40. package/dist/index.js +1968 -1198
  41. package/dist/index.mjs +10 -8
  42. package/dist/nextjs/index.js +5 -684
  43. package/dist/nextjs/index.mjs +2 -3
  44. package/dist/sitePreviewTypes-BkHCWxNW.d.mts +58 -0
  45. package/dist/sitePreviewTypes-BkHCWxNW.d.ts +58 -0
  46. package/dist/studio/index.d.mts +1 -1
  47. package/dist/studio/index.d.ts +1 -1
  48. package/dist/studio-pages/builder.css +125 -83
  49. package/dist/studio-pages/client.d.mts +58 -1
  50. package/dist/studio-pages/client.d.ts +58 -1
  51. package/dist/studio-pages/client.js +450 -241
  52. package/dist/studio-pages/client.mjs +455 -247
  53. package/dist/studio-pages/index.d.mts +3 -2
  54. package/dist/studio-pages/index.d.ts +3 -2
  55. package/dist/studio-pages/index.js +418 -183
  56. package/dist/studio-pages/index.mjs +15 -6
  57. package/package.json +19 -5
  58. package/dist/chunk-2FO2ROW4.mjs +0 -468
  59. package/dist/chunk-SIL2J5MF.mjs +0 -155
  60. package/dist/index-BFXZue5i.d.ts +0 -178
  61. package/dist/index-CoYRBbf6.d.mts +0 -178
  62. package/dist/index-R7hA134j.d.mts +0 -140
  63. package/dist/index-vjrjy0P4.d.ts +0 -140
@@ -54,149 +54,160 @@ var sectionStyleDefaults = {
54
54
  contentGradientAngle: "135",
55
55
  contentGradientFrom: "#ffffff",
56
56
  contentGradientPreset: "none",
57
- contentGradientTo: "#f4f6f2",
57
+ contentGradientTo: "#f4f6f8",
58
58
  contentWidth: "inherit",
59
59
  sectionPaddingX: "inherit",
60
60
  sectionBackgroundColor: "#ffffff",
61
61
  sectionBackgroundMode: "none",
62
62
  sectionGradientAngle: "135",
63
- sectionGradientFrom: "#124a37",
64
- sectionGradientPreset: "forest",
65
- sectionGradientTo: "#1f684f",
63
+ sectionGradientFrom: "#334b63",
64
+ sectionGradientPreset: "slate",
65
+ sectionGradientTo: "#496582",
66
66
  sectionPaddingY: "md",
67
67
  sectionWidth: "content"
68
68
  };
69
- var sectionStyleFields = () => [
70
- {
71
- name: "sectionWidth",
72
- type: "select",
73
- defaultValue: sectionStyleDefaults.sectionWidth,
74
- options: [
75
- { label: "Content", value: "content" },
76
- { label: "Wide", value: "wide" },
77
- { label: "Full", value: "full" }
78
- ]
79
- },
80
- {
81
- name: "contentWidth",
82
- type: "select",
83
- defaultValue: sectionStyleDefaults.contentWidth,
84
- options: [
85
- { label: "Inherit", value: "inherit" },
86
- { label: "Narrow", value: "narrow" },
87
- { label: "Content", value: "content" },
88
- { label: "Wide", value: "wide" },
89
- { label: "Full", value: "full" }
90
- ]
91
- },
92
- {
93
- name: "sectionPaddingY",
94
- type: "select",
95
- defaultValue: sectionStyleDefaults.sectionPaddingY,
96
- options: [
97
- { label: "None", value: "none" },
98
- { label: "Small", value: "sm" },
99
- { label: "Medium", value: "md" },
100
- { label: "Large", value: "lg" }
101
- ]
102
- },
103
- {
104
- name: "sectionPaddingX",
105
- type: "select",
106
- defaultValue: sectionStyleDefaults.sectionPaddingX,
107
- options: [
108
- { label: "Inherit", value: "inherit" },
109
- { label: "None", value: "none" },
110
- { label: "Small", value: "sm" },
111
- { label: "Medium", value: "md" },
112
- { label: "Large", value: "lg" }
113
- ]
114
- },
115
- {
116
- name: "sectionBackgroundMode",
117
- type: "select",
118
- defaultValue: sectionStyleDefaults.sectionBackgroundMode,
119
- options: [
120
- { label: "None", value: "none" },
121
- { label: "Color", value: "color" },
122
- { label: "Gradient", value: "gradient" }
123
- ]
124
- },
125
- {
126
- name: "sectionBackgroundColor",
127
- type: "text",
128
- defaultValue: sectionStyleDefaults.sectionBackgroundColor
129
- },
130
- {
131
- name: "sectionGradientPreset",
132
- type: "select",
133
- defaultValue: sectionStyleDefaults.sectionGradientPreset,
134
- options: [
135
- { label: "None", value: "none" },
136
- { label: "Forest", value: "forest" },
137
- { label: "Moss", value: "moss" },
138
- { label: "Cream", value: "cream" },
139
- { label: "Slate", value: "slate" }
140
- ]
141
- },
142
- {
143
- name: "sectionGradientFrom",
144
- type: "text",
145
- defaultValue: sectionStyleDefaults.sectionGradientFrom
146
- },
147
- {
148
- name: "sectionGradientTo",
149
- type: "text",
150
- defaultValue: sectionStyleDefaults.sectionGradientTo
151
- },
152
- {
153
- name: "sectionGradientAngle",
154
- type: "text",
155
- defaultValue: sectionStyleDefaults.sectionGradientAngle
156
- },
157
- {
158
- name: "contentBackgroundMode",
159
- type: "select",
160
- defaultValue: sectionStyleDefaults.contentBackgroundMode,
161
- options: [
162
- { label: "None", value: "none" },
163
- { label: "Color", value: "color" },
164
- { label: "Gradient", value: "gradient" }
165
- ]
166
- },
167
- {
168
- name: "contentBackgroundColor",
169
- type: "text",
170
- defaultValue: sectionStyleDefaults.contentBackgroundColor
171
- },
172
- {
173
- name: "contentGradientPreset",
174
- type: "select",
175
- defaultValue: sectionStyleDefaults.contentGradientPreset,
176
- options: [
177
- { label: "None", value: "none" },
178
- { label: "Cloud", value: "cloud" },
179
- { label: "Sand", value: "sand" },
180
- { label: "Mint", value: "mint" },
181
- { label: "Night", value: "night" }
182
- ]
183
- },
184
- {
185
- name: "contentGradientFrom",
186
- type: "text",
187
- defaultValue: sectionStyleDefaults.contentGradientFrom
188
- },
189
- {
190
- name: "contentGradientTo",
191
- type: "text",
192
- defaultValue: sectionStyleDefaults.contentGradientTo
193
- },
194
- {
195
- name: "contentGradientAngle",
196
- type: "text",
197
- defaultValue: sectionStyleDefaults.contentGradientAngle
69
+ var hideFromCMS = (field) => ({
70
+ ...field,
71
+ admin: {
72
+ ...field.admin || {},
73
+ hidden: true
198
74
  }
199
- ];
75
+ });
76
+ var sectionStyleFields = () => {
77
+ const fields = [
78
+ {
79
+ name: "sectionWidth",
80
+ type: "select",
81
+ defaultValue: sectionStyleDefaults.sectionWidth,
82
+ options: [
83
+ { label: "Content", value: "content" },
84
+ { label: "Wide", value: "wide" },
85
+ { label: "Full", value: "full" }
86
+ ]
87
+ },
88
+ {
89
+ name: "contentWidth",
90
+ type: "select",
91
+ defaultValue: sectionStyleDefaults.contentWidth,
92
+ options: [
93
+ { label: "Inherit", value: "inherit" },
94
+ { label: "Narrow", value: "narrow" },
95
+ { label: "Content", value: "content" },
96
+ { label: "Wide", value: "wide" },
97
+ { label: "Full", value: "full" }
98
+ ]
99
+ },
100
+ {
101
+ name: "sectionPaddingY",
102
+ type: "select",
103
+ defaultValue: sectionStyleDefaults.sectionPaddingY,
104
+ options: [
105
+ { label: "None", value: "none" },
106
+ { label: "Small", value: "sm" },
107
+ { label: "Medium", value: "md" },
108
+ { label: "Large", value: "lg" }
109
+ ]
110
+ },
111
+ {
112
+ name: "sectionPaddingX",
113
+ type: "select",
114
+ defaultValue: sectionStyleDefaults.sectionPaddingX,
115
+ options: [
116
+ { label: "Inherit", value: "inherit" },
117
+ { label: "None", value: "none" },
118
+ { label: "Small", value: "sm" },
119
+ { label: "Medium", value: "md" },
120
+ { label: "Large", value: "lg" }
121
+ ]
122
+ },
123
+ {
124
+ name: "sectionBackgroundMode",
125
+ type: "select",
126
+ defaultValue: sectionStyleDefaults.sectionBackgroundMode,
127
+ options: [
128
+ { label: "None", value: "none" },
129
+ { label: "Color", value: "color" },
130
+ { label: "Gradient", value: "gradient" }
131
+ ]
132
+ },
133
+ {
134
+ name: "sectionBackgroundColor",
135
+ type: "text",
136
+ defaultValue: sectionStyleDefaults.sectionBackgroundColor
137
+ },
138
+ {
139
+ name: "sectionGradientPreset",
140
+ type: "select",
141
+ defaultValue: sectionStyleDefaults.sectionGradientPreset,
142
+ options: [
143
+ { label: "None", value: "none" },
144
+ { label: "Brand", value: "brand" },
145
+ { label: "Forest", value: "forest" },
146
+ { label: "Moss", value: "moss" },
147
+ { label: "Cream", value: "cream" },
148
+ { label: "Slate", value: "slate" }
149
+ ]
150
+ },
151
+ {
152
+ name: "sectionGradientFrom",
153
+ type: "text",
154
+ defaultValue: sectionStyleDefaults.sectionGradientFrom
155
+ },
156
+ {
157
+ name: "sectionGradientTo",
158
+ type: "text",
159
+ defaultValue: sectionStyleDefaults.sectionGradientTo
160
+ },
161
+ {
162
+ name: "sectionGradientAngle",
163
+ type: "text",
164
+ defaultValue: sectionStyleDefaults.sectionGradientAngle
165
+ },
166
+ {
167
+ name: "contentBackgroundMode",
168
+ type: "select",
169
+ defaultValue: sectionStyleDefaults.contentBackgroundMode,
170
+ options: [
171
+ { label: "None", value: "none" },
172
+ { label: "Color", value: "color" },
173
+ { label: "Gradient", value: "gradient" }
174
+ ]
175
+ },
176
+ {
177
+ name: "contentBackgroundColor",
178
+ type: "text",
179
+ defaultValue: sectionStyleDefaults.contentBackgroundColor
180
+ },
181
+ {
182
+ name: "contentGradientPreset",
183
+ type: "select",
184
+ defaultValue: sectionStyleDefaults.contentGradientPreset,
185
+ options: [
186
+ { label: "None", value: "none" },
187
+ { label: "Cloud", value: "cloud" },
188
+ { label: "Sand", value: "sand" },
189
+ { label: "Mint", value: "mint" },
190
+ { label: "Night", value: "night" }
191
+ ]
192
+ },
193
+ {
194
+ name: "contentGradientFrom",
195
+ type: "text",
196
+ defaultValue: sectionStyleDefaults.contentGradientFrom
197
+ },
198
+ {
199
+ name: "contentGradientTo",
200
+ type: "text",
201
+ defaultValue: sectionStyleDefaults.contentGradientTo
202
+ },
203
+ {
204
+ name: "contentGradientAngle",
205
+ type: "text",
206
+ defaultValue: sectionStyleDefaults.contentGradientAngle
207
+ }
208
+ ];
209
+ return fields.map(hideFromCMS);
210
+ };
200
211
 
201
212
  // src/blocks/blocks/BeforeAfter.ts
202
213
  var BeforeAfterBlock = {
@@ -250,12 +261,26 @@ var BeforeAfterBlock = {
250
261
  relationTo: "media",
251
262
  required: false
252
263
  },
264
+ {
265
+ name: "beforeImageURL",
266
+ type: "text",
267
+ admin: {
268
+ description: "Optional direct URL for the before image when using an external asset."
269
+ }
270
+ },
253
271
  {
254
272
  name: "afterMedia",
255
273
  type: "upload",
256
274
  relationTo: "media",
257
275
  required: false
258
276
  },
277
+ {
278
+ name: "afterImageURL",
279
+ type: "text",
280
+ admin: {
281
+ description: "Optional direct URL for the after image when using an external asset."
282
+ }
283
+ },
259
284
  {
260
285
  name: "imageHeight",
261
286
  type: "number",
@@ -411,6 +436,10 @@ var CtaBlock = {
411
436
  name: "description",
412
437
  type: "textarea"
413
438
  },
439
+ {
440
+ name: "eyebrow",
441
+ type: "text"
442
+ },
414
443
  {
415
444
  name: "buttonLabel",
416
445
  type: "text"
@@ -441,9 +470,33 @@ var CtaBlock = {
441
470
  name: "backgroundColor",
442
471
  type: "text",
443
472
  admin: {
444
- description: "Optional background color override for the CTA strip (example: #124a37)."
473
+ description: "Optional background color override for the CTA strip (example: #334b63)."
474
+ }
475
+ },
476
+ {
477
+ name: "media",
478
+ type: "upload",
479
+ relationTo: "media",
480
+ required: false
481
+ },
482
+ {
483
+ name: "imageURL",
484
+ type: "text",
485
+ admin: {
486
+ description: "Optional direct image URL when this CTA should use an external image."
445
487
  }
446
488
  },
489
+ {
490
+ name: "bullets",
491
+ type: "array",
492
+ fields: [
493
+ {
494
+ name: "label",
495
+ type: "text",
496
+ required: true
497
+ }
498
+ ]
499
+ },
447
500
  {
448
501
  name: "settings",
449
502
  type: "json",
@@ -471,6 +524,10 @@ var FaqBlock = {
471
524
  plural: "FAQs"
472
525
  },
473
526
  fields: [
527
+ {
528
+ name: "eyebrow",
529
+ type: "text"
530
+ },
474
531
  {
475
532
  name: "title",
476
533
  type: "text",
@@ -528,10 +585,17 @@ var FeatureGridBlock = {
528
585
  plural: "Feature Grids"
529
586
  },
530
587
  fields: [
588
+ {
589
+ name: "eyebrow",
590
+ type: "text"
591
+ },
531
592
  {
532
593
  name: "title",
533
- type: "text",
534
- required: true
594
+ type: "text"
595
+ },
596
+ {
597
+ name: "subtitle",
598
+ type: "textarea"
535
599
  },
536
600
  {
537
601
  name: "itemsPerRow",
@@ -559,6 +623,16 @@ var FeatureGridBlock = {
559
623
  name: "description",
560
624
  type: "textarea"
561
625
  },
626
+ {
627
+ name: "tone",
628
+ type: "select",
629
+ defaultValue: "warm",
630
+ options: [
631
+ { label: "Warm", value: "warm" },
632
+ { label: "Cool", value: "cool" },
633
+ { label: "Neutral", value: "neutral" }
634
+ ]
635
+ },
562
636
  {
563
637
  name: "iconType",
564
638
  type: "select",
@@ -604,6 +678,39 @@ var FeatureGridBlock = {
604
678
  relationTo: "media",
605
679
  required: false
606
680
  },
681
+ {
682
+ name: "imageURL",
683
+ type: "text",
684
+ admin: {
685
+ description: "Optional direct image URL when this item should use an external image."
686
+ }
687
+ },
688
+ {
689
+ name: "embedURL",
690
+ type: "text",
691
+ admin: {
692
+ description: "Optional iframe/embed URL for items like maps or other embedded content."
693
+ }
694
+ },
695
+ {
696
+ name: "buttonLabel",
697
+ type: "text"
698
+ },
699
+ {
700
+ name: "buttonHref",
701
+ type: "text"
702
+ },
703
+ {
704
+ name: "bullets",
705
+ type: "array",
706
+ fields: [
707
+ {
708
+ name: "label",
709
+ type: "text",
710
+ required: true
711
+ }
712
+ ]
713
+ },
607
714
  {
608
715
  name: "imageHeight",
609
716
  type: "number",
@@ -686,6 +793,22 @@ var FeatureGridBlock = {
686
793
  {
687
794
  label: "Highlight",
688
795
  value: "highlight"
796
+ },
797
+ {
798
+ label: "Split List",
799
+ value: "splitList"
800
+ },
801
+ {
802
+ label: "Panels",
803
+ value: "panels"
804
+ },
805
+ {
806
+ label: "Catalog",
807
+ value: "catalog"
808
+ },
809
+ {
810
+ label: "Contact Split",
811
+ value: "contact"
689
812
  }
690
813
  ]
691
814
  },
@@ -693,7 +816,7 @@ var FeatureGridBlock = {
693
816
  name: "backgroundColor",
694
817
  type: "text",
695
818
  admin: {
696
- description: "Optional background color override when using the Highlight variant (example: #1f684f)."
819
+ description: "Optional background color override when using the Highlight variant (example: #334b63)."
697
820
  }
698
821
  },
699
822
  {
@@ -723,6 +846,10 @@ var FormEmbedBlock = {
723
846
  plural: "Form Embeds"
724
847
  },
725
848
  fields: [
849
+ {
850
+ name: "eyebrow",
851
+ type: "text"
852
+ },
726
853
  {
727
854
  name: "title",
728
855
  type: "text"
@@ -731,6 +858,10 @@ var FormEmbedBlock = {
731
858
  name: "description",
732
859
  type: "textarea"
733
860
  },
861
+ {
862
+ name: "submitLabel",
863
+ type: "text"
864
+ },
734
865
  {
735
866
  name: "formType",
736
867
  type: "select",
@@ -812,6 +943,13 @@ var HeroBlock = {
812
943
  type: "upload",
813
944
  relationTo: "media"
814
945
  },
946
+ {
947
+ name: "backgroundImageURL",
948
+ type: "text",
949
+ admin: {
950
+ description: "Optional direct image URL when the hero should use an external image source."
951
+ }
952
+ },
815
953
  {
816
954
  name: "backgroundImageFit",
817
955
  type: "select",
@@ -857,7 +995,7 @@ var HeroBlock = {
857
995
  name: "backgroundColor",
858
996
  type: "text",
859
997
  admin: {
860
- description: "Optional background color override (example: #124a37)."
998
+ description: "Optional background color override (example: #334b63)."
861
999
  }
862
1000
  },
863
1001
  {
@@ -895,14 +1033,14 @@ var HeroBlock = {
895
1033
  name: "backgroundOverlayGradientFrom",
896
1034
  type: "text",
897
1035
  admin: {
898
- description: "Gradient overlay start color (example: #0d4a37). Used when Overlay Mode is Gradient."
1036
+ description: "Gradient overlay start color (example: #334b63). Used when Overlay Mode is Gradient."
899
1037
  }
900
1038
  },
901
1039
  {
902
1040
  name: "backgroundOverlayGradientTo",
903
1041
  type: "text",
904
1042
  admin: {
905
- description: "Gradient overlay end color (example: #1f684f). Used when Overlay Mode is Gradient."
1043
+ description: "Gradient overlay end color (example: #496582). Used when Overlay Mode is Gradient."
906
1044
  }
907
1045
  },
908
1046
  {
@@ -1057,6 +1195,13 @@ var LogoWallBlock = {
1057
1195
  relationTo: "media",
1058
1196
  required: false
1059
1197
  },
1198
+ {
1199
+ name: "imageURL",
1200
+ type: "text",
1201
+ admin: {
1202
+ description: "Optional direct image URL for this logo when using an external asset."
1203
+ }
1204
+ },
1060
1205
  {
1061
1206
  name: "imageHeight",
1062
1207
  type: "number",
@@ -1162,7 +1307,14 @@ var MediaBlock = {
1162
1307
  name: "image",
1163
1308
  type: "upload",
1164
1309
  relationTo: "media",
1165
- required: true
1310
+ required: false
1311
+ },
1312
+ {
1313
+ name: "imageURL",
1314
+ type: "text",
1315
+ admin: {
1316
+ description: "Optional direct image URL when this section should use an external image."
1317
+ }
1166
1318
  },
1167
1319
  {
1168
1320
  name: "caption",
@@ -1240,6 +1392,21 @@ var RichTextBlock = {
1240
1392
  plural: "Rich Text Sections"
1241
1393
  },
1242
1394
  fields: [
1395
+ {
1396
+ name: "variant",
1397
+ type: "select",
1398
+ defaultValue: "default",
1399
+ options: [
1400
+ {
1401
+ label: "Default",
1402
+ value: "default"
1403
+ },
1404
+ {
1405
+ label: "Quote Banner",
1406
+ value: "quoteBanner"
1407
+ }
1408
+ ]
1409
+ },
1243
1410
  {
1244
1411
  name: "title",
1245
1412
  type: "text"
@@ -1249,6 +1416,54 @@ var RichTextBlock = {
1249
1416
  type: "richText",
1250
1417
  required: true
1251
1418
  },
1419
+ {
1420
+ name: "statsItems",
1421
+ type: "array",
1422
+ fields: [
1423
+ {
1424
+ name: "value",
1425
+ type: "text",
1426
+ required: true
1427
+ },
1428
+ {
1429
+ name: "label",
1430
+ type: "text",
1431
+ required: true
1432
+ }
1433
+ ]
1434
+ },
1435
+ {
1436
+ name: "cards",
1437
+ type: "array",
1438
+ fields: [
1439
+ {
1440
+ name: "eyebrow",
1441
+ type: "text"
1442
+ },
1443
+ {
1444
+ name: "title",
1445
+ type: "text",
1446
+ required: true
1447
+ },
1448
+ {
1449
+ name: "description",
1450
+ type: "textarea"
1451
+ },
1452
+ {
1453
+ name: "media",
1454
+ type: "upload",
1455
+ relationTo: "media",
1456
+ required: false
1457
+ },
1458
+ {
1459
+ name: "imageURL",
1460
+ type: "text",
1461
+ admin: {
1462
+ description: "Optional direct image URL when this card should use an external image."
1463
+ }
1464
+ }
1465
+ ]
1466
+ },
1252
1467
  {
1253
1468
  name: "width",
1254
1469
  type: "select",
@@ -1503,18 +1718,18 @@ var sectionPresets = [
1503
1718
  blocks: [
1504
1719
  {
1505
1720
  blockType: "hero",
1506
- kicker: "Licensed + Insured",
1507
- headline: "Expert Tree Care for Central Texas",
1508
- subheadline: "Reliable trimming, safe removals, and stump grinding for residential and commercial properties.",
1509
- primaryLabel: "Get Your Free Quote",
1721
+ kicker: "Trusted Team",
1722
+ headline: "A clear headline for your primary offer",
1723
+ subheadline: "Explain what you offer, who it is for, and why it matters in one strong supporting sentence.",
1724
+ primaryLabel: "Get Started",
1510
1725
  primaryHref: "/contact",
1511
- secondaryLabel: "See Our Work",
1512
- secondaryHref: "/portfolio"
1726
+ secondaryLabel: "Learn More",
1727
+ secondaryHref: "/about"
1513
1728
  },
1514
1729
  {
1515
1730
  blockType: "cta",
1516
- headline: "Need a quote this week?",
1517
- description: "Call (512) 555-0149 or request an on-site estimate online.",
1731
+ headline: "Ready for the next step?",
1732
+ description: "Use a short call to action with a direct path to contact or purchase.",
1518
1733
  buttonLabel: "Contact Us",
1519
1734
  buttonHref: "/contact",
1520
1735
  style: "light"
@@ -1532,19 +1747,19 @@ var sectionPresets = [
1532
1747
  variant: "cards",
1533
1748
  items: [
1534
1749
  {
1535
- title: "Tree Trimming & Pruning",
1536
- description: "Canopy balancing, deadwood removal, and seasonal pruning.",
1537
- icon: "Trim"
1750
+ title: "Service One",
1751
+ description: "Briefly describe this offer or outcome.",
1752
+ icon: "01"
1538
1753
  },
1539
1754
  {
1540
- title: "Safe Tree Removal",
1541
- description: "Controlled removal for hazardous or unstable trees.",
1542
- icon: "Remove"
1755
+ title: "Service Two",
1756
+ description: "Briefly describe this offer or outcome.",
1757
+ icon: "02"
1543
1758
  },
1544
1759
  {
1545
- title: "Stump Grinding",
1546
- description: "Below-grade stump grinding and cleanup.",
1547
- icon: "Stump"
1760
+ title: "Service Three",
1761
+ description: "Briefly describe this offer or outcome.",
1762
+ icon: "03"
1548
1763
  }
1549
1764
  ]
1550
1765
  }
@@ -1560,15 +1775,15 @@ var sectionPresets = [
1560
1775
  title: "What Homeowners Say",
1561
1776
  items: [
1562
1777
  {
1563
- quote: "Great communication, fair pricing, and the cleanup was perfect. We will use them again.",
1564
- name: "Katie M.",
1565
- location: "Austin, TX",
1778
+ quote: "The experience was smooth, thoughtful, and exactly what we hoped for.",
1779
+ name: "Customer Name",
1780
+ location: "City, ST",
1566
1781
  rating: 5
1567
1782
  },
1568
1783
  {
1569
- quote: "They removed a dangerous limb over our driveway quickly and safely.",
1570
- name: "James R.",
1571
- location: "Round Rock, TX",
1784
+ quote: "Fast communication, strong service, and a result we would happily recommend.",
1785
+ name: "Customer Name",
1786
+ location: "City, ST",
1572
1787
  rating: 5
1573
1788
  }
1574
1789
  ]
@@ -1578,12 +1793,12 @@ var sectionPresets = [
1578
1793
  title: "Common Questions",
1579
1794
  items: [
1580
1795
  {
1581
- question: "How quickly can you schedule service?",
1582
- answer: "Most estimate requests are scheduled within 24 hours."
1796
+ question: "How quickly do you respond?",
1797
+ answer: "Replace this with a concise answer to a common customer question."
1583
1798
  },
1584
1799
  {
1585
- question: "Do you provide cleanup?",
1586
- answer: "Yes. Debris haul-off and cleanup are included in quoted scopes."
1800
+ question: "What is included?",
1801
+ answer: "Replace this with another concise answer that reduces buying friction."
1587
1802
  }
1588
1803
  ]
1589
1804
  }
@@ -1597,13 +1812,13 @@ var sectionPresets = [
1597
1812
  {
1598
1813
  blockType: "formEmbed",
1599
1814
  title: "Request a Quote",
1600
- description: "Share your project details and we will follow up quickly.",
1815
+ description: "Share a few details and your team can follow up with next steps.",
1601
1816
  formType: "quote"
1602
1817
  },
1603
1818
  {
1604
1819
  blockType: "bookingEmbed",
1605
1820
  title: "Prefer to book a consultation?",
1606
- description: "Choose a time window and we will confirm availability.",
1821
+ description: "Offer an alternative scheduling path for visitors who prefer to book directly.",
1607
1822
  buttonLabel: "Book Consultation",
1608
1823
  buttonHref: "/contact"
1609
1824
  }
@@ -1615,14 +1830,14 @@ var templateStarterPresets = {
1615
1830
  {
1616
1831
  blockType: "hero",
1617
1832
  headline: "Contact Us",
1618
- subheadline: "Request a quote, ask a question, or book a consultation window.",
1619
- primaryLabel: "Call (512) 555-0149",
1620
- primaryHref: "tel:+15125550149"
1833
+ subheadline: "Tell visitors exactly how to reach you and what to expect next.",
1834
+ primaryLabel: "Email Us",
1835
+ primaryHref: "mailto:hello@example.com"
1621
1836
  },
1622
1837
  {
1623
1838
  blockType: "formEmbed",
1624
1839
  title: "Request a Quote",
1625
- description: "Tell us about your project and we will follow up quickly.",
1840
+ description: "Use this space for a form embed or lead capture flow.",
1626
1841
  formType: "quote"
1627
1842
  },
1628
1843
  {
@@ -1630,8 +1845,8 @@ var templateStarterPresets = {
1630
1845
  title: "Common Questions",
1631
1846
  items: [
1632
1847
  {
1633
- question: "How quickly can you provide an estimate?",
1634
- answer: "Most estimates are scheduled within 24 hours."
1848
+ question: "How quickly will you respond?",
1849
+ answer: "Replace with the answer that best fits your operating process."
1635
1850
  }
1636
1851
  ]
1637
1852
  }
@@ -1640,27 +1855,27 @@ var templateStarterPresets = {
1640
1855
  {
1641
1856
  blockType: "hero",
1642
1857
  kicker: "Locally Owned",
1643
- headline: "Expert Tree Care for Central Texas",
1644
- subheadline: "Premium trimming, removal, and cleanup with safety-first execution.",
1645
- primaryLabel: "Get Your Free Quote",
1858
+ headline: "Lead with your strongest offer",
1859
+ subheadline: "Support the headline with a concise sentence that clarifies benefits and audience.",
1860
+ primaryLabel: "Get Started",
1646
1861
  primaryHref: "/contact",
1647
1862
  secondaryLabel: "View Services",
1648
1863
  secondaryHref: "/services"
1649
1864
  },
1650
1865
  {
1651
1866
  blockType: "featureGrid",
1652
- title: "Why Homeowners Choose Us",
1867
+ title: "Why clients choose us",
1653
1868
  variant: "highlight",
1654
1869
  items: [
1655
- { title: "Transparent Pricing", description: "Clear written estimates.", icon: "01" },
1656
- { title: "Safety-First Crew", description: "Property protection and planning.", icon: "02" },
1657
- { title: "Fast Scheduling", description: "Quick estimates and service windows.", icon: "03" }
1870
+ { title: "Clear Value", description: "Explain your first differentiator.", icon: "01" },
1871
+ { title: "Reliable Process", description: "Explain your second differentiator.", icon: "02" },
1872
+ { title: "Strong Results", description: "Explain your third differentiator.", icon: "03" }
1658
1873
  ]
1659
1874
  },
1660
1875
  {
1661
1876
  blockType: "cta",
1662
- headline: "Need a quote this week?",
1663
- description: "Call (512) 555-0149 or request an estimate online.",
1877
+ headline: "Ready to take the next step?",
1878
+ description: "Add a direct conversion prompt with a clear primary action.",
1664
1879
  buttonLabel: "Contact Us",
1665
1880
  buttonHref: "/contact",
1666
1881
  style: "light"
@@ -1669,9 +1884,9 @@ var templateStarterPresets = {
1669
1884
  services: [
1670
1885
  {
1671
1886
  blockType: "hero",
1672
- headline: "Tree Services Built for Safety and Curb Appeal",
1673
- subheadline: "Core offerings first, with clear scopes and scheduling.",
1674
- primaryLabel: "Schedule Estimate",
1887
+ headline: "Services Built Around Your Process",
1888
+ subheadline: "Summarize the core offerings with a short clarity-first introduction.",
1889
+ primaryLabel: "Request Info",
1675
1890
  primaryHref: "/contact"
1676
1891
  },
1677
1892
  {
@@ -1680,19 +1895,19 @@ var templateStarterPresets = {
1680
1895
  variant: "cards",
1681
1896
  items: [
1682
1897
  {
1683
- title: "Tree Trimming & Pruning",
1684
- description: "Selective pruning for structure, clearance, and health.",
1685
- icon: "Trim"
1898
+ title: "Service One",
1899
+ description: "Replace with a short description.",
1900
+ icon: "01"
1686
1901
  },
1687
1902
  {
1688
- title: "Tree Removal",
1689
- description: "Controlled removal for unstable or hazardous trees.",
1690
- icon: "Remove"
1903
+ title: "Service Two",
1904
+ description: "Replace with a short description.",
1905
+ icon: "02"
1691
1906
  },
1692
1907
  {
1693
- title: "Stump Grinding",
1694
- description: "Below-grade grinding and cleanup.",
1695
- icon: "Stump"
1908
+ title: "Service Three",
1909
+ description: "Replace with a short description.",
1910
+ icon: "03"
1696
1911
  }
1697
1912
  ]
1698
1913
  },
@@ -1701,8 +1916,8 @@ var templateStarterPresets = {
1701
1916
  title: "Frequently Asked Questions",
1702
1917
  items: [
1703
1918
  {
1704
- question: "Do you handle storm cleanup?",
1705
- answer: "Yes. We prioritize urgent hazards after severe weather."
1919
+ question: "Do you offer custom scopes?",
1920
+ answer: "Replace this with an answer that fits your business."
1706
1921
  }
1707
1922
  ]
1708
1923
  }