@wipco/sdui 1.1.0 → 1.2.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/meta.js CHANGED
@@ -4119,6 +4119,20 @@ var ExcelUploadCardMeta = {
4119
4119
  icon: "cloud-upload",
4120
4120
  description: "\uC5D1\uC140 \uC77C\uAD04 \uC5C5\uB85C\uB4DC \uCE74\uB4DC. server\uB294 \uD30C\uC77C\uC744 \uADF8\uB300\uB85C \uC62C\uB824 \uCC98\uB9AC \uC694\uC57D\uC744 \uBC1B\uACE0, preview\uB294 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uD30C\uC2F1\xB7\uAC80\uC99D\uD558\uACE0 \uC624\uB958 \uC140\uC744 \uACE0\uCE5C \uB4A4 \uC720\uD6A8 \uD589\uB9CC \uBCF4\uB0B8\uB2E4.",
4121
4121
  props: [
4122
+ {
4123
+ name: "title",
4124
+ kind: "string",
4125
+ label: "\uC81C\uBAA9",
4126
+ description: "\uC0DD\uB7B5 \uC2DC '\uC5D1\uC140 \uC77C\uAD04 \uC5C5\uB85C\uB4DC'. \uC5EC\uB7EC \uC5C5\uB85C\uB4DC\uAC00 \uD55C \uD654\uBA74\uC5D0 \uC124 \uB54C \uAC01\uC790\uC758 \uC774\uB984\uC744 \uB2E8\uB2E4.",
4127
+ group: "content"
4128
+ },
4129
+ {
4130
+ name: "subtitle",
4131
+ kind: "string",
4132
+ label: "\uBD80\uC81C",
4133
+ description: "\uC0DD\uB7B5 \uC2DC \uBAA8\uB4DC\uBCC4 \uAE30\uBCF8 \uC548\uB0B4 \uBB38\uAD6C.",
4134
+ group: "content"
4135
+ },
4122
4136
  {
4123
4137
  name: "mode",
4124
4138
  kind: "enum",
@@ -4202,7 +4216,7 @@ var ExcelUploadCardMeta = {
4202
4216
  }
4203
4217
  // 실측 5/8 — 단일 toast×3, 액션 배열×2(close→toast)
4204
4218
  ],
4205
- children: { accepts: false },
4219
+ children: { accepts: true, label: "\uC124\uBA85 \uC601\uC5ED \u2014 \uBA38\uB9AC\uAE00\uACFC \uD30C\uC77C \uC120\uD0DD \uD589 \uC0AC\uC774\uC5D0 \uC120\uB2E4(\uCC98\uB9AC \uADDC\uCE59 \uC548\uB0B4, \uD15C\uD50C\uB9BF \uD5E4\uB354 \uBAA9\uB85D \uB4F1)" },
4206
4220
  dom: { element: "div" },
4207
4221
  // 실측: 루트가 라이브러리 Card → <div class="wp-card">
4208
4222
  // 프리셋에 endpoint·templateEndpoint를 넣지 않는다. 이 조합이면 템플릿은 브라우저에서
@@ -16,6 +16,13 @@ interface ExcelPreviewColumn {
16
16
  options?: string[];
17
17
  }
18
18
  interface ExcelUploadCardProps {
19
+ /**
20
+ * 카드 제목 — 생략 시 '엑셀 일괄 업로드'. 여러 업로드가 한 화면에 설 때 각자의
21
+ * 이름을 달 수 있게 연다(바깥 Card로 한 번 더 감싸면 카드 속 카드가 된다).
22
+ */
23
+ title?: string;
24
+ /** 카드 부제 — 생략 시 모드별 기본 안내 문구 */
25
+ subtitle?: string;
19
26
  /** server = 파일을 서버로 바로 업로드, preview = 클라이언트 파싱·검증 후 가져오기 */
20
27
  mode?: 'server' | 'preview';
21
28
  /** server: multipart POST 대상 / preview: 검증된 rows JSON POST 대상 */
@@ -37,6 +44,8 @@ interface ExcelUploadCardProps {
37
44
  * 업로드 버튼이 잠기면 안 된다.
38
45
  */
39
46
  demoModeOn503?: boolean;
47
+ /** 머리글과 파일 선택 행 사이의 설명 영역 — 처리 규칙 안내, 템플릿 헤더 목록 등 */
48
+ children?: React__default.ReactNode;
40
49
  }
41
50
  /** 바깥에서 온 `style`·`className`을 뿌리에 얹어 내보낸다 — 자기 축(폭·여백)이 닿게 하는 통로. */
42
51
  declare const ExcelUploadCard: React__default.FC<ExcelUploadCardProps & SduiBoxProps>;
@@ -43,6 +43,8 @@ function errorMessage(error, fallback) {
43
43
  return error instanceof Error && error.message ? error.message : fallback;
44
44
  }
45
45
  function ExcelUploadCardImpl({
46
+ title,
47
+ subtitle,
46
48
  mode = "server",
47
49
  endpoint,
48
50
  templateEndpoint,
@@ -50,7 +52,8 @@ function ExcelUploadCardImpl({
50
52
  columns,
51
53
  summaryLabels,
52
54
  onComplete,
53
- demoModeOn503 = false
55
+ demoModeOn503 = false,
56
+ children
54
57
  }) {
55
58
  const adapter = useSduiAdapter();
56
59
  const sandbox = useSduiSandbox();
@@ -363,8 +366,8 @@ function ExcelUploadCardImpl({
363
366
  return /* @__PURE__ */ jsx(
364
367
  Card,
365
368
  {
366
- title: "\uC5D1\uC140 \uC77C\uAD04 \uC5C5\uB85C\uB4DC",
367
- subtitle: mode === "preview" ? "\uC5D1\uC140 \uD30C\uC77C\uC744 \uBD88\uB7EC\uC640 \uAC80\uC99D\uD55C \uB4A4 \uC815\uC0C1 \uD589\uB9CC \uAC00\uC838\uC635\uB2C8\uB2E4" : "\uC5D1\uC140 \uD30C\uC77C\uC744 \uC5C5\uB85C\uB4DC\uD558\uBA74 \uC11C\uBC84\uC5D0\uC11C \uC77C\uAD04 \uCC98\uB9AC\uD569\uB2C8\uB2E4",
369
+ title: title ?? "\uC5D1\uC140 \uC77C\uAD04 \uC5C5\uB85C\uB4DC",
370
+ subtitle: subtitle ?? (mode === "preview" ? "\uC5D1\uC140 \uD30C\uC77C\uC744 \uBD88\uB7EC\uC640 \uAC80\uC99D\uD55C \uB4A4 \uC815\uC0C1 \uD589\uB9CC \uAC00\uC838\uC635\uB2C8\uB2E4" : "\uC5D1\uC140 \uD30C\uC77C\uC744 \uC5C5\uB85C\uB4DC\uD558\uBA74 \uC11C\uBC84\uC5D0\uC11C \uC77C\uAD04 \uCC98\uB9AC\uD569\uB2C8\uB2E4"),
368
371
  actions: hasTemplate ? /* @__PURE__ */ jsx(
369
372
  Button,
370
373
  {
@@ -388,6 +391,7 @@ function ExcelUploadCardImpl({
388
391
  },
389
392
  inputKey
390
393
  ),
394
+ children,
391
395
  /* @__PURE__ */ jsxs(
392
396
  "div",
393
397
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",