@roottale/cms-core 0.60.0 → 0.61.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @roottale/cms-core
2
2
 
3
+ ## 0.61.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 공통 에디터의 글씨 크기·서식 초기화·줄간격·문단 간격·이미지 너비·정렬·사진 설명을
8
+ 저장하고 공개 글에 출력합니다. ROOT-ADMIN에서 선택한 내용을 사이트 공통 블록으로
9
+ 저장하고 독립 복사본으로 재사용할 수 있습니다.
10
+
3
11
  ## 0.60.0
4
12
 
5
13
  ## 0.59.0
package/dist/index.cjs CHANGED
@@ -31,6 +31,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
33
  BLOCK_NAME_PATTERN: () => BLOCK_NAME_PATTERN,
34
+ CMS_FONT_SIZES: () => CMS_FONT_SIZES,
35
+ CMS_IMAGE_WIDTHS: () => CMS_IMAGE_WIDTHS,
36
+ CMS_LINE_HEIGHTS: () => CMS_LINE_HEIGHTS,
37
+ CMS_PARAGRAPH_SPACINGS: () => CMS_PARAGRAPH_SPACINGS,
34
38
  DEFAULT_SITE_PATTERN_PRESENTATION: () => DEFAULT_SITE_PATTERN_PRESENTATION,
35
39
  EMPTY_SITE_PATTERN_PLACEMENTS: () => EMPTY_SITE_PATTERN_PLACEMENTS,
36
40
  FIELD_BINDING_SOURCE: () => FIELD_BINDING_SOURCE,
@@ -54,6 +58,12 @@ __export(src_exports, {
54
58
  blockSchema: () => blockSchema,
55
59
  boundFieldValue: () => boundFieldValue,
56
60
  chainResolvers: () => chainResolvers,
61
+ cmsFontSize: () => cmsFontSize,
62
+ cmsImageAlign: () => cmsImageAlign,
63
+ cmsImageStyle: () => cmsImageStyle,
64
+ cmsImageWidth: () => cmsImageWidth,
65
+ cmsLineHeight: () => cmsLineHeight,
66
+ cmsParagraphSpacing: () => cmsParagraphSpacing,
57
67
  createFieldBindingResolver: () => createFieldBindingResolver,
58
68
  emptyPatternSlots: () => emptyPatternSlots,
59
69
  ensureImportedHtmlDocumentRoots: () => ensureImportedHtmlDocumentRoots,
@@ -1664,9 +1674,50 @@ function sitePatternPresentationAttributes(presentation) {
1664
1674
  cssVariables
1665
1675
  };
1666
1676
  }
1677
+
1678
+ // src/editor-formatting.ts
1679
+ var CMS_FONT_SIZES = [14, 16, 18, 20, 24, 28, 32];
1680
+ var CMS_LINE_HEIGHTS = [1.2, 1.5, 1.8, 2, 2.4];
1681
+ var CMS_PARAGRAPH_SPACINGS = [0, 8, 16, 24, 32];
1682
+ var CMS_IMAGE_WIDTHS = [25, 50, 75, 100];
1683
+ function cmsFontSize(value) {
1684
+ if (typeof value !== "string") return null;
1685
+ return CMS_FONT_SIZES.some((size) => value === `${size}px`) ? value : null;
1686
+ }
1687
+ function cmsLineHeight(value) {
1688
+ if (typeof value !== "number" && typeof value !== "string") return null;
1689
+ return CMS_LINE_HEIGHTS.find((size) => String(size) === String(value)) ?? null;
1690
+ }
1691
+ function cmsParagraphSpacing(value) {
1692
+ if (typeof value !== "string") return null;
1693
+ return CMS_PARAGRAPH_SPACINGS.some((size) => value === `${size}px`) ? value : null;
1694
+ }
1695
+ function cmsImageWidth(value) {
1696
+ if (typeof value !== "string") return null;
1697
+ return CMS_IMAGE_WIDTHS.some((size) => value === `${size}%`) ? value : null;
1698
+ }
1699
+ function cmsImageAlign(value) {
1700
+ return value === "left" || value === "center" || value === "right" ? value : null;
1701
+ }
1702
+ function cmsImageStyle(attrs) {
1703
+ const width = cmsImageWidth(attrs.displayWidth);
1704
+ const align = cmsImageAlign(attrs.imageAlign);
1705
+ return {
1706
+ ...width ? { width, maxWidth: "100%", height: "auto" } : {},
1707
+ ...align ? {
1708
+ display: "block",
1709
+ marginLeft: align === "left" ? "0" : "auto",
1710
+ marginRight: align === "right" ? "0" : "auto"
1711
+ } : {}
1712
+ };
1713
+ }
1667
1714
  // Annotate the CommonJS export names for ESM import in node:
1668
1715
  0 && (module.exports = {
1669
1716
  BLOCK_NAME_PATTERN,
1717
+ CMS_FONT_SIZES,
1718
+ CMS_IMAGE_WIDTHS,
1719
+ CMS_LINE_HEIGHTS,
1720
+ CMS_PARAGRAPH_SPACINGS,
1670
1721
  DEFAULT_SITE_PATTERN_PRESENTATION,
1671
1722
  EMPTY_SITE_PATTERN_PLACEMENTS,
1672
1723
  FIELD_BINDING_SOURCE,
@@ -1690,6 +1741,12 @@ function sitePatternPresentationAttributes(presentation) {
1690
1741
  blockSchema,
1691
1742
  boundFieldValue,
1692
1743
  chainResolvers,
1744
+ cmsFontSize,
1745
+ cmsImageAlign,
1746
+ cmsImageStyle,
1747
+ cmsImageWidth,
1748
+ cmsLineHeight,
1749
+ cmsParagraphSpacing,
1693
1750
  createFieldBindingResolver,
1694
1751
  emptyPatternSlots,
1695
1752
  ensureImportedHtmlDocumentRoots,