@delmaredigital/payload-puck 0.1.3 → 0.2.0

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.
@@ -345,6 +345,7 @@ var init_HeaderActions = __esm({
345
345
  ]
346
346
  }
347
347
  ),
348
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400 font-mono", children: "v0.2.0" }),
348
349
  documentStatus && (() => {
349
350
  const isPublished = documentStatus === "published";
350
351
  const hasUnpublishedChanges = documentStatus === "draft" && wasPublished;
@@ -870,25 +871,23 @@ function responsiveValueToCSS(value, converter, uniqueId) {
870
871
  mediaQueryCSS: ""
871
872
  };
872
873
  }
873
- const mediaQueries = [];
874
- let baseStyles = {};
874
+ const cssRules = [];
875
875
  BREAKPOINTS.forEach((bp) => {
876
876
  const bpValue = value[bp.key];
877
877
  if (bpValue === void 0) return;
878
878
  const cssProps = converter(bpValue);
879
879
  if (!cssProps) return;
880
+ const styleString = cssPropertiesToString(cssProps);
881
+ if (!styleString) return;
880
882
  if (bp.key === "xs") {
881
- baseStyles = cssProps;
883
+ cssRules.push(`.${uniqueId} { ${styleString} }`);
882
884
  } else {
883
- const styleString = cssPropertiesToString(cssProps);
884
- if (styleString) {
885
- mediaQueries.push(
886
- `@media (min-width: ${bp.minWidth}px) { .${uniqueId} { ${styleString} } }`
887
- );
888
- }
885
+ cssRules.push(
886
+ `@media (min-width: ${bp.minWidth}px) { .${uniqueId} { ${styleString} } }`
887
+ );
889
888
  }
890
889
  });
891
- return { baseStyles, mediaQueryCSS: mediaQueries.join("\n") };
890
+ return { baseStyles: {}, mediaQueryCSS: cssRules.join("\n") };
892
891
  }
893
892
  function visibilityValueToCSS(visibility, uniqueId) {
894
893
  if (!visibility) return "";
@@ -1921,16 +1920,13 @@ var init_Container_server = __esm({
1921
1920
  idCounter = 0;
1922
1921
  defaultProps = {
1923
1922
  content: [],
1924
- background: null,
1925
- customPadding: null,
1923
+ visibility: null,
1926
1924
  dimensions: null,
1925
+ background: null,
1927
1926
  border: null,
1927
+ padding: null,
1928
1928
  margin: null,
1929
- animation: null,
1930
- innerBackground: null,
1931
- innerPadding: null,
1932
- innerBorder: null,
1933
- visibility: null
1929
+ animation: null
1934
1930
  };
1935
1931
  ContainerConfig = {
1936
1932
  label: "Container",
@@ -1940,84 +1936,86 @@ var init_Container_server = __esm({
1940
1936
  defaultProps,
1941
1937
  render: ({
1942
1938
  content: Content2,
1943
- background,
1944
- customPadding,
1939
+ visibility,
1945
1940
  dimensions,
1941
+ background,
1946
1942
  border,
1943
+ padding,
1947
1944
  margin,
1948
- animation,
1949
- innerBackground,
1950
- innerPadding,
1951
- innerBorder,
1952
- visibility
1945
+ animation
1953
1946
  }) => {
1954
1947
  const uniqueId = generateUniqueId();
1955
- const outerClass = `puck-container-outer-${uniqueId}`;
1956
- const innerClass = `puck-container-inner-${uniqueId}`;
1948
+ const containerClass = `puck-container-${uniqueId}`;
1957
1949
  const mediaQueries = [];
1958
- const outerBackgroundStyles = backgroundValueToCSS(background);
1959
- const outerStyles = {
1960
- ...outerBackgroundStyles
1961
- };
1962
- const outerPaddingResult = responsiveValueToCSS(
1963
- customPadding,
1964
- (v) => ({ padding: paddingValueToCSS(v) }),
1965
- outerClass
1966
- );
1967
- Object.assign(outerStyles, outerPaddingResult.baseStyles);
1968
- if (outerPaddingResult.mediaQueryCSS) {
1969
- mediaQueries.push(outerPaddingResult.mediaQueryCSS);
1970
- }
1971
- const outerBorderStyles = borderValueToCSS(border);
1972
- if (outerBorderStyles) {
1973
- Object.assign(outerStyles, outerBorderStyles);
1950
+ const containerStyles = {};
1951
+ const backgroundStyles = backgroundValueToCSS(background);
1952
+ if (backgroundStyles) {
1953
+ Object.assign(containerStyles, backgroundStyles);
1974
1954
  }
1975
- const marginResult = responsiveValueToCSS(
1976
- margin,
1977
- (v) => ({ margin: marginValueToCSS(v) }),
1978
- outerClass
1979
- );
1980
- Object.assign(outerStyles, marginResult.baseStyles);
1981
- if (marginResult.mediaQueryCSS) {
1982
- mediaQueries.push(marginResult.mediaQueryCSS);
1955
+ const borderStyles = borderValueToCSS(border);
1956
+ if (borderStyles) {
1957
+ Object.assign(containerStyles, borderStyles);
1983
1958
  }
1984
- const innerBackgroundStyles = backgroundValueToCSS(innerBackground);
1985
- const innerStyles = {
1986
- ...innerBackgroundStyles
1987
- };
1988
1959
  const dimensionsResult = responsiveValueToCSS(
1989
1960
  dimensions,
1990
1961
  dimensionsValueToCSS,
1991
- innerClass
1962
+ containerClass
1992
1963
  );
1993
- Object.assign(innerStyles, dimensionsResult.baseStyles);
1964
+ Object.assign(containerStyles, dimensionsResult.baseStyles);
1994
1965
  if (dimensionsResult.mediaQueryCSS) {
1995
1966
  mediaQueries.push(dimensionsResult.mediaQueryCSS);
1996
1967
  }
1997
- const innerPaddingResult = responsiveValueToCSS(
1998
- innerPadding,
1968
+ const hasMinHeight = (() => {
1969
+ if (!dimensions) return false;
1970
+ if (typeof dimensions === "object" && "xs" in dimensions) {
1971
+ const responsiveDims = dimensions;
1972
+ return Object.values(responsiveDims).some((v) => {
1973
+ if (!v || typeof v !== "object") return false;
1974
+ const dim2 = v;
1975
+ return dim2.minHeight?.enabled && dim2.minHeight?.value > 0;
1976
+ });
1977
+ }
1978
+ const dim = dimensions;
1979
+ return dim.minHeight?.enabled && dim.minHeight?.value > 0;
1980
+ })();
1981
+ if (hasMinHeight) {
1982
+ containerStyles.display = "flex";
1983
+ containerStyles.flexDirection = "column";
1984
+ }
1985
+ const paddingResult = responsiveValueToCSS(
1986
+ padding,
1999
1987
  (v) => ({ padding: paddingValueToCSS(v) }),
2000
- innerClass
1988
+ containerClass
2001
1989
  );
2002
- Object.assign(innerStyles, innerPaddingResult.baseStyles);
2003
- if (innerPaddingResult.mediaQueryCSS) {
2004
- mediaQueries.push(innerPaddingResult.mediaQueryCSS);
1990
+ Object.assign(containerStyles, paddingResult.baseStyles);
1991
+ if (paddingResult.mediaQueryCSS) {
1992
+ mediaQueries.push(paddingResult.mediaQueryCSS);
2005
1993
  }
2006
- const innerBorderStyles = borderValueToCSS(innerBorder);
2007
- if (innerBorderStyles) {
2008
- Object.assign(innerStyles, innerBorderStyles);
1994
+ const marginResult = responsiveValueToCSS(
1995
+ margin,
1996
+ (v) => ({ margin: marginValueToCSS(v) }),
1997
+ containerClass
1998
+ );
1999
+ Object.assign(containerStyles, marginResult.baseStyles);
2000
+ if (marginResult.mediaQueryCSS) {
2001
+ mediaQueries.push(marginResult.mediaQueryCSS);
2009
2002
  }
2010
- const visibilityCSS = visibilityValueToCSS(visibility, outerClass);
2003
+ const visibilityCSS = visibilityValueToCSS(visibility, containerClass);
2011
2004
  if (visibilityCSS) {
2012
2005
  mediaQueries.push(visibilityCSS);
2013
2006
  }
2014
- const contentClasses = cn2("px-4", innerClass);
2015
- const hasInnerStyles = Object.keys(innerStyles).length > 0;
2016
2007
  const allMediaQueryCSS = mediaQueries.join("\n");
2008
+ const hasStyles = Object.keys(containerStyles).length > 0;
2017
2009
  const ContentSlot = Content2;
2010
+ const renderContent = () => {
2011
+ if (hasMinHeight) {
2012
+ return /* @__PURE__ */ jsx("div", { style: { flex: 1, display: "flex", flexDirection: "column", minHeight: 0 }, children: /* @__PURE__ */ jsx(ContentSlot, { style: { flex: 1 } }) });
2013
+ }
2014
+ return /* @__PURE__ */ jsx(ContentSlot, {});
2015
+ };
2018
2016
  return /* @__PURE__ */ jsxs(AnimatedWrapper, { animation, children: [
2019
2017
  allMediaQueryCSS && /* @__PURE__ */ jsx("style", { children: allMediaQueryCSS }),
2020
- /* @__PURE__ */ jsx("div", { className: outerClass, style: outerStyles, children: hasInnerStyles ? /* @__PURE__ */ jsx("div", { className: contentClasses, style: innerStyles, children: /* @__PURE__ */ jsx(ContentSlot, {}) }) : /* @__PURE__ */ jsx(ContentSlot, { className: contentClasses, style: innerStyles }) })
2018
+ hasStyles ? /* @__PURE__ */ jsx("div", { className: containerClass, style: containerStyles, children: renderContent() }) : /* @__PURE__ */ jsx(ContentSlot, { className: containerClass })
2021
2019
  ] });
2022
2020
  }
2023
2021
  };
@@ -2260,21 +2258,39 @@ var init_Grid_server = __esm({
2260
2258
  function generateUniqueId4() {
2261
2259
  return `s${(++idCounter4).toString(36)}${Math.random().toString(36).slice(2, 6)}`;
2262
2260
  }
2263
- var idCounter4, defaultProps4, SectionConfig;
2261
+ var idCounter4, DEFAULT_CONTENT_DIMENSIONS, DEFAULT_CONTENT_PADDING, defaultProps4, SectionConfig;
2264
2262
  var init_Section_server = __esm({
2265
2263
  "src/components/layout/Section.server.tsx"() {
2266
2264
  init_shared();
2267
2265
  init_AnimatedWrapper();
2268
2266
  idCounter4 = 0;
2267
+ DEFAULT_CONTENT_DIMENSIONS = {
2268
+ mode: "contained",
2269
+ alignment: "center",
2270
+ maxWidth: { value: 1200, unit: "px", enabled: true }
2271
+ };
2272
+ DEFAULT_CONTENT_PADDING = {
2273
+ top: 0,
2274
+ right: 16,
2275
+ bottom: 0,
2276
+ left: 16,
2277
+ unit: "px",
2278
+ linked: false
2279
+ };
2269
2280
  defaultProps4 = {
2270
2281
  id: "",
2271
2282
  content: [],
2272
- background: null,
2273
- fullWidth: false,
2274
- customPadding: null,
2275
- dimensions: null,
2276
- border: null,
2277
- margin: null,
2283
+ // Section layer defaults
2284
+ sectionBackground: null,
2285
+ sectionBorder: null,
2286
+ sectionPadding: null,
2287
+ sectionMargin: null,
2288
+ // Content layer defaults - 1200px max-width so two-layer design is immediately visible
2289
+ contentDimensions: { xs: DEFAULT_CONTENT_DIMENSIONS },
2290
+ contentBackground: null,
2291
+ contentBorder: null,
2292
+ contentPadding: { xs: DEFAULT_CONTENT_PADDING },
2293
+ // Other
2278
2294
  animation: null,
2279
2295
  visibility: null
2280
2296
  };
@@ -2287,12 +2303,14 @@ var init_Section_server = __esm({
2287
2303
  render: ({
2288
2304
  id,
2289
2305
  content: Content2,
2290
- background,
2291
- fullWidth,
2292
- customPadding,
2293
- dimensions,
2294
- border,
2295
- margin,
2306
+ sectionBackground,
2307
+ sectionBorder,
2308
+ sectionPadding,
2309
+ sectionMargin,
2310
+ contentDimensions,
2311
+ contentBackground,
2312
+ contentBorder,
2313
+ contentPadding,
2296
2314
  animation,
2297
2315
  visibility
2298
2316
  }) => {
@@ -2300,53 +2318,90 @@ var init_Section_server = __esm({
2300
2318
  const sectionClass = `puck-section-${uniqueId}`;
2301
2319
  const contentClass = `puck-section-content-${uniqueId}`;
2302
2320
  const mediaQueries = [];
2303
- const backgroundStyles = backgroundValueToCSS(background);
2321
+ const sectionBackgroundStyles = backgroundValueToCSS(sectionBackground);
2304
2322
  const sectionStyles = {
2305
- ...backgroundStyles
2323
+ ...sectionBackgroundStyles
2306
2324
  };
2307
- const paddingResult = responsiveValueToCSS(
2308
- customPadding,
2325
+ const sectionBorderStyles = borderValueToCSS(sectionBorder);
2326
+ if (sectionBorderStyles) {
2327
+ Object.assign(sectionStyles, sectionBorderStyles);
2328
+ }
2329
+ const sectionPaddingResult = responsiveValueToCSS(
2330
+ sectionPadding,
2309
2331
  (v) => ({ padding: paddingValueToCSS(v) }),
2310
2332
  sectionClass
2311
2333
  );
2312
- Object.assign(sectionStyles, paddingResult.baseStyles);
2313
- if (paddingResult.mediaQueryCSS) {
2314
- mediaQueries.push(paddingResult.mediaQueryCSS);
2315
- }
2316
- const borderStyles = borderValueToCSS(border);
2317
- if (borderStyles) {
2318
- Object.assign(sectionStyles, borderStyles);
2334
+ Object.assign(sectionStyles, sectionPaddingResult.baseStyles);
2335
+ if (sectionPaddingResult.mediaQueryCSS) {
2336
+ mediaQueries.push(sectionPaddingResult.mediaQueryCSS);
2319
2337
  }
2320
- const marginResult = responsiveValueToCSS(
2321
- margin,
2338
+ const sectionMarginResult = responsiveValueToCSS(
2339
+ sectionMargin,
2322
2340
  (v) => ({ margin: marginValueToCSS(v) }),
2323
2341
  sectionClass
2324
2342
  );
2325
- Object.assign(sectionStyles, marginResult.baseStyles);
2326
- if (marginResult.mediaQueryCSS) {
2327
- mediaQueries.push(marginResult.mediaQueryCSS);
2343
+ Object.assign(sectionStyles, sectionMarginResult.baseStyles);
2344
+ if (sectionMarginResult.mediaQueryCSS) {
2345
+ mediaQueries.push(sectionMarginResult.mediaQueryCSS);
2328
2346
  }
2329
2347
  const visibilityCSS = visibilityValueToCSS(visibility, sectionClass);
2330
2348
  if (visibilityCSS) {
2331
2349
  mediaQueries.push(visibilityCSS);
2332
2350
  }
2333
- const sectionClasses = cn2("relative w-full", sectionClass);
2334
- const dimensionsResult = responsiveValueToCSS(
2335
- dimensions,
2351
+ const contentBackgroundStyles = backgroundValueToCSS(contentBackground);
2352
+ const contentStyles = {
2353
+ ...contentBackgroundStyles
2354
+ };
2355
+ const contentDimensionsResult = responsiveValueToCSS(
2356
+ contentDimensions,
2336
2357
  dimensionsValueToCSS,
2337
2358
  contentClass
2338
2359
  );
2339
- if (dimensionsResult.mediaQueryCSS) {
2340
- mediaQueries.push(dimensionsResult.mediaQueryCSS);
2360
+ Object.assign(contentStyles, contentDimensionsResult.baseStyles);
2361
+ if (contentDimensionsResult.mediaQueryCSS) {
2362
+ mediaQueries.push(contentDimensionsResult.mediaQueryCSS);
2341
2363
  }
2342
- const contentClasses = cn2(
2343
- "relative z-10",
2344
- // Only apply preset content width if no dimensions set
2345
- !dimensions && !fullWidth && "max-w-[1200px] mx-auto px-4",
2364
+ const hasMinHeight = (() => {
2365
+ if (!contentDimensions) return false;
2366
+ if (typeof contentDimensions === "object" && "xs" in contentDimensions) {
2367
+ const responsiveDims = contentDimensions;
2368
+ return Object.values(responsiveDims).some((v) => {
2369
+ if (!v || typeof v !== "object") return false;
2370
+ const dim2 = v;
2371
+ return dim2.minHeight?.enabled && dim2.minHeight?.value > 0;
2372
+ });
2373
+ }
2374
+ const dim = contentDimensions;
2375
+ return dim.minHeight?.enabled && dim.minHeight?.value > 0;
2376
+ })();
2377
+ if (hasMinHeight) {
2378
+ contentStyles.display = "flex";
2379
+ contentStyles.flexDirection = "column";
2380
+ }
2381
+ const contentBorderStyles = borderValueToCSS(contentBorder);
2382
+ if (contentBorderStyles) {
2383
+ Object.assign(contentStyles, contentBorderStyles);
2384
+ }
2385
+ const contentPaddingResult = responsiveValueToCSS(
2386
+ contentPadding,
2387
+ (v) => ({ padding: paddingValueToCSS(v) }),
2346
2388
  contentClass
2347
2389
  );
2390
+ Object.assign(contentStyles, contentPaddingResult.baseStyles);
2391
+ if (contentPaddingResult.mediaQueryCSS) {
2392
+ mediaQueries.push(contentPaddingResult.mediaQueryCSS);
2393
+ }
2394
+ const sectionClasses = cn2("relative w-full", sectionClass);
2395
+ const contentClasses = cn2("relative z-10", contentClass);
2396
+ const hasContentStyles = Object.keys(contentStyles).length > 0;
2348
2397
  const allMediaQueryCSS = mediaQueries.join("\n");
2349
2398
  const ContentSlot = Content2;
2399
+ const renderContent = () => {
2400
+ if (hasMinHeight) {
2401
+ return /* @__PURE__ */ jsx("div", { style: { flex: 1, display: "flex", flexDirection: "column", minHeight: 0 }, children: /* @__PURE__ */ jsx(ContentSlot, { style: { flex: 1 } }) });
2402
+ }
2403
+ return /* @__PURE__ */ jsx(ContentSlot, {});
2404
+ };
2350
2405
  return /* @__PURE__ */ jsxs(AnimatedWrapper, { animation, children: [
2351
2406
  allMediaQueryCSS && /* @__PURE__ */ jsx("style", { children: allMediaQueryCSS }),
2352
2407
  /* @__PURE__ */ jsx(
@@ -2355,7 +2410,7 @@ var init_Section_server = __esm({
2355
2410
  id: id || void 0,
2356
2411
  className: sectionClasses,
2357
2412
  style: sectionStyles,
2358
- children: /* @__PURE__ */ jsx(ContentSlot, { className: contentClasses, style: dimensionsResult.baseStyles })
2413
+ children: hasContentStyles ? /* @__PURE__ */ jsx("div", { className: contentClasses, style: contentStyles, children: renderContent() }) : /* @__PURE__ */ jsx(ContentSlot, { className: contentClasses })
2359
2414
  }
2360
2415
  )
2361
2416
  ] });
@@ -2604,11 +2659,19 @@ var init_Text_server = __esm({
2604
2659
  };
2605
2660
  }
2606
2661
  });
2607
- var defaultProps9, RichTextConfig;
2662
+ var DEFAULT_PADDING, defaultProps9, RichTextConfig;
2608
2663
  var init_RichText_server = __esm({
2609
2664
  "src/components/typography/RichText.server.tsx"() {
2610
2665
  init_shared();
2611
2666
  init_AnimatedWrapper();
2667
+ DEFAULT_PADDING = {
2668
+ top: 0,
2669
+ right: 16,
2670
+ bottom: 0,
2671
+ left: 16,
2672
+ unit: "px",
2673
+ linked: false
2674
+ };
2612
2675
  defaultProps9 = {
2613
2676
  content: "<p>Enter your content here...</p>",
2614
2677
  alignment: null,
@@ -2616,7 +2679,8 @@ var init_RichText_server = __esm({
2616
2679
  dimensions: null,
2617
2680
  animation: null,
2618
2681
  margin: null,
2619
- customPadding: null
2682
+ customPadding: DEFAULT_PADDING
2683
+ // Default 16px horizontal padding
2620
2684
  };
2621
2685
  RichTextConfig = {
2622
2686
  label: "Rich Text",
@@ -2641,12 +2705,12 @@ var init_RichText_server = __esm({
2641
2705
  const alignmentValue = alignment ?? "left";
2642
2706
  const alignmentClass = alignmentMap[alignmentValue] || alignmentMap.left;
2643
2707
  if (!content || content === "<p></p>") {
2644
- return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("section", { className: cn2("relative overflow-hidden px-4", alignmentClass), style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert", children: /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("em", { children: "No content available" }) }) }) }) });
2708
+ return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("section", { className: cn2("relative overflow-hidden", alignmentClass), style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert max-w-none", children: /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("em", { children: "No content available" }) }) }) }) });
2645
2709
  }
2646
- return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("section", { className: cn2("relative overflow-hidden px-4", alignmentClass), style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx(
2710
+ return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("section", { className: cn2("relative overflow-hidden", alignmentClass), style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx(
2647
2711
  "div",
2648
2712
  {
2649
- className: "prose dark:prose-invert",
2713
+ className: "prose dark:prose-invert max-w-none",
2650
2714
  dangerouslySetInnerHTML: { __html: content }
2651
2715
  }
2652
2716
  ) }) });
@@ -2657,11 +2721,19 @@ var init_RichText_server = __esm({
2657
2721
  function generateUniqueId7() {
2658
2722
  return `i${(++idCounter7).toString(36)}${Math.random().toString(36).slice(2, 6)}`;
2659
2723
  }
2660
- var idCounter7, defaultProps10, ImageConfig;
2724
+ var DEFAULT_PADDING2, idCounter7, defaultProps10, ImageConfig;
2661
2725
  var init_Image_server = __esm({
2662
2726
  "src/components/media/Image.server.tsx"() {
2663
2727
  init_shared();
2664
2728
  init_AnimatedWrapper();
2729
+ DEFAULT_PADDING2 = {
2730
+ top: 16,
2731
+ right: 16,
2732
+ bottom: 16,
2733
+ left: 16,
2734
+ unit: "px",
2735
+ linked: true
2736
+ };
2665
2737
  idCounter7 = 0;
2666
2738
  defaultProps10 = {
2667
2739
  image: null,
@@ -2675,7 +2747,8 @@ var init_Image_server = __esm({
2675
2747
  alignment: null,
2676
2748
  transform: null,
2677
2749
  animation: null,
2678
- customPadding: null,
2750
+ customPadding: DEFAULT_PADDING2,
2751
+ // Default 16px padding
2679
2752
  visibility: null
2680
2753
  };
2681
2754
  ImageConfig = {
@@ -2715,7 +2788,7 @@ var init_Image_server = __esm({
2715
2788
  if (!image?.url) {
2716
2789
  return /* @__PURE__ */ jsxs(AnimatedWrapper, { animation, children: [
2717
2790
  visibilityCSS && /* @__PURE__ */ jsx("style", { children: visibilityCSS }),
2718
- /* @__PURE__ */ jsx("div", { className: cn2("py-4 px-4", wrapperClass), style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: alignmentClasses, children: /* @__PURE__ */ jsx(
2791
+ /* @__PURE__ */ jsx("div", { className: wrapperClass, style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: alignmentClasses, children: /* @__PURE__ */ jsx(
2719
2792
  "div",
2720
2793
  {
2721
2794
  className: cn2(
@@ -2754,7 +2827,7 @@ var init_Image_server = __esm({
2754
2827
  ) : imageElement;
2755
2828
  return /* @__PURE__ */ jsxs(AnimatedWrapper, { animation, children: [
2756
2829
  visibilityCSS && /* @__PURE__ */ jsx("style", { children: visibilityCSS }),
2757
- /* @__PURE__ */ jsx("div", { className: cn2("py-4 px-4", wrapperClass), style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: alignmentClasses, children: content }) })
2830
+ /* @__PURE__ */ jsx("div", { className: wrapperClass, style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: alignmentClasses, children: content }) })
2758
2831
  ] });
2759
2832
  }
2760
2833
  };
@@ -3264,11 +3337,19 @@ var init_Button_server = __esm({
3264
3337
  };
3265
3338
  }
3266
3339
  });
3267
- var defaultProps12, CardConfig;
3340
+ var DEFAULT_CONTENT_PADDING2, defaultProps12, CardConfig;
3268
3341
  var init_Card_server = __esm({
3269
3342
  "src/components/interactive/Card.server.tsx"() {
3270
3343
  init_shared();
3271
3344
  init_AnimatedWrapper();
3345
+ DEFAULT_CONTENT_PADDING2 = {
3346
+ top: 16,
3347
+ right: 16,
3348
+ bottom: 16,
3349
+ left: 16,
3350
+ unit: "px",
3351
+ linked: true
3352
+ };
3272
3353
  defaultProps12 = {
3273
3354
  image: null,
3274
3355
  heading: "Card Heading",
@@ -3283,12 +3364,13 @@ var init_Card_server = __esm({
3283
3364
  alignment: null,
3284
3365
  transform: null,
3285
3366
  animation: null,
3286
- customPadding: null
3367
+ contentPadding: DEFAULT_CONTENT_PADDING2
3368
+ // Default 16px padding
3287
3369
  };
3288
3370
  CardConfig = {
3289
3371
  label: "Card",
3290
3372
  defaultProps: defaultProps12,
3291
- render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, customPadding }) => {
3373
+ render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding }) => {
3292
3374
  const hasBorderRadius = border?.radius && border.radius > 0;
3293
3375
  const cardClasses = cn2(
3294
3376
  "overflow-hidden transition-all bg-card",
@@ -3324,9 +3406,10 @@ var init_Card_server = __esm({
3324
3406
  if (borderStyles) {
3325
3407
  Object.assign(cardStyle, borderStyles);
3326
3408
  }
3327
- const paddingCSS = paddingValueToCSS(customPadding);
3328
- if (paddingCSS) {
3329
- cardStyle.padding = paddingCSS;
3409
+ const contentStyle = {};
3410
+ const contentPaddingCSS = paddingValueToCSS(contentPadding);
3411
+ if (contentPaddingCSS) {
3412
+ contentStyle.padding = contentPaddingCSS;
3330
3413
  }
3331
3414
  const cardContent = /* @__PURE__ */ jsxs("div", { className: cardClasses, style: cardStyle, children: [
3332
3415
  image?.url ? /* @__PURE__ */ jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsx(
@@ -3337,7 +3420,7 @@ var init_Card_server = __esm({
3337
3420
  className: "w-full h-full object-cover"
3338
3421
  }
3339
3422
  ) }) : /* @__PURE__ */ jsx("div", { className: "aspect-video w-full bg-muted flex items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "No image" }) }),
3340
- /* @__PURE__ */ jsxs("div", { className: "p-4", children: [
3423
+ /* @__PURE__ */ jsxs("div", { style: contentStyle, children: [
3341
3424
  heading && /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-foreground mb-2", children: heading }),
3342
3425
  text && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: text })
3343
3426
  ] })
@@ -3360,11 +3443,19 @@ var init_Card_server = __esm({
3360
3443
  };
3361
3444
  }
3362
3445
  });
3363
- var defaultProps13, DividerConfig;
3446
+ var DEFAULT_PADDING3, defaultProps13, DividerConfig;
3364
3447
  var init_Divider_server = __esm({
3365
3448
  "src/components/interactive/Divider.server.tsx"() {
3366
3449
  init_shared();
3367
3450
  init_AnimatedWrapper();
3451
+ DEFAULT_PADDING3 = {
3452
+ top: 0,
3453
+ right: 16,
3454
+ bottom: 0,
3455
+ left: 16,
3456
+ unit: "px",
3457
+ linked: false
3458
+ };
3368
3459
  defaultProps13 = {
3369
3460
  style: "solid",
3370
3461
  color: null,
@@ -3372,7 +3463,8 @@ var init_Divider_server = __esm({
3372
3463
  dimensions: null,
3373
3464
  transform: null,
3374
3465
  animation: null,
3375
- customPadding: null
3466
+ customPadding: DEFAULT_PADDING3
3467
+ // Default 16px horizontal padding
3376
3468
  };
3377
3469
  DividerConfig = {
3378
3470
  label: "Divider",
@@ -3396,7 +3488,7 @@ var init_Divider_server = __esm({
3396
3488
  }
3397
3489
  const customColor = colorValueToCSS(color);
3398
3490
  const hrStyle = customColor ? { borderColor: customColor } : void 0;
3399
- return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("div", { className: "px-4", style: Object.keys(wrapperStyle).length > 0 ? wrapperStyle : void 0, children: /* @__PURE__ */ jsx(
3491
+ return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("div", { style: Object.keys(wrapperStyle).length > 0 ? wrapperStyle : void 0, children: /* @__PURE__ */ jsx(
3400
3492
  "hr",
3401
3493
  {
3402
3494
  className: cn2(
@@ -3513,9 +3605,9 @@ function AccordionClient({
3513
3605
  Object.assign(style, transformStyles);
3514
3606
  }
3515
3607
  if (!items || items.length === 0) {
3516
- return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("div", { className: "px-4", style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: accordionClasses, style: accordionStyle, children: /* @__PURE__ */ jsx("div", { className: "p-4 text-center text-muted-foreground", children: "No accordion items. Add items in the editor." }) }) }) });
3608
+ return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("div", { style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: accordionClasses, style: accordionStyle, children: /* @__PURE__ */ jsx("div", { className: "p-4 text-center text-muted-foreground", children: "No accordion items. Add items in the editor." }) }) }) });
3517
3609
  }
3518
- return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("div", { className: "px-4", style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: accordionClasses, style: accordionStyle, children: items.map((item, index) => /* @__PURE__ */ jsx(
3610
+ return /* @__PURE__ */ jsx(AnimatedWrapper, { animation, children: /* @__PURE__ */ jsx("div", { style: Object.keys(style).length > 0 ? style : void 0, children: /* @__PURE__ */ jsx("div", { className: accordionClasses, style: accordionStyle, children: items.map((item, index) => /* @__PURE__ */ jsx(
3519
3611
  AccordionItem,
3520
3612
  {
3521
3613
  item,
@@ -1,5 +1,5 @@
1
- import { C as ColorValue, P as PaddingValue, a as BorderValue, W as WidthValue, D as DimensionsValue, G as GradientValue, B as BackgroundValue, R as ResponsiveValue, V as VisibilityValue, A as AnimationValue, T as TransformValue } from '../shared-DeNKN95N.mjs';
2
- export { _ as ANIMATION_CATEGORIES, F as AdvancedEasingFunction, J as AnimationCategory, I as AnimationOrigin, u as BREAKPOINTS, aI as BackgroundCSSResult, k as BackgroundImageValue, l as BackgroundOverlay, s as Breakpoint, j as ContentAlignment, $ as DEFAULT_ANIMATION, a2 as DEFAULT_TRANSFORM, z as DEFAULT_VISIBILITY, e as DimensionConstraint, h as DimensionsMode, f as DimensionsUnit, Z as EASING_CSS_MAP, E as EasingFunction, H as EntranceAnimation, o as GradientMask, n as GradientStop, M as MediaField, b as MediaReference, t as ResponsiveCSSResult, S as StaggerConfig, K as StaggerDirection, a0 as TransformOrigin, az as alignItemsMap, al as alignmentMap, L as animationValueToCSS, af as aspectRatioField, at as aspectRatioMap, a8 as backgroundColorField, p as backgroundValueToCSS, am as bgColorMap, ah as borderRadiusField, av as borderRadiusMap, aF as borderValueToCSS, a7 as buttonSizeField, a5 as buttonStyleField, a6 as buttonVariantField, a3 as cn, aC as colorValueToCSS, ai as columnsCountField, aw as columnsCountMap, c as createMediaField, x as cssPropertiesToString, d as dimensionsValueToCSS, ag as dividerStyleField, au as dividerStyleMap, aj as flexDirectionField, ax as flexDirectionMap, ak as flexWrapField, aB as flexWrapMap, aa as gapField, ao as gapMap, Y as generateStaggerStyles, O as getAnimationCSSVariables, r as getBackgroundImageOpacity, aH as getCustomStyleObject, Q as getDefaultEasingForAnimation, g as getDimensionsSummary, N as getEntranceAnimationStyles, U as getRelevantIntensityControls, X as getStaggerDelay, q as gradientValueToCSS, aJ as hasCustomStyles, ad as headingLevelField, ar as headingLevelMap, i as isLegacyWidthValue, v as isResponsiveValue, ay as justifyContentMap, aK as layoutComponentsDisallow, aE as marginValueToCSS, m as migrateWidthValue, aD as paddingValueToCSS, w as responsiveValueToCSS, aA as selfAlignmentMap, ab as shadowField, ap as shadowMap, ac as spacerHeightField, aq as spacerHeightMap, a9 as textColorField, an as textColorMap, ae as textSizeField, as as textSizeMap, a1 as transformValueToCSS, a4 as visibilityField, y as visibilityValueToCSS, aG as widthValueToCSS } from '../shared-DeNKN95N.mjs';
1
+ import { C as ColorValue, P as PaddingValue, a as BorderValue, W as WidthValue, D as DimensionsValue, G as GradientValue, B as BackgroundValue, R as ResponsiveValue, V as VisibilityValue, A as AnimationValue, T as TransformValue } from '../shared-X9UpCJKW.mjs';
2
+ export { _ as ANIMATION_CATEGORIES, F as AdvancedEasingFunction, J as AnimationCategory, I as AnimationOrigin, u as BREAKPOINTS, aI as BackgroundCSSResult, k as BackgroundImageValue, l as BackgroundOverlay, s as Breakpoint, j as ContentAlignment, $ as DEFAULT_ANIMATION, a2 as DEFAULT_TRANSFORM, z as DEFAULT_VISIBILITY, e as DimensionConstraint, h as DimensionsMode, f as DimensionsUnit, Z as EASING_CSS_MAP, E as EasingFunction, H as EntranceAnimation, o as GradientMask, n as GradientStop, M as MediaField, b as MediaReference, t as ResponsiveCSSResult, S as StaggerConfig, K as StaggerDirection, a0 as TransformOrigin, az as alignItemsMap, al as alignmentMap, L as animationValueToCSS, af as aspectRatioField, at as aspectRatioMap, a8 as backgroundColorField, p as backgroundValueToCSS, am as bgColorMap, ah as borderRadiusField, av as borderRadiusMap, aF as borderValueToCSS, a7 as buttonSizeField, a5 as buttonStyleField, a6 as buttonVariantField, a3 as cn, aC as colorValueToCSS, ai as columnsCountField, aw as columnsCountMap, c as createMediaField, x as cssPropertiesToString, d as dimensionsValueToCSS, ag as dividerStyleField, au as dividerStyleMap, aj as flexDirectionField, ax as flexDirectionMap, ak as flexWrapField, aB as flexWrapMap, aa as gapField, ao as gapMap, Y as generateStaggerStyles, O as getAnimationCSSVariables, r as getBackgroundImageOpacity, aH as getCustomStyleObject, Q as getDefaultEasingForAnimation, g as getDimensionsSummary, N as getEntranceAnimationStyles, U as getRelevantIntensityControls, X as getStaggerDelay, q as gradientValueToCSS, aJ as hasCustomStyles, ad as headingLevelField, ar as headingLevelMap, i as isLegacyWidthValue, v as isResponsiveValue, ay as justifyContentMap, aK as layoutComponentsDisallow, aE as marginValueToCSS, m as migrateWidthValue, aD as paddingValueToCSS, w as responsiveValueToCSS, aA as selfAlignmentMap, ab as shadowField, ap as shadowMap, ac as spacerHeightField, aq as spacerHeightMap, a9 as textColorField, an as textColorMap, ae as textSizeField, as as textSizeMap, a1 as transformValueToCSS, a4 as visibilityField, y as visibilityValueToCSS, aG as widthValueToCSS } from '../shared-X9UpCJKW.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import React__default from 'react';
5
5
  import { CustomField } from '@measured/puck';
@@ -1,5 +1,5 @@
1
- import { C as ColorValue, P as PaddingValue, a as BorderValue, W as WidthValue, D as DimensionsValue, G as GradientValue, B as BackgroundValue, R as ResponsiveValue, V as VisibilityValue, A as AnimationValue, T as TransformValue } from '../shared-DeNKN95N.js';
2
- export { _ as ANIMATION_CATEGORIES, F as AdvancedEasingFunction, J as AnimationCategory, I as AnimationOrigin, u as BREAKPOINTS, aI as BackgroundCSSResult, k as BackgroundImageValue, l as BackgroundOverlay, s as Breakpoint, j as ContentAlignment, $ as DEFAULT_ANIMATION, a2 as DEFAULT_TRANSFORM, z as DEFAULT_VISIBILITY, e as DimensionConstraint, h as DimensionsMode, f as DimensionsUnit, Z as EASING_CSS_MAP, E as EasingFunction, H as EntranceAnimation, o as GradientMask, n as GradientStop, M as MediaField, b as MediaReference, t as ResponsiveCSSResult, S as StaggerConfig, K as StaggerDirection, a0 as TransformOrigin, az as alignItemsMap, al as alignmentMap, L as animationValueToCSS, af as aspectRatioField, at as aspectRatioMap, a8 as backgroundColorField, p as backgroundValueToCSS, am as bgColorMap, ah as borderRadiusField, av as borderRadiusMap, aF as borderValueToCSS, a7 as buttonSizeField, a5 as buttonStyleField, a6 as buttonVariantField, a3 as cn, aC as colorValueToCSS, ai as columnsCountField, aw as columnsCountMap, c as createMediaField, x as cssPropertiesToString, d as dimensionsValueToCSS, ag as dividerStyleField, au as dividerStyleMap, aj as flexDirectionField, ax as flexDirectionMap, ak as flexWrapField, aB as flexWrapMap, aa as gapField, ao as gapMap, Y as generateStaggerStyles, O as getAnimationCSSVariables, r as getBackgroundImageOpacity, aH as getCustomStyleObject, Q as getDefaultEasingForAnimation, g as getDimensionsSummary, N as getEntranceAnimationStyles, U as getRelevantIntensityControls, X as getStaggerDelay, q as gradientValueToCSS, aJ as hasCustomStyles, ad as headingLevelField, ar as headingLevelMap, i as isLegacyWidthValue, v as isResponsiveValue, ay as justifyContentMap, aK as layoutComponentsDisallow, aE as marginValueToCSS, m as migrateWidthValue, aD as paddingValueToCSS, w as responsiveValueToCSS, aA as selfAlignmentMap, ab as shadowField, ap as shadowMap, ac as spacerHeightField, aq as spacerHeightMap, a9 as textColorField, an as textColorMap, ae as textSizeField, as as textSizeMap, a1 as transformValueToCSS, a4 as visibilityField, y as visibilityValueToCSS, aG as widthValueToCSS } from '../shared-DeNKN95N.js';
1
+ import { C as ColorValue, P as PaddingValue, a as BorderValue, W as WidthValue, D as DimensionsValue, G as GradientValue, B as BackgroundValue, R as ResponsiveValue, V as VisibilityValue, A as AnimationValue, T as TransformValue } from '../shared-X9UpCJKW.js';
2
+ export { _ as ANIMATION_CATEGORIES, F as AdvancedEasingFunction, J as AnimationCategory, I as AnimationOrigin, u as BREAKPOINTS, aI as BackgroundCSSResult, k as BackgroundImageValue, l as BackgroundOverlay, s as Breakpoint, j as ContentAlignment, $ as DEFAULT_ANIMATION, a2 as DEFAULT_TRANSFORM, z as DEFAULT_VISIBILITY, e as DimensionConstraint, h as DimensionsMode, f as DimensionsUnit, Z as EASING_CSS_MAP, E as EasingFunction, H as EntranceAnimation, o as GradientMask, n as GradientStop, M as MediaField, b as MediaReference, t as ResponsiveCSSResult, S as StaggerConfig, K as StaggerDirection, a0 as TransformOrigin, az as alignItemsMap, al as alignmentMap, L as animationValueToCSS, af as aspectRatioField, at as aspectRatioMap, a8 as backgroundColorField, p as backgroundValueToCSS, am as bgColorMap, ah as borderRadiusField, av as borderRadiusMap, aF as borderValueToCSS, a7 as buttonSizeField, a5 as buttonStyleField, a6 as buttonVariantField, a3 as cn, aC as colorValueToCSS, ai as columnsCountField, aw as columnsCountMap, c as createMediaField, x as cssPropertiesToString, d as dimensionsValueToCSS, ag as dividerStyleField, au as dividerStyleMap, aj as flexDirectionField, ax as flexDirectionMap, ak as flexWrapField, aB as flexWrapMap, aa as gapField, ao as gapMap, Y as generateStaggerStyles, O as getAnimationCSSVariables, r as getBackgroundImageOpacity, aH as getCustomStyleObject, Q as getDefaultEasingForAnimation, g as getDimensionsSummary, N as getEntranceAnimationStyles, U as getRelevantIntensityControls, X as getStaggerDelay, q as gradientValueToCSS, aJ as hasCustomStyles, ad as headingLevelField, ar as headingLevelMap, i as isLegacyWidthValue, v as isResponsiveValue, ay as justifyContentMap, aK as layoutComponentsDisallow, aE as marginValueToCSS, m as migrateWidthValue, aD as paddingValueToCSS, w as responsiveValueToCSS, aA as selfAlignmentMap, ab as shadowField, ap as shadowMap, ac as spacerHeightField, aq as spacerHeightMap, a9 as textColorField, an as textColorMap, ae as textSizeField, as as textSizeMap, a1 as transformValueToCSS, a4 as visibilityField, y as visibilityValueToCSS, aG as widthValueToCSS } from '../shared-X9UpCJKW.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import React__default from 'react';
5
5
  import { CustomField } from '@measured/puck';