@yeongseoksong/framework 0.1.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/dist/types/index.d.mts +108 -0
- package/dist/types/index.d.ts +108 -0
- package/dist/types/index.js +427 -0
- package/dist/types/index.mjs +389 -0
- package/dist/ui/index.d.mts +799 -0
- package/dist/ui/index.d.ts +799 -0
- package/dist/ui/index.js +1835 -0
- package/dist/ui/index.mjs +1799 -0
- package/dist/util/index.d.mts +4 -0
- package/dist/util/index.d.ts +4 -0
- package/dist/util/index.js +41 -0
- package/dist/util/index.mjs +13 -0
- package/package.json +47 -0
|
@@ -0,0 +1,799 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as _mantine_core from '@mantine/core';
|
|
3
|
+
import { MantineSize, TabsProps, TabsListProps, TabsPanelProps, TitleProps, TextProps, ButtonProps, BoxProps, TableProps, ModalProps, ThemeIconProps, ContainerProps, BadgeProps, TextInputProps, PasswordInputProps, TextareaProps, SelectProps, StackProps, StyleProp, MantineColor, SimpleGridProps, CardProps, MantineColorsTuple } from '@mantine/core';
|
|
4
|
+
import React$1, { ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
5
|
+
import * as _mantine_core_lib_components_Modal_ModalCloseButton from '@mantine/core/lib/components/Modal/ModalCloseButton';
|
|
6
|
+
import * as _mantine_core_lib_components_Modal_ModalBody from '@mantine/core/lib/components/Modal/ModalBody';
|
|
7
|
+
import * as _mantine_core_lib_components_Modal_ModalTitle from '@mantine/core/lib/components/Modal/ModalTitle';
|
|
8
|
+
import * as _mantine_core_lib_components_Modal_ModalHeader from '@mantine/core/lib/components/Modal/ModalHeader';
|
|
9
|
+
|
|
10
|
+
interface LogoProps {
|
|
11
|
+
size?: MantineSize;
|
|
12
|
+
}
|
|
13
|
+
declare function Logo(_props: LogoProps): react_jsx_runtime.JSX.Element;
|
|
14
|
+
|
|
15
|
+
declare function SdPanel({ children, ...props }: TabsPanelProps): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare const SdTabs: {
|
|
17
|
+
Pills: {
|
|
18
|
+
(props: TabsProps): react_jsx_runtime.JSX.Element;
|
|
19
|
+
List: _mantine_core.MantineComponent<{
|
|
20
|
+
props: TabsListProps;
|
|
21
|
+
ref: HTMLDivElement;
|
|
22
|
+
stylesNames: _mantine_core.TabsListStylesNames;
|
|
23
|
+
compound: true;
|
|
24
|
+
}>;
|
|
25
|
+
Tab: _mantine_core.MantineComponent<{
|
|
26
|
+
props: _mantine_core.TabsTabProps;
|
|
27
|
+
ref: HTMLButtonElement;
|
|
28
|
+
stylesNames: _mantine_core.TabsTabStylesNames;
|
|
29
|
+
compound: true;
|
|
30
|
+
}>;
|
|
31
|
+
Panel: typeof SdPanel;
|
|
32
|
+
};
|
|
33
|
+
Underline: {
|
|
34
|
+
(props: TabsProps): react_jsx_runtime.JSX.Element;
|
|
35
|
+
List: _mantine_core.MantineComponent<{
|
|
36
|
+
props: TabsListProps;
|
|
37
|
+
ref: HTMLDivElement;
|
|
38
|
+
stylesNames: _mantine_core.TabsListStylesNames;
|
|
39
|
+
compound: true;
|
|
40
|
+
}>;
|
|
41
|
+
Tab: _mantine_core.MantineComponent<{
|
|
42
|
+
props: _mantine_core.TabsTabProps;
|
|
43
|
+
ref: HTMLButtonElement;
|
|
44
|
+
stylesNames: _mantine_core.TabsTabStylesNames;
|
|
45
|
+
compound: true;
|
|
46
|
+
}>;
|
|
47
|
+
Panel: typeof SdPanel;
|
|
48
|
+
};
|
|
49
|
+
Outline: {
|
|
50
|
+
(props: TabsProps): react_jsx_runtime.JSX.Element;
|
|
51
|
+
List: _mantine_core.MantineComponent<{
|
|
52
|
+
props: TabsListProps;
|
|
53
|
+
ref: HTMLDivElement;
|
|
54
|
+
stylesNames: _mantine_core.TabsListStylesNames;
|
|
55
|
+
compound: true;
|
|
56
|
+
}>;
|
|
57
|
+
Tab: _mantine_core.MantineComponent<{
|
|
58
|
+
props: _mantine_core.TabsTabProps;
|
|
59
|
+
ref: HTMLButtonElement;
|
|
60
|
+
stylesNames: _mantine_core.TabsTabStylesNames;
|
|
61
|
+
compound: true;
|
|
62
|
+
}>;
|
|
63
|
+
Panel: typeof SdPanel;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
type Props$3 = TitleProps & {
|
|
68
|
+
children?: ReactNode;
|
|
69
|
+
};
|
|
70
|
+
declare const SdTitle: {
|
|
71
|
+
/** 히어로 대제목 — h1, clamp 폰트 */
|
|
72
|
+
Display: ({ children, ...props }: Props$3) => react_jsx_runtime.JSX.Element;
|
|
73
|
+
/** 섹션 제목 */
|
|
74
|
+
Section: ({ children, ...props }: Props$3) => react_jsx_runtime.JSX.Element;
|
|
75
|
+
/** 카드·모달 제목 — */
|
|
76
|
+
Card: ({ children, ...props }: Props$3) => react_jsx_runtime.JSX.Element;
|
|
77
|
+
/** 소제목 */
|
|
78
|
+
Sub: ({ children, ...props }: Props$3) => react_jsx_runtime.JSX.Element;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
type Props$2 = TextProps & {
|
|
82
|
+
children?: ReactNode;
|
|
83
|
+
};
|
|
84
|
+
declare const SdText: {
|
|
85
|
+
Strong: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
86
|
+
Body: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
87
|
+
Sub: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
88
|
+
Eyebrow: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
89
|
+
Error: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
90
|
+
Hint: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
91
|
+
Numeric: ({ children, ...props }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
type Props$1 = ButtonProps & ComponentPropsWithoutRef<"button"> & {
|
|
95
|
+
children?: ReactNode;
|
|
96
|
+
};
|
|
97
|
+
declare const SdButton: {
|
|
98
|
+
/** 주요 액션 — filled primary */
|
|
99
|
+
Primary: ({ children, ...props }: Props$1) => react_jsx_runtime.JSX.Element;
|
|
100
|
+
/** 보조 액션 — outline */
|
|
101
|
+
Outline: ({ children, ...props }: Props$1) => react_jsx_runtime.JSX.Element;
|
|
102
|
+
/** 텍스트 수준 — subtle */
|
|
103
|
+
Ghost: ({ children, ...props }: Props$1) => react_jsx_runtime.JSX.Element;
|
|
104
|
+
/** 다크 배경 위 — white */
|
|
105
|
+
White: ({ children, ...props }: Props$1) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
/** 삭제 — filled red + 휴지통 아이콘 */
|
|
107
|
+
Delete: ({ children, ...props }: Props$1) => react_jsx_runtime.JSX.Element;
|
|
108
|
+
/** 취소 — outline slate + X 아이콘 */
|
|
109
|
+
Cancel: ({ children, ...props }: Props$1) => react_jsx_runtime.JSX.Element;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
interface SdQuoteProps extends BoxProps {
|
|
113
|
+
lines: string[];
|
|
114
|
+
name?: string;
|
|
115
|
+
role?: string;
|
|
116
|
+
}
|
|
117
|
+
declare function Plain$1({ lines, name, role, ...boxProps }: SdQuoteProps): react_jsx_runtime.JSX.Element;
|
|
118
|
+
declare function CardQuote({ lines, name, role, ...boxProps }: SdQuoteProps): react_jsx_runtime.JSX.Element;
|
|
119
|
+
declare const SdQuote: {
|
|
120
|
+
Plain: typeof Plain$1;
|
|
121
|
+
Card: typeof CardQuote;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
declare const SdTable: {
|
|
125
|
+
(props: TableProps): react_jsx_runtime.JSX.Element;
|
|
126
|
+
Thead: _mantine_core.MantineComponent<{
|
|
127
|
+
props: _mantine_core.TableTheadProps;
|
|
128
|
+
ref: HTMLTableSectionElement;
|
|
129
|
+
stylesNames: "thead";
|
|
130
|
+
compound: true;
|
|
131
|
+
}>;
|
|
132
|
+
Tbody: _mantine_core.MantineComponent<{
|
|
133
|
+
props: _mantine_core.TableTbodyProps;
|
|
134
|
+
ref: HTMLTableSectionElement;
|
|
135
|
+
stylesNames: "tbody";
|
|
136
|
+
compound: true;
|
|
137
|
+
}>;
|
|
138
|
+
Tr: _mantine_core.MantineComponent<{
|
|
139
|
+
props: _mantine_core.TableTrProps;
|
|
140
|
+
ref: HTMLTableRowElement;
|
|
141
|
+
stylesNames: "tr";
|
|
142
|
+
compound: true;
|
|
143
|
+
}>;
|
|
144
|
+
Th: _mantine_core.MantineComponent<{
|
|
145
|
+
props: _mantine_core.TableThProps;
|
|
146
|
+
ref: HTMLTableCellElement;
|
|
147
|
+
stylesNames: "th";
|
|
148
|
+
compound: true;
|
|
149
|
+
}>;
|
|
150
|
+
Td: _mantine_core.MantineComponent<{
|
|
151
|
+
props: _mantine_core.TableTdProps;
|
|
152
|
+
ref: HTMLTableCellElement;
|
|
153
|
+
stylesNames: "td";
|
|
154
|
+
compound: true;
|
|
155
|
+
}>;
|
|
156
|
+
Caption: _mantine_core.MantineComponent<{
|
|
157
|
+
props: _mantine_core.TableCaptionProps;
|
|
158
|
+
ref: HTMLTableCaptionElement;
|
|
159
|
+
stylesNames: "caption";
|
|
160
|
+
compound: true;
|
|
161
|
+
}>;
|
|
162
|
+
} & {
|
|
163
|
+
Spec: {
|
|
164
|
+
(props: TableProps): react_jsx_runtime.JSX.Element;
|
|
165
|
+
Thead: _mantine_core.MantineComponent<{
|
|
166
|
+
props: _mantine_core.TableTheadProps;
|
|
167
|
+
ref: HTMLTableSectionElement;
|
|
168
|
+
stylesNames: "thead";
|
|
169
|
+
compound: true;
|
|
170
|
+
}>;
|
|
171
|
+
Tbody: _mantine_core.MantineComponent<{
|
|
172
|
+
props: _mantine_core.TableTbodyProps;
|
|
173
|
+
ref: HTMLTableSectionElement;
|
|
174
|
+
stylesNames: "tbody";
|
|
175
|
+
compound: true;
|
|
176
|
+
}>;
|
|
177
|
+
Tr: _mantine_core.MantineComponent<{
|
|
178
|
+
props: _mantine_core.TableTrProps;
|
|
179
|
+
ref: HTMLTableRowElement;
|
|
180
|
+
stylesNames: "tr";
|
|
181
|
+
compound: true;
|
|
182
|
+
}>;
|
|
183
|
+
Th: _mantine_core.MantineComponent<{
|
|
184
|
+
props: _mantine_core.TableThProps;
|
|
185
|
+
ref: HTMLTableCellElement;
|
|
186
|
+
stylesNames: "th";
|
|
187
|
+
compound: true;
|
|
188
|
+
}>;
|
|
189
|
+
Td: _mantine_core.MantineComponent<{
|
|
190
|
+
props: _mantine_core.TableTdProps;
|
|
191
|
+
ref: HTMLTableCellElement;
|
|
192
|
+
stylesNames: "td";
|
|
193
|
+
compound: true;
|
|
194
|
+
}>;
|
|
195
|
+
Caption: _mantine_core.MantineComponent<{
|
|
196
|
+
props: _mantine_core.TableCaptionProps;
|
|
197
|
+
ref: HTMLTableCaptionElement;
|
|
198
|
+
stylesNames: "caption";
|
|
199
|
+
compound: true;
|
|
200
|
+
}>;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
declare const SdModal: {
|
|
205
|
+
(props: ModalProps): react_jsx_runtime.JSX.Element;
|
|
206
|
+
Header: _mantine_core.MantineComponent<{
|
|
207
|
+
props: _mantine_core.ModalHeaderProps;
|
|
208
|
+
ref: HTMLElement;
|
|
209
|
+
stylesNames: _mantine_core_lib_components_Modal_ModalHeader.ModalHeaderStylesNames;
|
|
210
|
+
compound: true;
|
|
211
|
+
}>;
|
|
212
|
+
Title: _mantine_core.MantineComponent<{
|
|
213
|
+
props: _mantine_core.ModalTitleProps;
|
|
214
|
+
ref: HTMLHeadingElement;
|
|
215
|
+
stylesNames: _mantine_core_lib_components_Modal_ModalTitle.ModalTitleStylesNames;
|
|
216
|
+
compound: true;
|
|
217
|
+
}>;
|
|
218
|
+
Body: _mantine_core.MantineComponent<{
|
|
219
|
+
props: _mantine_core.ModalBodyProps;
|
|
220
|
+
ref: HTMLDivElement;
|
|
221
|
+
stylesNames: _mantine_core_lib_components_Modal_ModalBody.ModalBodyStylesNames;
|
|
222
|
+
compound: true;
|
|
223
|
+
}>;
|
|
224
|
+
CloseButton: _mantine_core.MantineComponent<{
|
|
225
|
+
props: _mantine_core.ModalCloseButtonProps;
|
|
226
|
+
ref: HTMLButtonElement;
|
|
227
|
+
stylesNames: _mantine_core_lib_components_Modal_ModalCloseButton.ModalCloseButtonStylesNames;
|
|
228
|
+
compound: true;
|
|
229
|
+
}>;
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
interface SdNumberIconProps extends Omit<ThemeIconProps, "children"> {
|
|
233
|
+
value: string;
|
|
234
|
+
}
|
|
235
|
+
declare function SdNumberIcon({ value, size, radius, color, ...props }: SdNumberIconProps): react_jsx_runtime.JSX.Element;
|
|
236
|
+
|
|
237
|
+
declare function SdContainer({ children, ...props }: ContainerProps): react_jsx_runtime.JSX.Element;
|
|
238
|
+
|
|
239
|
+
type Props = BadgeProps & {
|
|
240
|
+
children?: ReactNode;
|
|
241
|
+
};
|
|
242
|
+
declare const SdBadge: {
|
|
243
|
+
/** 기본 — outline slate */
|
|
244
|
+
Default: ({ children, ...props }: Props) => react_jsx_runtime.JSX.Element;
|
|
245
|
+
/** 브랜드 강조 — light primary */
|
|
246
|
+
Primary: ({ children, ...props }: Props) => react_jsx_runtime.JSX.Element;
|
|
247
|
+
/** 성공/완료 */
|
|
248
|
+
Success: ({ children, ...props }: Props) => react_jsx_runtime.JSX.Element;
|
|
249
|
+
/** 주의/경고 */
|
|
250
|
+
Warning: ({ children, ...props }: Props) => react_jsx_runtime.JSX.Element;
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
declare const SdInput: {
|
|
254
|
+
/** 일반 텍스트 — 이름, 회사명 등 */
|
|
255
|
+
Text: ({ ...props }: TextInputProps) => react_jsx_runtime.JSX.Element;
|
|
256
|
+
/** 이메일 입력 */
|
|
257
|
+
Email: ({ ...props }: TextInputProps) => react_jsx_runtime.JSX.Element;
|
|
258
|
+
/** 비밀번호 입력 — 마스킹 토글 포함 */
|
|
259
|
+
Password: ({ ...props }: PasswordInputProps) => react_jsx_runtime.JSX.Element;
|
|
260
|
+
/** 멀티라인 텍스트 — 문의 메시지 등 */
|
|
261
|
+
Textarea: ({ ...props }: TextareaProps) => react_jsx_runtime.JSX.Element;
|
|
262
|
+
/** 드롭다운 선택 */
|
|
263
|
+
Select: ({ ...props }: SelectProps) => react_jsx_runtime.JSX.Element;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
type TitleVariant = "Display" | "Section" | "Card" | "Sub";
|
|
267
|
+
type ColorVariant = StyleProp<MantineColor> | undefined;
|
|
268
|
+
interface TextBoxProps extends Omit<StackProps, "title" | "color"> {
|
|
269
|
+
label?: ReactNode;
|
|
270
|
+
title: ReactNode;
|
|
271
|
+
description: ReactNode;
|
|
272
|
+
titleVariant?: TitleVariant;
|
|
273
|
+
maxDescWidth?: number;
|
|
274
|
+
color?: ColorVariant;
|
|
275
|
+
}
|
|
276
|
+
declare const SdTextBox: {
|
|
277
|
+
Hero: ({ label, title, description, titleVariant: variantOverride, maxDescWidth, children, color, ...stackProps }: TextBoxProps) => react_jsx_runtime.JSX.Element;
|
|
278
|
+
Section: ({ label, title, description, titleVariant: variantOverride, maxDescWidth, children, color, ...stackProps }: TextBoxProps) => react_jsx_runtime.JSX.Element;
|
|
279
|
+
Card: ({ label, title, description, titleVariant: variantOverride, maxDescWidth, children, color, ...stackProps }: TextBoxProps) => react_jsx_runtime.JSX.Element;
|
|
280
|
+
Sub: ({ label, title, description, titleVariant: variantOverride, maxDescWidth, children, color, ...stackProps }: TextBoxProps) => react_jsx_runtime.JSX.Element;
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
interface CommonInfo {
|
|
284
|
+
id: number;
|
|
285
|
+
order: number;
|
|
286
|
+
isShow: boolean;
|
|
287
|
+
createdAt?: Date;
|
|
288
|
+
updatedAt?: Date;
|
|
289
|
+
}
|
|
290
|
+
interface NavItem extends CommonInfo {
|
|
291
|
+
label: string;
|
|
292
|
+
href?: string;
|
|
293
|
+
highlight?: boolean;
|
|
294
|
+
parentId?: number;
|
|
295
|
+
}
|
|
296
|
+
interface HeroSlide extends CommonInfo {
|
|
297
|
+
image: string;
|
|
298
|
+
title: ReactNode;
|
|
299
|
+
description: string;
|
|
300
|
+
}
|
|
301
|
+
interface FeatureItem extends CommonInfo {
|
|
302
|
+
icon?: ReactNode;
|
|
303
|
+
label?: string;
|
|
304
|
+
title: ReactNode;
|
|
305
|
+
description?: ReactNode;
|
|
306
|
+
}
|
|
307
|
+
interface CompanyAddress {
|
|
308
|
+
label: string;
|
|
309
|
+
address: string;
|
|
310
|
+
order: number;
|
|
311
|
+
embbedUrl?: string;
|
|
312
|
+
}
|
|
313
|
+
interface CompanyInfo {
|
|
314
|
+
name: string;
|
|
315
|
+
registrationNumber: string;
|
|
316
|
+
addresses: CompanyAddress[];
|
|
317
|
+
tel: string;
|
|
318
|
+
fax?: string;
|
|
319
|
+
email: string;
|
|
320
|
+
copyrightYear: number;
|
|
321
|
+
}
|
|
322
|
+
interface TimelineEvent extends CommonInfo {
|
|
323
|
+
year: number;
|
|
324
|
+
month: number;
|
|
325
|
+
title?: string;
|
|
326
|
+
description: string;
|
|
327
|
+
}
|
|
328
|
+
interface StepItem {
|
|
329
|
+
title: string;
|
|
330
|
+
description?: string;
|
|
331
|
+
}
|
|
332
|
+
interface TestimonialItem {
|
|
333
|
+
lines: string[];
|
|
334
|
+
name: string;
|
|
335
|
+
role: string;
|
|
336
|
+
company?: string;
|
|
337
|
+
rating?: number;
|
|
338
|
+
avatar?: string;
|
|
339
|
+
}
|
|
340
|
+
interface PricingFeature {
|
|
341
|
+
text: string;
|
|
342
|
+
included: boolean;
|
|
343
|
+
}
|
|
344
|
+
interface PricingItem {
|
|
345
|
+
name: string;
|
|
346
|
+
price: string;
|
|
347
|
+
period?: string;
|
|
348
|
+
description?: string;
|
|
349
|
+
features: PricingFeature[];
|
|
350
|
+
ctaLabel?: string;
|
|
351
|
+
isPopular?: boolean;
|
|
352
|
+
}
|
|
353
|
+
interface FaqItem {
|
|
354
|
+
question: string;
|
|
355
|
+
answer: string;
|
|
356
|
+
}
|
|
357
|
+
interface ClientItem {
|
|
358
|
+
name: string;
|
|
359
|
+
url: string;
|
|
360
|
+
logo: string;
|
|
361
|
+
}
|
|
362
|
+
interface SolutionItem extends CommonInfo {
|
|
363
|
+
category: string;
|
|
364
|
+
title: ReactNode;
|
|
365
|
+
description: string;
|
|
366
|
+
href?: string;
|
|
367
|
+
ctaLabel?: string;
|
|
368
|
+
icon?: ReactNode;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
interface SdFeaturesProps {
|
|
372
|
+
items: FeatureItem[];
|
|
373
|
+
cols?: SimpleGridProps['cols'];
|
|
374
|
+
}
|
|
375
|
+
declare function SdFeatures({ items, cols }: SdFeaturesProps): react_jsx_runtime.JSX.Element;
|
|
376
|
+
|
|
377
|
+
interface SdTimelineProps {
|
|
378
|
+
items: TimelineEvent[];
|
|
379
|
+
}
|
|
380
|
+
declare function SdTimeline({ items }: SdTimelineProps): react_jsx_runtime.JSX.Element;
|
|
381
|
+
|
|
382
|
+
interface SdStepsProps {
|
|
383
|
+
items: StepItem[];
|
|
384
|
+
}
|
|
385
|
+
declare function Bubble({ items }: SdStepsProps): react_jsx_runtime.JSX.Element;
|
|
386
|
+
declare function CardVariant({ items }: SdStepsProps): react_jsx_runtime.JSX.Element;
|
|
387
|
+
declare function Strip$1({ items }: SdStepsProps): react_jsx_runtime.JSX.Element;
|
|
388
|
+
declare const SdSteps: {
|
|
389
|
+
Bubble: typeof Bubble;
|
|
390
|
+
Card: typeof CardVariant;
|
|
391
|
+
Strip: typeof Strip$1;
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
interface SdTestimonialProps extends BoxProps {
|
|
395
|
+
item: TestimonialItem;
|
|
396
|
+
}
|
|
397
|
+
declare function CardTestimonial({ item, ...boxProps }: SdTestimonialProps): react_jsx_runtime.JSX.Element;
|
|
398
|
+
declare function Strip({ item, ...boxProps }: SdTestimonialProps): react_jsx_runtime.JSX.Element;
|
|
399
|
+
interface SdTestimonialGridProps {
|
|
400
|
+
items: TestimonialItem[];
|
|
401
|
+
cols?: SimpleGridProps["cols"];
|
|
402
|
+
}
|
|
403
|
+
declare function Grid$3({ items, cols }: SdTestimonialGridProps): react_jsx_runtime.JSX.Element;
|
|
404
|
+
declare const SdTestimonial: {
|
|
405
|
+
/** 카드형 — 그리드 배치용 */
|
|
406
|
+
Card: typeof CardTestimonial;
|
|
407
|
+
/** 스트립형 — 단일 강조 후기 */
|
|
408
|
+
Strip: typeof Strip;
|
|
409
|
+
/** 카드 그리드 — 여러 후기 목록 */
|
|
410
|
+
Grid: typeof Grid$3;
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
interface SdPricingCardProps extends Omit<CardProps, "children"> {
|
|
414
|
+
item: PricingItem;
|
|
415
|
+
onSelect?: (item: PricingItem) => void;
|
|
416
|
+
}
|
|
417
|
+
declare function Default$1({ item, onSelect, ...cardProps }: SdPricingCardProps): react_jsx_runtime.JSX.Element;
|
|
418
|
+
declare function Featured({ item, onSelect, ...cardProps }: SdPricingCardProps): react_jsx_runtime.JSX.Element;
|
|
419
|
+
interface SdPricingGridProps {
|
|
420
|
+
items: PricingItem[];
|
|
421
|
+
cols?: SimpleGridProps["cols"];
|
|
422
|
+
onSelect?: (item: PricingItem) => void;
|
|
423
|
+
}
|
|
424
|
+
declare function Grid$2({ items, cols, onSelect }: SdPricingGridProps): react_jsx_runtime.JSX.Element;
|
|
425
|
+
declare const SdPricingCard: {
|
|
426
|
+
/** 기본 outlined 카드 */
|
|
427
|
+
Default: typeof Default$1;
|
|
428
|
+
/** 강조 — primary 배경 */
|
|
429
|
+
Featured: typeof Featured;
|
|
430
|
+
/** 가격 그리드 (isPopular 항목은 자동으로 Featured 처리) */
|
|
431
|
+
Grid: typeof Grid$2;
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
interface SdFaqProps extends BoxProps {
|
|
435
|
+
items: FaqItem[];
|
|
436
|
+
}
|
|
437
|
+
declare function Default({ items, ...boxProps }: SdFaqProps): react_jsx_runtime.JSX.Element;
|
|
438
|
+
declare function Filled({ items, ...boxProps }: SdFaqProps): react_jsx_runtime.JSX.Element;
|
|
439
|
+
interface SdFaqWithHeaderProps extends SdFaqProps {
|
|
440
|
+
label?: string;
|
|
441
|
+
title: string;
|
|
442
|
+
description?: string;
|
|
443
|
+
}
|
|
444
|
+
declare function WithHeader({ label, title, description, items, ...boxProps }: SdFaqWithHeaderProps): react_jsx_runtime.JSX.Element;
|
|
445
|
+
declare const SdFaq: {
|
|
446
|
+
/** separated 스타일 아코디언 */
|
|
447
|
+
Default: typeof Default;
|
|
448
|
+
/** filled 배경 아코디언 */
|
|
449
|
+
Filled: typeof Filled;
|
|
450
|
+
/** 헤더 + 아코디언 조합 */
|
|
451
|
+
WithHeader: typeof WithHeader;
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
interface SdCtaProps extends BoxProps {
|
|
455
|
+
label?: string;
|
|
456
|
+
title: string;
|
|
457
|
+
description?: string;
|
|
458
|
+
primaryLabel?: string;
|
|
459
|
+
secondaryLabel?: string;
|
|
460
|
+
onPrimary?: () => void;
|
|
461
|
+
onSecondary?: () => void;
|
|
462
|
+
}
|
|
463
|
+
/** 다크 배경 — 섹션 마무리 CTA */
|
|
464
|
+
declare function Banner({ label, title, description, primaryLabel, secondaryLabel, onPrimary, onSecondary, ...boxProps }: SdCtaProps): react_jsx_runtime.JSX.Element;
|
|
465
|
+
/** 라이트 배경 — 페이지 내 삽입 CTA */
|
|
466
|
+
declare function Subtle({ label, title, description, primaryLabel, secondaryLabel, onPrimary, onSecondary, ...boxProps }: SdCtaProps): react_jsx_runtime.JSX.Element;
|
|
467
|
+
/** 좌우 분할 — 텍스트(좌) + 버튼(우) 인라인 CTA */
|
|
468
|
+
declare function Inline({ label, title, description, primaryLabel, secondaryLabel, onPrimary, onSecondary, ...boxProps }: SdCtaProps): react_jsx_runtime.JSX.Element;
|
|
469
|
+
declare const SdCta: {
|
|
470
|
+
/** 다크 배경 전체폭 CTA */
|
|
471
|
+
Banner: typeof Banner;
|
|
472
|
+
/** 라이트 박스형 CTA */
|
|
473
|
+
Subtle: typeof Subtle;
|
|
474
|
+
/** 좌우 분할 인라인 CTA */
|
|
475
|
+
Inline: typeof Inline;
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
interface SdSolutionFilteredProps {
|
|
479
|
+
items: SolutionItem[];
|
|
480
|
+
allLabel?: string;
|
|
481
|
+
cols?: SimpleGridProps["cols"];
|
|
482
|
+
onSelect?: (item: SolutionItem) => void;
|
|
483
|
+
}
|
|
484
|
+
declare function Filtered({ items, allLabel, cols, onSelect }: SdSolutionFilteredProps): react_jsx_runtime.JSX.Element;
|
|
485
|
+
interface SdSolutionListProps {
|
|
486
|
+
items: SolutionItem[];
|
|
487
|
+
onSelect?: (item: SolutionItem) => void;
|
|
488
|
+
}
|
|
489
|
+
declare function List({ items, onSelect }: SdSolutionListProps): react_jsx_runtime.JSX.Element;
|
|
490
|
+
declare const SdSolution: {
|
|
491
|
+
/** 카테고리 탭 필터 + 카드 그리드 (솔루션 페이지 메인) */
|
|
492
|
+
Filtered: typeof Filtered;
|
|
493
|
+
/** 수평 리스트 레이아웃 (상세 탐색용) */
|
|
494
|
+
List: typeof List;
|
|
495
|
+
};
|
|
496
|
+
|
|
497
|
+
interface SdSolutionCardItemProps extends Omit<CardProps, "children"> {
|
|
498
|
+
item: SolutionItem;
|
|
499
|
+
onSelect?: (item: SolutionItem) => void;
|
|
500
|
+
}
|
|
501
|
+
declare function SolutionCardItem({ item, onSelect, ...cardProps }: SdSolutionCardItemProps): react_jsx_runtime.JSX.Element;
|
|
502
|
+
interface SdSolutionGridProps {
|
|
503
|
+
items: SolutionItem[];
|
|
504
|
+
cols?: SimpleGridProps["cols"];
|
|
505
|
+
onSelect?: (item: SolutionItem) => void;
|
|
506
|
+
}
|
|
507
|
+
declare function Grid$1({ items, cols, onSelect }: SdSolutionGridProps): react_jsx_runtime.JSX.Element;
|
|
508
|
+
declare const SdSolutionCard: {
|
|
509
|
+
/** 단일 compact 카드 */
|
|
510
|
+
Item: typeof SolutionCardItem;
|
|
511
|
+
/** 카드 그리드 */
|
|
512
|
+
Grid: typeof Grid$1;
|
|
513
|
+
};
|
|
514
|
+
|
|
515
|
+
interface SdClientsGridProps {
|
|
516
|
+
items: ClientItem[];
|
|
517
|
+
cols?: SimpleGridProps["cols"];
|
|
518
|
+
logoHeight?: number;
|
|
519
|
+
}
|
|
520
|
+
declare function Grid({ items, cols, logoHeight, }: SdClientsGridProps): react_jsx_runtime.JSX.Element;
|
|
521
|
+
interface SdClientsMarqueeProps {
|
|
522
|
+
items: ClientItem[];
|
|
523
|
+
speed?: number;
|
|
524
|
+
logoHeight?: number;
|
|
525
|
+
gap?: number;
|
|
526
|
+
}
|
|
527
|
+
declare function Marquee({ items, speed, logoHeight, gap }: SdClientsMarqueeProps): react_jsx_runtime.JSX.Element;
|
|
528
|
+
declare const SdClients: {
|
|
529
|
+
/** 반응형 로고 그리드 */
|
|
530
|
+
Grid: typeof Grid;
|
|
531
|
+
/** 무한 수평 스크롤 띠 — 호버 시 일시정지 */
|
|
532
|
+
Marquee: typeof Marquee;
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
interface SdMapSingleProps extends Omit<BoxProps, "children"> {
|
|
536
|
+
address: CompanyAddress;
|
|
537
|
+
height?: number;
|
|
538
|
+
}
|
|
539
|
+
declare function Single({ address, height, ...boxProps }: SdMapSingleProps): react_jsx_runtime.JSX.Element | null;
|
|
540
|
+
interface SdMapTabsProps {
|
|
541
|
+
addresses: CompanyAddress[];
|
|
542
|
+
height?: number;
|
|
543
|
+
}
|
|
544
|
+
declare function Tabs({ addresses, height }: SdMapTabsProps): react_jsx_runtime.JSX.Element | null;
|
|
545
|
+
declare const SdMap: {
|
|
546
|
+
/** 단일 주소 지도 — embbedUrl 없으면 null 반환 */
|
|
547
|
+
Single: typeof Single;
|
|
548
|
+
/** 여러 주소 탭 전환 지도 — embbedUrl 있는 항목만 표시 */
|
|
549
|
+
Tabs: typeof Tabs;
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
interface HeroCarouselProps {
|
|
553
|
+
slides: HeroSlide[];
|
|
554
|
+
children?: React$1.ReactNode;
|
|
555
|
+
}
|
|
556
|
+
declare function HeroCarousel({ slides, children }: HeroCarouselProps): react_jsx_runtime.JSX.Element;
|
|
557
|
+
|
|
558
|
+
interface HeaderProps {
|
|
559
|
+
navItems: NavItem[];
|
|
560
|
+
loginFlag?: boolean;
|
|
561
|
+
children?: ReactNode;
|
|
562
|
+
}
|
|
563
|
+
declare function SdHeader({ navItems, loginFlag, children }: HeaderProps): react_jsx_runtime.JSX.Element;
|
|
564
|
+
|
|
565
|
+
interface SdFooterProps {
|
|
566
|
+
company: CompanyInfo;
|
|
567
|
+
utilityLinks?: NavItem[];
|
|
568
|
+
policyLinks?: NavItem[];
|
|
569
|
+
}
|
|
570
|
+
declare function SdFooter({ company, utilityLinks, policyLinks }: SdFooterProps): react_jsx_runtime.JSX.Element;
|
|
571
|
+
|
|
572
|
+
interface SdFeatureSectionProps extends Omit<BoxProps, 'title'> {
|
|
573
|
+
label?: string;
|
|
574
|
+
title: ReactNode;
|
|
575
|
+
description?: ReactNode;
|
|
576
|
+
items: FeatureItem[];
|
|
577
|
+
cols?: SimpleGridProps['cols'];
|
|
578
|
+
}
|
|
579
|
+
declare function SdFeatureSection({ label, title, description, items, cols, py, ...boxProps }: SdFeatureSectionProps): react_jsx_runtime.JSX.Element;
|
|
580
|
+
|
|
581
|
+
interface SdTimelineSectionProps extends BoxProps {
|
|
582
|
+
label?: string;
|
|
583
|
+
title: ReactNode;
|
|
584
|
+
description?: ReactNode;
|
|
585
|
+
items: TimelineEvent[];
|
|
586
|
+
}
|
|
587
|
+
declare function SdTimelineSection({ label, title, description, items, py, ...boxProps }: SdTimelineSectionProps): react_jsx_runtime.JSX.Element;
|
|
588
|
+
|
|
589
|
+
interface SdStepsSectionProps extends Omit<BoxProps, 'title'> {
|
|
590
|
+
label?: string;
|
|
591
|
+
title?: ReactNode;
|
|
592
|
+
description?: ReactNode;
|
|
593
|
+
items: StepItem[];
|
|
594
|
+
}
|
|
595
|
+
declare function SdStepsSection({ label, title, description, items, py, ...boxProps }: SdStepsSectionProps): react_jsx_runtime.JSX.Element;
|
|
596
|
+
|
|
597
|
+
interface SdErrorPageProps {
|
|
598
|
+
error: Error & {
|
|
599
|
+
digest?: string;
|
|
600
|
+
};
|
|
601
|
+
onReset: () => void;
|
|
602
|
+
onHome?: () => void;
|
|
603
|
+
}
|
|
604
|
+
declare function Page({ error, onReset, onHome }: SdErrorPageProps): react_jsx_runtime.JSX.Element;
|
|
605
|
+
interface SdErrorNotFoundProps {
|
|
606
|
+
title?: string;
|
|
607
|
+
description?: string;
|
|
608
|
+
onHome?: () => void;
|
|
609
|
+
onBack?: () => void;
|
|
610
|
+
}
|
|
611
|
+
declare function NotFound({ title, description, onHome, onBack, }: SdErrorNotFoundProps): react_jsx_runtime.JSX.Element;
|
|
612
|
+
declare const SdErrorView: {
|
|
613
|
+
/** app/error.tsx — 서버/렌더링 오류 + 재시도 버튼 */
|
|
614
|
+
Page: typeof Page;
|
|
615
|
+
/** app/not-found.tsx — 404 Not Found */
|
|
616
|
+
NotFound: typeof NotFound;
|
|
617
|
+
};
|
|
618
|
+
|
|
619
|
+
declare function MainLayout({ children, navItems, companyInfo }: {
|
|
620
|
+
children: React.ReactNode;
|
|
621
|
+
navItems: NavItem[];
|
|
622
|
+
companyInfo: CompanyInfo;
|
|
623
|
+
}): react_jsx_runtime.JSX.Element;
|
|
624
|
+
|
|
625
|
+
interface PageHeroBaseProps {
|
|
626
|
+
label?: ReactNode;
|
|
627
|
+
title: ReactNode;
|
|
628
|
+
description?: ReactNode;
|
|
629
|
+
children: ReactNode;
|
|
630
|
+
}
|
|
631
|
+
interface WithImageProps extends PageHeroBaseProps {
|
|
632
|
+
image?: string;
|
|
633
|
+
}
|
|
634
|
+
declare function Minimal({ label, title, description, children }: PageHeroBaseProps): react_jsx_runtime.JSX.Element;
|
|
635
|
+
declare function Plain({ children }: {
|
|
636
|
+
children: ReactNode;
|
|
637
|
+
}): react_jsx_runtime.JSX.Element;
|
|
638
|
+
declare function Image({ image, label, title, description, children }: WithImageProps): react_jsx_runtime.JSX.Element;
|
|
639
|
+
declare function Brand({ label, title, description, children }: PageHeroBaseProps): react_jsx_runtime.JSX.Element;
|
|
640
|
+
declare const PageLayout: {
|
|
641
|
+
/** 이미지 배경 + 대각선 그라디언트 + 좌하단 텍스트 */
|
|
642
|
+
Image: typeof Image;
|
|
643
|
+
/** SdTextBox.Section 타이틀 + Plain 컨테이너 */
|
|
644
|
+
Minimal: typeof Minimal;
|
|
645
|
+
/** primary 그라디언트 배경 + 중앙 텍스트 */
|
|
646
|
+
Brand: typeof Brand;
|
|
647
|
+
/** 히어로 없이 SdContainer + py="xl" 만 */
|
|
648
|
+
Plain: typeof Plain;
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
declare const theme: {
|
|
652
|
+
focusRing?: "auto" | "always" | "never" | undefined;
|
|
653
|
+
scale?: number | undefined;
|
|
654
|
+
fontSmoothing?: boolean | undefined;
|
|
655
|
+
white?: string | undefined;
|
|
656
|
+
black?: string | undefined;
|
|
657
|
+
colors?: {
|
|
658
|
+
[x: string & {}]: MantineColorsTuple | undefined;
|
|
659
|
+
dark?: MantineColorsTuple | undefined;
|
|
660
|
+
gray?: MantineColorsTuple | undefined;
|
|
661
|
+
red?: MantineColorsTuple | undefined;
|
|
662
|
+
pink?: MantineColorsTuple | undefined;
|
|
663
|
+
grape?: MantineColorsTuple | undefined;
|
|
664
|
+
violet?: MantineColorsTuple | undefined;
|
|
665
|
+
indigo?: MantineColorsTuple | undefined;
|
|
666
|
+
blue?: MantineColorsTuple | undefined;
|
|
667
|
+
cyan?: MantineColorsTuple | undefined;
|
|
668
|
+
green?: MantineColorsTuple | undefined;
|
|
669
|
+
lime?: MantineColorsTuple | undefined;
|
|
670
|
+
yellow?: MantineColorsTuple | undefined;
|
|
671
|
+
orange?: MantineColorsTuple | undefined;
|
|
672
|
+
teal?: MantineColorsTuple | undefined;
|
|
673
|
+
} | undefined;
|
|
674
|
+
primaryShade?: _mantine_core.MantineColorShade | {
|
|
675
|
+
light?: _mantine_core.MantineColorShade | undefined;
|
|
676
|
+
dark?: _mantine_core.MantineColorShade | undefined;
|
|
677
|
+
} | undefined;
|
|
678
|
+
primaryColor?: string | undefined;
|
|
679
|
+
variantColorResolver?: _mantine_core.VariantColorsResolver | undefined;
|
|
680
|
+
autoContrast?: boolean | undefined;
|
|
681
|
+
luminanceThreshold?: number | undefined;
|
|
682
|
+
fontFamily?: string | undefined;
|
|
683
|
+
fontFamilyMonospace?: string | undefined;
|
|
684
|
+
headings?: {
|
|
685
|
+
fontFamily?: string | undefined;
|
|
686
|
+
fontWeight?: string | undefined;
|
|
687
|
+
textWrap?: "wrap" | "nowrap" | "balance" | "pretty" | "stable" | undefined;
|
|
688
|
+
sizes?: {
|
|
689
|
+
h1?: {
|
|
690
|
+
fontSize?: string | undefined;
|
|
691
|
+
fontWeight?: string | undefined;
|
|
692
|
+
lineHeight?: string | undefined;
|
|
693
|
+
} | undefined;
|
|
694
|
+
h2?: {
|
|
695
|
+
fontSize?: string | undefined;
|
|
696
|
+
fontWeight?: string | undefined;
|
|
697
|
+
lineHeight?: string | undefined;
|
|
698
|
+
} | undefined;
|
|
699
|
+
h3?: {
|
|
700
|
+
fontSize?: string | undefined;
|
|
701
|
+
fontWeight?: string | undefined;
|
|
702
|
+
lineHeight?: string | undefined;
|
|
703
|
+
} | undefined;
|
|
704
|
+
h4?: {
|
|
705
|
+
fontSize?: string | undefined;
|
|
706
|
+
fontWeight?: string | undefined;
|
|
707
|
+
lineHeight?: string | undefined;
|
|
708
|
+
} | undefined;
|
|
709
|
+
h5?: {
|
|
710
|
+
fontSize?: string | undefined;
|
|
711
|
+
fontWeight?: string | undefined;
|
|
712
|
+
lineHeight?: string | undefined;
|
|
713
|
+
} | undefined;
|
|
714
|
+
h6?: {
|
|
715
|
+
fontSize?: string | undefined;
|
|
716
|
+
fontWeight?: string | undefined;
|
|
717
|
+
lineHeight?: string | undefined;
|
|
718
|
+
} | undefined;
|
|
719
|
+
} | undefined;
|
|
720
|
+
} | undefined;
|
|
721
|
+
radius?: {
|
|
722
|
+
[x: string & {}]: string | undefined;
|
|
723
|
+
xs?: string | undefined;
|
|
724
|
+
sm?: string | undefined;
|
|
725
|
+
md?: string | undefined;
|
|
726
|
+
lg?: string | undefined;
|
|
727
|
+
xl?: string | undefined;
|
|
728
|
+
} | undefined;
|
|
729
|
+
defaultRadius?: _mantine_core.MantineRadius | undefined;
|
|
730
|
+
spacing?: {
|
|
731
|
+
[x: number]: string | undefined;
|
|
732
|
+
[x: string & {}]: string | undefined;
|
|
733
|
+
xs?: string | undefined;
|
|
734
|
+
sm?: string | undefined;
|
|
735
|
+
md?: string | undefined;
|
|
736
|
+
lg?: string | undefined;
|
|
737
|
+
xl?: string | undefined;
|
|
738
|
+
} | undefined;
|
|
739
|
+
fontSizes?: {
|
|
740
|
+
[x: string & {}]: string | undefined;
|
|
741
|
+
xs?: string | undefined;
|
|
742
|
+
sm?: string | undefined;
|
|
743
|
+
md?: string | undefined;
|
|
744
|
+
lg?: string | undefined;
|
|
745
|
+
xl?: string | undefined;
|
|
746
|
+
} | undefined;
|
|
747
|
+
lineHeights?: {
|
|
748
|
+
[x: string & {}]: string | undefined;
|
|
749
|
+
xs?: string | undefined;
|
|
750
|
+
sm?: string | undefined;
|
|
751
|
+
md?: string | undefined;
|
|
752
|
+
lg?: string | undefined;
|
|
753
|
+
xl?: string | undefined;
|
|
754
|
+
} | undefined;
|
|
755
|
+
fontWeights?: {
|
|
756
|
+
[x: string & {}]: string | undefined;
|
|
757
|
+
bold?: string | undefined;
|
|
758
|
+
medium?: string | undefined;
|
|
759
|
+
regular?: string | undefined;
|
|
760
|
+
} | undefined;
|
|
761
|
+
breakpoints?: {
|
|
762
|
+
[x: string & {}]: string | undefined;
|
|
763
|
+
xs?: string | undefined;
|
|
764
|
+
sm?: string | undefined;
|
|
765
|
+
md?: string | undefined;
|
|
766
|
+
lg?: string | undefined;
|
|
767
|
+
xl?: string | undefined;
|
|
768
|
+
} | undefined;
|
|
769
|
+
shadows?: {
|
|
770
|
+
[x: string & {}]: string | undefined;
|
|
771
|
+
xs?: string | undefined;
|
|
772
|
+
sm?: string | undefined;
|
|
773
|
+
md?: string | undefined;
|
|
774
|
+
lg?: string | undefined;
|
|
775
|
+
xl?: string | undefined;
|
|
776
|
+
} | undefined;
|
|
777
|
+
respectReducedMotion?: boolean | undefined;
|
|
778
|
+
cursorType?: "default" | "pointer" | undefined;
|
|
779
|
+
defaultGradient?: {
|
|
780
|
+
from?: string | undefined;
|
|
781
|
+
to?: string | undefined;
|
|
782
|
+
deg?: number | undefined;
|
|
783
|
+
} | undefined;
|
|
784
|
+
activeClassName?: string | undefined;
|
|
785
|
+
focusClassName?: string | undefined;
|
|
786
|
+
components?: {
|
|
787
|
+
[x: string]: {
|
|
788
|
+
classNames?: any;
|
|
789
|
+
styles?: any;
|
|
790
|
+
vars?: any;
|
|
791
|
+
defaultProps?: any;
|
|
792
|
+
} | undefined;
|
|
793
|
+
} | undefined;
|
|
794
|
+
other?: {
|
|
795
|
+
[x: string]: any;
|
|
796
|
+
} | undefined;
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
export { HeroCarousel, Logo, MainLayout, type NavItem, PageLayout, SdBadge, SdButton, SdClients, SdContainer, SdCta, SdErrorView, SdFaq, SdFeatureSection, SdFeatures, SdFooter, SdHeader, SdInput, SdMap, SdModal, SdNumberIcon, SdPricingCard, SdQuote, SdSolution, SdSolutionCard, SdSteps, SdStepsSection, SdTable, SdTabs, SdTestimonial, SdText, SdTextBox, SdTimeline, SdTimelineSection, SdTitle, theme };
|