@roottale/cms-renderer-next 0.44.0 → 0.46.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 +34 -0
- package/dist/{chunk-4LQPZDXZ.js → chunk-6MFHA555.js} +24 -6
- package/dist/chunk-6MFHA555.js.map +1 -0
- package/dist/chunk-FZK3EXYZ.js +103 -0
- package/dist/chunk-FZK3EXYZ.js.map +1 -0
- package/dist/{chunk-75LHSTKC.js → chunk-JXRHZGRJ.js} +72 -19
- package/dist/chunk-JXRHZGRJ.js.map +1 -0
- package/dist/chunk-LEHHSI6G.js +64 -0
- package/dist/chunk-LEHHSI6G.js.map +1 -0
- package/dist/chunk-OMXEU4LS.js +414 -0
- package/dist/chunk-OMXEU4LS.js.map +1 -0
- package/dist/{chunk-6PDZSFVZ.js → chunk-UM37DOIK.js} +44 -2
- package/dist/chunk-UM37DOIK.js.map +1 -0
- package/dist/chunk-YLSQAT6B.js +59 -0
- package/dist/chunk-YLSQAT6B.js.map +1 -0
- package/dist/chunk-ZL2NA3QT.js +313 -0
- package/dist/chunk-ZL2NA3QT.js.map +1 -0
- package/dist/concerns-client.d.ts +1 -1
- package/dist/contact-map-client.d.ts +27 -0
- package/dist/contact-map-client.js +8 -0
- package/dist/contact-map-client.js.map +1 -0
- package/dist/expertise-client.d.ts +7 -1
- package/dist/expertise-client.js +2 -1
- package/dist/hero-carousel-client.d.ts +18 -2
- package/dist/hero-carousel-client.js +2 -1
- package/dist/routes.js +6 -4
- package/dist/routes.js.map +1 -1
- package/dist/server.js +8 -5
- package/dist/{site-config-BHcVF993.d.ts → site-config-CeByrPJF.d.ts} +55 -4
- package/dist/spaces-client.d.ts +1 -1
- package/dist/team-expanding-stage-client.d.ts +35 -0
- package/dist/team-expanding-stage-client.js +8 -0
- package/dist/team-expanding-stage-client.js.map +1 -0
- package/dist/templates.css +457 -5
- package/dist/templates.d.ts +26 -3
- package/dist/templates.js +13 -6
- package/dist/templates.js.map +1 -1
- package/dist/ui-react-motion-client.d.ts +4 -1
- package/dist/ui-react-motion-client.js +3 -1
- package/dist/validate.js +1 -1
- package/package.json +7 -4
- package/dist/chunk-4LQPZDXZ.js.map +0 -1
- package/dist/chunk-6PDZSFVZ.js.map +0 -1
- package/dist/chunk-75LHSTKC.js.map +0 -1
- package/dist/chunk-F3G6RVIR.js +0 -220
- package/dist/chunk-F3G6RVIR.js.map +0 -1
- package/dist/chunk-WWS43XCT.js +0 -206
- package/dist/chunk-WWS43XCT.js.map +0 -1
|
@@ -214,6 +214,13 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
214
214
|
autoplay: z.ZodOptional<z.ZodBoolean>;
|
|
215
215
|
/** `carousel` 전용, ms. 기본 6000. */
|
|
216
216
|
intervalMs: z.ZodOptional<z.ZodNumber>;
|
|
217
|
+
/**
|
|
218
|
+
* `carousel` 전용 배경 전환 모션(ADR-0086 P2 D3). 기본 "slide"(기존 embla
|
|
219
|
+
* 가로 스크롤). "curtain" = clip-path 와이프 + 신 스윕(chambarun 이식).
|
|
220
|
+
* variant 는 그대로 "carousel" — 신규 variant 아님("variant=구조,
|
|
221
|
+
* motion=인상" 규칙).
|
|
222
|
+
*/
|
|
223
|
+
transition: z.ZodOptional<z.ZodEnum<["slide", "curtain"]>>;
|
|
217
224
|
proofMetrics: z.ZodOptional<z.ZodObject<{
|
|
218
225
|
items: z.ZodArray<z.ZodObject<{
|
|
219
226
|
value: z.ZodString;
|
|
@@ -300,6 +307,7 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
300
307
|
}[] | undefined;
|
|
301
308
|
autoplay?: boolean | undefined;
|
|
302
309
|
intervalMs?: number | undefined;
|
|
310
|
+
transition?: "slide" | "curtain" | undefined;
|
|
303
311
|
proofMetrics?: {
|
|
304
312
|
position: "overlay" | "inline";
|
|
305
313
|
items: {
|
|
@@ -352,6 +360,7 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
352
360
|
}[] | undefined;
|
|
353
361
|
autoplay?: boolean | undefined;
|
|
354
362
|
intervalMs?: number | undefined;
|
|
363
|
+
transition?: "slide" | "curtain" | undefined;
|
|
355
364
|
proofMetrics?: {
|
|
356
365
|
items: {
|
|
357
366
|
value: string;
|
|
@@ -408,6 +417,7 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
408
417
|
}[] | undefined;
|
|
409
418
|
autoplay?: boolean | undefined;
|
|
410
419
|
intervalMs?: number | undefined;
|
|
420
|
+
transition?: "slide" | "curtain" | undefined;
|
|
411
421
|
proofMetrics?: {
|
|
412
422
|
position: "overlay" | "inline";
|
|
413
423
|
items: {
|
|
@@ -465,6 +475,7 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
465
475
|
}[] | undefined;
|
|
466
476
|
autoplay?: boolean | undefined;
|
|
467
477
|
intervalMs?: number | undefined;
|
|
478
|
+
transition?: "slide" | "curtain" | undefined;
|
|
468
479
|
proofMetrics?: {
|
|
469
480
|
items: {
|
|
470
481
|
value: string;
|
|
@@ -524,6 +535,7 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
524
535
|
}[] | undefined;
|
|
525
536
|
autoplay?: boolean | undefined;
|
|
526
537
|
intervalMs?: number | undefined;
|
|
538
|
+
transition?: "slide" | "curtain" | undefined;
|
|
527
539
|
proofMetrics?: {
|
|
528
540
|
position: "overlay" | "inline";
|
|
529
541
|
items: {
|
|
@@ -581,6 +593,7 @@ declare const HeroSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
581
593
|
}[] | undefined;
|
|
582
594
|
autoplay?: boolean | undefined;
|
|
583
595
|
intervalMs?: number | undefined;
|
|
596
|
+
transition?: "slide" | "curtain" | undefined;
|
|
584
597
|
proofMetrics?: {
|
|
585
598
|
items: {
|
|
586
599
|
value: string;
|
|
@@ -2123,6 +2136,14 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2123
2136
|
externalUrl: z.ZodOptional<z.ZodString>;
|
|
2124
2137
|
lat: z.ZodOptional<z.ZodNumber>;
|
|
2125
2138
|
lng: z.ZodOptional<z.ZodNumber>;
|
|
2139
|
+
/**
|
|
2140
|
+
* 지도 로드 모드(ADR-0086 P2 D3, chambarun `.map-facade` 클릭-투-로드 이식).
|
|
2141
|
+
* 기본 "lazy"(기존 동작 그대로 — 실지도면 즉시 iframe `loading="lazy"`).
|
|
2142
|
+
* "click" 은 정적 프리뷰(주소·지도 열기 버튼)만 먼저 그리고, 클릭 시에만
|
|
2143
|
+
* iframe 을 마운트한다(외부 지도 스크립트/네트워크 요청을 사용자 의도
|
|
2144
|
+
* 전까지 미루는 성능·프라이버시 절충 — additive, 기존 사이트는 영향 없음).
|
|
2145
|
+
*/
|
|
2146
|
+
mapLoad: z.ZodOptional<z.ZodEnum<["lazy", "click"]>>;
|
|
2126
2147
|
}, "strip", z.ZodTypeAny, {
|
|
2127
2148
|
provider?: string | undefined;
|
|
2128
2149
|
facadeImageSrc?: string | undefined;
|
|
@@ -2131,6 +2152,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2131
2152
|
externalUrl?: string | undefined;
|
|
2132
2153
|
lat?: number | undefined;
|
|
2133
2154
|
lng?: number | undefined;
|
|
2155
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2134
2156
|
}, {
|
|
2135
2157
|
provider?: string | undefined;
|
|
2136
2158
|
facadeImageSrc?: string | undefined;
|
|
@@ -2139,6 +2161,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2139
2161
|
externalUrl?: string | undefined;
|
|
2140
2162
|
lat?: number | undefined;
|
|
2141
2163
|
lng?: number | undefined;
|
|
2164
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2142
2165
|
}>>;
|
|
2143
2166
|
actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2144
2167
|
label: z.ZodString;
|
|
@@ -2195,6 +2218,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2195
2218
|
externalUrl?: string | undefined;
|
|
2196
2219
|
lat?: number | undefined;
|
|
2197
2220
|
lng?: number | undefined;
|
|
2221
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2198
2222
|
} | undefined;
|
|
2199
2223
|
heading?: string | undefined;
|
|
2200
2224
|
phone?: string | undefined;
|
|
@@ -2234,6 +2258,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2234
2258
|
externalUrl?: string | undefined;
|
|
2235
2259
|
lat?: number | undefined;
|
|
2236
2260
|
lng?: number | undefined;
|
|
2261
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2237
2262
|
} | undefined;
|
|
2238
2263
|
heading?: string | undefined;
|
|
2239
2264
|
phone?: string | undefined;
|
|
@@ -2277,6 +2302,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2277
2302
|
externalUrl?: string | undefined;
|
|
2278
2303
|
lat?: number | undefined;
|
|
2279
2304
|
lng?: number | undefined;
|
|
2305
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2280
2306
|
} | undefined;
|
|
2281
2307
|
heading?: string | undefined;
|
|
2282
2308
|
phone?: string | undefined;
|
|
@@ -2321,6 +2347,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2321
2347
|
externalUrl?: string | undefined;
|
|
2322
2348
|
lat?: number | undefined;
|
|
2323
2349
|
lng?: number | undefined;
|
|
2350
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2324
2351
|
} | undefined;
|
|
2325
2352
|
heading?: string | undefined;
|
|
2326
2353
|
phone?: string | undefined;
|
|
@@ -2367,6 +2394,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2367
2394
|
externalUrl?: string | undefined;
|
|
2368
2395
|
lat?: number | undefined;
|
|
2369
2396
|
lng?: number | undefined;
|
|
2397
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2370
2398
|
} | undefined;
|
|
2371
2399
|
heading?: string | undefined;
|
|
2372
2400
|
phone?: string | undefined;
|
|
@@ -2411,6 +2439,7 @@ declare const ContactSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
2411
2439
|
externalUrl?: string | undefined;
|
|
2412
2440
|
lat?: number | undefined;
|
|
2413
2441
|
lng?: number | undefined;
|
|
2442
|
+
mapLoad?: "lazy" | "click" | undefined;
|
|
2414
2443
|
} | undefined;
|
|
2415
2444
|
heading?: string | undefined;
|
|
2416
2445
|
phone?: string | undefined;
|
|
@@ -3708,6 +3737,13 @@ type SectionInput = z.input<typeof HeroSectionSchema> | z.input<typeof RichTextS
|
|
|
3708
3737
|
*/
|
|
3709
3738
|
declare const SectionSchema: z.ZodType<Section, z.ZodTypeDef, SectionInput>;
|
|
3710
3739
|
declare const SiteConfigSchema: z.ZodObject<{
|
|
3740
|
+
/**
|
|
3741
|
+
* `SiteConfig` 계약 버전 (ADR-0086 D2) — 팩 manifest 의 `siteConfigVersion`
|
|
3742
|
+
* 과 비교해 팩↔renderer 호환성을 표현한다. optional — 하위 호환(기존 고객
|
|
3743
|
+
* `site.config.ts` 에는 이 필드가 없다). 미지정은 버전 1 로 해석한다
|
|
3744
|
+
* (`resolveSiteConfigSchemaVersion`).
|
|
3745
|
+
*/
|
|
3746
|
+
schemaVersion: z.ZodOptional<z.ZodNumber>;
|
|
3711
3747
|
site: z.ZodObject<{
|
|
3712
3748
|
/** canonical origin. 생략 시 소비측이 `SITE_URL` env 등으로 해석. */
|
|
3713
3749
|
url: z.ZodOptional<z.ZodString>;
|
|
@@ -3768,10 +3804,10 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3768
3804
|
icon: z.ZodOptional<z.ZodString>;
|
|
3769
3805
|
}, "strip", z.ZodTypeAny, {
|
|
3770
3806
|
layout: string;
|
|
3807
|
+
basePath: string;
|
|
3771
3808
|
categories: string[];
|
|
3772
3809
|
label: string;
|
|
3773
3810
|
key: string;
|
|
3774
|
-
basePath: string;
|
|
3775
3811
|
feed: boolean;
|
|
3776
3812
|
archives: boolean;
|
|
3777
3813
|
og: boolean;
|
|
@@ -3779,9 +3815,9 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3779
3815
|
pinning: boolean;
|
|
3780
3816
|
icon?: string | undefined;
|
|
3781
3817
|
}, {
|
|
3818
|
+
basePath: string;
|
|
3782
3819
|
label: string;
|
|
3783
3820
|
key: string;
|
|
3784
|
-
basePath: string;
|
|
3785
3821
|
layout?: string | undefined;
|
|
3786
3822
|
icon?: string | undefined;
|
|
3787
3823
|
categories?: string[] | undefined;
|
|
@@ -3793,6 +3829,17 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3793
3829
|
}>, "many">>;
|
|
3794
3830
|
/** 사이트 전역 토큰 override (`--rt-*` CSS 변수 → 값). 비우면 admin /design SSoT. */
|
|
3795
3831
|
theme: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3832
|
+
/**
|
|
3833
|
+
* 테마 방향(Theme Directions, `@roottale/tokens` 프리셋 id — 예: "d1-editorial").
|
|
3834
|
+
* root layout 이 `<html data-rt-direction="…">` 로 부여해
|
|
3835
|
+
* `@roottale/tokens/theme-directions.css` 의 `[data-rt-direction="…"]` 규칙을
|
|
3836
|
+
* 활성화한다(roottale-docs `docs/design/theme-directions.md`). 값은 문자열로만
|
|
3837
|
+
* 검증한다 — `@roottale/cms-renderer-next` 는 `@roottale/tokens` 를 직접
|
|
3838
|
+
* 의존하지 않으므로 유효 id 집합은 `@roottale/tokens/theme-directions` 의
|
|
3839
|
+
* `ThemeDirectionId` 를 참조해 `site.config.ts` 작성 시점에 타입으로 좁힌다.
|
|
3840
|
+
* 미지정 시 속성 자체가 안 붙어 완전히 무변화(기존 동작).
|
|
3841
|
+
*/
|
|
3842
|
+
direction: z.ZodOptional<z.ZodString>;
|
|
3796
3843
|
nav: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
3797
3844
|
label: z.ZodString;
|
|
3798
3845
|
href: z.ZodString;
|
|
@@ -3826,10 +3873,10 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3826
3873
|
}, "strip", z.ZodTypeAny, {
|
|
3827
3874
|
collections: {
|
|
3828
3875
|
layout: string;
|
|
3876
|
+
basePath: string;
|
|
3829
3877
|
categories: string[];
|
|
3830
3878
|
label: string;
|
|
3831
3879
|
key: string;
|
|
3832
|
-
basePath: string;
|
|
3833
3880
|
feed: boolean;
|
|
3834
3881
|
archives: boolean;
|
|
3835
3882
|
og: boolean;
|
|
@@ -3856,6 +3903,8 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3856
3903
|
} | undefined;
|
|
3857
3904
|
};
|
|
3858
3905
|
pages: Record<string, Section[]>;
|
|
3906
|
+
schemaVersion?: number | undefined;
|
|
3907
|
+
direction?: string | undefined;
|
|
3859
3908
|
}, {
|
|
3860
3909
|
site: {
|
|
3861
3910
|
title: string;
|
|
@@ -3868,9 +3917,9 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3868
3917
|
};
|
|
3869
3918
|
pages: Record<string, SectionInput[]>;
|
|
3870
3919
|
collections?: {
|
|
3920
|
+
basePath: string;
|
|
3871
3921
|
label: string;
|
|
3872
3922
|
key: string;
|
|
3873
|
-
basePath: string;
|
|
3874
3923
|
layout?: string | undefined;
|
|
3875
3924
|
icon?: string | undefined;
|
|
3876
3925
|
categories?: string[] | undefined;
|
|
@@ -3889,6 +3938,8 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
3889
3938
|
label: string;
|
|
3890
3939
|
}[] | undefined;
|
|
3891
3940
|
}[] | undefined;
|
|
3941
|
+
schemaVersion?: number | undefined;
|
|
3942
|
+
direction?: string | undefined;
|
|
3892
3943
|
}>;
|
|
3893
3944
|
type SiteConfig = z.output<typeof SiteConfigSchema>;
|
|
3894
3945
|
/** config 작성용 (defaults 생략 가능). */
|
package/dist/spaces-client.d.ts
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { T as TeamSection } from './site-config-CeByrPJF.js';
|
|
3
|
+
import 'zod';
|
|
4
|
+
|
|
5
|
+
type TeamMember = TeamSection["props"]["members"][number];
|
|
6
|
+
/**
|
|
7
|
+
* `team` `expanding-stage` variant 의 실모션 client island (D3 크래프트).
|
|
8
|
+
* chambarun `.staff-stage`/`.staff-panel` 스펙(mockup/assets/site.js·site.css)
|
|
9
|
+
* 이식 — hover/focus/tap 한 인물이 확장되며 자격 정보가 드러난다.
|
|
10
|
+
*
|
|
11
|
+
* 현재 `sections.tsx` `TemplateTeamExpandingStage` 는 이 컴포넌트를 아직
|
|
12
|
+
* import 하지 않는다(정적 격자만 렌더) — `sections.tsx` 는 이 작업 소유 밖이라
|
|
13
|
+
* 와이어링은 별도 보고 대상(README/보고 참조). 이 파일은 그 자리에 그대로
|
|
14
|
+
* 끼워 넣을 수 있도록 `members` 하나만 받는 독립 컴포넌트로 설계했다.
|
|
15
|
+
*
|
|
16
|
+
* 접근성(계약, DESIGN.md "Medical Staff Cards" 원칙 확장):
|
|
17
|
+
* - 각 패널은 `tabIndex=0` 컨테이너(hover/focus/click 시 확장) — chambarun
|
|
18
|
+
* 원본과 동일하게 명시적 role 은 두지 않는다(내부에 실제 CTA 링크가 있어
|
|
19
|
+
* `role="button"` 을 얹으면 중첩 인터랙티브 요소가 된다).
|
|
20
|
+
* - 자격정보·경력·CTA 는 접힌 상태에서도 DOM 에 그대로 존재한다(opacity 로만
|
|
21
|
+
* 가림) — 스크린리더는 hover 없이 전체 내용을 읽을 수 있다("decorative hover
|
|
22
|
+
* layers do not replace content").
|
|
23
|
+
* - CTA 링크는 비활성 패널일 때 `tabIndex=-1` — 보이지 않는 링크가 키보드
|
|
24
|
+
* 포커스를 가로채지 않는다(chambarun 원본에는 없던, React 상태로만 가능한
|
|
25
|
+
* 개선).
|
|
26
|
+
* - `prefers-reduced-motion: reduce` → 전환 자체가 CSS 에서 제거된다
|
|
27
|
+
* (templates.css, `@media (prefers-reduced-motion: no-preference)` 안에만
|
|
28
|
+
* transition 선언 — ADR-0073 K3 C1 과 동일 관행). `data-reduced-motion`
|
|
29
|
+
* 속성은 시각 회귀 테스트/QA 스크린샷 식별용.
|
|
30
|
+
*/
|
|
31
|
+
declare function TeamExpandingStageClient({ members, }: {
|
|
32
|
+
readonly members: readonly TeamMember[];
|
|
33
|
+
}): ReactElement | null;
|
|
34
|
+
|
|
35
|
+
export { TeamExpandingStageClient };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|