@roottale/cms-renderer-next 0.40.0 → 0.41.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 +70 -0
- package/dist/chunk-6AFM2UR5.js +1628 -0
- package/dist/chunk-6AFM2UR5.js.map +1 -0
- package/dist/chunk-IOYBEH6E.js +271 -0
- package/dist/chunk-IOYBEH6E.js.map +1 -0
- package/dist/cms-public.css +243 -2
- package/dist/routes.d.ts +13 -2
- package/dist/routes.js +12 -1
- package/dist/routes.js.map +1 -1
- package/dist/server.d.ts +21 -2
- package/dist/server.js +8 -3
- package/dist/templates.css +238 -7
- package/dist/templates.d.ts +414 -94
- package/dist/templates.js +63 -347
- package/dist/templates.js.map +1 -1
- package/dist/theme-css-vars-BiyHBsJG.d.ts +7 -0
- package/dist/validate.d.ts +90 -0
- package/dist/validate.js +415 -0
- package/dist/validate.js.map +1 -0
- package/package.json +10 -4
- package/dist/chunk-3JUIHMPP.js +0 -1057
- package/dist/chunk-3JUIHMPP.js.map +0 -1
package/dist/templates.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export { R as RootTaleCssVars, t as themeToCssVars } from './theme-css-vars-BiyHBsJG.js';
|
|
2
3
|
import { ReactElement, CSSProperties, ReactNode } from 'react';
|
|
4
|
+
import '@roottale/cms-client/server';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* `@roottale/cms-renderer-next/templates` — canonical `SiteConfig` 스키마.
|
|
@@ -19,6 +21,7 @@ import { ReactElement, CSSProperties, ReactNode } from 'react';
|
|
|
19
21
|
* - `site.url` 은 optional — 스타터/외부 사이트가 `SITE_URL` env 로 런타임 해석하는
|
|
20
22
|
* 기존 패턴(P4 스타터)과 충돌하므로 config 강제 대신 env fallback 허용.
|
|
21
23
|
* - 빌트인에 `rich-text` 추가 (P4 스타터 기 운영 섹션 — "동일 패턴" 군).
|
|
24
|
+
* allow: SIZE_OK — canonical SectionSchema registry이며 W1-2 계약이 이 파일 수정을 요구한다.
|
|
22
25
|
*/
|
|
23
26
|
|
|
24
27
|
declare const NavItemSchema: z.ZodObject<{
|
|
@@ -28,25 +31,25 @@ declare const NavItemSchema: z.ZodObject<{
|
|
|
28
31
|
label: z.ZodString;
|
|
29
32
|
href: z.ZodString;
|
|
30
33
|
}, "strip", z.ZodTypeAny, {
|
|
31
|
-
label: string;
|
|
32
34
|
href: string;
|
|
33
|
-
}, {
|
|
34
35
|
label: string;
|
|
36
|
+
}, {
|
|
35
37
|
href: string;
|
|
38
|
+
label: string;
|
|
36
39
|
}>, "many">>;
|
|
37
40
|
}, "strip", z.ZodTypeAny, {
|
|
38
|
-
label: string;
|
|
39
41
|
href: string;
|
|
42
|
+
label: string;
|
|
40
43
|
children?: {
|
|
41
|
-
label: string;
|
|
42
44
|
href: string;
|
|
45
|
+
label: string;
|
|
43
46
|
}[] | undefined;
|
|
44
47
|
}, {
|
|
45
|
-
label: string;
|
|
46
48
|
href: string;
|
|
49
|
+
label: string;
|
|
47
50
|
children?: {
|
|
48
|
-
label: string;
|
|
49
51
|
href: string;
|
|
52
|
+
label: string;
|
|
50
53
|
}[] | undefined;
|
|
51
54
|
}>;
|
|
52
55
|
type NavItem = z.infer<typeof NavItemSchema>;
|
|
@@ -54,11 +57,11 @@ declare const CtaSchema: z.ZodObject<{
|
|
|
54
57
|
label: z.ZodString;
|
|
55
58
|
href: z.ZodString;
|
|
56
59
|
}, "strip", z.ZodTypeAny, {
|
|
57
|
-
label: string;
|
|
58
60
|
href: string;
|
|
59
|
-
}, {
|
|
60
61
|
label: string;
|
|
62
|
+
}, {
|
|
61
63
|
href: string;
|
|
64
|
+
label: string;
|
|
62
65
|
}>;
|
|
63
66
|
type SectionCta = z.infer<typeof CtaSchema>;
|
|
64
67
|
declare const HeroSectionSchema: z.ZodObject<{
|
|
@@ -78,65 +81,65 @@ declare const HeroSectionSchema: z.ZodObject<{
|
|
|
78
81
|
label: z.ZodString;
|
|
79
82
|
href: z.ZodString;
|
|
80
83
|
}, "strip", z.ZodTypeAny, {
|
|
81
|
-
label: string;
|
|
82
84
|
href: string;
|
|
83
|
-
}, {
|
|
84
85
|
label: string;
|
|
86
|
+
}, {
|
|
85
87
|
href: string;
|
|
88
|
+
label: string;
|
|
86
89
|
}>>;
|
|
87
90
|
}, "strip", z.ZodTypeAny, {
|
|
88
91
|
title: string;
|
|
89
|
-
eyebrow?: string | undefined;
|
|
90
92
|
description?: string | undefined;
|
|
93
|
+
eyebrow?: string | undefined;
|
|
91
94
|
imageSrc?: string | undefined;
|
|
92
95
|
imageAlt?: string | undefined;
|
|
93
96
|
cta?: {
|
|
94
|
-
label: string;
|
|
95
97
|
href: string;
|
|
98
|
+
label: string;
|
|
96
99
|
} | undefined;
|
|
97
100
|
}, {
|
|
98
101
|
title: string;
|
|
99
|
-
eyebrow?: string | undefined;
|
|
100
102
|
description?: string | undefined;
|
|
103
|
+
eyebrow?: string | undefined;
|
|
101
104
|
imageSrc?: string | undefined;
|
|
102
105
|
imageAlt?: string | undefined;
|
|
103
106
|
cta?: {
|
|
104
|
-
label: string;
|
|
105
107
|
href: string;
|
|
108
|
+
label: string;
|
|
106
109
|
} | undefined;
|
|
107
110
|
}>;
|
|
108
111
|
}, "strip", z.ZodTypeAny, {
|
|
109
112
|
type: "hero";
|
|
110
|
-
variant: "
|
|
113
|
+
variant: "image" | "split" | "minimal";
|
|
111
114
|
props: {
|
|
112
115
|
title: string;
|
|
113
|
-
eyebrow?: string | undefined;
|
|
114
116
|
description?: string | undefined;
|
|
117
|
+
eyebrow?: string | undefined;
|
|
115
118
|
imageSrc?: string | undefined;
|
|
116
119
|
imageAlt?: string | undefined;
|
|
117
120
|
cta?: {
|
|
118
|
-
label: string;
|
|
119
121
|
href: string;
|
|
122
|
+
label: string;
|
|
120
123
|
} | undefined;
|
|
121
124
|
};
|
|
122
|
-
id?: string | undefined;
|
|
123
125
|
theme?: Record<string, string> | undefined;
|
|
126
|
+
id?: string | undefined;
|
|
124
127
|
}, {
|
|
125
128
|
type: "hero";
|
|
126
129
|
props: {
|
|
127
130
|
title: string;
|
|
128
|
-
eyebrow?: string | undefined;
|
|
129
131
|
description?: string | undefined;
|
|
132
|
+
eyebrow?: string | undefined;
|
|
130
133
|
imageSrc?: string | undefined;
|
|
131
134
|
imageAlt?: string | undefined;
|
|
132
135
|
cta?: {
|
|
133
|
-
label: string;
|
|
134
136
|
href: string;
|
|
137
|
+
label: string;
|
|
135
138
|
} | undefined;
|
|
136
139
|
};
|
|
137
|
-
id?: string | undefined;
|
|
138
|
-
variant?: "split" | "image" | "minimal" | undefined;
|
|
139
140
|
theme?: Record<string, string> | undefined;
|
|
141
|
+
id?: string | undefined;
|
|
142
|
+
variant?: "image" | "split" | "minimal" | undefined;
|
|
140
143
|
}>;
|
|
141
144
|
declare const RichTextSectionSchema: z.ZodObject<{
|
|
142
145
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -161,18 +164,18 @@ declare const RichTextSectionSchema: z.ZodObject<{
|
|
|
161
164
|
body: string;
|
|
162
165
|
heading?: string | undefined;
|
|
163
166
|
};
|
|
167
|
+
theme?: Record<string, string> | undefined;
|
|
164
168
|
id?: string | undefined;
|
|
165
169
|
variant?: string | undefined;
|
|
166
|
-
theme?: Record<string, string> | undefined;
|
|
167
170
|
}, {
|
|
168
171
|
type: "rich-text";
|
|
169
172
|
props: {
|
|
170
173
|
body: string;
|
|
171
174
|
heading?: string | undefined;
|
|
172
175
|
};
|
|
176
|
+
theme?: Record<string, string> | undefined;
|
|
173
177
|
id?: string | undefined;
|
|
174
178
|
variant?: string | undefined;
|
|
175
|
-
theme?: Record<string, string> | undefined;
|
|
176
179
|
}>;
|
|
177
180
|
declare const ServicesSectionSchema: z.ZodObject<{
|
|
178
181
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -202,16 +205,16 @@ declare const ServicesSectionSchema: z.ZodObject<{
|
|
|
202
205
|
href?: string | undefined;
|
|
203
206
|
description?: string | undefined;
|
|
204
207
|
}[];
|
|
205
|
-
description?: string | undefined;
|
|
206
208
|
heading?: string | undefined;
|
|
209
|
+
description?: string | undefined;
|
|
207
210
|
}, {
|
|
208
211
|
items: {
|
|
209
212
|
title: string;
|
|
210
213
|
href?: string | undefined;
|
|
211
214
|
description?: string | undefined;
|
|
212
215
|
}[];
|
|
213
|
-
description?: string | undefined;
|
|
214
216
|
heading?: string | undefined;
|
|
217
|
+
description?: string | undefined;
|
|
215
218
|
}>;
|
|
216
219
|
}, "strip", z.ZodTypeAny, {
|
|
217
220
|
type: "services";
|
|
@@ -222,11 +225,11 @@ declare const ServicesSectionSchema: z.ZodObject<{
|
|
|
222
225
|
href?: string | undefined;
|
|
223
226
|
description?: string | undefined;
|
|
224
227
|
}[];
|
|
225
|
-
description?: string | undefined;
|
|
226
228
|
heading?: string | undefined;
|
|
229
|
+
description?: string | undefined;
|
|
227
230
|
};
|
|
228
|
-
id?: string | undefined;
|
|
229
231
|
theme?: Record<string, string> | undefined;
|
|
232
|
+
id?: string | undefined;
|
|
230
233
|
}, {
|
|
231
234
|
type: "services";
|
|
232
235
|
props: {
|
|
@@ -235,12 +238,12 @@ declare const ServicesSectionSchema: z.ZodObject<{
|
|
|
235
238
|
href?: string | undefined;
|
|
236
239
|
description?: string | undefined;
|
|
237
240
|
}[];
|
|
238
|
-
description?: string | undefined;
|
|
239
241
|
heading?: string | undefined;
|
|
242
|
+
description?: string | undefined;
|
|
240
243
|
};
|
|
244
|
+
theme?: Record<string, string> | undefined;
|
|
241
245
|
id?: string | undefined;
|
|
242
246
|
variant?: "grid" | "list" | undefined;
|
|
243
|
-
theme?: Record<string, string> | undefined;
|
|
244
247
|
}>;
|
|
245
248
|
declare const FaqSectionSchema: z.ZodObject<{
|
|
246
249
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -287,9 +290,9 @@ declare const FaqSectionSchema: z.ZodObject<{
|
|
|
287
290
|
jsonLd: boolean;
|
|
288
291
|
heading?: string | undefined;
|
|
289
292
|
};
|
|
293
|
+
theme?: Record<string, string> | undefined;
|
|
290
294
|
id?: string | undefined;
|
|
291
295
|
variant?: string | undefined;
|
|
292
|
-
theme?: Record<string, string> | undefined;
|
|
293
296
|
}, {
|
|
294
297
|
type: "faq";
|
|
295
298
|
props: {
|
|
@@ -300,9 +303,9 @@ declare const FaqSectionSchema: z.ZodObject<{
|
|
|
300
303
|
heading?: string | undefined;
|
|
301
304
|
jsonLd?: boolean | undefined;
|
|
302
305
|
};
|
|
306
|
+
theme?: Record<string, string> | undefined;
|
|
303
307
|
id?: string | undefined;
|
|
304
308
|
variant?: string | undefined;
|
|
305
|
-
theme?: Record<string, string> | undefined;
|
|
306
309
|
}>;
|
|
307
310
|
declare const CtaBannerSectionSchema: z.ZodObject<{
|
|
308
311
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -317,25 +320,25 @@ declare const CtaBannerSectionSchema: z.ZodObject<{
|
|
|
317
320
|
label: z.ZodString;
|
|
318
321
|
href: z.ZodString;
|
|
319
322
|
}, "strip", z.ZodTypeAny, {
|
|
320
|
-
label: string;
|
|
321
323
|
href: string;
|
|
322
|
-
}, {
|
|
323
324
|
label: string;
|
|
325
|
+
}, {
|
|
324
326
|
href: string;
|
|
327
|
+
label: string;
|
|
325
328
|
}>>;
|
|
326
329
|
}, "strip", z.ZodTypeAny, {
|
|
327
330
|
title: string;
|
|
328
331
|
description?: string | undefined;
|
|
329
332
|
cta?: {
|
|
330
|
-
label: string;
|
|
331
333
|
href: string;
|
|
334
|
+
label: string;
|
|
332
335
|
} | undefined;
|
|
333
336
|
}, {
|
|
334
337
|
title: string;
|
|
335
338
|
description?: string | undefined;
|
|
336
339
|
cta?: {
|
|
337
|
-
label: string;
|
|
338
340
|
href: string;
|
|
341
|
+
label: string;
|
|
339
342
|
} | undefined;
|
|
340
343
|
}>;
|
|
341
344
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -344,26 +347,26 @@ declare const CtaBannerSectionSchema: z.ZodObject<{
|
|
|
344
347
|
title: string;
|
|
345
348
|
description?: string | undefined;
|
|
346
349
|
cta?: {
|
|
347
|
-
label: string;
|
|
348
350
|
href: string;
|
|
351
|
+
label: string;
|
|
349
352
|
} | undefined;
|
|
350
353
|
};
|
|
354
|
+
theme?: Record<string, string> | undefined;
|
|
351
355
|
id?: string | undefined;
|
|
352
356
|
variant?: string | undefined;
|
|
353
|
-
theme?: Record<string, string> | undefined;
|
|
354
357
|
}, {
|
|
355
358
|
type: "cta-banner";
|
|
356
359
|
props: {
|
|
357
360
|
title: string;
|
|
358
361
|
description?: string | undefined;
|
|
359
362
|
cta?: {
|
|
360
|
-
label: string;
|
|
361
363
|
href: string;
|
|
364
|
+
label: string;
|
|
362
365
|
} | undefined;
|
|
363
366
|
};
|
|
367
|
+
theme?: Record<string, string> | undefined;
|
|
364
368
|
id?: string | undefined;
|
|
365
369
|
variant?: string | undefined;
|
|
366
|
-
theme?: Record<string, string> | undefined;
|
|
367
370
|
}>;
|
|
368
371
|
/** → `RootTaleBlogList` 위임 (cms-bound). */
|
|
369
372
|
declare const BlogListSectionSchema: z.ZodObject<{
|
|
@@ -379,38 +382,38 @@ declare const BlogListSectionSchema: z.ZodObject<{
|
|
|
379
382
|
blogBasePath: z.ZodOptional<z.ZodString>;
|
|
380
383
|
emptyMessage: z.ZodOptional<z.ZodString>;
|
|
381
384
|
}, "strip", z.ZodTypeAny, {
|
|
382
|
-
heading?: string | undefined;
|
|
383
385
|
limit?: number | undefined;
|
|
384
|
-
blogBasePath?: string | undefined;
|
|
385
386
|
emptyMessage?: string | undefined;
|
|
386
|
-
}, {
|
|
387
387
|
heading?: string | undefined;
|
|
388
|
-
limit?: number | undefined;
|
|
389
388
|
blogBasePath?: string | undefined;
|
|
389
|
+
}, {
|
|
390
|
+
limit?: number | undefined;
|
|
390
391
|
emptyMessage?: string | undefined;
|
|
392
|
+
heading?: string | undefined;
|
|
393
|
+
blogBasePath?: string | undefined;
|
|
391
394
|
}>;
|
|
392
395
|
}, "strip", z.ZodTypeAny, {
|
|
393
396
|
type: "blog-list";
|
|
394
397
|
props: {
|
|
395
|
-
heading?: string | undefined;
|
|
396
398
|
limit?: number | undefined;
|
|
397
|
-
blogBasePath?: string | undefined;
|
|
398
399
|
emptyMessage?: string | undefined;
|
|
400
|
+
heading?: string | undefined;
|
|
401
|
+
blogBasePath?: string | undefined;
|
|
399
402
|
};
|
|
403
|
+
theme?: Record<string, string> | undefined;
|
|
400
404
|
id?: string | undefined;
|
|
401
405
|
variant?: string | undefined;
|
|
402
|
-
theme?: Record<string, string> | undefined;
|
|
403
406
|
}, {
|
|
404
407
|
type: "blog-list";
|
|
405
408
|
props: {
|
|
406
|
-
heading?: string | undefined;
|
|
407
409
|
limit?: number | undefined;
|
|
408
|
-
blogBasePath?: string | undefined;
|
|
409
410
|
emptyMessage?: string | undefined;
|
|
411
|
+
heading?: string | undefined;
|
|
412
|
+
blogBasePath?: string | undefined;
|
|
410
413
|
};
|
|
414
|
+
theme?: Record<string, string> | undefined;
|
|
411
415
|
id?: string | undefined;
|
|
412
416
|
variant?: string | undefined;
|
|
413
|
-
theme?: Record<string, string> | undefined;
|
|
414
417
|
}>;
|
|
415
418
|
/** → `RootTaleLeadForm` 위임 (cms-bound). */
|
|
416
419
|
declare const LeadFormSectionSchema: z.ZodObject<{
|
|
@@ -428,41 +431,352 @@ declare const LeadFormSectionSchema: z.ZodObject<{
|
|
|
428
431
|
submitLabel: z.ZodOptional<z.ZodString>;
|
|
429
432
|
}, "strip", z.ZodTypeAny, {
|
|
430
433
|
action: string;
|
|
431
|
-
description?: string | undefined;
|
|
432
|
-
heading?: string | undefined;
|
|
433
434
|
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
435
|
+
heading?: string | undefined;
|
|
436
|
+
description?: string | undefined;
|
|
434
437
|
submitLabel?: string | undefined;
|
|
435
438
|
}, {
|
|
436
439
|
action: string;
|
|
437
|
-
description?: string | undefined;
|
|
438
|
-
heading?: string | undefined;
|
|
439
440
|
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
441
|
+
heading?: string | undefined;
|
|
442
|
+
description?: string | undefined;
|
|
440
443
|
submitLabel?: string | undefined;
|
|
441
444
|
}>;
|
|
442
445
|
}, "strip", z.ZodTypeAny, {
|
|
443
446
|
type: "lead-form";
|
|
444
447
|
props: {
|
|
445
448
|
action: string;
|
|
446
|
-
description?: string | undefined;
|
|
447
|
-
heading?: string | undefined;
|
|
448
449
|
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
450
|
+
heading?: string | undefined;
|
|
451
|
+
description?: string | undefined;
|
|
449
452
|
submitLabel?: string | undefined;
|
|
450
453
|
};
|
|
454
|
+
theme?: Record<string, string> | undefined;
|
|
451
455
|
id?: string | undefined;
|
|
452
456
|
variant?: string | undefined;
|
|
453
|
-
theme?: Record<string, string> | undefined;
|
|
454
457
|
}, {
|
|
455
458
|
type: "lead-form";
|
|
456
459
|
props: {
|
|
457
460
|
action: string;
|
|
458
|
-
description?: string | undefined;
|
|
459
|
-
heading?: string | undefined;
|
|
460
461
|
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
462
|
+
heading?: string | undefined;
|
|
463
|
+
description?: string | undefined;
|
|
461
464
|
submitLabel?: string | undefined;
|
|
462
465
|
};
|
|
466
|
+
theme?: Record<string, string> | undefined;
|
|
463
467
|
id?: string | undefined;
|
|
464
468
|
variant?: string | undefined;
|
|
469
|
+
}>;
|
|
470
|
+
declare const TrustSectionSchema: z.ZodEffects<z.ZodObject<{
|
|
471
|
+
id: z.ZodOptional<z.ZodString>;
|
|
472
|
+
theme: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
473
|
+
} & {
|
|
474
|
+
type: z.ZodLiteral<"trust">;
|
|
475
|
+
variant: z.ZodDefault<z.ZodEnum<["stat-band", "logo-cloud", "feature-grid"]>>;
|
|
476
|
+
props: z.ZodObject<{
|
|
477
|
+
heading: z.ZodOptional<z.ZodString>;
|
|
478
|
+
metrics: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
479
|
+
value: z.ZodString;
|
|
480
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
481
|
+
label: z.ZodString;
|
|
482
|
+
source: z.ZodOptional<z.ZodString>;
|
|
483
|
+
}, "strip", z.ZodTypeAny, {
|
|
484
|
+
value: string;
|
|
485
|
+
label: string;
|
|
486
|
+
unit?: string | undefined;
|
|
487
|
+
source?: string | undefined;
|
|
488
|
+
}, {
|
|
489
|
+
value: string;
|
|
490
|
+
label: string;
|
|
491
|
+
unit?: string | undefined;
|
|
492
|
+
source?: string | undefined;
|
|
493
|
+
}>, "many">>;
|
|
494
|
+
credentials: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
495
|
+
name: z.ZodString;
|
|
496
|
+
issuer: z.ZodOptional<z.ZodString>;
|
|
497
|
+
kind: z.ZodOptional<z.ZodEnum<["license", "education", "association"]>>;
|
|
498
|
+
image: z.ZodOptional<z.ZodString>;
|
|
499
|
+
}, "strip", z.ZodTypeAny, {
|
|
500
|
+
name: string;
|
|
501
|
+
image?: string | undefined;
|
|
502
|
+
issuer?: string | undefined;
|
|
503
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
504
|
+
}, {
|
|
505
|
+
name: string;
|
|
506
|
+
image?: string | undefined;
|
|
507
|
+
issuer?: string | undefined;
|
|
508
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
509
|
+
}>, "many">>;
|
|
510
|
+
logos: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
511
|
+
src: z.ZodString;
|
|
512
|
+
alt: z.ZodString;
|
|
513
|
+
href: z.ZodOptional<z.ZodString>;
|
|
514
|
+
}, "strip", z.ZodTypeAny, {
|
|
515
|
+
src: string;
|
|
516
|
+
alt: string;
|
|
517
|
+
href?: string | undefined;
|
|
518
|
+
}, {
|
|
519
|
+
src: string;
|
|
520
|
+
alt: string;
|
|
521
|
+
href?: string | undefined;
|
|
522
|
+
}>, "many">>;
|
|
523
|
+
disclaimer: z.ZodOptional<z.ZodString>;
|
|
524
|
+
}, "strip", z.ZodTypeAny, {
|
|
525
|
+
heading?: string | undefined;
|
|
526
|
+
metrics?: {
|
|
527
|
+
value: string;
|
|
528
|
+
label: string;
|
|
529
|
+
unit?: string | undefined;
|
|
530
|
+
source?: string | undefined;
|
|
531
|
+
}[] | undefined;
|
|
532
|
+
credentials?: {
|
|
533
|
+
name: string;
|
|
534
|
+
image?: string | undefined;
|
|
535
|
+
issuer?: string | undefined;
|
|
536
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
537
|
+
}[] | undefined;
|
|
538
|
+
logos?: {
|
|
539
|
+
src: string;
|
|
540
|
+
alt: string;
|
|
541
|
+
href?: string | undefined;
|
|
542
|
+
}[] | undefined;
|
|
543
|
+
disclaimer?: string | undefined;
|
|
544
|
+
}, {
|
|
545
|
+
heading?: string | undefined;
|
|
546
|
+
metrics?: {
|
|
547
|
+
value: string;
|
|
548
|
+
label: string;
|
|
549
|
+
unit?: string | undefined;
|
|
550
|
+
source?: string | undefined;
|
|
551
|
+
}[] | undefined;
|
|
552
|
+
credentials?: {
|
|
553
|
+
name: string;
|
|
554
|
+
image?: string | undefined;
|
|
555
|
+
issuer?: string | undefined;
|
|
556
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
557
|
+
}[] | undefined;
|
|
558
|
+
logos?: {
|
|
559
|
+
src: string;
|
|
560
|
+
alt: string;
|
|
561
|
+
href?: string | undefined;
|
|
562
|
+
}[] | undefined;
|
|
563
|
+
disclaimer?: string | undefined;
|
|
564
|
+
}>;
|
|
565
|
+
}, "strip", z.ZodTypeAny, {
|
|
566
|
+
type: "trust";
|
|
567
|
+
variant: "stat-band" | "logo-cloud" | "feature-grid";
|
|
568
|
+
props: {
|
|
569
|
+
heading?: string | undefined;
|
|
570
|
+
metrics?: {
|
|
571
|
+
value: string;
|
|
572
|
+
label: string;
|
|
573
|
+
unit?: string | undefined;
|
|
574
|
+
source?: string | undefined;
|
|
575
|
+
}[] | undefined;
|
|
576
|
+
credentials?: {
|
|
577
|
+
name: string;
|
|
578
|
+
image?: string | undefined;
|
|
579
|
+
issuer?: string | undefined;
|
|
580
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
581
|
+
}[] | undefined;
|
|
582
|
+
logos?: {
|
|
583
|
+
src: string;
|
|
584
|
+
alt: string;
|
|
585
|
+
href?: string | undefined;
|
|
586
|
+
}[] | undefined;
|
|
587
|
+
disclaimer?: string | undefined;
|
|
588
|
+
};
|
|
589
|
+
theme?: Record<string, string> | undefined;
|
|
590
|
+
id?: string | undefined;
|
|
591
|
+
}, {
|
|
592
|
+
type: "trust";
|
|
593
|
+
props: {
|
|
594
|
+
heading?: string | undefined;
|
|
595
|
+
metrics?: {
|
|
596
|
+
value: string;
|
|
597
|
+
label: string;
|
|
598
|
+
unit?: string | undefined;
|
|
599
|
+
source?: string | undefined;
|
|
600
|
+
}[] | undefined;
|
|
601
|
+
credentials?: {
|
|
602
|
+
name: string;
|
|
603
|
+
image?: string | undefined;
|
|
604
|
+
issuer?: string | undefined;
|
|
605
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
606
|
+
}[] | undefined;
|
|
607
|
+
logos?: {
|
|
608
|
+
src: string;
|
|
609
|
+
alt: string;
|
|
610
|
+
href?: string | undefined;
|
|
611
|
+
}[] | undefined;
|
|
612
|
+
disclaimer?: string | undefined;
|
|
613
|
+
};
|
|
465
614
|
theme?: Record<string, string> | undefined;
|
|
615
|
+
id?: string | undefined;
|
|
616
|
+
variant?: "stat-band" | "logo-cloud" | "feature-grid" | undefined;
|
|
617
|
+
}>, {
|
|
618
|
+
type: "trust";
|
|
619
|
+
variant: "stat-band" | "logo-cloud" | "feature-grid";
|
|
620
|
+
props: {
|
|
621
|
+
heading?: string | undefined;
|
|
622
|
+
metrics?: {
|
|
623
|
+
value: string;
|
|
624
|
+
label: string;
|
|
625
|
+
unit?: string | undefined;
|
|
626
|
+
source?: string | undefined;
|
|
627
|
+
}[] | undefined;
|
|
628
|
+
credentials?: {
|
|
629
|
+
name: string;
|
|
630
|
+
image?: string | undefined;
|
|
631
|
+
issuer?: string | undefined;
|
|
632
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
633
|
+
}[] | undefined;
|
|
634
|
+
logos?: {
|
|
635
|
+
src: string;
|
|
636
|
+
alt: string;
|
|
637
|
+
href?: string | undefined;
|
|
638
|
+
}[] | undefined;
|
|
639
|
+
disclaimer?: string | undefined;
|
|
640
|
+
};
|
|
641
|
+
theme?: Record<string, string> | undefined;
|
|
642
|
+
id?: string | undefined;
|
|
643
|
+
}, {
|
|
644
|
+
type: "trust";
|
|
645
|
+
props: {
|
|
646
|
+
heading?: string | undefined;
|
|
647
|
+
metrics?: {
|
|
648
|
+
value: string;
|
|
649
|
+
label: string;
|
|
650
|
+
unit?: string | undefined;
|
|
651
|
+
source?: string | undefined;
|
|
652
|
+
}[] | undefined;
|
|
653
|
+
credentials?: {
|
|
654
|
+
name: string;
|
|
655
|
+
image?: string | undefined;
|
|
656
|
+
issuer?: string | undefined;
|
|
657
|
+
kind?: "license" | "education" | "association" | undefined;
|
|
658
|
+
}[] | undefined;
|
|
659
|
+
logos?: {
|
|
660
|
+
src: string;
|
|
661
|
+
alt: string;
|
|
662
|
+
href?: string | undefined;
|
|
663
|
+
}[] | undefined;
|
|
664
|
+
disclaimer?: string | undefined;
|
|
665
|
+
};
|
|
666
|
+
theme?: Record<string, string> | undefined;
|
|
667
|
+
id?: string | undefined;
|
|
668
|
+
variant?: "stat-band" | "logo-cloud" | "feature-grid" | undefined;
|
|
669
|
+
}>;
|
|
670
|
+
declare const ContactSectionSchema: z.ZodObject<{
|
|
671
|
+
id: z.ZodOptional<z.ZodString>;
|
|
672
|
+
theme: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
673
|
+
} & {
|
|
674
|
+
type: z.ZodLiteral<"contact">;
|
|
675
|
+
variant: z.ZodDefault<z.ZodEnum<["form-map-5050", "split"]>>;
|
|
676
|
+
props: z.ZodObject<{
|
|
677
|
+
heading: z.ZodOptional<z.ZodString>;
|
|
678
|
+
form: z.ZodObject<{
|
|
679
|
+
enabled: z.ZodBoolean;
|
|
680
|
+
vertical: z.ZodOptional<z.ZodEnum<["medical", "tax", "legal", "consulting"]>>;
|
|
681
|
+
}, "strip", z.ZodTypeAny, {
|
|
682
|
+
enabled: boolean;
|
|
683
|
+
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
684
|
+
}, {
|
|
685
|
+
enabled: boolean;
|
|
686
|
+
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
687
|
+
}>;
|
|
688
|
+
phone: z.ZodOptional<z.ZodString>;
|
|
689
|
+
address: z.ZodOptional<z.ZodString>;
|
|
690
|
+
hours: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
691
|
+
day: z.ZodString;
|
|
692
|
+
open: z.ZodString;
|
|
693
|
+
close: z.ZodString;
|
|
694
|
+
note: z.ZodOptional<z.ZodString>;
|
|
695
|
+
}, "strip", z.ZodTypeAny, {
|
|
696
|
+
open: string;
|
|
697
|
+
day: string;
|
|
698
|
+
close: string;
|
|
699
|
+
note?: string | undefined;
|
|
700
|
+
}, {
|
|
701
|
+
open: string;
|
|
702
|
+
day: string;
|
|
703
|
+
close: string;
|
|
704
|
+
note?: string | undefined;
|
|
705
|
+
}>, "many">>;
|
|
706
|
+
mapEmbedUrl: z.ZodOptional<z.ZodString>;
|
|
707
|
+
}, "strip", z.ZodTypeAny, {
|
|
708
|
+
form: {
|
|
709
|
+
enabled: boolean;
|
|
710
|
+
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
711
|
+
};
|
|
712
|
+
heading?: string | undefined;
|
|
713
|
+
phone?: string | undefined;
|
|
714
|
+
address?: string | undefined;
|
|
715
|
+
hours?: {
|
|
716
|
+
open: string;
|
|
717
|
+
day: string;
|
|
718
|
+
close: string;
|
|
719
|
+
note?: string | undefined;
|
|
720
|
+
}[] | undefined;
|
|
721
|
+
mapEmbedUrl?: string | undefined;
|
|
722
|
+
}, {
|
|
723
|
+
form: {
|
|
724
|
+
enabled: boolean;
|
|
725
|
+
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
726
|
+
};
|
|
727
|
+
heading?: string | undefined;
|
|
728
|
+
phone?: string | undefined;
|
|
729
|
+
address?: string | undefined;
|
|
730
|
+
hours?: {
|
|
731
|
+
open: string;
|
|
732
|
+
day: string;
|
|
733
|
+
close: string;
|
|
734
|
+
note?: string | undefined;
|
|
735
|
+
}[] | undefined;
|
|
736
|
+
mapEmbedUrl?: string | undefined;
|
|
737
|
+
}>;
|
|
738
|
+
}, "strip", z.ZodTypeAny, {
|
|
739
|
+
type: "contact";
|
|
740
|
+
variant: "split" | "form-map-5050";
|
|
741
|
+
props: {
|
|
742
|
+
form: {
|
|
743
|
+
enabled: boolean;
|
|
744
|
+
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
745
|
+
};
|
|
746
|
+
heading?: string | undefined;
|
|
747
|
+
phone?: string | undefined;
|
|
748
|
+
address?: string | undefined;
|
|
749
|
+
hours?: {
|
|
750
|
+
open: string;
|
|
751
|
+
day: string;
|
|
752
|
+
close: string;
|
|
753
|
+
note?: string | undefined;
|
|
754
|
+
}[] | undefined;
|
|
755
|
+
mapEmbedUrl?: string | undefined;
|
|
756
|
+
};
|
|
757
|
+
theme?: Record<string, string> | undefined;
|
|
758
|
+
id?: string | undefined;
|
|
759
|
+
}, {
|
|
760
|
+
type: "contact";
|
|
761
|
+
props: {
|
|
762
|
+
form: {
|
|
763
|
+
enabled: boolean;
|
|
764
|
+
vertical?: "consulting" | "medical" | "tax" | "legal" | undefined;
|
|
765
|
+
};
|
|
766
|
+
heading?: string | undefined;
|
|
767
|
+
phone?: string | undefined;
|
|
768
|
+
address?: string | undefined;
|
|
769
|
+
hours?: {
|
|
770
|
+
open: string;
|
|
771
|
+
day: string;
|
|
772
|
+
close: string;
|
|
773
|
+
note?: string | undefined;
|
|
774
|
+
}[] | undefined;
|
|
775
|
+
mapEmbedUrl?: string | undefined;
|
|
776
|
+
};
|
|
777
|
+
theme?: Record<string, string> | undefined;
|
|
778
|
+
id?: string | undefined;
|
|
779
|
+
variant?: "split" | "form-map-5050" | undefined;
|
|
466
780
|
}>;
|
|
467
781
|
/** customSections 용 fallback — `type` 자유, props 는 직렬화만 강제. */
|
|
468
782
|
declare const CustomSectionSchema: z.ZodObject<{
|
|
@@ -479,16 +793,17 @@ declare const CustomSectionSchema: z.ZodObject<{
|
|
|
479
793
|
}, "strip", z.ZodTypeAny, {
|
|
480
794
|
type: string;
|
|
481
795
|
props: Record<string, unknown>;
|
|
796
|
+
theme?: Record<string, string> | undefined;
|
|
482
797
|
id?: string | undefined;
|
|
483
798
|
variant?: string | undefined;
|
|
484
|
-
theme?: Record<string, string> | undefined;
|
|
485
799
|
}, {
|
|
486
800
|
type: string;
|
|
801
|
+
theme?: Record<string, string> | undefined;
|
|
487
802
|
id?: string | undefined;
|
|
488
803
|
variant?: string | undefined;
|
|
489
|
-
theme?: Record<string, string> | undefined;
|
|
490
804
|
props?: Record<string, unknown> | undefined;
|
|
491
805
|
}>;
|
|
806
|
+
declare const BUILTIN_SECTION_SCHEMAS: Record<string, z.ZodTypeAny>;
|
|
492
807
|
/** 빌트인 type 목록 (renderer registry 와 1:1). */
|
|
493
808
|
declare const BUILTIN_SECTION_TYPES: readonly string[];
|
|
494
809
|
type HeroSection = z.output<typeof HeroSectionSchema>;
|
|
@@ -498,11 +813,13 @@ type FaqSection = z.output<typeof FaqSectionSchema>;
|
|
|
498
813
|
type CtaBannerSection = z.output<typeof CtaBannerSectionSchema>;
|
|
499
814
|
type BlogListSection = z.output<typeof BlogListSectionSchema>;
|
|
500
815
|
type LeadFormSection = z.output<typeof LeadFormSectionSchema>;
|
|
816
|
+
type TrustSection = z.output<typeof TrustSectionSchema>;
|
|
817
|
+
type ContactSection = z.output<typeof ContactSectionSchema>;
|
|
501
818
|
type CustomSection = z.output<typeof CustomSectionSchema>;
|
|
502
819
|
/** 파싱 결과 섹션 (defaults 적용 후). */
|
|
503
|
-
type Section = HeroSection | RichTextSection | ServicesSection | FaqSection | CtaBannerSection | BlogListSection | LeadFormSection | CustomSection;
|
|
820
|
+
type Section = HeroSection | RichTextSection | ServicesSection | FaqSection | CtaBannerSection | BlogListSection | LeadFormSection | TrustSection | ContactSection | CustomSection;
|
|
504
821
|
/** config 작성용 섹션 (defaults 생략 가능). `site.config.ts` 에서 이 타입 사용. */
|
|
505
|
-
type SectionInput = z.input<typeof HeroSectionSchema> | z.input<typeof RichTextSectionSchema> | z.input<typeof ServicesSectionSchema> | z.input<typeof FaqSectionSchema> | z.input<typeof CtaBannerSectionSchema> | z.input<typeof BlogListSectionSchema> | z.input<typeof LeadFormSectionSchema> | z.input<typeof CustomSectionSchema>;
|
|
822
|
+
type SectionInput = z.input<typeof HeroSectionSchema> | z.input<typeof RichTextSectionSchema> | z.input<typeof ServicesSectionSchema> | z.input<typeof FaqSectionSchema> | z.input<typeof CtaBannerSectionSchema> | z.input<typeof BlogListSectionSchema> | z.input<typeof LeadFormSectionSchema> | z.input<typeof TrustSectionSchema> | z.input<typeof ContactSectionSchema> | z.input<typeof CustomSectionSchema>;
|
|
506
823
|
/**
|
|
507
824
|
* 섹션 스키마 — 빌트인 type 이면 해당 스키마로 *강제* 검증 (union fallthrough 로
|
|
508
825
|
* 빌트인 오타이핑이 CustomSection 으로 조용히 통과하는 것을 차단), 미지 type 은
|
|
@@ -527,17 +844,17 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
527
844
|
title: string;
|
|
528
845
|
locale: string;
|
|
529
846
|
description?: string | undefined;
|
|
847
|
+
url?: string | undefined;
|
|
530
848
|
og?: {
|
|
531
849
|
image?: string | undefined;
|
|
532
850
|
} | undefined;
|
|
533
|
-
url?: string | undefined;
|
|
534
851
|
}, {
|
|
535
852
|
title: string;
|
|
536
853
|
description?: string | undefined;
|
|
854
|
+
url?: string | undefined;
|
|
537
855
|
og?: {
|
|
538
856
|
image?: string | undefined;
|
|
539
857
|
} | undefined;
|
|
540
|
-
url?: string | undefined;
|
|
541
858
|
locale?: string | undefined;
|
|
542
859
|
}>;
|
|
543
860
|
/**
|
|
@@ -569,11 +886,11 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
569
886
|
/** nav/카드 아이콘 키 (선택). */
|
|
570
887
|
icon: z.ZodOptional<z.ZodString>;
|
|
571
888
|
}, "strip", z.ZodTypeAny, {
|
|
889
|
+
layout: string;
|
|
890
|
+
categories: string[];
|
|
572
891
|
label: string;
|
|
573
892
|
key: string;
|
|
574
893
|
basePath: string;
|
|
575
|
-
layout: string;
|
|
576
|
-
categories: string[];
|
|
577
894
|
feed: boolean;
|
|
578
895
|
archives: boolean;
|
|
579
896
|
og: boolean;
|
|
@@ -585,13 +902,13 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
585
902
|
key: string;
|
|
586
903
|
basePath: string;
|
|
587
904
|
layout?: string | undefined;
|
|
905
|
+
icon?: string | undefined;
|
|
588
906
|
categories?: string[] | undefined;
|
|
589
907
|
feed?: boolean | undefined;
|
|
590
908
|
archives?: boolean | undefined;
|
|
591
909
|
og?: boolean | undefined;
|
|
592
910
|
requireSubcategory?: boolean | undefined;
|
|
593
911
|
pinning?: boolean | undefined;
|
|
594
|
-
icon?: string | undefined;
|
|
595
912
|
}>, "many">>;
|
|
596
913
|
/** 사이트 전역 토큰 override (`--rt-*` CSS 변수 → 값). 비우면 admin /design SSoT. */
|
|
597
914
|
theme: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -602,46 +919,36 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
602
919
|
label: z.ZodString;
|
|
603
920
|
href: z.ZodString;
|
|
604
921
|
}, "strip", z.ZodTypeAny, {
|
|
605
|
-
label: string;
|
|
606
922
|
href: string;
|
|
607
|
-
}, {
|
|
608
923
|
label: string;
|
|
924
|
+
}, {
|
|
609
925
|
href: string;
|
|
926
|
+
label: string;
|
|
610
927
|
}>, "many">>;
|
|
611
928
|
}, "strip", z.ZodTypeAny, {
|
|
612
|
-
label: string;
|
|
613
929
|
href: string;
|
|
930
|
+
label: string;
|
|
614
931
|
children?: {
|
|
615
|
-
label: string;
|
|
616
932
|
href: string;
|
|
933
|
+
label: string;
|
|
617
934
|
}[] | undefined;
|
|
618
935
|
}, {
|
|
619
|
-
label: string;
|
|
620
936
|
href: string;
|
|
937
|
+
label: string;
|
|
621
938
|
children?: {
|
|
622
|
-
label: string;
|
|
623
939
|
href: string;
|
|
940
|
+
label: string;
|
|
624
941
|
}[] | undefined;
|
|
625
942
|
}>, "many">>;
|
|
626
943
|
/** path("/", "/services", …) → 섹션 배열. */
|
|
627
944
|
pages: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodType<Section, z.ZodTypeDef, SectionInput>, "many">>;
|
|
628
945
|
}, "strip", z.ZodTypeAny, {
|
|
629
|
-
theme: Record<string, string>;
|
|
630
|
-
site: {
|
|
631
|
-
title: string;
|
|
632
|
-
locale: string;
|
|
633
|
-
description?: string | undefined;
|
|
634
|
-
og?: {
|
|
635
|
-
image?: string | undefined;
|
|
636
|
-
} | undefined;
|
|
637
|
-
url?: string | undefined;
|
|
638
|
-
};
|
|
639
946
|
collections: {
|
|
947
|
+
layout: string;
|
|
948
|
+
categories: string[];
|
|
640
949
|
label: string;
|
|
641
950
|
key: string;
|
|
642
951
|
basePath: string;
|
|
643
|
-
layout: string;
|
|
644
|
-
categories: string[];
|
|
645
952
|
feed: boolean;
|
|
646
953
|
archives: boolean;
|
|
647
954
|
og: boolean;
|
|
@@ -649,46 +956,56 @@ declare const SiteConfigSchema: z.ZodObject<{
|
|
|
649
956
|
pinning: boolean;
|
|
650
957
|
icon?: string | undefined;
|
|
651
958
|
}[];
|
|
959
|
+
theme: Record<string, string>;
|
|
652
960
|
nav: {
|
|
653
|
-
label: string;
|
|
654
961
|
href: string;
|
|
962
|
+
label: string;
|
|
655
963
|
children?: {
|
|
656
|
-
label: string;
|
|
657
964
|
href: string;
|
|
965
|
+
label: string;
|
|
658
966
|
}[] | undefined;
|
|
659
967
|
}[];
|
|
968
|
+
site: {
|
|
969
|
+
title: string;
|
|
970
|
+
locale: string;
|
|
971
|
+
description?: string | undefined;
|
|
972
|
+
url?: string | undefined;
|
|
973
|
+
og?: {
|
|
974
|
+
image?: string | undefined;
|
|
975
|
+
} | undefined;
|
|
976
|
+
};
|
|
660
977
|
pages: Record<string, Section[]>;
|
|
661
978
|
}, {
|
|
662
979
|
site: {
|
|
663
980
|
title: string;
|
|
664
981
|
description?: string | undefined;
|
|
982
|
+
url?: string | undefined;
|
|
665
983
|
og?: {
|
|
666
984
|
image?: string | undefined;
|
|
667
985
|
} | undefined;
|
|
668
|
-
url?: string | undefined;
|
|
669
986
|
locale?: string | undefined;
|
|
670
987
|
};
|
|
671
988
|
pages: Record<string, SectionInput[]>;
|
|
672
|
-
theme?: Record<string, string> | undefined;
|
|
673
989
|
collections?: {
|
|
674
990
|
label: string;
|
|
675
991
|
key: string;
|
|
676
992
|
basePath: string;
|
|
677
993
|
layout?: string | undefined;
|
|
994
|
+
icon?: string | undefined;
|
|
678
995
|
categories?: string[] | undefined;
|
|
679
996
|
feed?: boolean | undefined;
|
|
680
997
|
archives?: boolean | undefined;
|
|
681
998
|
og?: boolean | undefined;
|
|
682
999
|
requireSubcategory?: boolean | undefined;
|
|
683
1000
|
pinning?: boolean | undefined;
|
|
684
|
-
icon?: string | undefined;
|
|
685
1001
|
}[] | undefined;
|
|
1002
|
+
theme?: Record<string, string> | undefined;
|
|
686
1003
|
nav?: {
|
|
687
|
-
label: string;
|
|
688
1004
|
href: string;
|
|
1005
|
+
label: string;
|
|
689
1006
|
children?: {
|
|
690
|
-
label: string;
|
|
691
1007
|
href: string;
|
|
1008
|
+
label: string;
|
|
692
1009
|
}[] | undefined;
|
|
693
1010
|
}[] | undefined;
|
|
694
1011
|
}>;
|
|
@@ -719,6 +1036,7 @@ declare function defineSiteConfig(input: SiteConfigInput): SiteConfig;
|
|
|
719
1036
|
*
|
|
720
1037
|
* 토큰은 `--rt-*` CSS 변수 + 정적 fallback — `@roottale/tokens`(private) 미의존
|
|
721
1038
|
* (RFC §②). admin /design 값은 `RootTaleThemeProvider` 가 주입.
|
|
1039
|
+
* allow: SIZE_OK — W1-2 소유 계약이 Trust·Contact 템플릿을 이 파일에 고정한다.
|
|
722
1040
|
*/
|
|
723
1041
|
|
|
724
1042
|
/** 섹션 `theme`(--rt-* 변수 override)를 inline style 로. */
|
|
@@ -733,6 +1051,8 @@ declare function TemplateServices(section: ServicesSection): ReactElement;
|
|
|
733
1051
|
declare function TemplateFaq(section: FaqSection): ReactElement;
|
|
734
1052
|
/** 빌트인 `cta-banner`. */
|
|
735
1053
|
declare function TemplateCtaBanner(section: CtaBannerSection): ReactElement;
|
|
1054
|
+
declare function TemplateTrust(section: TrustSection): ReactElement;
|
|
1055
|
+
declare function TemplateContact(section: ContactSection): ReactElement;
|
|
736
1056
|
|
|
737
1057
|
/**
|
|
738
1058
|
* `SiteRenderer` — `SiteConfig.pages[path]` 섹션 배열을 registry 로 렌더.
|
|
@@ -791,4 +1111,4 @@ interface SiteRendererProps {
|
|
|
791
1111
|
*/
|
|
792
1112
|
declare function SiteRenderer(props: SiteRendererProps): ReactElement;
|
|
793
1113
|
|
|
794
|
-
export { BUILTIN_SECTION_TYPES, type BlogListSection, BlogListSectionSchema, type CtaBannerSection, CtaBannerSectionSchema, type CustomSection, CustomSectionSchema, type FaqSection, FaqSectionSchema, type HeroSection, HeroSectionSchema, type LeadFormSection, LeadFormSectionSchema, type NavItem, NavItemSchema, type RichTextSection, RichTextSectionSchema, type Section, type SectionComponent, type SectionCta, type SectionInput, SectionSchema, type ServicesSection, ServicesSectionSchema, type SiteConfig, type SiteConfigInput, SiteConfigSchema, SiteRenderer, type SiteRendererProps, TemplateCtaBanner, TemplateFaq, TemplateHero, TemplateRichText, TemplateServices, defineSiteConfig, parseSiteConfig, sectionThemeStyle };
|
|
1114
|
+
export { BUILTIN_SECTION_SCHEMAS, BUILTIN_SECTION_TYPES, type BlogListSection, BlogListSectionSchema, type ContactSection, ContactSectionSchema, type CtaBannerSection, CtaBannerSectionSchema, type CustomSection, CustomSectionSchema, type FaqSection, FaqSectionSchema, type HeroSection, HeroSectionSchema, type LeadFormSection, LeadFormSectionSchema, type NavItem, NavItemSchema, type RichTextSection, RichTextSectionSchema, type Section, type SectionComponent, type SectionCta, type SectionInput, SectionSchema, type ServicesSection, ServicesSectionSchema, type SiteConfig, type SiteConfigInput, SiteConfigSchema, SiteRenderer, type SiteRendererProps, TemplateContact, TemplateCtaBanner, TemplateFaq, TemplateHero, TemplateRichText, TemplateServices, TemplateTrust, type TrustSection, TrustSectionSchema, defineSiteConfig, parseSiteConfig, sectionThemeStyle };
|