dune-react 0.0.9 → 0.0.10

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 (197) hide show
  1. package/dist/components/puck-base/button.js +2 -1
  2. package/dist/components/puck-base/core/fields.d.ts +1 -127
  3. package/dist/components/puck-base/core/fields.js +1 -76
  4. package/dist/components/puck-base/core/styles.d.ts +1877 -0
  5. package/dist/components/puck-base/core/styles.js +286 -0
  6. package/dist/components/puck-base/core/with-editable.d.ts +4 -1
  7. package/dist/components/puck-base/core/with-editable.js +51 -27
  8. package/dist/components/puck-block/banner-sections/announcement-banner-1/announcement-banner.d.ts +9 -7
  9. package/dist/components/puck-block/banner-sections/announcement-banner-1/announcement-banner.js +11 -8
  10. package/dist/components/puck-block/banner-sections/announcement-banner-1/index.js +19 -37
  11. package/dist/components/puck-block/banner-sections/marquee-1/index.js +26 -24
  12. package/dist/components/puck-block/banner-sections/marquee-1/marquee.d.ts +9 -9
  13. package/dist/components/puck-block/banner-sections/marquee-1/marquee.js +28 -21
  14. package/dist/components/puck-block/banner-sections/props.d.ts +22 -0
  15. package/dist/components/puck-block/contact-sections/contact-us-1/contact-us.d.ts +13 -4
  16. package/dist/components/puck-block/contact-sections/contact-us-1/contact-us.js +114 -105
  17. package/dist/components/puck-block/contact-sections/contact-us-1/index.js +87 -7
  18. package/dist/components/puck-block/contact-sections/contact-us-2/contact-us-2.d.ts +15 -11
  19. package/dist/components/puck-block/contact-sections/contact-us-2/contact-us-2.js +27 -22
  20. package/dist/components/puck-block/contact-sections/contact-us-2/index.js +54 -52
  21. package/dist/components/puck-block/contact-sections/contact-us-3/contact-us-3.d.ts +15 -12
  22. package/dist/components/puck-block/contact-sections/contact-us-3/contact-us-3.js +29 -24
  23. package/dist/components/puck-block/contact-sections/contact-us-3/index.js +73 -60
  24. package/dist/components/puck-block/contact-sections/props.d.ts +65 -0
  25. package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.d.ts +12 -9
  26. package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.js +27 -30
  27. package/dist/components/puck-block/cta-sections/banner-cta-1/index.js +23 -25
  28. package/dist/components/puck-block/cta-sections/cta-1/cta.d.ts +6 -4
  29. package/dist/components/puck-block/cta-sections/cta-1/cta.js +5 -7
  30. package/dist/components/puck-block/cta-sections/cta-1/index.js +5 -9
  31. package/dist/components/puck-block/cta-sections/gradient-cta-1/gradient-cta.d.ts +10 -10
  32. package/dist/components/puck-block/cta-sections/gradient-cta-1/gradient-cta.js +24 -20
  33. package/dist/components/puck-block/cta-sections/gradient-cta-1/index.js +36 -29
  34. package/dist/components/puck-block/cta-sections/newsletter-signup-1/index.js +13 -5
  35. package/dist/components/puck-block/cta-sections/newsletter-signup-1/newsletter-signup.d.ts +7 -3
  36. package/dist/components/puck-block/cta-sections/newsletter-signup-1/newsletter-signup.js +35 -32
  37. package/dist/components/puck-block/cta-sections/promo-section-1/index.js +4 -5
  38. package/dist/components/puck-block/cta-sections/promo-section-1/promo-section.d.ts +6 -4
  39. package/dist/components/puck-block/cta-sections/promo-section-1/promo-section.js +93 -79
  40. package/dist/components/puck-block/cta-sections/props.d.ts +47 -0
  41. package/dist/components/puck-block/faq-sections/accordion-1/accordion.d.ts +6 -4
  42. package/dist/components/puck-block/faq-sections/accordion-1/accordion.js +39 -33
  43. package/dist/components/puck-block/faq-sections/accordion-1/index.js +3 -5
  44. package/dist/components/puck-block/faq-sections/faq-1/faq.d.ts +9 -7
  45. package/dist/components/puck-block/faq-sections/faq-1/faq.js +50 -44
  46. package/dist/components/puck-block/faq-sections/faq-1/index.js +12 -14
  47. package/dist/components/puck-block/faq-sections/faq-2/faq-2.d.ts +6 -4
  48. package/dist/components/puck-block/faq-sections/faq-2/faq-2.js +4 -6
  49. package/dist/components/puck-block/faq-sections/faq-2/index.js +4 -5
  50. package/dist/components/puck-block/faq-sections/props.d.ts +30 -0
  51. package/dist/components/puck-block/feature-sections/bento-1/bento.d.ts +6 -4
  52. package/dist/components/puck-block/feature-sections/bento-1/bento.js +2 -4
  53. package/dist/components/puck-block/feature-sections/bento-1/index.js +4 -5
  54. package/dist/components/puck-block/feature-sections/feature-cards-1/feature-cards.d.ts +6 -4
  55. package/dist/components/puck-block/feature-sections/feature-cards-1/feature-cards.js +2 -4
  56. package/dist/components/puck-block/feature-sections/feature-cards-1/index.js +4 -5
  57. package/dist/components/puck-block/feature-sections/feature-showcase-1/feature-showcase.d.ts +6 -4
  58. package/dist/components/puck-block/feature-sections/feature-showcase-1/feature-showcase.js +2 -4
  59. package/dist/components/puck-block/feature-sections/feature-showcase-1/index.js +4 -5
  60. package/dist/components/puck-block/feature-sections/icon-grid-1/icon-grid.d.ts +6 -4
  61. package/dist/components/puck-block/feature-sections/icon-grid-1/icon-grid.js +59 -53
  62. package/dist/components/puck-block/feature-sections/icon-grid-1/index.js +7 -8
  63. package/dist/components/puck-block/feature-sections/product-features-1/index.js +4 -5
  64. package/dist/components/puck-block/feature-sections/product-features-1/product-features.d.ts +6 -4
  65. package/dist/components/puck-block/feature-sections/product-features-1/product-features.js +2 -4
  66. package/dist/components/puck-block/feature-sections/props.d.ts +48 -0
  67. package/dist/components/puck-block/footer-sections/footer-1/footer.d.ts +5 -3
  68. package/dist/components/puck-block/footer-sections/footer-1/footer.js +6 -6
  69. package/dist/components/puck-block/footer-sections/footer-1/index.js +3 -5
  70. package/dist/components/puck-block/footer-sections/props.d.ts +31 -0
  71. package/dist/components/puck-block/gallery-sections/gallery-1/gallery.d.ts +9 -7
  72. package/dist/components/puck-block/gallery-sections/gallery-1/gallery.js +48 -40
  73. package/dist/components/puck-block/gallery-sections/gallery-1/index.js +32 -34
  74. package/dist/components/puck-block/gallery-sections/gallery-2/gallery-2.d.ts +6 -4
  75. package/dist/components/puck-block/gallery-sections/gallery-2/gallery-2.js +5 -7
  76. package/dist/components/puck-block/gallery-sections/gallery-2/index.js +3 -5
  77. package/dist/components/puck-block/gallery-sections/gallery-3/gallery-3.d.ts +7 -5
  78. package/dist/components/puck-block/gallery-sections/gallery-3/gallery-3.js +5 -7
  79. package/dist/components/puck-block/gallery-sections/gallery-3/index.js +13 -14
  80. package/dist/components/puck-block/gallery-sections/props.d.ts +26 -0
  81. package/dist/components/puck-block/header-sections/header-1/header.d.ts +7 -5
  82. package/dist/components/puck-block/header-sections/header-1/header.js +8 -9
  83. package/dist/components/puck-block/header-sections/header-1/index.d.ts +1 -1
  84. package/dist/components/puck-block/header-sections/header-1/index.js +13 -12
  85. package/dist/components/puck-block/header-sections/props.d.ts +41 -0
  86. package/dist/components/puck-block/header-sections/sticky-nav-1/index.js +12 -12
  87. package/dist/components/puck-block/header-sections/sticky-nav-1/sticky-nav.d.ts +8 -6
  88. package/dist/components/puck-block/header-sections/sticky-nav-1/sticky-nav.js +5 -5
  89. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/fullscreen-hero.d.ts +7 -5
  90. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/fullscreen-hero.js +5 -4
  91. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/index.js +17 -16
  92. package/dist/components/puck-block/hero-sections/gradient-hero-1/gradient-hero.d.ts +8 -4
  93. package/dist/components/puck-block/hero-sections/gradient-hero-1/gradient-hero.js +36 -26
  94. package/dist/components/puck-block/hero-sections/gradient-hero-1/index.js +18 -15
  95. package/dist/components/puck-block/hero-sections/grid-hero-1/grid-hero.d.ts +7 -6
  96. package/dist/components/puck-block/hero-sections/grid-hero-1/grid-hero.js +7 -10
  97. package/dist/components/puck-block/hero-sections/grid-hero-1/index.js +43 -11
  98. package/dist/components/puck-block/hero-sections/hero-1/hero.d.ts +6 -4
  99. package/dist/components/puck-block/hero-sections/hero-1/hero.js +5 -7
  100. package/dist/components/puck-block/hero-sections/hero-1/index.js +4 -4
  101. package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.d.ts +10 -7
  102. package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.js +65 -59
  103. package/dist/components/puck-block/hero-sections/image-hero-1/index.js +16 -34
  104. package/dist/components/puck-block/hero-sections/props.d.ts +71 -0
  105. package/dist/components/puck-block/hero-sections/split-hero-1/index.js +6 -5
  106. package/dist/components/puck-block/hero-sections/split-hero-1/split-hero.d.ts +8 -8
  107. package/dist/components/puck-block/hero-sections/split-hero-1/split-hero.js +48 -47
  108. package/dist/components/puck-block/hero-sections/video-hero-1/index.js +4 -3
  109. package/dist/components/puck-block/hero-sections/video-hero-1/video-hero.d.ts +6 -2
  110. package/dist/components/puck-block/hero-sections/video-hero-1/video-hero.js +30 -22
  111. package/dist/components/puck-block/location-sections/location-1/index.js +47 -42
  112. package/dist/components/puck-block/location-sections/location-1/location.d.ts +7 -6
  113. package/dist/components/puck-block/location-sections/location-1/location.js +7 -13
  114. package/dist/components/puck-block/location-sections/location-2/index.js +69 -57
  115. package/dist/components/puck-block/location-sections/location-2/location.d.ts +11 -6
  116. package/dist/components/puck-block/location-sections/location-2/location.js +7 -12
  117. package/dist/components/puck-block/location-sections/location-3/index.js +25 -24
  118. package/dist/components/puck-block/location-sections/location-3/location.d.ts +8 -6
  119. package/dist/components/puck-block/location-sections/location-3/location.js +7 -9
  120. package/dist/components/puck-block/location-sections/props.d.ts +45 -0
  121. package/dist/components/puck-block/metrics-sections/props.d.ts +43 -0
  122. package/dist/components/puck-block/metrics-sections/stats-1/index.js +6 -7
  123. package/dist/components/puck-block/metrics-sections/stats-1/stats.d.ts +7 -5
  124. package/dist/components/puck-block/metrics-sections/stats-1/stats.js +61 -55
  125. package/dist/components/puck-block/metrics-sections/stats-2/index.js +4 -5
  126. package/dist/components/puck-block/metrics-sections/stats-2/stats-2.d.ts +6 -4
  127. package/dist/components/puck-block/metrics-sections/stats-2/stats-2.js +4 -6
  128. package/dist/components/puck-block/metrics-sections/stats-3/index.js +21 -29
  129. package/dist/components/puck-block/metrics-sections/stats-3/stats-3.d.ts +7 -6
  130. package/dist/components/puck-block/metrics-sections/stats-3/stats-3.js +9 -13
  131. package/dist/components/puck-block/pricing-sections/comparison-1/comparison.d.ts +7 -5
  132. package/dist/components/puck-block/pricing-sections/comparison-1/comparison.js +45 -39
  133. package/dist/components/puck-block/pricing-sections/comparison-1/index.js +5 -7
  134. package/dist/components/puck-block/pricing-sections/pricing-1/index.js +10 -11
  135. package/dist/components/puck-block/pricing-sections/pricing-1/pricing.d.ts +8 -6
  136. package/dist/components/puck-block/pricing-sections/pricing-1/pricing.js +47 -35
  137. package/dist/components/puck-block/pricing-sections/pricing-2/index.js +7 -8
  138. package/dist/components/puck-block/pricing-sections/pricing-2/pricing-2.d.ts +6 -4
  139. package/dist/components/puck-block/pricing-sections/pricing-2/pricing-2.js +60 -57
  140. package/dist/components/puck-block/pricing-sections/props.d.ts +46 -0
  141. package/dist/components/puck-block/showcase-sections/before-after-1/before-after.d.ts +7 -5
  142. package/dist/components/puck-block/showcase-sections/before-after-1/before-after.js +8 -10
  143. package/dist/components/puck-block/showcase-sections/before-after-1/index.js +6 -7
  144. package/dist/components/puck-block/showcase-sections/case-study-1/case-study.d.ts +6 -2
  145. package/dist/components/puck-block/showcase-sections/case-study-1/case-study.js +29 -21
  146. package/dist/components/puck-block/showcase-sections/case-study-1/index.js +4 -3
  147. package/dist/components/puck-block/showcase-sections/props.d.ts +48 -0
  148. package/dist/components/puck-block/showcase-sections/step-by-step-1/index.js +3 -5
  149. package/dist/components/puck-block/showcase-sections/step-by-step-1/step-by-step.d.ts +6 -4
  150. package/dist/components/puck-block/showcase-sections/step-by-step-1/step-by-step.js +38 -41
  151. package/dist/components/puck-block/team-sections/props.d.ts +39 -0
  152. package/dist/components/puck-block/team-sections/team-grid-1/index.js +4 -5
  153. package/dist/components/puck-block/team-sections/team-grid-1/team-grid.d.ts +6 -4
  154. package/dist/components/puck-block/team-sections/team-grid-1/team-grid.js +23 -17
  155. package/dist/components/puck-block/team-sections/team-grid-2/index.js +4 -5
  156. package/dist/components/puck-block/team-sections/team-grid-2/team-grid-2.d.ts +6 -4
  157. package/dist/components/puck-block/team-sections/team-grid-2/team-grid-2.js +5 -7
  158. package/dist/components/puck-block/team-sections/team-profiles-1/index.js +4 -5
  159. package/dist/components/puck-block/team-sections/team-profiles-1/team-profiles.d.ts +6 -4
  160. package/dist/components/puck-block/team-sections/team-profiles-1/team-profiles.js +5 -7
  161. package/dist/components/puck-block/testimonial-sections/customers-1/customers.d.ts +9 -7
  162. package/dist/components/puck-block/testimonial-sections/customers-1/customers.js +8 -11
  163. package/dist/components/puck-block/testimonial-sections/customers-1/index.js +17 -17
  164. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/index.js +15 -12
  165. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/logo-marquee.d.ts +7 -3
  166. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/logo-marquee.js +33 -24
  167. package/dist/components/puck-block/testimonial-sections/logo-wall-1/index.js +17 -16
  168. package/dist/components/puck-block/testimonial-sections/logo-wall-1/logo-wall.d.ts +6 -4
  169. package/dist/components/puck-block/testimonial-sections/logo-wall-1/logo-wall.js +5 -7
  170. package/dist/components/puck-block/testimonial-sections/props.d.ts +34 -0
  171. package/dist/components/puck-block/testimonial-sections/review-section-1/index.js +16 -15
  172. package/dist/components/puck-block/testimonial-sections/review-section-1/review-section.d.ts +8 -6
  173. package/dist/components/puck-block/testimonial-sections/review-section-1/review-section.js +22 -17
  174. package/dist/components/puck-block/testimonial-sections/testimonials-1/index.js +17 -17
  175. package/dist/components/puck-block/testimonial-sections/testimonials-1/testimonials.d.ts +8 -6
  176. package/dist/components/puck-block/testimonial-sections/testimonials-1/testimonials.js +76 -63
  177. package/dist/components/puck-block/text-sections/articles-1/articles.d.ts +7 -5
  178. package/dist/components/puck-block/text-sections/articles-1/articles.js +41 -34
  179. package/dist/components/puck-block/text-sections/articles-1/index.js +24 -24
  180. package/dist/components/puck-block/text-sections/content-section-1/content-section.d.ts +7 -5
  181. package/dist/components/puck-block/text-sections/content-section-1/content-section.js +6 -8
  182. package/dist/components/puck-block/text-sections/content-section-1/index.js +14 -14
  183. package/dist/components/puck-block/text-sections/props.d.ts +58 -0
  184. package/dist/components/puck-block/text-sections/rich-text-1/index.js +13 -15
  185. package/dist/components/puck-block/text-sections/rich-text-1/rich-text.d.ts +7 -5
  186. package/dist/components/puck-block/text-sections/rich-text-1/rich-text.js +11 -11
  187. package/dist/components/puck-block/text-sections/tab-section-1/index.js +4 -5
  188. package/dist/components/puck-block/text-sections/tab-section-1/tab-section.d.ts +6 -4
  189. package/dist/components/puck-block/text-sections/tab-section-1/tab-section.js +3 -5
  190. package/dist/components/puck-block/text-sections/timeline-1/index.js +3 -5
  191. package/dist/components/puck-block/text-sections/timeline-1/timeline.d.ts +6 -4
  192. package/dist/components/puck-block/text-sections/timeline-1/timeline.js +3 -5
  193. package/dist/components/puck-block/text-sections/two-column-1/index.js +4 -6
  194. package/dist/components/puck-block/text-sections/two-column-1/two-column.d.ts +6 -4
  195. package/dist/components/puck-block/text-sections/two-column-1/two-column.js +5 -7
  196. package/dist/index.js +2 -1
  197. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
- import { paddingDefaults, backgroundColor, sectionStyle, padding, description, heading } from "../../../puck-base/core/fields.js";
1
+ import { description, heading } from "../../../puck-base/core/fields.js";
2
2
  import { Gallery } from "./gallery.js";
3
+ import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
3
4
  const defaultImage = {
4
5
  src: "https://dummyimage.com/800x600/f5f4f4/101010.png&text=Gallery+Image",
5
6
  alt: "Gallery image",
@@ -20,47 +21,44 @@ const conf = {
20
21
  },
21
22
  defaultItemProps: defaultImage
22
23
  },
23
- columns: {
24
- type: "select",
25
- options: [
26
- { label: "2 Columns", value: 2 },
27
- { label: "3 Columns", value: 3 },
28
- { label: "4 Columns", value: 4 }
29
- ]
30
- },
31
- gap: {
32
- type: "select",
33
- label: "Gap Size",
34
- options: [
35
- { label: "Small", value: "sm" },
36
- { label: "Medium", value: "md" },
37
- { label: "Large", value: "lg" }
38
- ]
39
- },
40
- aspectRatio: {
41
- type: "select",
42
- label: "Aspect Ratio",
43
- options: [
44
- { label: "Square", value: "square" },
45
- { label: "Landscape (16:9)", value: "landscape" },
46
- { label: "Auto (original)", value: "auto" }
47
- ]
48
- },
49
- padding,
50
- sectionStyle,
51
- backgroundColor
24
+ styles: createStylesField({
25
+ columns: {
26
+ type: "select",
27
+ label: "Columns",
28
+ options: [
29
+ { label: "2 Columns", value: 2 },
30
+ { label: "3 Columns", value: 3 },
31
+ { label: "4 Columns", value: 4 }
32
+ ]
33
+ },
34
+ gap: {
35
+ type: "select",
36
+ label: "Gap Size",
37
+ options: [
38
+ { label: "Small", value: "sm" },
39
+ { label: "Medium", value: "md" },
40
+ { label: "Large", value: "lg" }
41
+ ]
42
+ },
43
+ aspectRatio: {
44
+ type: "select",
45
+ label: "Aspect Ratio",
46
+ options: [
47
+ { label: "Square", value: "square" },
48
+ { label: "Landscape (16:9)", value: "landscape" },
49
+ { label: "Auto (original)", value: "auto" }
50
+ ]
51
+ }
52
+ })
52
53
  },
53
54
  defaultProps: {
54
55
  heading: "Our Gallery",
55
56
  description: "A showcase of our finest work and moments.",
56
- columns: 3,
57
- gap: "md",
58
- aspectRatio: "auto",
59
57
  images: Array.from({ length: 6 }).map((_, i) => ({
60
58
  ...defaultImage,
61
59
  alt: `Gallery image ${i + 1}`
62
60
  })),
63
- padding: paddingDefaults
61
+ styles: createStylesDefaults({ columns: 3, gap: "md", aspectRatio: "auto" })
64
62
  },
65
63
  render: Gallery
66
64
  };
@@ -4,11 +4,13 @@ export interface Gallery2Image {
4
4
  alt?: string;
5
5
  }
6
6
  export interface Gallery2Props {
7
- padding?: CompoundContainerProps["padding"];
8
- sectionStyle?: CompoundContainerProps["sectionStyle"];
9
- backgroundColor?: string;
10
7
  heading?: string;
11
8
  description?: string;
12
9
  images?: Gallery2Image[];
10
+ styles?: {
11
+ padding?: CompoundContainerProps["padding"];
12
+ sectionStyle?: CompoundContainerProps["sectionStyle"];
13
+ backgroundColor?: string;
14
+ };
13
15
  }
14
- export declare const Gallery2: ({ padding, sectionStyle, backgroundColor, heading, description, images, }: Gallery2Props) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const Gallery2: ({ heading, description, images, styles, }: Gallery2Props) => import("react/jsx-runtime").JSX.Element;
@@ -6,12 +6,10 @@ import { ChevronLeft, ChevronRight } from "lucide-react";
6
6
  import { CompoundContainer } from "../../../puck-base/container.js";
7
7
  import { CompoundImage } from "../../../puck-base/image.js";
8
8
  const Gallery2 = ({
9
- padding,
10
- sectionStyle,
11
- backgroundColor,
12
9
  heading,
13
10
  description,
14
- images = []
11
+ images = [],
12
+ styles
15
13
  }) => {
16
14
  const [emblaRef, emblaApi] = useEmblaCarousel({ align: "start", loop: false });
17
15
  const [canScrollPrev, setCanScrollPrev] = useState(false);
@@ -34,9 +32,9 @@ const Gallery2 = ({
34
32
  return /* @__PURE__ */ jsx(
35
33
  CompoundContainer,
36
34
  {
37
- padding,
38
- sectionStyle,
39
- backgroundColor,
35
+ padding: styles == null ? void 0 : styles.padding,
36
+ sectionStyle: styles == null ? void 0 : styles.sectionStyle,
37
+ backgroundColor: styles == null ? void 0 : styles.backgroundColor,
40
38
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
41
39
  (heading || description) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between lg:gap-8", children: [
42
40
  heading && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 lg:basis-1/2", children: /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight text-foreground lg:text-4xl", children: heading }) }),
@@ -1,5 +1,5 @@
1
- import { paddingDefaults, backgroundColor, sectionStyle, padding } from "../../../puck-base/core/fields.js";
2
1
  import { Gallery2 } from "./gallery-2.js";
2
+ import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
3
3
  const defaultImage = {
4
4
  src: "https://dummyimage.com/1400x700/f5f4f4/101010.png&text=Gallery+Image",
5
5
  alt: "Gallery image"
@@ -24,9 +24,7 @@ const conf = {
24
24
  },
25
25
  defaultItemProps: defaultImage
26
26
  },
27
- padding,
28
- sectionStyle,
29
- backgroundColor
27
+ styles: createStylesField()
30
28
  },
31
29
  defaultProps: {
32
30
  heading: "Real transformations from real training",
@@ -35,7 +33,7 @@ const conf = {
35
33
  ...defaultImage,
36
34
  alt: `Gallery image ${i + 1}`
37
35
  })),
38
- padding: paddingDefaults
36
+ styles: createStylesDefaults()
39
37
  },
40
38
  render: Gallery2
41
39
  };
@@ -5,13 +5,15 @@ export interface Gallery3Image {
5
5
  caption?: string;
6
6
  }
7
7
  export interface Gallery3Props {
8
- padding?: CompoundContainerProps["padding"];
9
- sectionStyle?: CompoundContainerProps["sectionStyle"];
10
- backgroundColor?: string;
11
8
  heading?: string;
12
9
  description?: string;
13
10
  images?: Gallery3Image[];
14
11
  showCaptions?: boolean;
15
- gap?: "sm" | "md" | "lg";
12
+ styles?: {
13
+ padding?: CompoundContainerProps["padding"];
14
+ sectionStyle?: CompoundContainerProps["sectionStyle"];
15
+ backgroundColor?: string;
16
+ gap?: "sm" | "md" | "lg";
17
+ };
16
18
  }
17
- export declare const Gallery3: ({ padding, sectionStyle, backgroundColor, heading, description, images, showCaptions, gap, }: Gallery3Props) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const Gallery3: ({ heading, description, images, showCaptions, styles, }: Gallery3Props) => import("react/jsx-runtime").JSX.Element;
@@ -37,23 +37,21 @@ function ImageCard({
37
37
  );
38
38
  }
39
39
  const Gallery3 = ({
40
- padding,
41
- sectionStyle,
42
- backgroundColor,
43
40
  heading,
44
41
  description,
45
42
  images = [],
46
43
  showCaptions = true,
47
- gap = "md"
44
+ styles
48
45
  }) => {
46
+ const gap = (styles == null ? void 0 : styles.gap) ?? "md";
49
47
  const gc = gapClasses[gap] ?? gapClasses.md;
50
48
  const [img1, img2, img3, ...rest] = images;
51
49
  return /* @__PURE__ */ jsx(
52
50
  CompoundContainer,
53
51
  {
54
- padding,
55
- sectionStyle,
56
- backgroundColor,
52
+ padding: styles == null ? void 0 : styles.padding,
53
+ sectionStyle: styles == null ? void 0 : styles.sectionStyle,
54
+ backgroundColor: styles == null ? void 0 : styles.backgroundColor,
57
55
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8 lg:gap-12", children: [
58
56
  (heading || description) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between", children: [
59
57
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children: heading && /* @__PURE__ */ jsx("h2", { className: "text-4xl font-bold tracking-tight text-foreground lg:text-5xl", children: heading }) }),
@@ -1,5 +1,6 @@
1
- import { paddingDefaults, backgroundColor, sectionStyle, padding, getPlaceholderImageUrl } from "../../../puck-base/core/fields.js";
1
+ import { getPlaceholderImageUrl } from "../../../puck-base/core/fields.js";
2
2
  import { Gallery3 } from "./gallery-3.js";
3
+ import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
3
4
  const makeDefaultImage = (i) => ({
4
5
  src: getPlaceholderImageUrl("1200x800", `Gallery Image ${i + 1}`),
5
6
  alt: `Gallery image ${i + 1}`,
@@ -33,25 +34,23 @@ const conf = {
33
34
  { label: "隐藏", value: false }
34
35
  ]
35
36
  },
36
- gap: {
37
- type: "radio",
38
- options: [
39
- { label: "紧凑", value: "sm" },
40
- { label: "默认", value: "md" },
41
- { label: "宽松", value: "lg" }
42
- ]
43
- },
44
- padding,
45
- sectionStyle,
46
- backgroundColor
37
+ styles: createStylesField({
38
+ gap: {
39
+ type: "radio",
40
+ options: [
41
+ { label: "紧凑", value: "sm" },
42
+ { label: "默认", value: "md" },
43
+ { label: "宽松", value: "lg" }
44
+ ]
45
+ }
46
+ })
47
47
  },
48
48
  defaultProps: {
49
49
  heading: "Crafted with intention",
50
50
  description: "A curated selection of moments that define our work and vision.",
51
51
  images: Array.from({ length: 6 }, (_, i) => makeDefaultImage(i)),
52
52
  showCaptions: true,
53
- gap: "md",
54
- padding: paddingDefaults
53
+ styles: createStylesDefaults({ gap: "md" })
55
54
  },
56
55
  render: Gallery3
57
56
  };
@@ -0,0 +1,26 @@
1
+ type GalleryVariant = "gallery-1" | "gallery-2" | "gallery-3";
2
+ type GalleryPadding = {
3
+ top?: "none" | "small" | "medium" | "large";
4
+ bottom?: "none" | "small" | "medium" | "large";
5
+ };
6
+ type GallerySectionStyle = "default" | "dark" | "muted" | "inverted" | "custom";
7
+ type GalleryImage = {
8
+ src: string;
9
+ alt?: string;
10
+ caption?: string;
11
+ };
12
+ type GallerySectionProps = {
13
+ variant?: GalleryVariant;
14
+ heading?: string;
15
+ description?: string;
16
+ images?: GalleryImage[];
17
+ showCaptions?: boolean;
18
+ styles?: {
19
+ padding?: GalleryPadding;
20
+ sectionStyle?: GallerySectionStyle;
21
+ backgroundColor?: string;
22
+ columns?: 2 | 3 | 4;
23
+ gap?: "sm" | "md" | "lg";
24
+ aspectRatio?: "square" | "landscape" | "auto";
25
+ };
26
+ };
@@ -24,10 +24,12 @@ type NavigationItem = NavigationLink & {
24
24
  };
25
25
  export interface HeaderProps extends ILayoutProps {
26
26
  companyName: string;
27
- primaryNavigation?: NavigationItem[];
28
- secondaryNavigation?: SecondaryNavigationItem[];
29
- sectionStyle?: "default" | "dark" | "muted" | "inverted";
30
- backgroundColor?: string;
27
+ navigation?: NavigationItem[];
28
+ actions?: SecondaryNavigationItem[];
29
+ styles?: {
30
+ sectionStyle?: "default" | "dark" | "muted" | "inverted";
31
+ backgroundColor?: string;
32
+ };
31
33
  }
32
- export declare const Header: ({ companyName, primaryNavigation, secondaryNavigation, sectionStyle, backgroundColor, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const Header: ({ companyName, navigation, actions, styles, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
33
35
  export {};
@@ -29,24 +29,23 @@ const HEADER_SECTION_VARS = {
29
29
  };
30
30
  const Header = ({
31
31
  companyName,
32
- primaryNavigation,
33
- secondaryNavigation,
34
- sectionStyle,
35
- backgroundColor
32
+ navigation,
33
+ actions,
34
+ styles
36
35
  }) => {
37
36
  const [isOpen, setOpen] = useState(false);
38
- const sectionVars = sectionStyle && sectionStyle !== "default" ? HEADER_SECTION_VARS[sectionStyle] ?? {} : {};
37
+ const sectionVars = (styles == null ? void 0 : styles.sectionStyle) && styles.sectionStyle !== "default" ? HEADER_SECTION_VARS[styles.sectionStyle] ?? {} : {};
39
38
  return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(
40
39
  "header",
41
40
  {
42
41
  className: cn("bg-background text-foreground sticky top-0 left-0 z-40 w-full"),
43
42
  style: {
44
- ...backgroundColor ? { backgroundColor } : {},
43
+ ...(styles == null ? void 0 : styles.backgroundColor) ? { backgroundColor: styles.backgroundColor } : {},
45
44
  ...sectionVars
46
45
  },
47
46
  children: /* @__PURE__ */ jsxs("div", { className: "relative container mx-auto flex min-h-20 flex-row items-center gap-4 lg:grid lg:grid-cols-[auto_1fr_auto]", children: [
48
47
  /* @__PURE__ */ jsx("div", { className: "flex lg:justify-start", children: /* @__PURE__ */ jsx("p", { className: "font-semibold whitespace-nowrap", children: companyName }) }),
49
- /* @__PURE__ */ jsx("div", { className: "hidden flex-row items-center justify-center gap-4 lg:flex", children: Array.isArray(primaryNavigation) && primaryNavigation.length > 0 ? /* @__PURE__ */ jsx(NavigationMenu, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(NavigationMenuList, { className: "flex flex-row justify-center gap-4", children: primaryNavigation.map((item, index) => {
48
+ /* @__PURE__ */ jsx("div", { className: "hidden flex-row items-center justify-center gap-4 lg:flex", children: Array.isArray(navigation) && navigation.length > 0 ? /* @__PURE__ */ jsx(NavigationMenu, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(NavigationMenuList, { className: "flex flex-row justify-center gap-4", children: navigation.map((item, index) => {
50
49
  var _a, _b;
51
50
  return /* @__PURE__ */ jsx(NavigationMenuItem, { children: item.url ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsx(
52
51
  CompoundButton,
@@ -98,7 +97,7 @@ const Header = ({
98
97
  ] }) })
99
98
  ] }) }, index);
100
99
  }) }) }) : null }),
101
- /* @__PURE__ */ jsx("div", { className: "flex w-full justify-end gap-4", children: secondaryNavigation == null ? void 0 : secondaryNavigation.map((item, index) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
100
+ /* @__PURE__ */ jsx("div", { className: "flex w-full justify-end gap-4", children: actions == null ? void 0 : actions.map((item, index) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
102
101
  /* @__PURE__ */ jsx(
103
102
  CompoundButton,
104
103
  {
@@ -125,7 +124,7 @@ const Header = ({
125
124
  children: isOpen ? /* @__PURE__ */ jsx(X, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx(Menu, { className: "h-5 w-5" })
126
125
  }
127
126
  ),
128
- isOpen && /* @__PURE__ */ jsx("div", { className: "bg-background absolute top-20 right-0 container flex w-full flex-col gap-8 border-t py-4 shadow-lg", children: primaryNavigation == null ? void 0 : primaryNavigation.map((item, index) => /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
127
+ isOpen && /* @__PURE__ */ jsx("div", { className: "bg-background absolute top-20 right-0 container flex w-full flex-col gap-8 border-t py-4 shadow-lg", children: navigation == null ? void 0 : navigation.map((item, index) => /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
129
128
  item.url ? /* @__PURE__ */ jsxs(
130
129
  "a",
131
130
  {
@@ -1,7 +1,7 @@
1
1
  import { ComponentConfig } from "@puckeditor/core";
2
2
  import { HeaderProps } from "./header";
3
3
  export type { HeaderProps };
4
- export declare const defaultPrimaryNavigationItems: ({
4
+ export declare const defaultNavigationItems: ({
5
5
  label: string;
6
6
  url: string;
7
7
  description: string;
@@ -1,6 +1,8 @@
1
+ "use client";
1
2
  import { Header } from "./header.js";
2
- import { backgroundColor, sectionStyle, actionDefaults, button, action } from "../../../puck-base/core/fields.js";
3
- const defaultPrimaryNavigationItems = [
3
+ import { actionDefaults, button, action } from "../../../puck-base/core/fields.js";
4
+ import { createStylesField } from "../../../puck-base/core/styles.js";
5
+ const defaultNavigationItems = [
4
6
  {
5
7
  label: "Home",
6
8
  url: "/",
@@ -73,7 +75,7 @@ const defaultPrimaryNavigationItems = [
73
75
  ]
74
76
  }
75
77
  ];
76
- const defaultSecondaryNavigationItems = [
78
+ const defaultActionItems = [
77
79
  {
78
80
  label: "Book a demo",
79
81
  url: "#",
@@ -105,8 +107,8 @@ const conf = {
105
107
  label: "company name",
106
108
  type: "text"
107
109
  },
108
- primaryNavigation: {
109
- label: "primary navigation",
110
+ navigation: {
111
+ label: "navigation",
110
112
  type: "array",
111
113
  max: 4,
112
114
  getItemSummary: (item, index = 0) => item.label || `Link ${index + 1}`,
@@ -142,8 +144,8 @@ const conf = {
142
144
  items: []
143
145
  }
144
146
  },
145
- secondaryNavigation: {
146
- label: "secondary navigation",
147
+ actions: {
148
+ label: "actions",
147
149
  type: "array",
148
150
  max: 4,
149
151
  getItemSummary: (item, index = 0) => item.label || `Link ${index}`,
@@ -179,13 +181,12 @@ const conf = {
179
181
  isHiddenOnMobile: "true"
180
182
  }
181
183
  },
182
- sectionStyle,
183
- backgroundColor
184
+ styles: createStylesField()
184
185
  },
185
186
  defaultProps: {
186
187
  companyName: "TWBlocks",
187
- primaryNavigation: defaultPrimaryNavigationItems,
188
- secondaryNavigation: defaultSecondaryNavigationItems,
188
+ navigation: defaultNavigationItems,
189
+ actions: defaultActionItems,
189
190
  __metadata: {
190
191
  type: "layout"
191
192
  }
@@ -194,5 +195,5 @@ const conf = {
194
195
  };
195
196
  export {
196
197
  conf as default,
197
- defaultPrimaryNavigationItems
198
+ defaultNavigationItems
198
199
  };
@@ -0,0 +1,41 @@
1
+ type HeaderVariant = "header-1" | "sticky-nav-1";
2
+ type HeaderPadding = {
3
+ top?: "none" | "small" | "medium" | "large";
4
+ bottom?: "none" | "small" | "medium" | "large";
5
+ };
6
+ type HeaderSectionStyle = "default" | "dark" | "muted" | "inverted" | "custom";
7
+ type HeaderButton = {
8
+ label: string;
9
+ url?: string;
10
+ action?: string;
11
+ variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
12
+ size?: "default" | "sm" | "lg" | "icon";
13
+ icon?: string;
14
+ divider?: boolean;
15
+ isHiddenOnMobile?: boolean;
16
+ };
17
+ type HeaderNavigationItem = {
18
+ label: string;
19
+ url?: string;
20
+ description?: string;
21
+ cta?: HeaderButton;
22
+ items?: Array<{
23
+ label: string;
24
+ url: string;
25
+ }>;
26
+ };
27
+ type HeaderSectionProps = {
28
+ variant?: HeaderVariant;
29
+ __metadata?: {
30
+ type: "layout";
31
+ };
32
+ companyName?: string;
33
+ logo?: string;
34
+ navigation?: HeaderNavigationItem[];
35
+ actions?: HeaderButton[];
36
+ styles?: {
37
+ padding?: HeaderPadding;
38
+ sectionStyle?: HeaderSectionStyle;
39
+ backgroundColor?: string;
40
+ };
41
+ };
@@ -1,26 +1,26 @@
1
- import { backgroundColor, sectionStyle } from "../../../puck-base/core/fields.js";
2
1
  import { StickyNav } from "./sticky-nav.js";
2
+ import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
3
3
  const conf = {
4
4
  fields: {
5
5
  logo: { type: "text", contentEditable: true },
6
- links: {
6
+ navigation: {
7
7
  type: "array",
8
8
  max: 8,
9
9
  getItemSummary: (item, i = 0) => item.label || `Link ${i + 1}`,
10
- arrayFields: { label: { type: "text" }, href: { type: "text" } },
11
- defaultItemProps: { label: "Link", href: "#" }
10
+ arrayFields: { label: { type: "text" }, url: { type: "text" } },
11
+ defaultItemProps: { label: "Link", url: "#" }
12
12
  },
13
- sectionStyle,
14
- backgroundColor
13
+ styles: createStylesField()
15
14
  },
16
15
  defaultProps: {
17
16
  logo: "Brand",
18
- links: [
19
- { label: "Features", href: "#features" },
20
- { label: "Pricing", href: "#pricing" },
21
- { label: "About", href: "#about" },
22
- { label: "Contact", href: "#contact" }
23
- ]
17
+ navigation: [
18
+ { label: "Features", url: "#features" },
19
+ { label: "Pricing", url: "#pricing" },
20
+ { label: "About", url: "#about" },
21
+ { label: "Contact", url: "#contact" }
22
+ ],
23
+ styles: createStylesDefaults()
24
24
  },
25
25
  render: StickyNav
26
26
  };
@@ -1,12 +1,14 @@
1
1
  import { type CompoundContainerProps } from "@/components/puck-base/container";
2
2
  export interface StickyNavProps {
3
- padding?: CompoundContainerProps["padding"];
4
- sectionStyle?: CompoundContainerProps["sectionStyle"];
5
- backgroundColor?: string;
6
- links?: Array<{
3
+ navigation?: Array<{
7
4
  label: string;
8
- href: string;
5
+ url: string;
9
6
  }>;
10
7
  logo?: string;
8
+ styles?: {
9
+ padding?: CompoundContainerProps["padding"];
10
+ sectionStyle?: CompoundContainerProps["sectionStyle"];
11
+ backgroundColor?: string;
12
+ };
11
13
  }
12
- export declare const StickyNav: ({ links, logo, sectionStyle, backgroundColor }: StickyNavProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const StickyNav: ({ navigation, logo, styles }: StickyNavProps) => import("react/jsx-runtime").JSX.Element;
@@ -19,22 +19,22 @@ const NAV_SECTION_VARS = {
19
19
  "--border": "oklch(0.87 0 0)"
20
20
  }
21
21
  };
22
- const StickyNav = ({ links = [], logo, sectionStyle, backgroundColor }) => {
23
- const sectionVars = sectionStyle && sectionStyle !== "default" ? NAV_SECTION_VARS[sectionStyle] ?? {} : {};
22
+ const StickyNav = ({ navigation = [], logo, styles }) => {
23
+ const sectionVars = (styles == null ? void 0 : styles.sectionStyle) && styles.sectionStyle !== "default" ? NAV_SECTION_VARS[styles.sectionStyle] ?? {} : {};
24
24
  return /* @__PURE__ */ jsx(
25
25
  "nav",
26
26
  {
27
27
  className: "bg-background/80 border-border sticky top-0 z-50 border-b backdrop-blur-md",
28
28
  style: {
29
- ...backgroundColor ? { backgroundColor } : {},
29
+ ...(styles == null ? void 0 : styles.backgroundColor) ? { backgroundColor: styles.backgroundColor } : {},
30
30
  ...sectionVars
31
31
  },
32
32
  children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6 lg:px-8", children: [
33
33
  /* @__PURE__ */ jsx("span", { className: "text-foreground text-lg font-bold", children: logo || "Brand" }),
34
- /* @__PURE__ */ jsx("div", { className: "hidden gap-6 md:flex", children: links.map((link, i) => /* @__PURE__ */ jsx(
34
+ /* @__PURE__ */ jsx("div", { className: "hidden gap-6 md:flex", children: navigation.map((link, i) => /* @__PURE__ */ jsx(
35
35
  "a",
36
36
  {
37
- href: link.href || "#",
37
+ href: link.url || "#",
38
38
  className: "text-muted-foreground hover:text-foreground text-sm transition-colors",
39
39
  children: link.label
40
40
  },
@@ -1,9 +1,6 @@
1
1
  import { CompoundContainerProps } from "@/components/puck-base/container";
2
2
  import { CompoundButtonProps } from "@/components/puck-base/button";
3
3
  export interface FullscreenHeroProps {
4
- padding?: CompoundContainerProps["padding"];
5
- sectionStyle?: CompoundContainerProps["sectionStyle"];
6
- backgroundColor?: string;
7
4
  heading?: string;
8
5
  description?: string;
9
6
  badge?: {
@@ -16,6 +13,11 @@ export interface FullscreenHeroProps {
16
13
  src: string;
17
14
  alt?: string;
18
15
  } | string;
19
- overlay?: "none" | "dark" | "gradient";
16
+ styles?: {
17
+ padding?: CompoundContainerProps["padding"];
18
+ sectionStyle?: CompoundContainerProps["sectionStyle"];
19
+ backgroundColor?: string;
20
+ overlay?: "none" | "dark" | "gradient";
21
+ };
20
22
  }
21
- export declare const FullscreenHero: ({ padding, sectionStyle, backgroundColor, heading, description, badge, buttons, backgroundImage, overlay, }: FullscreenHeroProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const FullscreenHero: ({ heading, description, badge, buttons, backgroundImage, styles, }: FullscreenHeroProps) => import("react/jsx-runtime").JSX.Element;
@@ -8,16 +8,17 @@ const overlayStyles = {
8
8
  gradient: "bg-gradient-to-t from-black/80 to-black/10"
9
9
  };
10
10
  const FullscreenHero = ({
11
- padding,
12
- sectionStyle = "dark",
13
- backgroundColor,
14
11
  heading = "",
15
12
  description,
16
13
  badge,
17
14
  buttons,
18
15
  backgroundImage,
19
- overlay = "dark"
16
+ styles
20
17
  }) => {
18
+ const sectionStyle = (styles == null ? void 0 : styles.sectionStyle) ?? "dark";
19
+ const overlay = (styles == null ? void 0 : styles.overlay) ?? "dark";
20
+ const backgroundColor = styles == null ? void 0 : styles.backgroundColor;
21
+ const padding = styles == null ? void 0 : styles.padding;
21
22
  const bgSrc = typeof backgroundImage === "string" ? backgroundImage : backgroundImage == null ? void 0 : backgroundImage.src;
22
23
  const bgAlt = typeof backgroundImage === "string" ? "" : (backgroundImage == null ? void 0 : backgroundImage.alt) ?? "";
23
24
  if (!bgSrc) {