dune-react 0.0.22 → 0.0.23

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 (95) hide show
  1. package/dist/components/puck-block/banner-sections/css-marquee-banner/css-marquee-banner.js +13 -13
  2. package/dist/components/puck-block/banner-sections/dual-row-marquee/dual-row-marquee.js +8 -8
  3. package/dist/components/puck-block/banner-sections/scroll-driven-marquee/scroll-driven-marquee.js +8 -6
  4. package/dist/components/puck-block/banner-sections/scroll-parallax-text/scroll-parallax-text.js +3 -1
  5. package/dist/components/puck-block/contact-sections/contact-cards-grid/contact-cards-grid.js +1 -1
  6. package/dist/components/puck-block/contact-sections/form-with-media/form-with-media.js +1 -1
  7. package/dist/components/puck-block/contact-sections/header-form-cards/header-form-cards.js +1 -1
  8. package/dist/components/puck-block/contact-sections/header-info-fullwidth/header-info-fullwidth.js +2 -2
  9. package/dist/components/puck-block/contact-sections/info-cards-media/info-cards-media.js +2 -2
  10. package/dist/components/puck-block/contact-sections/split-info-form/split-info-form.js +1 -1
  11. package/dist/components/puck-block/cta-sections/mouse-track-cta/mouse-track-cta.js +4 -4
  12. package/dist/components/puck-block/cta-sections/side-media-cta/side-media-cta.js +1 -1
  13. package/dist/components/puck-block/cta-sections/text-block-cta/text-block-cta.js +2 -2
  14. package/dist/components/puck-block/feature-sections/feature-cards-grid/component.js +1 -1
  15. package/dist/components/puck-block/feature-sections/feature-list-split/component.js +1 -1
  16. package/dist/components/puck-block/feature-sections/tab-feature/component.js +3 -3
  17. package/dist/components/puck-block/feature-sections/text-media-split/component.js +1 -1
  18. package/dist/components/puck-block/footer-sections/centered-minimal-footer/centered-minimal-footer.js +72 -18
  19. package/dist/components/puck-block/footer-sections/centered-minimal-footer/index.d.ts +79 -0
  20. package/dist/components/puck-block/footer-sections/centered-minimal-footer/index.js +43 -1
  21. package/dist/components/puck-block/footer-sections/compact-newsletter-footer/index.d.ts +41 -0
  22. package/dist/components/puck-block/footer-sections/contact-links-footer/contact-links-footer.js +4 -3
  23. package/dist/components/puck-block/footer-sections/contact-links-footer/index.d.ts +86 -0
  24. package/dist/components/puck-block/footer-sections/contact-links-footer/index.js +1 -1
  25. package/dist/components/puck-block/footer-sections/cta-links-footer/cta-links-footer.js +3 -2
  26. package/dist/components/puck-block/footer-sections/cta-links-footer/index.d.ts +37 -0
  27. package/dist/components/puck-block/footer-sections/cta-links-footer/index.js +1 -1
  28. package/dist/components/puck-block/footer-sections/links-newsletter-footer/index.d.ts +54 -0
  29. package/dist/components/puck-block/footer-sections/newsletter-links-footer/index.d.ts +41 -0
  30. package/dist/components/puck-block/footer-sections/newsletter-top-links-footer/index.d.ts +54 -0
  31. package/dist/components/puck-block/footer-sections/props.d.ts +3 -0
  32. package/dist/components/puck-block/gallery-sections/fullscreen-portfolio/fullscreen-portfolio.js +1 -1
  33. package/dist/components/puck-block/gallery-sections/interactive-portfolio/interactive-portfolio.js +1 -1
  34. package/dist/components/puck-block/gallery-sections/portfolio-cards/portfolio-cards.js +1 -1
  35. package/dist/components/puck-block/gallery-sections/portfolio-divider/portfolio-divider.js +1 -1
  36. package/dist/components/puck-block/gallery-sections/props.d.ts +11 -1
  37. package/dist/components/puck-block/gallery-sections/props.js +7 -2
  38. package/dist/components/puck-block/gallery-sections/scroll-parallax/scroll-parallax.js +18 -0
  39. package/dist/components/puck-block/gallery-sections/scroll-parallax-portfolio/scroll-parallax-portfolio.js +25 -22
  40. package/dist/components/puck-block/gallery-sections/split-carousel/index.d.ts +11 -1
  41. package/dist/components/puck-block/header-sections/centered-navbar/centered-navbar.js +3 -2
  42. package/dist/components/puck-block/header-sections/drawer-navbar/drawer-navbar.js +4 -3
  43. package/dist/components/puck-block/header-sections/floating-bordered-navbar/floating-bordered-navbar.js +5 -4
  44. package/dist/components/puck-block/header-sections/fullscreen-overlay-navbar/fullscreen-overlay-navbar.js +4 -3
  45. package/dist/components/puck-block/header-sections/mega-menu-navbar/mega-menu-navbar.js +3 -2
  46. package/dist/components/puck-block/header-sections/props.d.ts +3 -0
  47. package/dist/components/puck-block/header-sections/standard-navbar/standard-navbar.js +3 -2
  48. package/dist/components/puck-block/hero-sections/carousel-hero/component.js +3 -3
  49. package/dist/components/puck-block/hero-sections/column-scroll-hero/component.js +8 -8
  50. package/dist/components/puck-block/hero-sections/dual-marquee-hero/component.js +6 -6
  51. package/dist/components/puck-block/hero-sections/fullscreen-video-hero/component.js +1 -1
  52. package/dist/components/puck-block/hero-sections/grid-expand-hero/component.js +26 -17
  53. package/dist/components/puck-block/hero-sections/horizontal-marquee-hero/component.js +3 -3
  54. package/dist/components/puck-block/hero-sections/mouse-track-hero/component.js +60 -19
  55. package/dist/components/puck-block/hero-sections/multi-image-grid-hero/multi-image-grid-hero.js +2 -2
  56. package/dist/components/puck-block/hero-sections/overlapping-image-hero/overlapping-image-hero.js +3 -3
  57. package/dist/components/puck-block/hero-sections/parallax-images-hero/component.js +18 -6
  58. package/dist/components/puck-block/hero-sections/scatter-parallax-hero/component.js +9 -7
  59. package/dist/components/puck-block/hero-sections/scroll-expand-video-hero/component.js +7 -5
  60. package/dist/components/puck-block/hero-sections/scroll-zoom-hero/component.js +5 -3
  61. package/dist/components/puck-block/hero-sections/sticky-expand-hero/component.js +1 -1
  62. package/dist/components/puck-block/hero-sections/sticky-expand-hero/index.d.ts +13 -5
  63. package/dist/components/puck-block/hero-sections/sticky-expand-hero/index.js +2 -2
  64. package/dist/components/puck-block/hero-sections/sticky-video-hero/component.js +2 -2
  65. package/dist/components/puck-block/hero-sections/tab-hero/component.js +4 -4
  66. package/dist/components/puck-block/hero-sections/three-image-parallax-hero/component.js +3 -3
  67. package/dist/components/puck-block/hero-sections/vertical-gallery-hero/component.js +6 -6
  68. package/dist/components/puck-block/hero-sections/zoom-grid-hero/component.js +14 -12
  69. package/dist/components/puck-block/metrics-sections/center-media-stats/center-media-stats.js +1 -1
  70. package/dist/components/puck-block/metrics-sections/header-stats-row/header-stats-row.js +1 -1
  71. package/dist/components/puck-block/metrics-sections/mixed-grid-stats/mixed-grid-stats.js +2 -2
  72. package/dist/components/puck-block/metrics-sections/split-stats/split-stats.js +1 -1
  73. package/dist/components/puck-block/metrics-sections/tab-stats/tab-stats.js +3 -3
  74. package/dist/components/puck-block/pricing-sections/pricing-comparison-table/index.d.ts +47 -0
  75. package/dist/components/puck-block/pricing-sections/pricing-comparison-table/index.js +34 -0
  76. package/dist/components/puck-block/pricing-sections/split-pricing/component.js +3 -3
  77. package/dist/components/puck-block/registry.generated.d.ts +273 -6
  78. package/dist/components/puck-block/showcase-sections/tab-timeline/component.js +1 -1
  79. package/dist/components/puck-block/testimonial-sections/bento-testimonial/component.js +2 -2
  80. package/dist/components/puck-block/testimonial-sections/tab-testimonial/component.js +2 -2
  81. package/dist/components/puck-block/text-sections/prose-content/component.js +1 -1
  82. package/dist/components/puck-block/text-sections/side-media-content/component.js +1 -1
  83. package/dist/components/puck-block/text-sections/sticky-text-multi-image/component.js +3 -3
  84. package/dist/components/puck-core/core/props/media.js +6 -1
  85. package/dist/components/puck-core/fields/array-field.d.ts +7 -0
  86. package/dist/components/puck-core/fields/array-field.js +229 -0
  87. package/dist/components/puck-core/fields/auto-field.js +11 -0
  88. package/dist/components/puck-core/fields/image-upload-field.js +1 -1
  89. package/dist/components/puck-core/fields/index.d.ts +1 -0
  90. package/dist/components/puck-core/fields/object-field.js +1 -1
  91. package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +59 -0
  92. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.esm.js +3093 -0
  93. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +592 -0
  94. package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +301 -0
  95. package/package.json +4 -1
@@ -34,7 +34,8 @@ const ContactLinksFooter = (props) => {
34
34
  ] }) });
35
35
  };
36
36
  const ContactLinksFooterDefaults = {
37
- logo: { url: "#", src: "https://d22po4pjz3o32e.cloudfront.net/logo-image.svg", alt: "Logo image" },
37
+ __metadata: { type: "footer" },
38
+ logo: { url: "#", src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Logo image" },
38
39
  heading: "",
39
40
  description: "",
40
41
  buttons: [],
@@ -44,12 +45,12 @@ const ContactLinksFooterDefaults = {
44
45
  button: { label: "" },
45
46
  termsAndConditions: "",
46
47
  address: { label: "Address:", value: "Level 1, 12 Sample St, Sydney NSW 2000" },
47
- contact: { label: "Contact:", phone: "1800 123 4567", email: "info@relume.io" },
48
+ contact: { label: "Contact:", phone: "1800 123 4567", email: "info@example.com" },
48
49
  columnLinks: [
49
50
  { links: [{ title: "Link One", url: "#" }, { title: "Link Two", url: "#" }, { title: "Link Three", url: "#" }] },
50
51
  { links: [{ title: "Link Four", url: "#" }, { title: "Link Five", url: "#" }, { title: "Link Six", url: "#" }] }
51
52
  ],
52
- footerText: "© 2024 Relume. All rights reserved.",
53
+ footerText: "© 2024 Company. All rights reserved.",
53
54
  footerLinks: [{ title: "Privacy Policy", url: "#" }, { title: "Terms of Service", url: "#" }],
54
55
  socialMediaLinks: [],
55
56
  companyImages: [],
@@ -13,6 +13,92 @@ declare const conf: {
13
13
  };
14
14
  };
15
15
  };
16
+ address: {
17
+ type: string;
18
+ label: string;
19
+ objectFields: {
20
+ label: {
21
+ type: string;
22
+ label: string;
23
+ };
24
+ value: {
25
+ type: string;
26
+ label: string;
27
+ };
28
+ };
29
+ };
30
+ columnLinks: {
31
+ type: string;
32
+ label: string;
33
+ getItemSummary: (_item: unknown, index?: number) => string;
34
+ arrayFields: {
35
+ links: {
36
+ type: string;
37
+ label: string;
38
+ getItemSummary: (item: {
39
+ title?: string;
40
+ }, index?: number) => string;
41
+ arrayFields: {
42
+ title: {
43
+ type: string;
44
+ label: string;
45
+ };
46
+ url: {
47
+ type: string;
48
+ label: string;
49
+ };
50
+ };
51
+ };
52
+ };
53
+ };
54
+ contact: {
55
+ type: string;
56
+ label: string;
57
+ objectFields: {
58
+ label: {
59
+ type: string;
60
+ label: string;
61
+ };
62
+ phone: {
63
+ type: string;
64
+ label: string;
65
+ };
66
+ email: {
67
+ type: string;
68
+ label: string;
69
+ };
70
+ };
71
+ };
72
+ footerLinks: {
73
+ type: string;
74
+ label: string;
75
+ getItemSummary: (item: {
76
+ title?: string;
77
+ }, index?: number) => string;
78
+ arrayFields: {
79
+ title: {
80
+ type: string;
81
+ label: string;
82
+ };
83
+ url: {
84
+ type: string;
85
+ label: string;
86
+ };
87
+ };
88
+ };
89
+ socialMediaLinks: {
90
+ type: string;
91
+ label: string;
92
+ getItemSummary: (item: {
93
+ url?: string;
94
+ }, index?: number) => string;
95
+ arrayFields: {
96
+ url: {
97
+ type: string;
98
+ label: string;
99
+ };
100
+ };
101
+ };
16
102
  footerText: {
17
103
  type: string;
18
104
  };
@@ -2,7 +2,7 @@ import { ContactLinksFooter, ContactLinksFooterDefaults } from "./contact-links-
2
2
  import { imageField } from "../../../puck-core/core/props/media.js";
3
3
  import { footerStyleFields } from "../props.js";
4
4
  import { sectionWrapperFields } from "../../../puck-core/section-wrapper.js";
5
- const conf = { fields: { logo: imageField, footerText: { type: "text" }, styles: { type: "object", label: "Styles", objectFields: { bordered: footerStyleFields.bordered, hasCompanyImage: footerStyleFields.hasCompanyImage, ...sectionWrapperFields } } }, defaultProps: ContactLinksFooterDefaults, render: ContactLinksFooter };
5
+ const conf = { fields: { logo: imageField, address: { type: "object", label: "Address", objectFields: { label: { type: "text", label: "Label" }, value: { type: "text", label: "Value" } } }, columnLinks: { type: "array", label: "Link Columns", getItemSummary: (_item, index = 0) => `Column ${index + 1}`, arrayFields: { links: { type: "array", label: "Links", getItemSummary: (item, index = 0) => item.title || `Link ${index + 1}`, arrayFields: { title: { type: "text", label: "Title" }, url: { type: "text", label: "URL" } } } } }, contact: { type: "object", label: "Contact", objectFields: { label: { type: "text", label: "Label" }, phone: { type: "text", label: "Phone" }, email: { type: "text", label: "Email" } } }, footerLinks: { type: "array", label: "Footer Links", getItemSummary: (item, index = 0) => item.title || `Link ${index + 1}`, arrayFields: { title: { type: "text", label: "Title" }, url: { type: "text", label: "URL" } } }, socialMediaLinks: { type: "array", label: "Social Links", getItemSummary: (item, index = 0) => item.url || `Social ${index + 1}`, arrayFields: { url: { type: "text", label: "URL" } } }, footerText: { type: "text" }, styles: { type: "object", label: "Styles", objectFields: { bordered: footerStyleFields.bordered, hasCompanyImage: footerStyleFields.hasCompanyImage, ...sectionWrapperFields } } }, defaultProps: ContactLinksFooterDefaults, render: ContactLinksFooter };
6
6
  export {
7
7
  ContactLinksFooter,
8
8
  ContactLinksFooterDefaults,
@@ -25,7 +25,8 @@ const CtaLinksFooter = (props) => {
25
25
  ] }) });
26
26
  };
27
27
  const CtaLinksFooterDefaults = {
28
- logo: { url: "#", src: "https://d22po4pjz3o32e.cloudfront.net/logo-image.svg", alt: "Logo image" },
28
+ __metadata: { type: "footer" },
29
+ logo: { url: "#", src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Logo image" },
29
30
  heading: "Medium length footer heading goes here",
30
31
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
31
32
  buttons: [{ label: "Button" }, { label: "Button", variant: "secondary" }],
@@ -38,7 +39,7 @@ const CtaLinksFooterDefaults = {
38
39
  { links: [{ title: "Link One", url: "#" }, { title: "Link Two", url: "#" }, { title: "Link Three", url: "#" }] },
39
40
  { links: [{ title: "Link Four", url: "#" }, { title: "Link Five", url: "#" }, { title: "Link Six", url: "#" }] }
40
41
  ],
41
- footerText: "© 2024 Relume. All rights reserved.",
42
+ footerText: "© 2024 Company. All rights reserved.",
42
43
  footerLinks: [],
43
44
  socialMediaLinks: [],
44
45
  address: { label: "", value: "" },
@@ -100,6 +100,43 @@ declare const conf: {
100
100
  readonly instructions: "Buttons must use the same size";
101
101
  };
102
102
  };
103
+ columnLinks: {
104
+ type: string;
105
+ label: string;
106
+ getItemSummary: (_item: unknown, index?: number) => string;
107
+ arrayFields: {
108
+ links: {
109
+ type: string;
110
+ label: string;
111
+ getItemSummary: (item: {
112
+ title?: string;
113
+ }, index?: number) => string;
114
+ arrayFields: {
115
+ title: {
116
+ type: string;
117
+ label: string;
118
+ };
119
+ url: {
120
+ type: string;
121
+ label: string;
122
+ };
123
+ };
124
+ };
125
+ };
126
+ };
127
+ socialMediaLinks: {
128
+ type: string;
129
+ label: string;
130
+ getItemSummary: (item: {
131
+ url?: string;
132
+ }, index?: number) => string;
133
+ arrayFields: {
134
+ url: {
135
+ type: string;
136
+ label: string;
137
+ };
138
+ };
139
+ };
103
140
  footerText: {
104
141
  type: string;
105
142
  };
@@ -4,7 +4,7 @@ import { buttonsField } from "../../../puck-core/core/props/interactive.js";
4
4
  import { imageField } from "../../../puck-core/core/props/media.js";
5
5
  import { footerStyleFields } from "../props.js";
6
6
  import { sectionWrapperFields } from "../../../puck-core/section-wrapper.js";
7
- const conf = { fields: { logo: imageField, heading: headingField, description: descriptionField, buttons: buttonsField, footerText: { type: "text" }, styles: { type: "object", label: "Styles", objectFields: { bordered: footerStyleFields.bordered, ...sectionWrapperFields } } }, defaultProps: CtaLinksFooterDefaults, render: CtaLinksFooter };
7
+ const conf = { fields: { logo: imageField, heading: headingField, description: descriptionField, buttons: buttonsField, columnLinks: { type: "array", label: "Link Columns", getItemSummary: (_item, index = 0) => `Column ${index + 1}`, arrayFields: { links: { type: "array", label: "Links", getItemSummary: (item, index = 0) => item.title || `Link ${index + 1}`, arrayFields: { title: { type: "text", label: "Title" }, url: { type: "text", label: "URL" } } } } }, socialMediaLinks: { type: "array", label: "Social Links", getItemSummary: (item, index = 0) => item.url || `Social ${index + 1}`, arrayFields: { url: { type: "text", label: "URL" } } }, footerText: { type: "text" }, styles: { type: "object", label: "Styles", objectFields: { bordered: footerStyleFields.bordered, ...sectionWrapperFields } } }, defaultProps: CtaLinksFooterDefaults, render: CtaLinksFooter };
8
8
  export {
9
9
  CtaLinksFooter,
10
10
  CtaLinksFooterDefaults,
@@ -81,6 +81,60 @@ declare const conf: {
81
81
  termsAndConditions: {
82
82
  type: string;
83
83
  };
84
+ columnLinks: {
85
+ type: string;
86
+ label: string;
87
+ getItemSummary: (_item: unknown, index?: number) => string;
88
+ arrayFields: {
89
+ links: {
90
+ type: string;
91
+ label: string;
92
+ getItemSummary: (item: {
93
+ title?: string;
94
+ }, index?: number) => string;
95
+ arrayFields: {
96
+ title: {
97
+ type: string;
98
+ label: string;
99
+ };
100
+ url: {
101
+ type: string;
102
+ label: string;
103
+ };
104
+ };
105
+ };
106
+ };
107
+ };
108
+ footerLinks: {
109
+ type: string;
110
+ label: string;
111
+ getItemSummary: (item: {
112
+ title?: string;
113
+ }, index?: number) => string;
114
+ arrayFields: {
115
+ title: {
116
+ type: string;
117
+ label: string;
118
+ };
119
+ url: {
120
+ type: string;
121
+ label: string;
122
+ };
123
+ };
124
+ };
125
+ socialMediaLinks: {
126
+ type: string;
127
+ label: string;
128
+ getItemSummary: (item: {
129
+ url?: string;
130
+ }, index?: number) => string;
131
+ arrayFields: {
132
+ url: {
133
+ type: string;
134
+ label: string;
135
+ };
136
+ };
137
+ };
84
138
  footerText: {
85
139
  type: string;
86
140
  };
@@ -78,6 +78,47 @@ declare const conf: {
78
78
  termsAndConditions: {
79
79
  type: string;
80
80
  };
81
+ columnLinks: {
82
+ type: string;
83
+ label: string;
84
+ getItemSummary: (_item: unknown, index?: number) => string;
85
+ arrayFields: {
86
+ links: {
87
+ type: string;
88
+ label: string;
89
+ getItemSummary: (item: {
90
+ title?: string;
91
+ }, index?: number) => string;
92
+ arrayFields: {
93
+ title: {
94
+ type: string;
95
+ label: string;
96
+ };
97
+ url: {
98
+ type: string;
99
+ label: string;
100
+ };
101
+ };
102
+ };
103
+ };
104
+ };
105
+ footerLinks: {
106
+ type: string;
107
+ label: string;
108
+ getItemSummary: (item: {
109
+ title?: string;
110
+ }, index?: number) => string;
111
+ arrayFields: {
112
+ title: {
113
+ type: string;
114
+ label: string;
115
+ };
116
+ url: {
117
+ type: string;
118
+ label: string;
119
+ };
120
+ };
121
+ };
81
122
  footerText: {
82
123
  type: string;
83
124
  };
@@ -81,6 +81,60 @@ declare const conf: {
81
81
  termsAndConditions: {
82
82
  type: string;
83
83
  };
84
+ columnLinks: {
85
+ type: string;
86
+ label: string;
87
+ getItemSummary: (_item: unknown, index?: number) => string;
88
+ arrayFields: {
89
+ links: {
90
+ type: string;
91
+ label: string;
92
+ getItemSummary: (item: {
93
+ title?: string;
94
+ }, index?: number) => string;
95
+ arrayFields: {
96
+ title: {
97
+ type: string;
98
+ label: string;
99
+ };
100
+ url: {
101
+ type: string;
102
+ label: string;
103
+ };
104
+ };
105
+ };
106
+ };
107
+ };
108
+ footerLinks: {
109
+ type: string;
110
+ label: string;
111
+ getItemSummary: (item: {
112
+ title?: string;
113
+ }, index?: number) => string;
114
+ arrayFields: {
115
+ title: {
116
+ type: string;
117
+ label: string;
118
+ };
119
+ url: {
120
+ type: string;
121
+ label: string;
122
+ };
123
+ };
124
+ };
125
+ socialMediaLinks: {
126
+ type: string;
127
+ label: string;
128
+ getItemSummary: (item: {
129
+ url?: string;
130
+ }, index?: number) => string;
131
+ arrayFields: {
132
+ url: {
133
+ type: string;
134
+ label: string;
135
+ };
136
+ };
137
+ };
84
138
  footerText: {
85
139
  type: string;
86
140
  };
@@ -57,6 +57,9 @@ export interface FooterSectionBaseProps {
57
57
  contact: FooterContact;
58
58
  companyImages: BaseImage[];
59
59
  styles: FooterSectionStyles;
60
+ __metadata?: {
61
+ type: "footer";
62
+ };
60
63
  }
61
64
  export declare const footerStyleFields: {
62
65
  readonly bordered: {
@@ -112,7 +112,7 @@ const defaultProject = {
112
112
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
113
113
  image: {
114
114
  src: "https://picsum.photos/seed/fullscreen-port/1920/1080",
115
- alt: "Relume placeholder image"
115
+ alt: "Placeholder image"
116
116
  },
117
117
  url: "#",
118
118
  button: { label: "View project", variant: "secondary" }
@@ -159,7 +159,7 @@ const defaultHoverLink = {
159
159
  tag: "Tag",
160
160
  image: {
161
161
  src: "https://picsum.photos/seed/interactive-port/800/800",
162
- alt: "Relume placeholder image"
162
+ alt: "Placeholder image"
163
163
  }
164
164
  };
165
165
  const InteractivePortfolioDefaults = {
@@ -129,7 +129,7 @@ const defaultProject = {
129
129
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros.",
130
130
  image: {
131
131
  src: "https://picsum.photos/seed/portfolio-card/1200/800",
132
- alt: "Relume placeholder image"
132
+ alt: "Placeholder image"
133
133
  },
134
134
  url: "#",
135
135
  button: { label: "View project", variant: "link", size: "sm" },
@@ -96,7 +96,7 @@ const defaultProject = {
96
96
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros.",
97
97
  image: {
98
98
  src: "https://picsum.photos/seed/portfolio-div/1200/800",
99
- alt: "Relume placeholder image"
99
+ alt: "Placeholder image"
100
100
  },
101
101
  url: "#",
102
102
  button: { label: "View project", variant: "link", size: "sm" },
@@ -144,8 +144,18 @@ export declare const galleryStyleFields: {
144
144
  }];
145
145
  };
146
146
  readonly slideBasis: {
147
- readonly type: "text";
147
+ readonly type: "select";
148
148
  readonly label: "Slide Basis";
149
+ readonly options: readonly [{
150
+ readonly label: "4/5";
151
+ readonly value: "4/5";
152
+ }, {
153
+ readonly label: "45%";
154
+ readonly value: "45%";
155
+ }, {
156
+ readonly label: "30%";
157
+ readonly value: "30%";
158
+ }];
149
159
  };
150
160
  readonly bordered: {
151
161
  readonly type: "radio";
@@ -64,8 +64,13 @@ const galleryStyleFields = {
64
64
  ]
65
65
  },
66
66
  slideBasis: {
67
- type: "text",
68
- label: "Slide Basis"
67
+ type: "select",
68
+ label: "Slide Basis",
69
+ options: [
70
+ { label: "4/5", value: "4/5" },
71
+ { label: "45%", value: "45%" },
72
+ { label: "30%", value: "30%" }
73
+ ]
69
74
  },
70
75
  bordered: {
71
76
  type: "radio",
@@ -5,6 +5,7 @@ import { useScroll, useTransform, motion } from "framer-motion";
5
5
  import { cn } from "../../../../utils/css-utils.js";
6
6
  import { SectionWrapper } from "../../../puck-core/section-wrapper.js";
7
7
  import { useScrollContainer } from "../../../../hooks/use-scroll-container.js";
8
+ import { useEditorContext } from "../../../puck-core/core/context/editor-context.js";
8
9
  import { CompoundImage } from "../../../puck-base/image.js";
9
10
  const ScrollParallax = (props) => {
10
11
  const { heading, description, images, styles } = {
@@ -12,6 +13,7 @@ const ScrollParallax = (props) => {
12
13
  ...props
13
14
  };
14
15
  const { className: sectionClassName, style: sectionStyle, css } = styles ?? {};
16
+ const { isEditor } = useEditorContext();
15
17
  const transformRef = useRef(null);
16
18
  const [scrollContainerRef] = useScrollContainer(transformRef);
17
19
  const { scrollYProgress } = useScroll({
@@ -19,6 +21,22 @@ const ScrollParallax = (props) => {
19
21
  ...scrollContainerRef.current ? { container: scrollContainerRef } : {}
20
22
  });
21
23
  const x = useTransform(scrollYProgress, [0, 1], ["0%", "-100%"]);
24
+ if (isEditor) {
25
+ return /* @__PURE__ */ jsxs(SectionWrapper, { ref: transformRef, className: cn(sectionClassName), style: sectionStyle, css, children: [
26
+ /* @__PURE__ */ jsx("div", { className: "px-[5%] pt-16 md:pt-24 lg:pt-28", children: /* @__PURE__ */ jsxs("div", { className: "container text-center", children: [
27
+ /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
28
+ /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
29
+ ] }) }),
30
+ /* @__PURE__ */ jsx("div", { className: "px-[5%] py-12", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3", children: images.map((image, index) => /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx(
31
+ CompoundImage,
32
+ {
33
+ className: "aspect-video w-full object-cover",
34
+ src: image.src,
35
+ alt: image.alt
36
+ }
37
+ ) }, index)) }) })
38
+ ] });
39
+ }
22
40
  return /* @__PURE__ */ jsxs(SectionWrapper, { ref: transformRef, className: cn(sectionClassName), style: sectionStyle, css, children: [
23
41
  /* @__PURE__ */ jsx("div", { className: "px-[5%] pt-16 md:pt-24 lg:pt-28", children: /* @__PURE__ */ jsxs("div", { className: "container text-center", children: [
24
42
  /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
@@ -5,6 +5,7 @@ import { useScroll, useTransform, motion, useSpring, easeOut, easeInOut } from "
5
5
  import { cn } from "../../../../utils/css-utils.js";
6
6
  import { SectionWrapper } from "../../../puck-core/section-wrapper.js";
7
7
  import { useScrollContainer } from "../../../../hooks/use-scroll-container.js";
8
+ import { useEditorContext } from "../../../puck-core/core/context/editor-context.js";
8
9
  import { CompoundImage } from "../../../puck-base/image.js";
9
10
  const ScrollParallaxPortfolio = (props) => {
10
11
  const { projects, styles } = {
@@ -23,6 +24,7 @@ const ThreeImageParallaxVariant = ({
23
24
  sectionStyle,
24
25
  css
25
26
  }) => {
27
+ const { isEditor } = useEditorContext();
26
28
  const transformRef = useRef(null);
27
29
  const [scrollContainerRef] = useScrollContainer(transformRef);
28
30
  const { scrollYProgress } = useScroll({
@@ -76,23 +78,23 @@ const ThreeImageParallaxVariant = ({
76
78
  return /* @__PURE__ */ jsxs(
77
79
  "div",
78
80
  {
79
- className: cn("relative flex h-[500vh] flex-col", {
80
- "mt-[-40vh]": index > 0
81
+ className: cn("relative flex flex-col", isEditor ? "h-auto mb-12" : "h-[500vh]", {
82
+ "mt-[-40vh]": !isEditor && index > 0
81
83
  }),
82
84
  children: [
83
85
  /* @__PURE__ */ jsx(
84
86
  motion.div,
85
87
  {
86
- className: "sticky top-0 flex h-[150vh] justify-center",
87
- style: computedStyles[index].headerStyles,
88
- children: /* @__PURE__ */ jsxs("div", { className: "absolute top-[50vh] -z-10 flex w-full max-w-lg flex-col items-center text-center", children: [
88
+ className: cn("flex justify-center", isEditor ? "relative h-auto py-8" : "sticky top-0 h-[150vh]"),
89
+ style: isEditor ? { opacity: 1, scale: 1 } : computedStyles[index].headerStyles,
90
+ children: /* @__PURE__ */ jsxs("div", { className: cn("-z-10 flex w-full max-w-lg flex-col items-center text-center", isEditor ? "relative" : "absolute top-[50vh]"), children: [
89
91
  /* @__PURE__ */ jsx("h3", { className: "text-5xl font-bold md:text-7xl lg:text-8xl", children: project.title }),
90
92
  project.tags && /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap justify-center gap-2", children: project.tags.map((tag, tagIndex) => /* @__PURE__ */ jsx("li", { className: "flex", children: /* @__PURE__ */ jsx("div", { className: "inline-flex border border-neutral-lightest bg-background-secondary px-2 py-1 text-sm font-semibold text-text-primary", children: tag.label }) }, tagIndex)) })
91
93
  ] })
92
94
  }
93
95
  ),
94
- /* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-10 flex h-screen items-center justify-center overflow-hidden", children: [
95
- /* @__PURE__ */ jsx("a", { href: "#", className: "inline-block max-w-full", children: /* @__PURE__ */ jsx("div", { className: "flex h-screen w-full max-w-lg items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx(
96
+ /* @__PURE__ */ jsxs("div", { className: cn("z-10 flex items-center justify-center overflow-hidden", isEditor ? "relative h-auto" : "sticky top-0 h-screen"), children: [
97
+ /* @__PURE__ */ jsx("a", { href: "#", className: "inline-block max-w-full", children: /* @__PURE__ */ jsx("div", { className: cn("flex w-full max-w-lg items-center justify-center overflow-hidden", isEditor ? "h-auto" : "h-screen"), children: /* @__PURE__ */ jsx(
96
98
  CompoundImage,
97
99
  {
98
100
  src: ((_a = project.imageCenter) == null ? void 0 : _a.src) ?? project.image.src,
@@ -100,11 +102,11 @@ const ThreeImageParallaxVariant = ({
100
102
  className: "size-full object-contain"
101
103
  }
102
104
  ) }) }),
103
- /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-0 right-auto z-20 hidden h-screen w-full max-w-xxs lg:flex", children: /* @__PURE__ */ jsx(
105
+ /* @__PURE__ */ jsx("div", { className: cn("absolute inset-y-0 left-0 right-auto z-20 hidden w-full max-w-xxs lg:flex", isEditor ? "h-auto" : "h-screen"), children: /* @__PURE__ */ jsx(
104
106
  motion.div,
105
107
  {
106
- className: "relative w-full pt-[100vh]",
107
- style: computedStyles[index].imageLeftStyles,
108
+ className: cn("relative w-full", isEditor ? "pt-0" : "pt-[100vh]"),
109
+ style: isEditor ? { y: 0 } : computedStyles[index].imageLeftStyles,
108
110
  children: /* @__PURE__ */ jsx(
109
111
  CompoundImage,
110
112
  {
@@ -115,11 +117,11 @@ const ThreeImageParallaxVariant = ({
115
117
  )
116
118
  }
117
119
  ) }),
118
- /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-auto right-0 z-20 hidden h-screen w-full max-w-xxs lg:flex", children: /* @__PURE__ */ jsx(
120
+ /* @__PURE__ */ jsx("div", { className: cn("absolute inset-y-0 left-auto right-0 z-20 hidden w-full max-w-xxs lg:flex", isEditor ? "h-auto" : "h-screen"), children: /* @__PURE__ */ jsx(
119
121
  motion.div,
120
122
  {
121
- className: "relative w-full pt-[100vh]",
122
- style: computedStyles[index].imageRightStyles,
123
+ className: cn("relative w-full", isEditor ? "pt-0" : "pt-[100vh]"),
124
+ style: isEditor ? { y: 0 } : computedStyles[index].imageRightStyles,
123
125
  children: /* @__PURE__ */ jsx(
124
126
  CompoundImage,
125
127
  {
@@ -131,13 +133,13 @@ const ThreeImageParallaxVariant = ({
131
133
  }
132
134
  ) })
133
135
  ] }),
134
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -z-10 mt-[100vh]" })
136
+ !isEditor && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -z-10 mt-[100vh]" })
135
137
  ]
136
138
  },
137
139
  index
138
140
  );
139
141
  }) }) }),
140
- /* @__PURE__ */ jsx("div", { className: "h-screen" })
142
+ !isEditor && /* @__PURE__ */ jsx("div", { className: "h-screen" })
141
143
  ] });
142
144
  };
143
145
  const ScaleOpacityVariant = ({
@@ -146,13 +148,14 @@ const ScaleOpacityVariant = ({
146
148
  sectionStyle,
147
149
  css
148
150
  }) => {
151
+ const { isEditor } = useEditorContext();
149
152
  const containerRef = useRef(null);
150
153
  const [scrollContainerRef] = useScrollContainer(containerRef);
151
154
  const { scrollYProgress } = useScroll({
152
155
  target: containerRef,
153
156
  ...scrollContainerRef.current ? { container: scrollContainerRef } : {}
154
157
  });
155
- return /* @__PURE__ */ jsx(SectionWrapper, { ref: containerRef, className: cn("relative px-[5%]", sectionClassName), style: sectionStyle, css, children: /* @__PURE__ */ jsx("div", { className: "h-[300vh]", children: /* @__PURE__ */ jsx("div", { className: "sticky top-0 flex h-screen items-center justify-center", children: projects.map((project, index) => {
158
+ return /* @__PURE__ */ jsx(SectionWrapper, { ref: containerRef, className: cn("relative px-[5%]", sectionClassName), style: sectionStyle, css, children: /* @__PURE__ */ jsx("div", { className: isEditor ? "h-auto" : "h-[300vh]", children: /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center", isEditor ? "relative flex-col gap-8 py-12" : "sticky top-0 h-screen"), children: projects.map((project, index) => {
156
159
  const segmentSize = 1 / projects.length;
157
160
  const start = index * segmentSize;
158
161
  const end = start + segmentSize;
@@ -169,8 +172,8 @@ const ScaleOpacityVariant = ({
169
172
  return /* @__PURE__ */ jsx(
170
173
  motion.div,
171
174
  {
172
- style: { opacity, scale },
173
- className: "absolute inset-0 flex items-center justify-center",
175
+ style: isEditor ? { opacity: 1, scale: 1 } : { opacity, scale },
176
+ className: cn("flex items-center justify-center", isEditor ? "relative w-full" : "absolute inset-0"),
174
177
  children: /* @__PURE__ */ jsxs("div", { className: "container max-w-4xl border border-border-primary bg-background-primary p-8 md:p-12", children: [
175
178
  /* @__PURE__ */ jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsx(
176
179
  CompoundImage,
@@ -201,7 +204,7 @@ const defaultProject = {
201
204
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
202
205
  image: {
203
206
  src: "https://picsum.photos/seed/scroll-port/1200/800",
204
- alt: "Relume placeholder image"
207
+ alt: "Placeholder image"
205
208
  },
206
209
  url: "#",
207
210
  button: { label: "View project" },
@@ -212,15 +215,15 @@ const defaultProject = {
212
215
  ],
213
216
  imageCenter: {
214
217
  src: "https://picsum.photos/seed/scroll-port-center/800/1000",
215
- alt: "Relume placeholder center"
218
+ alt: "Placeholder center"
216
219
  },
217
220
  imageLeft: {
218
221
  src: "https://picsum.photos/seed/scroll-port-left/400/600",
219
- alt: "Relume placeholder left"
222
+ alt: "Placeholder left"
220
223
  },
221
224
  imageRight: {
222
225
  src: "https://picsum.photos/seed/scroll-port-right/400/600",
223
- alt: "Relume placeholder right"
226
+ alt: "Placeholder right"
224
227
  }
225
228
  };
226
229
  const ScrollParallaxPortfolioDefaults = {