@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
@@ -17,8 +17,8 @@ import {
17
17
  defaultPageLayoutBlocks,
18
18
  sectionPresets,
19
19
  templateStarterPresets
20
- } from "../chunk-XK3K5GRP.mjs";
21
- import "../chunk-SIL2J5MF.mjs";
20
+ } from "../chunk-JQAHXYAM.mjs";
21
+ import "../chunk-OQSEJXC4.mjs";
22
22
  import "../chunk-6BWS3CLP.mjs";
23
23
  export {
24
24
  BeforeAfterBlock,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sectionStyleFields
3
- } from "./chunk-SIL2J5MF.mjs";
3
+ } from "./chunk-OQSEJXC4.mjs";
4
4
  import {
5
5
  __export
6
6
  } from "./chunk-6BWS3CLP.mjs";
@@ -86,12 +86,26 @@ var BeforeAfterBlock = {
86
86
  relationTo: "media",
87
87
  required: false
88
88
  },
89
+ {
90
+ name: "beforeImageURL",
91
+ type: "text",
92
+ admin: {
93
+ description: "Optional direct URL for the before image when using an external asset."
94
+ }
95
+ },
89
96
  {
90
97
  name: "afterMedia",
91
98
  type: "upload",
92
99
  relationTo: "media",
93
100
  required: false
94
101
  },
102
+ {
103
+ name: "afterImageURL",
104
+ type: "text",
105
+ admin: {
106
+ description: "Optional direct URL for the after image when using an external asset."
107
+ }
108
+ },
95
109
  {
96
110
  name: "imageHeight",
97
111
  type: "number",
@@ -247,6 +261,10 @@ var CtaBlock = {
247
261
  name: "description",
248
262
  type: "textarea"
249
263
  },
264
+ {
265
+ name: "eyebrow",
266
+ type: "text"
267
+ },
250
268
  {
251
269
  name: "buttonLabel",
252
270
  type: "text"
@@ -277,9 +295,33 @@ var CtaBlock = {
277
295
  name: "backgroundColor",
278
296
  type: "text",
279
297
  admin: {
280
- description: "Optional background color override for the CTA strip (example: #124a37)."
298
+ description: "Optional background color override for the CTA strip (example: #334b63)."
299
+ }
300
+ },
301
+ {
302
+ name: "media",
303
+ type: "upload",
304
+ relationTo: "media",
305
+ required: false
306
+ },
307
+ {
308
+ name: "imageURL",
309
+ type: "text",
310
+ admin: {
311
+ description: "Optional direct image URL when this CTA should use an external image."
281
312
  }
282
313
  },
314
+ {
315
+ name: "bullets",
316
+ type: "array",
317
+ fields: [
318
+ {
319
+ name: "label",
320
+ type: "text",
321
+ required: true
322
+ }
323
+ ]
324
+ },
283
325
  {
284
326
  name: "settings",
285
327
  type: "json",
@@ -307,6 +349,10 @@ var FaqBlock = {
307
349
  plural: "FAQs"
308
350
  },
309
351
  fields: [
352
+ {
353
+ name: "eyebrow",
354
+ type: "text"
355
+ },
310
356
  {
311
357
  name: "title",
312
358
  type: "text",
@@ -364,10 +410,17 @@ var FeatureGridBlock = {
364
410
  plural: "Feature Grids"
365
411
  },
366
412
  fields: [
413
+ {
414
+ name: "eyebrow",
415
+ type: "text"
416
+ },
367
417
  {
368
418
  name: "title",
369
- type: "text",
370
- required: true
419
+ type: "text"
420
+ },
421
+ {
422
+ name: "subtitle",
423
+ type: "textarea"
371
424
  },
372
425
  {
373
426
  name: "itemsPerRow",
@@ -395,6 +448,16 @@ var FeatureGridBlock = {
395
448
  name: "description",
396
449
  type: "textarea"
397
450
  },
451
+ {
452
+ name: "tone",
453
+ type: "select",
454
+ defaultValue: "warm",
455
+ options: [
456
+ { label: "Warm", value: "warm" },
457
+ { label: "Cool", value: "cool" },
458
+ { label: "Neutral", value: "neutral" }
459
+ ]
460
+ },
398
461
  {
399
462
  name: "iconType",
400
463
  type: "select",
@@ -440,6 +503,39 @@ var FeatureGridBlock = {
440
503
  relationTo: "media",
441
504
  required: false
442
505
  },
506
+ {
507
+ name: "imageURL",
508
+ type: "text",
509
+ admin: {
510
+ description: "Optional direct image URL when this item should use an external image."
511
+ }
512
+ },
513
+ {
514
+ name: "embedURL",
515
+ type: "text",
516
+ admin: {
517
+ description: "Optional iframe/embed URL for items like maps or other embedded content."
518
+ }
519
+ },
520
+ {
521
+ name: "buttonLabel",
522
+ type: "text"
523
+ },
524
+ {
525
+ name: "buttonHref",
526
+ type: "text"
527
+ },
528
+ {
529
+ name: "bullets",
530
+ type: "array",
531
+ fields: [
532
+ {
533
+ name: "label",
534
+ type: "text",
535
+ required: true
536
+ }
537
+ ]
538
+ },
443
539
  {
444
540
  name: "imageHeight",
445
541
  type: "number",
@@ -522,6 +618,22 @@ var FeatureGridBlock = {
522
618
  {
523
619
  label: "Highlight",
524
620
  value: "highlight"
621
+ },
622
+ {
623
+ label: "Split List",
624
+ value: "splitList"
625
+ },
626
+ {
627
+ label: "Panels",
628
+ value: "panels"
629
+ },
630
+ {
631
+ label: "Catalog",
632
+ value: "catalog"
633
+ },
634
+ {
635
+ label: "Contact Split",
636
+ value: "contact"
525
637
  }
526
638
  ]
527
639
  },
@@ -529,7 +641,7 @@ var FeatureGridBlock = {
529
641
  name: "backgroundColor",
530
642
  type: "text",
531
643
  admin: {
532
- description: "Optional background color override when using the Highlight variant (example: #1f684f)."
644
+ description: "Optional background color override when using the Highlight variant (example: #334b63)."
533
645
  }
534
646
  },
535
647
  {
@@ -559,6 +671,10 @@ var FormEmbedBlock = {
559
671
  plural: "Form Embeds"
560
672
  },
561
673
  fields: [
674
+ {
675
+ name: "eyebrow",
676
+ type: "text"
677
+ },
562
678
  {
563
679
  name: "title",
564
680
  type: "text"
@@ -567,6 +683,10 @@ var FormEmbedBlock = {
567
683
  name: "description",
568
684
  type: "textarea"
569
685
  },
686
+ {
687
+ name: "submitLabel",
688
+ type: "text"
689
+ },
570
690
  {
571
691
  name: "formType",
572
692
  type: "select",
@@ -648,6 +768,13 @@ var HeroBlock = {
648
768
  type: "upload",
649
769
  relationTo: "media"
650
770
  },
771
+ {
772
+ name: "backgroundImageURL",
773
+ type: "text",
774
+ admin: {
775
+ description: "Optional direct image URL when the hero should use an external image source."
776
+ }
777
+ },
651
778
  {
652
779
  name: "backgroundImageFit",
653
780
  type: "select",
@@ -693,7 +820,7 @@ var HeroBlock = {
693
820
  name: "backgroundColor",
694
821
  type: "text",
695
822
  admin: {
696
- description: "Optional background color override (example: #124a37)."
823
+ description: "Optional background color override (example: #334b63)."
697
824
  }
698
825
  },
699
826
  {
@@ -731,14 +858,14 @@ var HeroBlock = {
731
858
  name: "backgroundOverlayGradientFrom",
732
859
  type: "text",
733
860
  admin: {
734
- description: "Gradient overlay start color (example: #0d4a37). Used when Overlay Mode is Gradient."
861
+ description: "Gradient overlay start color (example: #334b63). Used when Overlay Mode is Gradient."
735
862
  }
736
863
  },
737
864
  {
738
865
  name: "backgroundOverlayGradientTo",
739
866
  type: "text",
740
867
  admin: {
741
- description: "Gradient overlay end color (example: #1f684f). Used when Overlay Mode is Gradient."
868
+ description: "Gradient overlay end color (example: #496582). Used when Overlay Mode is Gradient."
742
869
  }
743
870
  },
744
871
  {
@@ -893,6 +1020,13 @@ var LogoWallBlock = {
893
1020
  relationTo: "media",
894
1021
  required: false
895
1022
  },
1023
+ {
1024
+ name: "imageURL",
1025
+ type: "text",
1026
+ admin: {
1027
+ description: "Optional direct image URL for this logo when using an external asset."
1028
+ }
1029
+ },
896
1030
  {
897
1031
  name: "imageHeight",
898
1032
  type: "number",
@@ -998,7 +1132,14 @@ var MediaBlock = {
998
1132
  name: "image",
999
1133
  type: "upload",
1000
1134
  relationTo: "media",
1001
- required: true
1135
+ required: false
1136
+ },
1137
+ {
1138
+ name: "imageURL",
1139
+ type: "text",
1140
+ admin: {
1141
+ description: "Optional direct image URL when this section should use an external image."
1142
+ }
1002
1143
  },
1003
1144
  {
1004
1145
  name: "caption",
@@ -1076,6 +1217,21 @@ var RichTextBlock = {
1076
1217
  plural: "Rich Text Sections"
1077
1218
  },
1078
1219
  fields: [
1220
+ {
1221
+ name: "variant",
1222
+ type: "select",
1223
+ defaultValue: "default",
1224
+ options: [
1225
+ {
1226
+ label: "Default",
1227
+ value: "default"
1228
+ },
1229
+ {
1230
+ label: "Quote Banner",
1231
+ value: "quoteBanner"
1232
+ }
1233
+ ]
1234
+ },
1079
1235
  {
1080
1236
  name: "title",
1081
1237
  type: "text"
@@ -1085,6 +1241,54 @@ var RichTextBlock = {
1085
1241
  type: "richText",
1086
1242
  required: true
1087
1243
  },
1244
+ {
1245
+ name: "statsItems",
1246
+ type: "array",
1247
+ fields: [
1248
+ {
1249
+ name: "value",
1250
+ type: "text",
1251
+ required: true
1252
+ },
1253
+ {
1254
+ name: "label",
1255
+ type: "text",
1256
+ required: true
1257
+ }
1258
+ ]
1259
+ },
1260
+ {
1261
+ name: "cards",
1262
+ type: "array",
1263
+ fields: [
1264
+ {
1265
+ name: "eyebrow",
1266
+ type: "text"
1267
+ },
1268
+ {
1269
+ name: "title",
1270
+ type: "text",
1271
+ required: true
1272
+ },
1273
+ {
1274
+ name: "description",
1275
+ type: "textarea"
1276
+ },
1277
+ {
1278
+ name: "media",
1279
+ type: "upload",
1280
+ relationTo: "media",
1281
+ required: false
1282
+ },
1283
+ {
1284
+ name: "imageURL",
1285
+ type: "text",
1286
+ admin: {
1287
+ description: "Optional direct image URL when this card should use an external image."
1288
+ }
1289
+ }
1290
+ ]
1291
+ },
1088
1292
  {
1089
1293
  name: "width",
1090
1294
  type: "select",
@@ -1339,18 +1543,18 @@ var sectionPresets = [
1339
1543
  blocks: [
1340
1544
  {
1341
1545
  blockType: "hero",
1342
- kicker: "Licensed + Insured",
1343
- headline: "Expert Tree Care for Central Texas",
1344
- subheadline: "Reliable trimming, safe removals, and stump grinding for residential and commercial properties.",
1345
- primaryLabel: "Get Your Free Quote",
1546
+ kicker: "Trusted Team",
1547
+ headline: "A clear headline for your primary offer",
1548
+ subheadline: "Explain what you offer, who it is for, and why it matters in one strong supporting sentence.",
1549
+ primaryLabel: "Get Started",
1346
1550
  primaryHref: "/contact",
1347
- secondaryLabel: "See Our Work",
1348
- secondaryHref: "/portfolio"
1551
+ secondaryLabel: "Learn More",
1552
+ secondaryHref: "/about"
1349
1553
  },
1350
1554
  {
1351
1555
  blockType: "cta",
1352
- headline: "Need a quote this week?",
1353
- description: "Call (512) 555-0149 or request an on-site estimate online.",
1556
+ headline: "Ready for the next step?",
1557
+ description: "Use a short call to action with a direct path to contact or purchase.",
1354
1558
  buttonLabel: "Contact Us",
1355
1559
  buttonHref: "/contact",
1356
1560
  style: "light"
@@ -1368,19 +1572,19 @@ var sectionPresets = [
1368
1572
  variant: "cards",
1369
1573
  items: [
1370
1574
  {
1371
- title: "Tree Trimming & Pruning",
1372
- description: "Canopy balancing, deadwood removal, and seasonal pruning.",
1373
- icon: "Trim"
1575
+ title: "Service One",
1576
+ description: "Briefly describe this offer or outcome.",
1577
+ icon: "01"
1374
1578
  },
1375
1579
  {
1376
- title: "Safe Tree Removal",
1377
- description: "Controlled removal for hazardous or unstable trees.",
1378
- icon: "Remove"
1580
+ title: "Service Two",
1581
+ description: "Briefly describe this offer or outcome.",
1582
+ icon: "02"
1379
1583
  },
1380
1584
  {
1381
- title: "Stump Grinding",
1382
- description: "Below-grade stump grinding and cleanup.",
1383
- icon: "Stump"
1585
+ title: "Service Three",
1586
+ description: "Briefly describe this offer or outcome.",
1587
+ icon: "03"
1384
1588
  }
1385
1589
  ]
1386
1590
  }
@@ -1396,15 +1600,15 @@ var sectionPresets = [
1396
1600
  title: "What Homeowners Say",
1397
1601
  items: [
1398
1602
  {
1399
- quote: "Great communication, fair pricing, and the cleanup was perfect. We will use them again.",
1400
- name: "Katie M.",
1401
- location: "Austin, TX",
1603
+ quote: "The experience was smooth, thoughtful, and exactly what we hoped for.",
1604
+ name: "Customer Name",
1605
+ location: "City, ST",
1402
1606
  rating: 5
1403
1607
  },
1404
1608
  {
1405
- quote: "They removed a dangerous limb over our driveway quickly and safely.",
1406
- name: "James R.",
1407
- location: "Round Rock, TX",
1609
+ quote: "Fast communication, strong service, and a result we would happily recommend.",
1610
+ name: "Customer Name",
1611
+ location: "City, ST",
1408
1612
  rating: 5
1409
1613
  }
1410
1614
  ]
@@ -1414,12 +1618,12 @@ var sectionPresets = [
1414
1618
  title: "Common Questions",
1415
1619
  items: [
1416
1620
  {
1417
- question: "How quickly can you schedule service?",
1418
- answer: "Most estimate requests are scheduled within 24 hours."
1621
+ question: "How quickly do you respond?",
1622
+ answer: "Replace this with a concise answer to a common customer question."
1419
1623
  },
1420
1624
  {
1421
- question: "Do you provide cleanup?",
1422
- answer: "Yes. Debris haul-off and cleanup are included in quoted scopes."
1625
+ question: "What is included?",
1626
+ answer: "Replace this with another concise answer that reduces buying friction."
1423
1627
  }
1424
1628
  ]
1425
1629
  }
@@ -1433,13 +1637,13 @@ var sectionPresets = [
1433
1637
  {
1434
1638
  blockType: "formEmbed",
1435
1639
  title: "Request a Quote",
1436
- description: "Share your project details and we will follow up quickly.",
1640
+ description: "Share a few details and your team can follow up with next steps.",
1437
1641
  formType: "quote"
1438
1642
  },
1439
1643
  {
1440
1644
  blockType: "bookingEmbed",
1441
1645
  title: "Prefer to book a consultation?",
1442
- description: "Choose a time window and we will confirm availability.",
1646
+ description: "Offer an alternative scheduling path for visitors who prefer to book directly.",
1443
1647
  buttonLabel: "Book Consultation",
1444
1648
  buttonHref: "/contact"
1445
1649
  }
@@ -1451,14 +1655,14 @@ var templateStarterPresets = {
1451
1655
  {
1452
1656
  blockType: "hero",
1453
1657
  headline: "Contact Us",
1454
- subheadline: "Request a quote, ask a question, or book a consultation window.",
1455
- primaryLabel: "Call (512) 555-0149",
1456
- primaryHref: "tel:+15125550149"
1658
+ subheadline: "Tell visitors exactly how to reach you and what to expect next.",
1659
+ primaryLabel: "Email Us",
1660
+ primaryHref: "mailto:hello@example.com"
1457
1661
  },
1458
1662
  {
1459
1663
  blockType: "formEmbed",
1460
1664
  title: "Request a Quote",
1461
- description: "Tell us about your project and we will follow up quickly.",
1665
+ description: "Use this space for a form embed or lead capture flow.",
1462
1666
  formType: "quote"
1463
1667
  },
1464
1668
  {
@@ -1466,8 +1670,8 @@ var templateStarterPresets = {
1466
1670
  title: "Common Questions",
1467
1671
  items: [
1468
1672
  {
1469
- question: "How quickly can you provide an estimate?",
1470
- answer: "Most estimates are scheduled within 24 hours."
1673
+ question: "How quickly will you respond?",
1674
+ answer: "Replace with the answer that best fits your operating process."
1471
1675
  }
1472
1676
  ]
1473
1677
  }
@@ -1476,27 +1680,27 @@ var templateStarterPresets = {
1476
1680
  {
1477
1681
  blockType: "hero",
1478
1682
  kicker: "Locally Owned",
1479
- headline: "Expert Tree Care for Central Texas",
1480
- subheadline: "Premium trimming, removal, and cleanup with safety-first execution.",
1481
- primaryLabel: "Get Your Free Quote",
1683
+ headline: "Lead with your strongest offer",
1684
+ subheadline: "Support the headline with a concise sentence that clarifies benefits and audience.",
1685
+ primaryLabel: "Get Started",
1482
1686
  primaryHref: "/contact",
1483
1687
  secondaryLabel: "View Services",
1484
1688
  secondaryHref: "/services"
1485
1689
  },
1486
1690
  {
1487
1691
  blockType: "featureGrid",
1488
- title: "Why Homeowners Choose Us",
1692
+ title: "Why clients choose us",
1489
1693
  variant: "highlight",
1490
1694
  items: [
1491
- { title: "Transparent Pricing", description: "Clear written estimates.", icon: "01" },
1492
- { title: "Safety-First Crew", description: "Property protection and planning.", icon: "02" },
1493
- { title: "Fast Scheduling", description: "Quick estimates and service windows.", icon: "03" }
1695
+ { title: "Clear Value", description: "Explain your first differentiator.", icon: "01" },
1696
+ { title: "Reliable Process", description: "Explain your second differentiator.", icon: "02" },
1697
+ { title: "Strong Results", description: "Explain your third differentiator.", icon: "03" }
1494
1698
  ]
1495
1699
  },
1496
1700
  {
1497
1701
  blockType: "cta",
1498
- headline: "Need a quote this week?",
1499
- description: "Call (512) 555-0149 or request an estimate online.",
1702
+ headline: "Ready to take the next step?",
1703
+ description: "Add a direct conversion prompt with a clear primary action.",
1500
1704
  buttonLabel: "Contact Us",
1501
1705
  buttonHref: "/contact",
1502
1706
  style: "light"
@@ -1505,9 +1709,9 @@ var templateStarterPresets = {
1505
1709
  services: [
1506
1710
  {
1507
1711
  blockType: "hero",
1508
- headline: "Tree Services Built for Safety and Curb Appeal",
1509
- subheadline: "Core offerings first, with clear scopes and scheduling.",
1510
- primaryLabel: "Schedule Estimate",
1712
+ headline: "Services Built Around Your Process",
1713
+ subheadline: "Summarize the core offerings with a short clarity-first introduction.",
1714
+ primaryLabel: "Request Info",
1511
1715
  primaryHref: "/contact"
1512
1716
  },
1513
1717
  {
@@ -1516,19 +1720,19 @@ var templateStarterPresets = {
1516
1720
  variant: "cards",
1517
1721
  items: [
1518
1722
  {
1519
- title: "Tree Trimming & Pruning",
1520
- description: "Selective pruning for structure, clearance, and health.",
1521
- icon: "Trim"
1723
+ title: "Service One",
1724
+ description: "Replace with a short description.",
1725
+ icon: "01"
1522
1726
  },
1523
1727
  {
1524
- title: "Tree Removal",
1525
- description: "Controlled removal for unstable or hazardous trees.",
1526
- icon: "Remove"
1728
+ title: "Service Two",
1729
+ description: "Replace with a short description.",
1730
+ icon: "02"
1527
1731
  },
1528
1732
  {
1529
- title: "Stump Grinding",
1530
- description: "Below-grade grinding and cleanup.",
1531
- icon: "Stump"
1733
+ title: "Service Three",
1734
+ description: "Replace with a short description.",
1735
+ icon: "03"
1532
1736
  }
1533
1737
  ]
1534
1738
  },
@@ -1537,8 +1741,8 @@ var templateStarterPresets = {
1537
1741
  title: "Frequently Asked Questions",
1538
1742
  items: [
1539
1743
  {
1540
- question: "Do you handle storm cleanup?",
1541
- answer: "Yes. We prioritize urgent hazards after severe weather."
1744
+ question: "Do you offer custom scopes?",
1745
+ answer: "Replace this with an answer that fits your business."
1542
1746
  }
1543
1747
  ]
1544
1748
  }