@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
@@ -45,21 +45,6 @@ function createPayloadClient(config) {
45
45
  // src/nextjs/queries/pages.ts
46
46
  var import_cache = require("next/cache");
47
47
 
48
- // src/studio/imageUploadOptimization.ts
49
- var import_promises = require("fs/promises");
50
- var DEFAULT_OPTIONS = {
51
- avifQuality: 50,
52
- enforceSmallerForLossy: true,
53
- jpegQuality: 78,
54
- minBytes: 48 * 1024,
55
- minQualityFloor: 42,
56
- onlyIfSmaller: true,
57
- pngCompressionLevel: 9,
58
- skipAnimated: true,
59
- tiffQuality: 75,
60
- webpQuality: 78
61
- };
62
-
63
48
  // src/studio/index.ts
64
49
  var isRecord = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
65
50
  function assertStudioDocumentV1(input) {
@@ -100,26 +85,6 @@ function assertStudioDocumentV1(input) {
100
85
  };
101
86
  }
102
87
 
103
- // src/blocks/blocks/sectionStyleFields.ts
104
- var sectionStyleDefaults = {
105
- contentBackgroundColor: "#ffffff",
106
- contentBackgroundMode: "none",
107
- contentGradientAngle: "135",
108
- contentGradientFrom: "#ffffff",
109
- contentGradientPreset: "none",
110
- contentGradientTo: "#f4f6f2",
111
- contentWidth: "inherit",
112
- sectionPaddingX: "inherit",
113
- sectionBackgroundColor: "#ffffff",
114
- sectionBackgroundMode: "none",
115
- sectionGradientAngle: "135",
116
- sectionGradientFrom: "#124a37",
117
- sectionGradientPreset: "forest",
118
- sectionGradientTo: "#1f684f",
119
- sectionPaddingY: "md",
120
- sectionWidth: "content"
121
- };
122
-
123
88
  // src/studio-pages/builder/settings-v2/types.ts
124
89
  var defaultBuilderBlockSettingsV2 = {
125
90
  advanced: {
@@ -133,13 +98,13 @@ var defaultBuilderBlockSettingsV2 = {
133
98
  contentGradientAngle: "135",
134
99
  contentGradientFrom: "#ffffff",
135
100
  contentGradientPreset: "none",
136
- contentGradientTo: "#f4f6f2",
101
+ contentGradientTo: "#f4f6f8",
137
102
  sectionBackgroundColor: "#ffffff",
138
103
  sectionBackgroundMode: "none",
139
104
  sectionGradientAngle: "135",
140
- sectionGradientFrom: "#124a37",
141
- sectionGradientPreset: "forest",
142
- sectionGradientTo: "#1f684f"
105
+ sectionGradientFrom: "#334b63",
106
+ sectionGradientPreset: "slate",
107
+ sectionGradientTo: "#496582"
143
108
  },
144
109
  layout: {
145
110
  contentWidth: "inherit",
@@ -378,651 +343,7 @@ var migrateBlockToSettingsV2 = (block) => {
378
343
  };
379
344
  };
380
345
 
381
- // src/studio-pages/builder/settings-v2/BlockInspectorRenderer.tsx
382
- var import_react2 = require("react");
383
-
384
- // src/studio-pages/builder/ui/Accordion.tsx
385
- var import_react = require("react");
386
- var import_jsx_runtime = require("react/jsx-runtime");
387
-
388
- // src/studio-pages/builder/ui/ImageControls.tsx
389
- var import_jsx_runtime2 = require("react/jsx-runtime");
390
-
391
- // src/studio-pages/builder/settings-v2/inspectorSchema.ts
392
- var alignOptions = [
393
- { label: "Left", value: "left" },
394
- { label: "Center", value: "center" },
395
- { label: "Right", value: "right" },
396
- { label: "Justify", value: "justify" }
397
- ];
398
- var layoutFieldSet = [
399
- {
400
- group: "layout",
401
- key: "settings.layout.contentWidth",
402
- label: "Content Width",
403
- options: [
404
- { label: "Inherit Page Default", value: "inherit" },
405
- { label: "Narrow", value: "narrow" },
406
- { label: "Content", value: "content" },
407
- { label: "Wide", value: "wide" },
408
- { label: "Full", value: "full" }
409
- ],
410
- tags: ["width", "container"],
411
- type: "select"
412
- },
413
- {
414
- group: "layout",
415
- key: "settings.layout.linkVerticalPadding",
416
- label: "Keep Top and Bottom Equal",
417
- tags: ["spacing", "padding", "equal", "lock", "vertical"],
418
- type: "checkbox"
419
- },
420
- {
421
- group: "layout",
422
- key: "settings.layout.paddingTopPt",
423
- label: "Top Padding (pt)",
424
- max: 240,
425
- min: 0,
426
- tags: ["spacing", "padding", "top", "vertical"],
427
- type: "number"
428
- },
429
- {
430
- group: "layout",
431
- key: "settings.layout.paddingBottomPt",
432
- label: "Bottom Padding (pt)",
433
- max: 240,
434
- min: 0,
435
- tags: ["spacing", "padding", "bottom", "vertical"],
436
- type: "number"
437
- },
438
- {
439
- group: "layout",
440
- key: "settings.layout.linkHorizontalPadding",
441
- label: "Keep Left and Right Equal",
442
- tags: ["spacing", "padding", "equal", "lock", "horizontal"],
443
- type: "checkbox"
444
- },
445
- {
446
- group: "layout",
447
- key: "settings.layout.paddingLeftPt",
448
- label: "Left Padding (pt)",
449
- max: 240,
450
- min: 0,
451
- tags: ["spacing", "padding", "left", "horizontal"],
452
- type: "number"
453
- },
454
- {
455
- group: "layout",
456
- key: "settings.layout.paddingRightPt",
457
- label: "Right Padding (pt)",
458
- max: 240,
459
- min: 0,
460
- tags: ["spacing", "padding", "right", "horizontal"],
461
- type: "number"
462
- }
463
- ];
464
- var typographyFieldSet = [
465
- {
466
- group: "typography",
467
- key: "settings.typography.headingAlign",
468
- label: "Heading Alignment",
469
- options: alignOptions,
470
- tags: ["text", "align", "heading"],
471
- type: "select"
472
- },
473
- {
474
- group: "typography",
475
- key: "settings.typography.bodyAlign",
476
- label: "Body Alignment",
477
- options: alignOptions,
478
- tags: ["text", "align", "paragraph"],
479
- type: "select"
480
- },
481
- {
482
- group: "typography",
483
- key: "settings.typography.maxTextWidth",
484
- label: "Text Width",
485
- options: [
486
- { label: "Auto", value: "auto" },
487
- { label: "Small", value: "sm" },
488
- { label: "Medium", value: "md" },
489
- { label: "Large", value: "lg" },
490
- { label: "Full", value: "full" }
491
- ],
492
- tags: ["readability", "measure", "line length"],
493
- type: "select"
494
- },
495
- {
496
- advanced: true,
497
- group: "typography",
498
- key: "settings.typography.lineHeightPreset",
499
- label: "Line Height",
500
- options: [
501
- { label: "Tight", value: "tight" },
502
- { label: "Normal", value: "normal" },
503
- { label: "Relaxed", value: "relaxed" }
504
- ],
505
- type: "select"
506
- },
507
- {
508
- advanced: true,
509
- group: "typography",
510
- key: "settings.typography.letterSpacingPreset",
511
- label: "Letter Spacing",
512
- options: [
513
- { label: "Tight", value: "tight" },
514
- { label: "Normal", value: "normal" },
515
- { label: "Relaxed", value: "relaxed" }
516
- ],
517
- type: "select"
518
- }
519
- ];
520
- var styleFieldSet = [
521
- {
522
- group: "style",
523
- key: "settings.appearance.sectionBackgroundMode",
524
- label: "Section Background",
525
- options: [
526
- { label: "None", value: "none" },
527
- { label: "Color", value: "color" },
528
- { label: "Gradient", value: "gradient" }
529
- ],
530
- tags: ["background", "section"],
531
- type: "select"
532
- },
533
- {
534
- group: "style",
535
- key: "settings.appearance.sectionBackgroundColor",
536
- label: "Section Background Color",
537
- type: "color"
538
- },
539
- {
540
- group: "style",
541
- key: "settings.appearance.contentBackgroundMode",
542
- label: "Content Background",
543
- options: [
544
- { label: "None", value: "none" },
545
- { label: "Color", value: "color" },
546
- { label: "Gradient", value: "gradient" }
547
- ],
548
- tags: ["background", "content"],
549
- type: "select"
550
- },
551
- {
552
- group: "style",
553
- key: "settings.appearance.contentBackgroundColor",
554
- label: "Content Background Color",
555
- type: "color"
556
- }
557
- ];
558
- var commonAdvanced = [
559
- {
560
- group: "advanced",
561
- inlineEditable: false,
562
- key: "settings.advanced.editCopyInPanel",
563
- label: "Edit Copy In Panel",
564
- tags: ["inline", "copy", "text"],
565
- type: "checkbox"
566
- },
567
- {
568
- advanced: true,
569
- group: "advanced",
570
- key: "settings.advanced.hideOnMobile",
571
- label: "Hide On Mobile",
572
- type: "checkbox"
573
- },
574
- {
575
- advanced: true,
576
- group: "advanced",
577
- key: "settings.advanced.customClassName",
578
- label: "Custom Class Name",
579
- type: "text"
580
- }
581
- ];
582
- var mediaFieldSet = [
583
- {
584
- group: "media",
585
- key: "settings.media.fit",
586
- label: "Image Fit",
587
- options: [
588
- { label: "Cover", value: "cover" },
589
- { label: "Contain", value: "contain" }
590
- ],
591
- tags: ["image", "media"],
592
- type: "select"
593
- },
594
- {
595
- group: "media",
596
- key: "settings.media.cornerStyle",
597
- label: "Image Corners",
598
- options: [
599
- { label: "Rounded", value: "rounded" },
600
- { label: "Square", value: "square" }
601
- ],
602
- tags: ["image", "radius", "corners"],
603
- type: "select"
604
- }
605
- ];
606
- var inspectorDefinitionByBlockType = {
607
- beforeAfter: {
608
- blockType: "beforeAfter",
609
- fields: [
610
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
611
- { group: "basics", inlineEditable: true, key: "subtitle", label: "Subtitle", type: "textarea" },
612
- { group: "basics", key: "itemsPerRow", label: "Items Per Row", max: 4, min: 1, type: "number" },
613
- ...layoutFieldSet,
614
- ...typographyFieldSet,
615
- ...styleFieldSet,
616
- ...commonAdvanced
617
- ]
618
- },
619
- bookingEmbed: {
620
- blockType: "bookingEmbed",
621
- fields: [
622
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
623
- { group: "basics", inlineEditable: true, key: "description", label: "Description", type: "textarea" },
624
- { group: "basics", inlineEditable: false, key: "buttonLabel", label: "Button Label", type: "text" },
625
- { group: "basics", inlineEditable: false, key: "buttonHref", label: "Button URL", type: "text" },
626
- ...layoutFieldSet,
627
- ...typographyFieldSet,
628
- ...styleFieldSet,
629
- ...commonAdvanced
630
- ]
631
- },
632
- cta: {
633
- blockType: "cta",
634
- fields: [
635
- { group: "basics", inlineEditable: true, key: "headline", label: "Headline", type: "text" },
636
- { group: "basics", inlineEditable: true, key: "description", label: "Description", type: "textarea" },
637
- { group: "basics", inlineEditable: false, key: "buttonLabel", label: "Button Label", type: "text" },
638
- { group: "basics", inlineEditable: false, key: "buttonHref", label: "Button URL", type: "text" },
639
- {
640
- group: "basics",
641
- key: "style",
642
- label: "Variant",
643
- options: [
644
- { label: "Light", value: "light" },
645
- { label: "Dark", value: "dark" }
646
- ],
647
- type: "select"
648
- },
649
- ...layoutFieldSet,
650
- ...typographyFieldSet,
651
- ...styleFieldSet,
652
- ...commonAdvanced
653
- ]
654
- },
655
- faq: {
656
- blockType: "faq",
657
- fields: [
658
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
659
- ...layoutFieldSet,
660
- ...typographyFieldSet,
661
- ...styleFieldSet,
662
- ...commonAdvanced
663
- ]
664
- },
665
- featureGrid: {
666
- blockType: "featureGrid",
667
- fields: [
668
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
669
- {
670
- group: "basics",
671
- key: "variant",
672
- label: "Variant",
673
- options: [
674
- { label: "Cards", value: "cards" },
675
- { label: "Highlight", value: "highlight" }
676
- ],
677
- type: "select"
678
- },
679
- { group: "basics", key: "itemsPerRow", label: "Items Per Row", max: 6, min: 1, type: "number" },
680
- ...layoutFieldSet,
681
- ...typographyFieldSet,
682
- ...mediaFieldSet,
683
- ...styleFieldSet,
684
- ...commonAdvanced
685
- ]
686
- },
687
- formEmbed: {
688
- blockType: "formEmbed",
689
- fields: [
690
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
691
- { group: "basics", inlineEditable: true, key: "description", label: "Description", type: "textarea" },
692
- {
693
- group: "basics",
694
- key: "formType",
695
- label: "Form Type",
696
- options: [{ label: "Quote", value: "quote" }],
697
- type: "select"
698
- },
699
- ...layoutFieldSet,
700
- ...typographyFieldSet,
701
- ...styleFieldSet,
702
- ...commonAdvanced
703
- ]
704
- },
705
- hero: {
706
- blockType: "hero",
707
- fields: [
708
- { group: "basics", inlineEditable: true, key: "kicker", label: "Kicker", type: "text" },
709
- { group: "basics", inlineEditable: true, key: "headline", label: "Headline", type: "text" },
710
- { group: "basics", inlineEditable: true, key: "subheadline", label: "Subheadline", type: "textarea" },
711
- {
712
- group: "basics",
713
- key: "variant",
714
- label: "Variant",
715
- options: [
716
- { label: "Default", value: "default" },
717
- { label: "Centered", value: "centered" }
718
- ],
719
- type: "select"
720
- },
721
- {
722
- group: "layout",
723
- key: "heroHeight",
724
- label: "Hero Height",
725
- options: [
726
- { label: "Small", value: "sm" },
727
- { label: "Medium (Half Screen)", value: "md" },
728
- { label: "Full Screen", value: "full" }
729
- ],
730
- type: "select"
731
- },
732
- ...layoutFieldSet,
733
- ...typographyFieldSet,
734
- ...mediaFieldSet,
735
- ...styleFieldSet,
736
- ...commonAdvanced
737
- ]
738
- },
739
- logoWall: {
740
- blockType: "logoWall",
741
- fields: [
742
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
743
- { group: "basics", inlineEditable: true, key: "subtitle", label: "Subtitle", type: "textarea" },
744
- ...layoutFieldSet,
745
- ...typographyFieldSet,
746
- ...mediaFieldSet,
747
- ...styleFieldSet,
748
- ...commonAdvanced
749
- ]
750
- },
751
- media: {
752
- blockType: "media",
753
- fields: [
754
- { group: "basics", inlineEditable: true, key: "caption", label: "Caption", type: "text" },
755
- {
756
- group: "basics",
757
- key: "size",
758
- label: "Size",
759
- options: [
760
- { label: "Default", value: "default" },
761
- { label: "Wide", value: "wide" }
762
- ],
763
- type: "select"
764
- },
765
- ...layoutFieldSet,
766
- ...typographyFieldSet,
767
- ...mediaFieldSet,
768
- ...styleFieldSet,
769
- ...commonAdvanced
770
- ]
771
- },
772
- richText: {
773
- blockType: "richText",
774
- fields: [
775
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
776
- {
777
- group: "basics",
778
- key: "width",
779
- label: "Rich Text Width",
780
- options: [
781
- { label: "Normal", value: "normal" },
782
- { label: "Narrow", value: "narrow" }
783
- ],
784
- type: "select"
785
- },
786
- ...layoutFieldSet,
787
- ...typographyFieldSet,
788
- ...styleFieldSet,
789
- ...commonAdvanced
790
- ]
791
- },
792
- stats: {
793
- blockType: "stats",
794
- fields: [
795
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
796
- { group: "basics", inlineEditable: true, key: "subtitle", label: "Subtitle", type: "textarea" },
797
- ...layoutFieldSet,
798
- ...typographyFieldSet,
799
- ...styleFieldSet,
800
- ...commonAdvanced
801
- ]
802
- },
803
- testimonials: {
804
- blockType: "testimonials",
805
- fields: [
806
- { group: "basics", inlineEditable: true, key: "title", label: "Title", type: "text" },
807
- { group: "basics", key: "visibleCount", label: "Visible At Once", max: 6, min: 1, type: "number" },
808
- { group: "basics", key: "autoRotate", label: "Auto Rotate", type: "checkbox" },
809
- {
810
- advanced: true,
811
- group: "advanced",
812
- key: "rotateIntervalSeconds",
813
- label: "Rotate Interval Seconds",
814
- max: 30,
815
- min: 2,
816
- type: "number"
817
- },
818
- ...layoutFieldSet,
819
- ...typographyFieldSet,
820
- ...styleFieldSet,
821
- ...commonAdvanced
822
- ]
823
- }
824
- };
825
-
826
- // src/studio-pages/builder/settings-v2/BlockInspectorRenderer.tsx
827
- var import_jsx_runtime3 = require("react/jsx-runtime");
828
-
829
- // src/studio-pages/index.ts
830
- var withSectionStyleDefaults = (value) => ({
831
- ...sectionStyleDefaults,
832
- ...value
833
- });
834
- var defaultNodeData = {
835
- bookingEmbed: {
836
- ...withSectionStyleDefaults({}),
837
- buttonHref: "/contact",
838
- buttonLabel: "Book Consultation",
839
- description: "Let visitors book a consultation.",
840
- title: "Book a Time"
841
- },
842
- beforeAfter: withSectionStyleDefaults({
843
- itemsPerRow: 2,
844
- items: [
845
- {
846
- description: "Before and after result summary.",
847
- imageCornerStyle: "rounded",
848
- imageFit: "cover",
849
- imagePosition: "center",
850
- label: "Project One"
851
- }
852
- ],
853
- subtitle: "Show visual proof from real projects.",
854
- title: "Before & After Results"
855
- }),
856
- cta: {
857
- ...withSectionStyleDefaults({}),
858
- backgroundColor: "#1f684f",
859
- buttonHref: "/contact",
860
- buttonLabel: "Contact Us",
861
- description: "Optional supporting copy.",
862
- headline: "Ready to get started?",
863
- style: "light"
864
- },
865
- faq: {
866
- ...withSectionStyleDefaults({}),
867
- items: [{ answer: "Answer goes here.", question: "Frequently asked question?" }],
868
- title: "Frequently Asked Questions"
869
- },
870
- featureGrid: {
871
- ...withSectionStyleDefaults({}),
872
- itemsPerRow: 3,
873
- items: [
874
- { description: "Explain this point.", iconType: "badge", icon: "01", imageCornerStyle: "rounded", imageFit: "cover", imagePosition: "center", title: "Feature One" },
875
- { description: "Explain this point.", iconType: "badge", icon: "02", imageCornerStyle: "rounded", imageFit: "cover", imagePosition: "center", title: "Feature Two" },
876
- { description: "Explain this point.", iconType: "badge", icon: "03", imageCornerStyle: "rounded", imageFit: "cover", imagePosition: "center", title: "Feature Three" }
877
- ],
878
- title: "Section Title",
879
- variant: "cards"
880
- },
881
- formEmbed: {
882
- ...withSectionStyleDefaults({}),
883
- description: "Collect lead details from visitors.",
884
- formType: "quote",
885
- title: "Request a Quote"
886
- },
887
- hero: {
888
- ...withSectionStyleDefaults({}),
889
- backgroundColor: "",
890
- backgroundOverlayMode: "none",
891
- backgroundOverlayOpacity: 45,
892
- backgroundOverlayColor: "#000000",
893
- backgroundOverlayGradientFrom: "#0d4a37",
894
- backgroundOverlayGradientTo: "#1f684f",
895
- backgroundOverlayGradientAngle: "135",
896
- backgroundOverlayGradientFromStrength: 100,
897
- backgroundOverlayGradientToStrength: 100,
898
- backgroundOverlayGradientStart: 0,
899
- backgroundOverlayGradientEnd: 100,
900
- backgroundOverlayGradientFeather: 100,
901
- backgroundImageCornerStyle: "rounded",
902
- backgroundImageFit: "cover",
903
- backgroundImagePosition: "center",
904
- heroHeight: "sm",
905
- headline: "New Hero Section",
906
- kicker: "Optional kicker",
907
- primaryHref: "/contact",
908
- primaryLabel: "Primary Action",
909
- secondaryHref: "/services",
910
- secondaryLabel: "Secondary Action",
911
- subheadline: "Describe your offer clearly for website visitors.",
912
- variant: "default"
913
- },
914
- media: {
915
- ...withSectionStyleDefaults({}),
916
- caption: "Add a caption",
917
- imageCornerStyle: "rounded",
918
- imageFit: "cover",
919
- imagePosition: "center",
920
- size: "default"
921
- },
922
- logoWall: withSectionStyleDefaults({
923
- items: [
924
- { imageCornerStyle: "rounded", imageFit: "contain", imagePosition: "center", name: "Trusted Partner 1" },
925
- { imageCornerStyle: "rounded", imageFit: "contain", imagePosition: "center", name: "Trusted Partner 2" },
926
- { imageCornerStyle: "rounded", imageFit: "contain", imagePosition: "center", name: "Trusted Partner 3" }
927
- ],
928
- subtitle: "Trusted by teams and homeowners across Central Texas.",
929
- title: "Trusted by Local Organizations"
930
- }),
931
- richText: {
932
- ...withSectionStyleDefaults({}),
933
- content: {
934
- root: {
935
- children: [
936
- {
937
- children: [
938
- {
939
- detail: 0,
940
- format: 0,
941
- mode: "normal",
942
- style: "",
943
- text: "Write your content here.",
944
- type: "text",
945
- version: 1
946
- }
947
- ],
948
- direction: "ltr",
949
- format: "",
950
- indent: 0,
951
- type: "paragraph",
952
- version: 1
953
- }
954
- ],
955
- direction: "ltr",
956
- format: "",
957
- indent: 0,
958
- type: "root",
959
- version: 1
960
- }
961
- },
962
- title: "Section Heading",
963
- width: "normal"
964
- },
965
- testimonials: {
966
- ...withSectionStyleDefaults({}),
967
- autoRotate: true,
968
- items: [{ location: "City, ST", name: "Customer Name", quote: "Customer feedback goes here.", rating: 5 }],
969
- rotateIntervalSeconds: 7,
970
- title: "What Customers Say",
971
- visibleCount: 3
972
- },
973
- stats: withSectionStyleDefaults({
974
- items: [
975
- { description: "Average response time", label: "Same-Day Quotes", value: "24h" },
976
- { description: "Projects completed", label: "Completed Jobs", value: "1,200+" },
977
- { description: "Client satisfaction score", label: "Satisfaction", value: "4.9/5" }
978
- ],
979
- subtitle: "Highlight measurable outcomes to build trust quickly.",
980
- title: "Performance Highlights"
981
- })
982
- };
983
- var nodeTypeLabels = {
984
- bookingEmbed: "Booking Embed",
985
- beforeAfter: "Before / After",
986
- cta: "Call To Action",
987
- faq: "FAQ",
988
- featureGrid: "Feature Grid",
989
- formEmbed: "Form Embed",
990
- hero: "Hero",
991
- logoWall: "Logo Wall",
992
- media: "Media",
993
- richText: "Rich Text",
994
- stats: "Stats",
995
- testimonials: "Testimonials"
996
- };
997
- var pageNodeTypes = Object.keys(defaultNodeData).map((type) => ({
998
- type,
999
- displayName: nodeTypeLabels[type] || type,
1000
- description: `Page node for ${nodeTypeLabels[type] || type}`,
1001
- getDefaultData: () => {
1002
- const migrated = migrateBlockToSettingsV2(structuredClone(defaultNodeData[type]));
1003
- const { blockType: _ignoredBlockType, ...data } = migrated;
1004
- return data;
1005
- }
1006
- }));
1007
- var pageInspectorPanelRegistry = Object.keys(defaultNodeData).map((nodeType) => ({
1008
- nodeType,
1009
- panelID: `${nodeType}-panel`,
1010
- panelLabel: `${nodeTypeLabels[nodeType] || nodeType} Settings`
1011
- }));
1012
- var resolvePanelFields = (nodeType) => inspectorDefinitionByBlockType[nodeType]?.fields.map((field) => ({
1013
- advanced: field.advanced,
1014
- group: field.group,
1015
- inlineEditable: field.inlineEditable,
1016
- key: field.key,
1017
- label: field.label,
1018
- type: field.type
1019
- })) || [];
1020
- var pageInspectorPanels = pageInspectorPanelRegistry.map((entry) => ({
1021
- fields: resolvePanelFields(entry.nodeType),
1022
- id: entry.panelID,
1023
- label: entry.panelLabel,
1024
- nodeType: entry.nodeType
1025
- }));
346
+ // src/studio-pages/document.ts
1026
347
  var studioDocumentToLayout = (document) => document.nodes.map(
1027
348
  (node) => migrateBlockToSettingsV2({
1028
349
  id: node.id,