@ncds/ui-admin-mcp 1.0.0-alpha.21 → 1.0.0-alpha.23
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/bin/components.bundle.js +8 -8
- package/bin/definitions/instructions.md +6 -3
- package/bin/definitions/js-api.json +80 -0
- package/bin/definitions/rules.json +8 -4
- package/bin/overrides/composition.json +328 -25
- package/bin/server.js +6 -3
- package/bin/tools/renderToHtml.js +2 -1
- package/bin/types.d.ts +2 -0
- package/bin/utils/tokenValidator.js +33 -3
- package/bin/version.d.ts +1 -1
- package/bin/version.js +1 -1
- package/data/_icons.json +26 -1
- package/data/badge-group.json +11 -11
- package/data/badge.json +20 -16
- package/data/bread-crumb.json +2 -1
- package/data/button.json +2 -2
- package/data/combo-box.json +4 -3
- package/data/context-tab.json +119 -0
- package/data/date-picker.json +1 -1
- package/data/dropdown.json +6 -4
- package/data/empty-state.json +3 -3
- package/data/file-input.json +4 -2
- package/data/horizontal-tab.json +7 -5
- package/data/image-file-input.json +4 -2
- package/data/modal.json +1 -1
- package/data/notification.json +2 -1
- package/data/page-title.json +2 -1
- package/data/progress-bar.json +2 -1
- package/data/range-date-picker-with-buttons.json +7 -6
- package/data/range-date-picker.json +5 -5
- package/data/select-box.json +4 -3
- package/data/select.json +3 -2
- package/data/table.json +4 -2
- package/data/tag.json +1 -1
- package/data/vertical-tab.json +7 -5
- package/package.json +2 -2
- package/bin/tools/listSidecarOverrides.d.ts +0 -54
- package/bin/tools/listSidecarOverrides.js +0 -96
|
@@ -537,7 +537,8 @@ const mergeCdnDefaults = (componentName, cdnDefaults, userProps) => {
|
|
|
537
537
|
return { merged: userProps, defaultsApplied: [] };
|
|
538
538
|
const userPropsClean = (0, exports.stripFunctionProps)(userProps);
|
|
539
539
|
const baseMerged = (0, lodash_1.merge)((0, lodash_1.cloneDeep)(cdnDefaults), userPropsClean);
|
|
540
|
-
const
|
|
540
|
+
const DATE_PICKER_FAMILY = ['date-picker', 'range-date-picker', 'range-date-picker-with-buttons'];
|
|
541
|
+
const merged = DATE_PICKER_FAMILY.includes(componentName) && Array.isArray(userPropsClean.datePickerOptions)
|
|
541
542
|
? {
|
|
542
543
|
...baseMerged,
|
|
543
544
|
datePickerOptions: userPropsClean.datePickerOptions.map((item) => {
|
package/bin/types.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export interface PropSpec {
|
|
|
7
7
|
default?: unknown;
|
|
8
8
|
values?: string[];
|
|
9
9
|
rawType?: string;
|
|
10
|
+
/** 배열 타입임을 명시 — type: 'object'로 분류되어도 이 필드가 true면 반드시 배열([])로 전달해야 함 */
|
|
11
|
+
isArray?: boolean;
|
|
10
12
|
properties?: Record<string, PropSpec>;
|
|
11
13
|
/** 타입의 의미적 정체성 — 예: 'icon-component'는 SlotIconComponent 계열 아이콘 컴포넌트. renderer가 iconBundle resolve 대상 판정에 사용 */
|
|
12
14
|
semantic?: 'icon-component';
|
|
@@ -70,6 +70,32 @@ const buildTokenNameSet = (tokenData) => {
|
|
|
70
70
|
}
|
|
71
71
|
return names;
|
|
72
72
|
};
|
|
73
|
+
/** token prefix → 카테고리 역방향 맵 — invalid_token suggestion에 카테고리 명시용 */
|
|
74
|
+
const buildPrefixCategoryMap = (tokenData) => {
|
|
75
|
+
const map = new Map();
|
|
76
|
+
for (const group of tokenData.groups) {
|
|
77
|
+
for (const token of group.tokens) {
|
|
78
|
+
const stripped = token.name.replace(/^--/, '');
|
|
79
|
+
const segments = stripped.split('-');
|
|
80
|
+
if (segments.length >= 2)
|
|
81
|
+
map.set(`--${segments.slice(0, 2).join('-')}`, group.category);
|
|
82
|
+
if (segments.length >= 1)
|
|
83
|
+
map.set(`--${segments[0]}`, group.category);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return map;
|
|
87
|
+
};
|
|
88
|
+
/** var 이름의 prefix에서 카테고리 추론 — 더 긴 prefix 우선 */
|
|
89
|
+
const inferCategoryFromVarName = (varName, prefixCategoryMap) => {
|
|
90
|
+
const stripped = varName.replace(/^--/, '');
|
|
91
|
+
const segments = stripped.split('-');
|
|
92
|
+
if (segments.length >= 2) {
|
|
93
|
+
const cat = prefixCategoryMap.get(`--${segments.slice(0, 2).join('-')}`);
|
|
94
|
+
if (cat)
|
|
95
|
+
return cat;
|
|
96
|
+
}
|
|
97
|
+
return prefixCategoryMap.get(`--${segments[0]}`);
|
|
98
|
+
};
|
|
73
99
|
/** inline style + <style> 블록의 CSS 텍스트를 하나로 합침 */
|
|
74
100
|
const extractAllCss = (root) => {
|
|
75
101
|
const parts = [];
|
|
@@ -125,7 +151,7 @@ const collectTokenNotUsedErrors = (css, tokenValueMap) => {
|
|
|
125
151
|
return { errors, missing };
|
|
126
152
|
};
|
|
127
153
|
/** var() 참조 → invalid_token 에러 수집 + correct 카운트 */
|
|
128
|
-
const collectInvalidTokenErrors = (css, tokenNameSet, tokenPrefixSet) => {
|
|
154
|
+
const collectInvalidTokenErrors = (css, tokenNameSet, tokenPrefixSet, prefixCategoryMap) => {
|
|
129
155
|
const errors = [];
|
|
130
156
|
let correct = 0;
|
|
131
157
|
let invalid = 0;
|
|
@@ -139,12 +165,16 @@ const collectInvalidTokenErrors = (css, tokenNameSet, tokenPrefixSet) => {
|
|
|
139
165
|
}
|
|
140
166
|
else {
|
|
141
167
|
invalid++;
|
|
168
|
+
const category = inferCategoryFromVarName(varName, prefixCategoryMap);
|
|
169
|
+
const suggestion = category
|
|
170
|
+
? `Call get_design_tokens('${category}') to see available ${category} tokens.`
|
|
171
|
+
: 'Call get_design_tokens to see available tokens.';
|
|
142
172
|
errors.push({
|
|
143
173
|
type: 'invalid_token',
|
|
144
174
|
target: `var(${varName})`,
|
|
145
175
|
component: '(inline-style)',
|
|
146
176
|
message: `Token '${varName}' does not exist in the design system.`,
|
|
147
|
-
suggestion
|
|
177
|
+
suggestion,
|
|
148
178
|
});
|
|
149
179
|
}
|
|
150
180
|
}
|
|
@@ -155,7 +185,7 @@ const detectTokenIssues = (params) => {
|
|
|
155
185
|
const { root, tokenData, tokenValueMap } = params;
|
|
156
186
|
const allCss = extractAllCss(root);
|
|
157
187
|
const notUsed = collectTokenNotUsedErrors(allCss, tokenValueMap);
|
|
158
|
-
const invalidResult = collectInvalidTokenErrors(allCss, buildTokenNameSet(tokenData), buildTokenPrefixSet(tokenData));
|
|
188
|
+
const invalidResult = collectInvalidTokenErrors(allCss, buildTokenNameSet(tokenData), buildTokenPrefixSet(tokenData), buildPrefixCategoryMap(tokenData));
|
|
159
189
|
return {
|
|
160
190
|
errors: [...notUsed.errors, ...invalidResult.errors],
|
|
161
191
|
tokenUsage: { correct: invalidResult.correct, missing: notUsed.missing, invalid: invalidResult.invalid },
|
package/bin/version.d.ts
CHANGED
package/bin/version.js
CHANGED
package/data/_icons.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"totalCount":
|
|
2
|
+
"totalCount": 2547,
|
|
3
3
|
"fillCount": 1198,
|
|
4
4
|
"icons": [
|
|
5
5
|
{
|
|
@@ -3292,6 +3292,21 @@
|
|
|
3292
3292
|
"kebab": "color-file-html-solid",
|
|
3293
3293
|
"fill": false
|
|
3294
3294
|
},
|
|
3295
|
+
{
|
|
3296
|
+
"name": "ColorFileHwpDefault",
|
|
3297
|
+
"kebab": "color-file-hwp-default",
|
|
3298
|
+
"fill": false
|
|
3299
|
+
},
|
|
3300
|
+
{
|
|
3301
|
+
"name": "ColorFileHwpGray",
|
|
3302
|
+
"kebab": "color-file-hwp-gray",
|
|
3303
|
+
"fill": false
|
|
3304
|
+
},
|
|
3305
|
+
{
|
|
3306
|
+
"name": "ColorFileHwpSolid",
|
|
3307
|
+
"kebab": "color-file-hwp-solid",
|
|
3308
|
+
"fill": false
|
|
3309
|
+
},
|
|
3295
3310
|
{
|
|
3296
3311
|
"name": "ColorFileImageDefault",
|
|
3297
3312
|
"kebab": "color-file-image-default",
|
|
@@ -8152,6 +8167,11 @@
|
|
|
8152
8167
|
"kebab": "maximize02-fill",
|
|
8153
8168
|
"fill": true
|
|
8154
8169
|
},
|
|
8170
|
+
{
|
|
8171
|
+
"name": "Maximize03",
|
|
8172
|
+
"kebab": "maximize03",
|
|
8173
|
+
"fill": false
|
|
8174
|
+
},
|
|
8155
8175
|
{
|
|
8156
8176
|
"name": "MedicalCircle",
|
|
8157
8177
|
"kebab": "medical-circle",
|
|
@@ -8812,6 +8832,11 @@
|
|
|
8812
8832
|
"kebab": "navigation-pointer-off02-fill",
|
|
8813
8833
|
"fill": true
|
|
8814
8834
|
},
|
|
8835
|
+
{
|
|
8836
|
+
"name": "New",
|
|
8837
|
+
"kebab": "new",
|
|
8838
|
+
"fill": false
|
|
8839
|
+
},
|
|
8815
8840
|
{
|
|
8816
8841
|
"name": "NotificationBox",
|
|
8817
8842
|
"kebab": "notification-box",
|
package/data/badge-group.json
CHANGED
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"groupIcon": {
|
|
60
60
|
"type": "object",
|
|
61
61
|
"required": false,
|
|
62
|
-
"rawType": "import(\"/
|
|
62
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
63
63
|
"properties": {
|
|
64
64
|
"type": {
|
|
65
65
|
"type": "string",
|
|
@@ -129,12 +129,12 @@
|
|
|
129
129
|
},
|
|
130
130
|
"label": {
|
|
131
131
|
"type": "string",
|
|
132
|
-
"required":
|
|
132
|
+
"required": false
|
|
133
133
|
},
|
|
134
134
|
"leadingIcon": {
|
|
135
135
|
"type": "object",
|
|
136
136
|
"required": false,
|
|
137
|
-
"rawType": "import(\"/
|
|
137
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
138
138
|
"properties": {
|
|
139
139
|
"type": {
|
|
140
140
|
"type": "string",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"trailingIcon": {
|
|
212
212
|
"type": "object",
|
|
213
213
|
"required": false,
|
|
214
|
-
"rawType": "import(\"/
|
|
214
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
215
215
|
"properties": {
|
|
216
216
|
"type": {
|
|
217
217
|
"type": "string",
|
|
@@ -286,13 +286,13 @@
|
|
|
286
286
|
"usage": {
|
|
287
287
|
"import": "import { BadgeGroup } from '@ncds/ui-admin';",
|
|
288
288
|
"react": {
|
|
289
|
-
"default": "<BadgeGroup groupLabel=\"\"
|
|
290
|
-
"color:error": "<BadgeGroup color=\"error\" groupLabel=\"\"
|
|
291
|
-
"color:neutral": "<BadgeGroup color=\"neutral\" groupLabel=\"\"
|
|
292
|
-
"color:success": "<BadgeGroup color=\"success\" groupLabel=\"\"
|
|
293
|
-
"color:warning": "<BadgeGroup color=\"warning\" groupLabel=\"\"
|
|
294
|
-
"size:sm": "<BadgeGroup size=\"sm\" groupLabel=\"\"
|
|
295
|
-
"size:xs": "<BadgeGroup size=\"xs\" groupLabel=\"\"
|
|
289
|
+
"default": "<BadgeGroup groupLabel=\"\" />",
|
|
290
|
+
"color:error": "<BadgeGroup color=\"error\" groupLabel=\"\" />",
|
|
291
|
+
"color:neutral": "<BadgeGroup color=\"neutral\" groupLabel=\"\" />",
|
|
292
|
+
"color:success": "<BadgeGroup color=\"success\" groupLabel=\"\" />",
|
|
293
|
+
"color:warning": "<BadgeGroup color=\"warning\" groupLabel=\"\" />",
|
|
294
|
+
"size:sm": "<BadgeGroup size=\"sm\" groupLabel=\"\" />",
|
|
295
|
+
"size:xs": "<BadgeGroup size=\"xs\" groupLabel=\"\" />"
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
}
|
package/data/badge.json
CHANGED
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
},
|
|
77
77
|
"label": {
|
|
78
78
|
"type": "string",
|
|
79
|
-
"required":
|
|
79
|
+
"required": false
|
|
80
80
|
},
|
|
81
81
|
"leadingIcon": {
|
|
82
82
|
"type": "object",
|
|
83
83
|
"required": false,
|
|
84
|
-
"rawType": "import(\"/
|
|
84
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
85
85
|
"properties": {
|
|
86
86
|
"type": {
|
|
87
87
|
"type": "string",
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"trailingIcon": {
|
|
155
155
|
"type": "object",
|
|
156
156
|
"required": false,
|
|
157
|
-
"rawType": "import(\"/
|
|
157
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
158
158
|
"properties": {
|
|
159
159
|
"type": {
|
|
160
160
|
"type": "string",
|
|
@@ -218,6 +218,7 @@
|
|
|
218
218
|
"type": "enum",
|
|
219
219
|
"required": false,
|
|
220
220
|
"values": [
|
|
221
|
+
"new-badge",
|
|
221
222
|
"pill-dark-color",
|
|
222
223
|
"pill-outline"
|
|
223
224
|
],
|
|
@@ -232,6 +233,8 @@
|
|
|
232
233
|
"ncua-badge--error",
|
|
233
234
|
"ncua-badge--md",
|
|
234
235
|
"ncua-badge--neutral",
|
|
236
|
+
"ncua-badge--new-badge",
|
|
237
|
+
"ncua-badge--new-badge-",
|
|
235
238
|
"ncua-badge--pill-dark-color",
|
|
236
239
|
"ncua-badge--pill-outline",
|
|
237
240
|
"ncua-badge--pink",
|
|
@@ -244,19 +247,20 @@
|
|
|
244
247
|
"usage": {
|
|
245
248
|
"import": "import { Badge } from '@ncds/ui-admin';",
|
|
246
249
|
"react": {
|
|
247
|
-
"default": "<Badge
|
|
248
|
-
"color:blue": "<Badge color=\"blue\"
|
|
249
|
-
"color:disabled": "<Badge color=\"disabled\"
|
|
250
|
-
"color:error": "<Badge color=\"error\"
|
|
251
|
-
"color:neutral": "<Badge color=\"neutral\"
|
|
252
|
-
"color:pink": "<Badge color=\"pink\"
|
|
253
|
-
"color:success": "<Badge color=\"success\"
|
|
254
|
-
"color:warning": "<Badge color=\"warning\"
|
|
255
|
-
"size:md": "<Badge size=\"md\"
|
|
256
|
-
"size:sm": "<Badge size=\"sm\"
|
|
257
|
-
"size:xs": "<Badge size=\"xs\"
|
|
258
|
-
"type:
|
|
259
|
-
"type:pill-
|
|
250
|
+
"default": "<Badge />",
|
|
251
|
+
"color:blue": "<Badge color=\"blue\" />",
|
|
252
|
+
"color:disabled": "<Badge color=\"disabled\" />",
|
|
253
|
+
"color:error": "<Badge color=\"error\" />",
|
|
254
|
+
"color:neutral": "<Badge color=\"neutral\" />",
|
|
255
|
+
"color:pink": "<Badge color=\"pink\" />",
|
|
256
|
+
"color:success": "<Badge color=\"success\" />",
|
|
257
|
+
"color:warning": "<Badge color=\"warning\" />",
|
|
258
|
+
"size:md": "<Badge size=\"md\" />",
|
|
259
|
+
"size:sm": "<Badge size=\"sm\" />",
|
|
260
|
+
"size:xs": "<Badge size=\"xs\" />",
|
|
261
|
+
"type:new-badge": "<Badge type=\"new-badge\" />",
|
|
262
|
+
"type:pill-dark-color": "<Badge type=\"pill-dark-color\" />",
|
|
263
|
+
"type:pill-outline": "<Badge type=\"pill-outline\" />"
|
|
260
264
|
}
|
|
261
265
|
}
|
|
262
266
|
}
|
package/data/bread-crumb.json
CHANGED
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
"items": {
|
|
58
58
|
"type": "object",
|
|
59
59
|
"required": true,
|
|
60
|
-
"rawType": "import(\"/
|
|
60
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/navigation/bread-crumb/BreadCrumb\").BreadcrumbItemProps[]",
|
|
61
|
+
"isArray": true,
|
|
61
62
|
"properties": {
|
|
62
63
|
"href": {
|
|
63
64
|
"type": "string",
|
package/data/button.json
CHANGED
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"leadingIcon": {
|
|
78
78
|
"type": "object",
|
|
79
79
|
"required": false,
|
|
80
|
-
"rawType": "import(\"/
|
|
80
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
81
81
|
"properties": {
|
|
82
82
|
"type": {
|
|
83
83
|
"type": "string",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"trailingIcon": {
|
|
159
159
|
"type": "object",
|
|
160
160
|
"required": false,
|
|
161
|
-
"rawType": "import(\"/
|
|
161
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
162
162
|
"properties": {
|
|
163
163
|
"type": {
|
|
164
164
|
"type": "string",
|
package/data/combo-box.json
CHANGED
|
@@ -103,7 +103,8 @@
|
|
|
103
103
|
"optionItems": {
|
|
104
104
|
"type": "object",
|
|
105
105
|
"required": false,
|
|
106
|
-
"rawType": "import(\"/
|
|
106
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
|
|
107
|
+
"isArray": true,
|
|
107
108
|
"properties": {
|
|
108
109
|
"id": {
|
|
109
110
|
"type": "string",
|
|
@@ -130,7 +131,7 @@
|
|
|
130
131
|
"register": {
|
|
131
132
|
"type": "object",
|
|
132
133
|
"required": false,
|
|
133
|
-
"rawType": "import(\"/
|
|
134
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/node_modules/.pnpm/react-hook-form@7.72.0_react@18.2.0/node_modules/react-hook-form/dist/types/form\").UseFormRegisterReturn | undefined"
|
|
134
135
|
},
|
|
135
136
|
"required": {
|
|
136
137
|
"type": "boolean",
|
|
@@ -159,7 +160,7 @@
|
|
|
159
160
|
"value": {
|
|
160
161
|
"type": "object",
|
|
161
162
|
"required": false,
|
|
162
|
-
"rawType": "import(\"/
|
|
163
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/dropdown/option\").OptionValue | undefined"
|
|
163
164
|
}
|
|
164
165
|
},
|
|
165
166
|
"html": {},
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "context-tab",
|
|
3
|
+
"exportName": "ContextTab",
|
|
4
|
+
"importPath": "@ncds/ui-admin",
|
|
5
|
+
"jsRequired": true,
|
|
6
|
+
"category": "navigation",
|
|
7
|
+
"description": "ContextTab은 페이지 전체의 작업 컨텍스트(scope)를 전환하는 가로 탭 컴포넌트입니다. 멀티 테넌트 어드민(다중 쇼핑몰·계정·워크스페이스 등)에서 좌측 ☰ 전체 목록 Dropdown과 우측 ← → Slider Navigation을 항상 통합 제공합니다.",
|
|
8
|
+
"aliases": [
|
|
9
|
+
"ContextTab",
|
|
10
|
+
"컨텍스트탭",
|
|
11
|
+
"컨텍스트 탭",
|
|
12
|
+
"다중쇼핑몰",
|
|
13
|
+
"쇼핑몰전환",
|
|
14
|
+
"워크스페이스전환",
|
|
15
|
+
"scope",
|
|
16
|
+
"1depth",
|
|
17
|
+
"Dropdown",
|
|
18
|
+
"Slider",
|
|
19
|
+
"multi-tenant",
|
|
20
|
+
"네비게이션",
|
|
21
|
+
"NCDS"
|
|
22
|
+
],
|
|
23
|
+
"hasChildren": false,
|
|
24
|
+
"whenToUse": [
|
|
25
|
+
"페이지 전체 데이터/설정의 적용 대상(쇼핑몰·계정·워크스페이스 등)을 전환",
|
|
26
|
+
"다중 컨텍스트(2개 이상, 실 사용 무제한)를 한 탭 바에서 노출",
|
|
27
|
+
"컨텍스트 전환 시 페이지 데이터 재로드를 동반",
|
|
28
|
+
"모든 페이지의 PageTitle 외부 직하단 같은 자리에 고정 배치"
|
|
29
|
+
],
|
|
30
|
+
"forbiddenRules": [
|
|
31
|
+
"PageTitle 카드 내부 배치 금지",
|
|
32
|
+
"블록 타이틀 하단·블록 내부 배치 금지(콘텐츠 영역 탭은 HorizontalTab 사용)",
|
|
33
|
+
"Size 변경 금지(md 단일)",
|
|
34
|
+
"Dropdown 또는 Slider Navigation 생략 금지",
|
|
35
|
+
"한 페이지에 ContextTab 복수 노출 금지",
|
|
36
|
+
"1개 컨텍스트 단독 노출 금지(PageTitle Title 영역에 컨텍스트명 표기로 대체)",
|
|
37
|
+
"콘텐츠 변경 없이 탭만 전환 금지(데이터 재로드 동반)",
|
|
38
|
+
"Dropdown Active 마커에 dot 형태 또는 Red 사용 금지(✓ Check icon 단일)",
|
|
39
|
+
"콘텐츠 영역 전환에 ContextTab 사용 금지(HorizontalTab 사용)",
|
|
40
|
+
"탭 높이 변형 금지(36px 고정)",
|
|
41
|
+
"활성 탭에 테두리 추가 금지(Shadow/sm 단독 raised)",
|
|
42
|
+
"Dropdown panel 헤더 영역 추가 금지"
|
|
43
|
+
],
|
|
44
|
+
"seeAlso": [
|
|
45
|
+
"horizontal-tab",
|
|
46
|
+
"vertical-tab",
|
|
47
|
+
"badge"
|
|
48
|
+
],
|
|
49
|
+
"props": {
|
|
50
|
+
"activeTab": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"required": false
|
|
53
|
+
},
|
|
54
|
+
"className": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"required": false
|
|
57
|
+
},
|
|
58
|
+
"menus": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": false,
|
|
61
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/navigation/context-tab/ContextTab\").ContextTabItemProps[] | undefined",
|
|
62
|
+
"isArray": true,
|
|
63
|
+
"properties": {
|
|
64
|
+
"id": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"required": true
|
|
67
|
+
},
|
|
68
|
+
"label": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"required": true
|
|
71
|
+
},
|
|
72
|
+
"isNew": {
|
|
73
|
+
"type": "boolean",
|
|
74
|
+
"required": false
|
|
75
|
+
},
|
|
76
|
+
"badgeLabel": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"required": false
|
|
79
|
+
},
|
|
80
|
+
"disabled": {
|
|
81
|
+
"type": "boolean",
|
|
82
|
+
"required": false
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"default": "[]"
|
|
86
|
+
},
|
|
87
|
+
"onTabChange": {
|
|
88
|
+
"type": "function",
|
|
89
|
+
"required": false
|
|
90
|
+
},
|
|
91
|
+
"visibleTabsCount": {
|
|
92
|
+
"type": "number",
|
|
93
|
+
"required": false,
|
|
94
|
+
"default": "DEFAULT_VISIBLE_TABS_COUNT"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"html": {},
|
|
98
|
+
"bemClasses": [
|
|
99
|
+
"ncua-context-tab",
|
|
100
|
+
"ncua-context-tab__bar",
|
|
101
|
+
"ncua-context-tab__control ncua-context-tab__control--menu",
|
|
102
|
+
"ncua-context-tab__control ncua-context-tab__control--next",
|
|
103
|
+
"ncua-context-tab__control ncua-context-tab__control--prev",
|
|
104
|
+
"ncua-context-tab__nav",
|
|
105
|
+
"ncua-context-tab__option",
|
|
106
|
+
"ncua-context-tab__option-check",
|
|
107
|
+
"ncua-context-tab__option-label",
|
|
108
|
+
"ncua-context-tab__panel",
|
|
109
|
+
"ncua-context-tab__panel-column",
|
|
110
|
+
"ncua-context-tab__tab",
|
|
111
|
+
"ncua-context-tab__tab-label"
|
|
112
|
+
],
|
|
113
|
+
"usage": {
|
|
114
|
+
"import": "import { ContextTab } from '@ncds/ui-admin';",
|
|
115
|
+
"react": {
|
|
116
|
+
"default": "<ContextTab />"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
package/data/date-picker.json
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"datePickerOptions": {
|
|
63
63
|
"type": "object",
|
|
64
64
|
"required": false,
|
|
65
|
-
"rawType": "Partial<import(\"/
|
|
65
|
+
"rawType": "Partial<import(\"/home/runner/_work/ncds/ncds/node_modules/.pnpm/flatpickr@4.6.13/node_modules/flatpickr/dist/types/options\").BaseOptions> | undefined"
|
|
66
66
|
},
|
|
67
67
|
"destructive": {
|
|
68
68
|
"type": "string",
|
package/data/dropdown.json
CHANGED
|
@@ -115,12 +115,14 @@
|
|
|
115
115
|
"groups": {
|
|
116
116
|
"type": "object",
|
|
117
117
|
"required": true,
|
|
118
|
-
"rawType": "import(\"/
|
|
118
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").DropdownGroup[]",
|
|
119
|
+
"isArray": true,
|
|
119
120
|
"properties": {
|
|
120
121
|
"items": {
|
|
121
122
|
"type": "object",
|
|
122
123
|
"required": true,
|
|
123
|
-
"rawType": "import(\"/
|
|
124
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").DropdownItemType[]",
|
|
125
|
+
"isArray": true,
|
|
124
126
|
"properties": {
|
|
125
127
|
"id": {
|
|
126
128
|
"type": "string",
|
|
@@ -178,7 +180,7 @@
|
|
|
178
180
|
"header": {
|
|
179
181
|
"type": "object",
|
|
180
182
|
"required": false,
|
|
181
|
-
"rawType": "import(\"/
|
|
183
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").DropdownHeaderType | undefined",
|
|
182
184
|
"properties": {
|
|
183
185
|
"type": {
|
|
184
186
|
"type": "string",
|
|
@@ -206,7 +208,7 @@
|
|
|
206
208
|
"trigger": {
|
|
207
209
|
"type": "object",
|
|
208
210
|
"required": true,
|
|
209
|
-
"rawType": "import(\"/
|
|
211
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").AvatarTrigger | import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").ButtonTrigger | import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").IconTrigger | import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/overlays/dropdown/Dropdown\").CustomTrigger",
|
|
210
212
|
"properties": {
|
|
211
213
|
"type": {
|
|
212
214
|
"type": "string",
|
package/data/empty-state.json
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"buttons": {
|
|
38
38
|
"type": "object",
|
|
39
39
|
"required": false,
|
|
40
|
-
"rawType": "import(\"/
|
|
40
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/feedback-and-status/empty-state/EmptyState\").ButtonOptions | import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/feedback-and-status/empty-state/EmptyState\").ButtonOptions[] | undefined",
|
|
41
41
|
"properties": {
|
|
42
42
|
"label": {
|
|
43
43
|
"type": "string",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"leadingIcon": {
|
|
80
80
|
"type": "object",
|
|
81
81
|
"required": false,
|
|
82
|
-
"rawType": "import(\"/
|
|
82
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
83
83
|
"properties": {
|
|
84
84
|
"type": {
|
|
85
85
|
"type": "string",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"trailingIcon": {
|
|
143
143
|
"type": "object",
|
|
144
144
|
"required": false,
|
|
145
|
-
"rawType": "import(\"/
|
|
145
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
146
146
|
"properties": {
|
|
147
147
|
"type": {
|
|
148
148
|
"type": "string",
|
package/data/file-input.json
CHANGED
|
@@ -64,7 +64,8 @@
|
|
|
64
64
|
"hintItems": {
|
|
65
65
|
"type": "object",
|
|
66
66
|
"required": false,
|
|
67
|
-
"rawType": "string[] | undefined"
|
|
67
|
+
"rawType": "string[] | undefined",
|
|
68
|
+
"isArray": true
|
|
68
69
|
},
|
|
69
70
|
"hintText": {
|
|
70
71
|
"type": "string",
|
|
@@ -299,7 +300,8 @@
|
|
|
299
300
|
"value": {
|
|
300
301
|
"type": "object",
|
|
301
302
|
"required": false,
|
|
302
|
-
"rawType": "File[] | undefined"
|
|
303
|
+
"rawType": "File[] | undefined",
|
|
304
|
+
"isArray": true
|
|
303
305
|
}
|
|
304
306
|
},
|
|
305
307
|
"html": {},
|
package/data/horizontal-tab.json
CHANGED
|
@@ -60,7 +60,8 @@
|
|
|
60
60
|
"menus": {
|
|
61
61
|
"type": "object",
|
|
62
62
|
"required": false,
|
|
63
|
-
"rawType": "import(\"/
|
|
63
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/tab/TabButton\").TabButtonProps[] | undefined",
|
|
64
|
+
"isArray": true,
|
|
64
65
|
"properties": {
|
|
65
66
|
"id": {
|
|
66
67
|
"type": "string",
|
|
@@ -97,16 +98,17 @@
|
|
|
97
98
|
"badgeInfo": {
|
|
98
99
|
"type": "object",
|
|
99
100
|
"required": false,
|
|
100
|
-
"rawType": "import(\"/
|
|
101
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/feedback-and-status/badge/Badge\").BadgeProps | undefined",
|
|
101
102
|
"properties": {
|
|
102
103
|
"label": {
|
|
103
104
|
"type": "string",
|
|
104
|
-
"required":
|
|
105
|
+
"required": false
|
|
105
106
|
},
|
|
106
107
|
"type": {
|
|
107
108
|
"type": "enum",
|
|
108
109
|
"required": false,
|
|
109
110
|
"values": [
|
|
111
|
+
"new-badge",
|
|
110
112
|
"pill-dark-color",
|
|
111
113
|
"pill-outline"
|
|
112
114
|
]
|
|
@@ -131,7 +133,7 @@
|
|
|
131
133
|
"leadingIcon": {
|
|
132
134
|
"type": "object",
|
|
133
135
|
"required": false,
|
|
134
|
-
"rawType": "import(\"/
|
|
136
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
135
137
|
"properties": {
|
|
136
138
|
"type": {
|
|
137
139
|
"type": "string",
|
|
@@ -194,7 +196,7 @@
|
|
|
194
196
|
"trailingIcon": {
|
|
195
197
|
"type": "object",
|
|
196
198
|
"required": false,
|
|
197
|
-
"rawType": "import(\"/
|
|
199
|
+
"rawType": "import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
198
200
|
"properties": {
|
|
199
201
|
"type": {
|
|
200
202
|
"type": "string",
|
|
@@ -67,7 +67,8 @@
|
|
|
67
67
|
"hintItems": {
|
|
68
68
|
"type": "object",
|
|
69
69
|
"required": false,
|
|
70
|
-
"rawType": "string[] | undefined"
|
|
70
|
+
"rawType": "string[] | undefined",
|
|
71
|
+
"isArray": true
|
|
71
72
|
},
|
|
72
73
|
"hintText": {
|
|
73
74
|
"type": "string",
|
|
@@ -322,7 +323,8 @@
|
|
|
322
323
|
"value": {
|
|
323
324
|
"type": "object",
|
|
324
325
|
"required": false,
|
|
325
|
-
"rawType": "File[] | undefined"
|
|
326
|
+
"rawType": "File[] | undefined",
|
|
327
|
+
"isArray": true
|
|
326
328
|
}
|
|
327
329
|
},
|
|
328
330
|
"html": {},
|
package/data/modal.json
CHANGED
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"featuredIcon": {
|
|
212
212
|
"type": "object",
|
|
213
213
|
"required": false,
|
|
214
|
-
"rawType": "{ icon: import(\"/
|
|
214
|
+
"rawType": "{ icon: import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/types/side-slot\").SlotIconComponent; color: import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/image-and-icons/featured-icon/FeaturedIcon\").FeaturedIconColor; theme: import(\"/home/runner/_work/ncds/ncds/packages/ui-admin/src/components/image-and-icons/featured-icon/FeaturedIcon\").FeaturedIconTheme; } | undefined",
|
|
215
215
|
"properties": {
|
|
216
216
|
"icon": {
|
|
217
217
|
"type": "function",
|