@roottale/cms-renderer-next 0.61.1 → 0.63.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,42 @@
1
1
  # @roottale/cms-renderer-next
2
2
 
3
+ ## 0.63.0
4
+
5
+ ### Minor Changes
6
+
7
+ - a858d8e: 목차 배치를 사이트 코드의 `RootTaleBlogPost.tocPosition`으로 관리할 수 있습니다.
8
+ 명시한 값은 CMS 설정보다 우선하며, 생략한 기존 연동은 CMS 배치를 유지합니다.
9
+ 현재 배치를 prop으로 명시하면 실제 화면을 바꾸지 않고 관리 주체를 코드로 옮깁니다.
10
+
11
+ 공통 블록 디자인은 `RootTaleBlogPost.footerPatternPresentation`과
12
+ `RootTalePostPattern.presentation`으로 전체 대체할 수 있습니다. `null`은 원격
13
+ 디자인 주입을 생략하고 사이트 CSS에 맡기며, 생략한 기존 연동은 원격값을 유지합니다.
14
+ 고객 콘텐츠와 제작 디자인을 분리하는 문서·발행/미리보기 예제를 함께 갱신합니다.
15
+
16
+ 공개 `RootTaleCssVars` 타입의 비공개 UI 패키지 참조도 제거해 독립 소비자의
17
+ strict 타입 검사를 지원합니다.
18
+
19
+ 섹션 구성·디자인 변경 검사 함수를 공개 CMS core에서 공유해 편집기와 저장 단계가
20
+ 같은 고객 편집 경계를 적용합니다.
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [a858d8e]
25
+ - @roottale/cms-core@0.63.0
26
+ - @roottale/cms-client@0.63.0
27
+
28
+ ## 0.62.0
29
+
30
+ ### Minor Changes
31
+
32
+ - 083fc47: 팝업·배너의 예약 시작과 종료를 사이트 재배포 없이 반영하는 공통 runtime과 Next.js 조회 경로를 제공합니다. 공개본과 수정안을 분리하고 일정 변경·일시 중지·예약 취소를 관리 API, MCP, CLI에서 지원합니다. 신규 고객 스타터와 기존 사이트에서 같은 표시 계약을 사용합니다. 메인 홈 전용 자동 캐러셀, 다음 슬라이드까지의 진행률, 모바일 스와이프·스크롤 반응과 쿠키 숨김을 지원합니다.
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [083fc47]
37
+ - @roottale/cms-client@0.62.0
38
+ - @roottale/cms-core@0.62.0
39
+
3
40
  ## 0.61.1
4
41
 
5
42
  ### Patch Changes
package/README.md CHANGED
@@ -170,6 +170,9 @@ export default async function PostPage({
170
170
  apiKey={process.env.ROOTTALE_API_KEY!}
171
171
  slugOrId={post.id}
172
172
  showTableOfContents
173
+ tocPosition="inline"
174
+ theme={null}
175
+ footerPatternPresentation={null}
173
176
  tableOfContentsTitle="목차"
174
177
  breadcrumb={{ siteUrl: process.env.NEXT_PUBLIC_SITE_URL }}
175
178
  relatedPostsCount={3}
@@ -0,0 +1,16 @@
1
+ // src/exposure-home.ts
2
+ function exposureHomePaths(paths = ["/"]) {
3
+ if (!paths.length || paths.length > 20 || paths.some((path) => !path.startsWith("/") || path.startsWith("//") || /[\u0000-\u0020\u007f\\?#*]/.test(path))) {
4
+ throw new Error("Exposure home paths must be explicit local paths");
5
+ }
6
+ return [...new Set(paths.map((path) => path === "/" ? path : path.replace(/\/$/, "")))];
7
+ }
8
+ function isExposureHome(path, homes) {
9
+ return homes.includes(path === "/" ? path : path.replace(/\/$/, ""));
10
+ }
11
+
12
+ export {
13
+ exposureHomePaths,
14
+ isExposureHome
15
+ };
16
+ //# sourceMappingURL=chunk-L3I4W5NP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/exposure-home.ts"],"sourcesContent":["/** 홈 경로는 제작 코드에 명시한 exact 경로만 인정한다. */\nexport function exposureHomePaths(paths: readonly string[] = [\"/\"]): readonly string[] {\n if (!paths.length || paths.length > 20 || paths.some((path) => !path.startsWith(\"/\") || path.startsWith(\"//\") || /[\\u0000-\\u0020\\u007f\\\\?#*]/.test(path))) {\n throw new Error(\"Exposure home paths must be explicit local paths\");\n }\n return [...new Set(paths.map((path) => path === \"/\" ? path : path.replace(/\\/$/, \"\")))];\n}\n\nexport function isExposureHome(path: string, homes: readonly string[]): boolean {\n return homes.includes(path === \"/\" ? path : path.replace(/\\/$/, \"\"));\n}\n"],"mappings":";AACO,SAAS,kBAAkB,QAA2B,CAAC,GAAG,GAAsB;AACrF,MAAI,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,WAAW,GAAG,KAAK,KAAK,WAAW,IAAI,KAAK,6BAA6B,KAAK,IAAI,CAAC,GAAG;AACzJ,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AACA,SAAO,CAAC,GAAG,IAAI,IAAI,MAAM,IAAI,CAAC,SAAS,SAAS,MAAM,OAAO,KAAK,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC;AACxF;AAEO,SAAS,eAAe,MAAc,OAAmC;AAC9E,SAAO,MAAM,SAAS,SAAS,MAAM,OAAO,KAAK,QAAQ,OAAO,EAAE,CAAC;AACrE;","names":[]}