@ncds/ui-admin-mcp 1.0.0-alpha.10 → 1.0.0-alpha.12
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 +1 -1
- package/bin/definitions/instructions.md +119 -3
- package/bin/server.mjs +0 -0
- package/bin/tools/getComponentProps.js +1 -0
- package/bin/tools/renderToHtml.js +312 -60
- package/bin/types.d.ts +7 -0
- package/bin/utils/bemValidator.d.ts +1 -1
- package/bin/utils/compliance.js +3 -1
- package/bin/utils/dataLoader.d.ts +0 -1
- package/bin/utils/dataLoader.js +8 -16
- package/bin/utils/domEnvironment.js +1 -0
- package/bin/utils/fuzzyMatch.d.ts +4 -0
- package/bin/utils/fuzzyMatch.js +12 -3
- package/bin/utils/logger.d.ts +5 -5
- package/bin/utils/logger.js +5 -5
- package/data/_meta.json +4 -5
- package/data/badge-group.json +9 -6
- package/data/badge.json +32 -16
- package/data/bread-crumb.json +1 -1
- package/data/button-group.json +49 -0
- package/data/button.json +11 -4
- package/data/carousel-arrow.json +5 -10
- package/data/carousel-number-group.json +1 -11
- package/data/combo-box.json +5 -4
- package/data/data-grid.json +212 -0
- package/data/date-picker.json +7 -1
- package/data/dot.json +1 -1
- package/data/dropdown.json +8 -6
- package/data/empty-state.json +7 -5
- package/data/featured-icon.json +3 -2
- package/data/file-input.json +8 -2
- package/data/horizontal-tab.json +8 -7
- package/data/image-file-input.json +8 -2
- package/data/input-base.json +9 -2
- package/data/modal.json +206 -4
- package/data/notification.json +3 -2
- package/data/number-input.json +8 -2
- package/data/password-input.json +8 -2
- package/data/progress-bar.json +1 -1
- package/data/range-date-picker-with-buttons.json +12 -4
- package/data/range-date-picker.json +12 -4
- package/data/select-box.json +5 -4
- package/data/select.json +13 -24
- package/data/spinner.json +1 -1
- package/data/switch.json +16 -3
- package/data/table.json +247 -0
- package/data/tag.json +3 -2
- package/data/toggle.json +1 -1
- package/data/tooltip.json +6 -2
- package/data/vertical-tab.json +8 -6
- package/package.json +9 -4
|
@@ -8,7 +8,6 @@ export interface CdnMeta {
|
|
|
8
8
|
export interface IconMeta {
|
|
9
9
|
packageName: string;
|
|
10
10
|
version: string;
|
|
11
|
-
cdn: string;
|
|
12
11
|
}
|
|
13
12
|
/** data/ 디렉토리의 JSON 파일을 읽어 componentMap으로 반환 */
|
|
14
13
|
export declare const loadComponentsFromDir: (dataDir: string) => Map<string, ComponentData>;
|
package/bin/utils/dataLoader.js
CHANGED
|
@@ -27,30 +27,22 @@ const isValidIconJson = (data) => !!data && typeof data === 'object' && 'icons'
|
|
|
27
27
|
/** data/ 디렉토리의 JSON 파일을 읽어 componentMap으로 반환 */
|
|
28
28
|
const loadComponentsFromDir = (dataDir) => {
|
|
29
29
|
if (!fs_1.default.existsSync(dataDir)) {
|
|
30
|
-
|
|
31
|
-
process.exit(1);
|
|
30
|
+
throw new Error(`mcp/data/ 디렉토리가 없습니다: ${dataDir}`);
|
|
32
31
|
}
|
|
33
32
|
const jsonFiles = fs_1.default.readdirSync(dataDir).filter((f) => f.endsWith('.json') && !f.startsWith('_'));
|
|
34
33
|
if (jsonFiles.length === 0) {
|
|
35
|
-
|
|
36
|
-
process.exit(1);
|
|
34
|
+
throw new Error(`mcp/data/ 디렉토리에 JSON 파일이 없습니다: ${dataDir}`);
|
|
37
35
|
}
|
|
38
36
|
const map = new Map();
|
|
39
37
|
for (const file of jsonFiles) {
|
|
40
38
|
const filePath = path_1.default.join(dataDir, file);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
throw new Error('name 필드가 없거나 올바르지 않습니다');
|
|
46
|
-
}
|
|
47
|
-
const component = parsed;
|
|
48
|
-
map.set(component.name, component);
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
logger_js_1.logger.error(`JSON 파싱 실패 (${file}): ${(0, response_js_1.toErrorMessage)(err)}`);
|
|
52
|
-
process.exit(1);
|
|
39
|
+
const raw = fs_1.default.readFileSync(filePath, 'utf-8');
|
|
40
|
+
const parsed = JSON.parse(raw);
|
|
41
|
+
if (!isValidComponentJson(parsed)) {
|
|
42
|
+
throw new Error(`JSON 파싱 실패 (${file}): name 필드가 없거나 올바르지 않습니다`);
|
|
53
43
|
}
|
|
44
|
+
const component = parsed;
|
|
45
|
+
map.set(component.name, component);
|
|
54
46
|
}
|
|
55
47
|
logger_js_1.logger.info(`컴포넌트 ${map.size}개 로딩 완료`);
|
|
56
48
|
return map;
|
|
@@ -46,6 +46,7 @@ const setupDomEnvironment = () => {
|
|
|
46
46
|
globalThis.document = dom.window.document;
|
|
47
47
|
if (typeof globalThis.window === 'undefined')
|
|
48
48
|
globalThis.window = dom.window;
|
|
49
|
+
/* v8 ignore next 3 -- Node.js 환경에서 navigator 미존재 시 설정. 테스트 실행 순서에 따라 이미 설정된 경우 스킵 */
|
|
49
50
|
if (typeof globalThis.navigator === 'undefined') {
|
|
50
51
|
Object.defineProperty(globalThis, 'navigator', { value: dom.window.navigator, writable: true });
|
|
51
52
|
}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* - 부분 포함 ("비번" ⊂ "비밀번호"는 안 되지만, "로딩" ⊂ "로딩중"은 됨)
|
|
6
6
|
* - 편집 거리(Levenshtein) 기반 오타 허용 ("셀랙트" ↔ "셀렉트", "buttn" ↔ "button")
|
|
7
7
|
*/
|
|
8
|
+
/** Levenshtein 편집 거리 */
|
|
9
|
+
export declare const editDistance: (a: string, b: string) => number;
|
|
10
|
+
/** 편집 거리 기반 유사도 (0~1, 1이 완전 일치) */
|
|
11
|
+
export declare const similarity: (a: string, b: string) => number;
|
|
8
12
|
export interface FuzzyResult {
|
|
9
13
|
score: number;
|
|
10
14
|
matchType: 'exact' | 'contains' | 'fuzzy';
|
package/bin/utils/fuzzyMatch.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - 편집 거리(Levenshtein) 기반 오타 허용 ("셀랙트" ↔ "셀렉트", "buttn" ↔ "button")
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.bestFuzzyMatch = exports.fuzzyMatch = void 0;
|
|
10
|
+
exports.bestFuzzyMatch = exports.fuzzyMatch = exports.similarity = exports.editDistance = void 0;
|
|
11
11
|
// ── 상수 ──────────────────────────────────────────────────────────
|
|
12
12
|
/** 포함 매칭 시 기본 점수 */
|
|
13
13
|
const CONTAINS_BASE_SCORE = 0.7;
|
|
@@ -49,6 +49,15 @@ const editDistance = (a, b) => {
|
|
|
49
49
|
}
|
|
50
50
|
return prev[n];
|
|
51
51
|
};
|
|
52
|
+
exports.editDistance = editDistance;
|
|
53
|
+
/** 편집 거리 기반 유사도 (0~1, 1이 완전 일치) */
|
|
54
|
+
const similarity = (a, b) => {
|
|
55
|
+
const maxLen = Math.max(a.length, b.length);
|
|
56
|
+
if (maxLen === 0)
|
|
57
|
+
return 1;
|
|
58
|
+
return 1 - (0, exports.editDistance)(a, b) / maxLen;
|
|
59
|
+
};
|
|
60
|
+
exports.similarity = similarity;
|
|
52
61
|
/**
|
|
53
62
|
* query가 target에 매칭되는지 퍼지 검사
|
|
54
63
|
*
|
|
@@ -71,7 +80,7 @@ const fuzzyMatch = (query, target) => {
|
|
|
71
80
|
// 3. 편집 거리 기반 퍼지 매칭
|
|
72
81
|
const isShortQuery = q.length <= SHORT_QUERY_LENGTH;
|
|
73
82
|
const typoThreshold = isShortQuery ? 1 : Math.ceil(q.length * TYPO_THRESHOLD_RATIO);
|
|
74
|
-
const dist = editDistance(q, t);
|
|
83
|
+
const dist = (0, exports.editDistance)(q, t);
|
|
75
84
|
// target이 query보다 훨씬 길면, 부분 문자열 슬라이딩 윈도우로 비교
|
|
76
85
|
const targetIsLonger = t.length > q.length + LENGTH_DIFF_FOR_SUBSTRING;
|
|
77
86
|
const queryIsLongEnough = q.length >= SHORT_QUERY_LENGTH;
|
|
@@ -80,7 +89,7 @@ const fuzzyMatch = (query, target) => {
|
|
|
80
89
|
if (shouldTrySubstringMatch) {
|
|
81
90
|
for (let i = 0; i <= t.length - q.length; i++) {
|
|
82
91
|
const sub = t.substring(i, i + q.length);
|
|
83
|
-
const subDist = editDistance(q, sub);
|
|
92
|
+
const subDist = (0, exports.editDistance)(q, sub);
|
|
84
93
|
if (subDist <= typoThreshold) {
|
|
85
94
|
const subSimilarity = q.length === 0 ? 1 : 1 - subDist / q.length;
|
|
86
95
|
return { score: SUBSTRING_BASE_SCORE + SUBSTRING_BONUS_MULTIPLIER * subSimilarity, matchType: 'fuzzy' };
|
package/bin/utils/logger.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* stderr 전용 logger 유틸리티 — 부수효과 함수 (stderr I/O)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* console.log / console.warn / console.error 직접 사용 금지.
|
|
5
5
|
*
|
|
6
|
-
* MCP stdio 프로토콜은 채널 역할이 엄격히
|
|
6
|
+
* MCP stdio 프로토콜은 채널 역할이 엄격히 분리된다.
|
|
7
7
|
* stdin → 클라이언트 → 서버 요청(JSON-RPC)
|
|
8
|
-
* stdout → 서버 → 클라이언트 응답(JSON-RPC)
|
|
8
|
+
* stdout → 서버 → 클라이언트 응답(JSON-RPC). 프로토콜 전용 채널
|
|
9
9
|
* stderr → 로그 전용 (프로토콜 밖)
|
|
10
10
|
*
|
|
11
|
-
* console.log는 stdout
|
|
12
|
-
* 모든 로깅은
|
|
11
|
+
* console.log는 stdout을 오염시켜 JSON-RPC 스트림을 깨뜨린다.
|
|
12
|
+
* 모든 로깅은 이 logger를 통해 stderr로 출력한다.
|
|
13
13
|
*/
|
|
14
14
|
export declare const logger: {
|
|
15
15
|
info: (msg: string) => void;
|
package/bin/utils/logger.js
CHANGED
|
@@ -4,15 +4,15 @@ exports.logger = void 0;
|
|
|
4
4
|
/**
|
|
5
5
|
* stderr 전용 logger 유틸리티 — 부수효과 함수 (stderr I/O)
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* console.log / console.warn / console.error 직접 사용 금지.
|
|
8
8
|
*
|
|
9
|
-
* MCP stdio 프로토콜은 채널 역할이 엄격히
|
|
9
|
+
* MCP stdio 프로토콜은 채널 역할이 엄격히 분리된다.
|
|
10
10
|
* stdin → 클라이언트 → 서버 요청(JSON-RPC)
|
|
11
|
-
* stdout → 서버 → 클라이언트 응답(JSON-RPC)
|
|
11
|
+
* stdout → 서버 → 클라이언트 응답(JSON-RPC). 프로토콜 전용 채널
|
|
12
12
|
* stderr → 로그 전용 (프로토콜 밖)
|
|
13
13
|
*
|
|
14
|
-
* console.log는 stdout
|
|
15
|
-
* 모든 로깅은
|
|
14
|
+
* console.log는 stdout을 오염시켜 JSON-RPC 스트림을 깨뜨린다.
|
|
15
|
+
* 모든 로깅은 이 logger를 통해 stderr로 출력한다.
|
|
16
16
|
*/
|
|
17
17
|
exports.logger = {
|
|
18
18
|
info: (msg) => {
|
package/data/_meta.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"cdn": {
|
|
3
|
-
"version": "1.
|
|
4
|
-
"css": "https://fe-sdk.cdn-nhncommerce.com/@ncds/ui-admin/1.
|
|
5
|
-
"js": "https://fe-sdk.cdn-nhncommerce.com/@ncds/ui-admin/1.
|
|
3
|
+
"version": "1.8",
|
|
4
|
+
"css": "https://fe-sdk.cdn-nhncommerce.com/@ncds/ui-admin/1.8/main.min.css",
|
|
5
|
+
"js": "https://fe-sdk.cdn-nhncommerce.com/@ncds/ui-admin/1.8/main.min.js"
|
|
6
6
|
},
|
|
7
7
|
"icon": {
|
|
8
8
|
"packageName": "@ncds/ui-admin-icon",
|
|
9
|
-
"version": "0.1"
|
|
10
|
-
"cdn": "https://fe-sdk.cdn-nhncommerce.com/@ncds/ui-admin-icon/0.1/main.min.js"
|
|
9
|
+
"version": "0.1"
|
|
11
10
|
}
|
|
12
11
|
}
|
package/data/badge-group.json
CHANGED
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"groupIcon": {
|
|
60
60
|
"type": "object",
|
|
61
61
|
"required": false,
|
|
62
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
62
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
63
63
|
"properties": {
|
|
64
64
|
"type": {
|
|
65
65
|
"type": "string",
|
|
@@ -68,7 +68,8 @@
|
|
|
68
68
|
},
|
|
69
69
|
"icon": {
|
|
70
70
|
"type": "function",
|
|
71
|
-
"required": false
|
|
71
|
+
"required": false,
|
|
72
|
+
"semantic": "icon-component"
|
|
72
73
|
},
|
|
73
74
|
"color": {
|
|
74
75
|
"type": "enum",
|
|
@@ -133,7 +134,7 @@
|
|
|
133
134
|
"leadingIcon": {
|
|
134
135
|
"type": "object",
|
|
135
136
|
"required": false,
|
|
136
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
137
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
137
138
|
"properties": {
|
|
138
139
|
"type": {
|
|
139
140
|
"type": "string",
|
|
@@ -142,7 +143,8 @@
|
|
|
142
143
|
},
|
|
143
144
|
"icon": {
|
|
144
145
|
"type": "function",
|
|
145
|
-
"required": false
|
|
146
|
+
"required": false,
|
|
147
|
+
"semantic": "icon-component"
|
|
146
148
|
},
|
|
147
149
|
"color": {
|
|
148
150
|
"type": "enum",
|
|
@@ -209,7 +211,7 @@
|
|
|
209
211
|
"trailingIcon": {
|
|
210
212
|
"type": "object",
|
|
211
213
|
"required": false,
|
|
212
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
214
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
213
215
|
"properties": {
|
|
214
216
|
"type": {
|
|
215
217
|
"type": "string",
|
|
@@ -218,7 +220,8 @@
|
|
|
218
220
|
},
|
|
219
221
|
"icon": {
|
|
220
222
|
"type": "function",
|
|
221
|
-
"required": false
|
|
223
|
+
"required": false,
|
|
224
|
+
"semantic": "icon-component"
|
|
222
225
|
},
|
|
223
226
|
"color": {
|
|
224
227
|
"type": "enum",
|
package/data/badge.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"exportName": "Badge",
|
|
4
4
|
"importPath": "@ncds/ui-admin",
|
|
5
5
|
"jsRequired": false,
|
|
6
|
-
"category": "
|
|
6
|
+
"category": "data-display",
|
|
7
7
|
"description": "Badge는 상태나 중요성 및 이벤트 강조를 나타내는 레이블이며 빠른 인식을 제공해야 합니다.",
|
|
8
8
|
"aliases": [
|
|
9
9
|
"Badge",
|
|
@@ -19,27 +19,41 @@
|
|
|
19
19
|
"dot",
|
|
20
20
|
"강조",
|
|
21
21
|
"읽기전용",
|
|
22
|
+
"Icon_new",
|
|
23
|
+
"icon-new",
|
|
24
|
+
"new-badge",
|
|
25
|
+
"new-mark",
|
|
26
|
+
"newMark",
|
|
27
|
+
"NEW 뱃지",
|
|
28
|
+
"NEW 배지",
|
|
29
|
+
"N 뱃지",
|
|
30
|
+
"N 배지",
|
|
31
|
+
"N 표시",
|
|
32
|
+
"New표시",
|
|
33
|
+
"신규표시",
|
|
34
|
+
"신규 뱃지",
|
|
35
|
+
"신규 마크",
|
|
36
|
+
"신규 아이콘",
|
|
37
|
+
"new 아이콘",
|
|
22
38
|
"NCDS"
|
|
23
39
|
],
|
|
24
40
|
"hasChildren": false,
|
|
25
|
-
"whenToUse": [
|
|
26
|
-
"읽기 전용 상태 표시 레이블",
|
|
27
|
-
"정보의 상태/중요도/이벤트를 시각적으로 빠르게 전달"
|
|
28
|
-
],
|
|
41
|
+
"whenToUse": [],
|
|
29
42
|
"forbiddenRules": [
|
|
30
43
|
"클릭 액션 부여 금지",
|
|
31
44
|
"과도한 컬러 남용 금지",
|
|
32
45
|
"의미 없는 Badge 사용 금지",
|
|
33
|
-
"텍스트 과다 금지
|
|
46
|
+
"텍스트 과다 금지",
|
|
34
47
|
"이미지 삽입 금지",
|
|
35
|
-
"임의 아이콘 금지
|
|
36
|
-
"컬러 의미 혼용 금지"
|
|
48
|
+
"임의 아이콘 금지",
|
|
49
|
+
"컬러 의미 혼용 금지",
|
|
50
|
+
"상태 표시에 Tag 사용 금지",
|
|
51
|
+
"테이블 내 xs 외 사이즈 사용 금지"
|
|
37
52
|
],
|
|
38
53
|
"seeAlso": [
|
|
54
|
+
"icon",
|
|
39
55
|
"horizontal-tab",
|
|
40
|
-
"vertical-tab"
|
|
41
|
-
"badge-group",
|
|
42
|
-
"tag"
|
|
56
|
+
"vertical-tab"
|
|
43
57
|
],
|
|
44
58
|
"props": {
|
|
45
59
|
"className": {
|
|
@@ -67,7 +81,7 @@
|
|
|
67
81
|
"leadingIcon": {
|
|
68
82
|
"type": "object",
|
|
69
83
|
"required": false,
|
|
70
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
84
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
71
85
|
"properties": {
|
|
72
86
|
"type": {
|
|
73
87
|
"type": "string",
|
|
@@ -76,7 +90,8 @@
|
|
|
76
90
|
},
|
|
77
91
|
"icon": {
|
|
78
92
|
"type": "function",
|
|
79
|
-
"required": false
|
|
93
|
+
"required": false,
|
|
94
|
+
"semantic": "icon-component"
|
|
80
95
|
},
|
|
81
96
|
"color": {
|
|
82
97
|
"type": "enum",
|
|
@@ -134,12 +149,12 @@
|
|
|
134
149
|
"sm",
|
|
135
150
|
"xs"
|
|
136
151
|
],
|
|
137
|
-
"default": "
|
|
152
|
+
"default": "xs"
|
|
138
153
|
},
|
|
139
154
|
"trailingIcon": {
|
|
140
155
|
"type": "object",
|
|
141
156
|
"required": false,
|
|
142
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
157
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
143
158
|
"properties": {
|
|
144
159
|
"type": {
|
|
145
160
|
"type": "string",
|
|
@@ -148,7 +163,8 @@
|
|
|
148
163
|
},
|
|
149
164
|
"icon": {
|
|
150
165
|
"type": "function",
|
|
151
|
-
"required": false
|
|
166
|
+
"required": false,
|
|
167
|
+
"semantic": "icon-component"
|
|
152
168
|
},
|
|
153
169
|
"color": {
|
|
154
170
|
"type": "enum",
|
package/data/bread-crumb.json
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"items": {
|
|
58
58
|
"type": "object",
|
|
59
59
|
"required": true,
|
|
60
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
60
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/components/bread-crumb/BreadCrumb\").BreadcrumbItemProps[]",
|
|
61
61
|
"properties": {
|
|
62
62
|
"href": {
|
|
63
63
|
"type": "string",
|
package/data/button-group.json
CHANGED
|
@@ -50,6 +50,11 @@
|
|
|
50
50
|
"required": false,
|
|
51
51
|
"default": false
|
|
52
52
|
},
|
|
53
|
+
"fullWidth": {
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"required": false,
|
|
56
|
+
"default": false
|
|
57
|
+
},
|
|
53
58
|
"hasBorder": {
|
|
54
59
|
"type": "boolean",
|
|
55
60
|
"required": false,
|
|
@@ -72,6 +77,50 @@
|
|
|
72
77
|
"default": "xs"
|
|
73
78
|
}
|
|
74
79
|
},
|
|
80
|
+
"subComponents": {
|
|
81
|
+
"ButtonGroup.Item": {
|
|
82
|
+
"props": {
|
|
83
|
+
"children": {
|
|
84
|
+
"type": "ReactNode",
|
|
85
|
+
"required": false
|
|
86
|
+
},
|
|
87
|
+
"disabled": {
|
|
88
|
+
"type": "boolean",
|
|
89
|
+
"required": false,
|
|
90
|
+
"default": false
|
|
91
|
+
},
|
|
92
|
+
"icon": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"required": false,
|
|
95
|
+
"rawType": "SideSlot | undefined"
|
|
96
|
+
},
|
|
97
|
+
"isCurrent": {
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"required": false
|
|
100
|
+
},
|
|
101
|
+
"label": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"required": false
|
|
104
|
+
},
|
|
105
|
+
"onlyIcon": {
|
|
106
|
+
"type": "boolean",
|
|
107
|
+
"required": false,
|
|
108
|
+
"default": false
|
|
109
|
+
},
|
|
110
|
+
"size": {
|
|
111
|
+
"type": "enum",
|
|
112
|
+
"required": false,
|
|
113
|
+
"values": [
|
|
114
|
+
"md",
|
|
115
|
+
"sm",
|
|
116
|
+
"xs",
|
|
117
|
+
"xxs"
|
|
118
|
+
],
|
|
119
|
+
"default": "xs"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
75
124
|
"html": {},
|
|
76
125
|
"bemClasses": [
|
|
77
126
|
"ncua-button-group",
|
package/data/button.json
CHANGED
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"leadingIcon": {
|
|
78
78
|
"type": "object",
|
|
79
79
|
"required": false,
|
|
80
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
80
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
81
81
|
"properties": {
|
|
82
82
|
"type": {
|
|
83
83
|
"type": "string",
|
|
@@ -86,7 +86,8 @@
|
|
|
86
86
|
},
|
|
87
87
|
"icon": {
|
|
88
88
|
"type": "function",
|
|
89
|
-
"required": false
|
|
89
|
+
"required": false,
|
|
90
|
+
"semantic": "icon-component"
|
|
90
91
|
},
|
|
91
92
|
"color": {
|
|
92
93
|
"type": "enum",
|
|
@@ -136,6 +137,10 @@
|
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
},
|
|
140
|
+
"loading": {
|
|
141
|
+
"type": "boolean",
|
|
142
|
+
"required": false
|
|
143
|
+
},
|
|
139
144
|
"onlyIcon": {
|
|
140
145
|
"type": "boolean",
|
|
141
146
|
"required": false
|
|
@@ -153,7 +158,7 @@
|
|
|
153
158
|
"trailingIcon": {
|
|
154
159
|
"type": "object",
|
|
155
160
|
"required": false,
|
|
156
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
161
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
|
|
157
162
|
"properties": {
|
|
158
163
|
"type": {
|
|
159
164
|
"type": "string",
|
|
@@ -162,7 +167,8 @@
|
|
|
162
167
|
},
|
|
163
168
|
"icon": {
|
|
164
169
|
"type": "function",
|
|
165
|
-
"required": false
|
|
170
|
+
"required": false,
|
|
171
|
+
"semantic": "icon-component"
|
|
166
172
|
},
|
|
167
173
|
"color": {
|
|
168
174
|
"type": "enum",
|
|
@@ -234,6 +240,7 @@
|
|
|
234
240
|
"ncua-btn--xs",
|
|
235
241
|
"ncua-btn--xxs",
|
|
236
242
|
"ncua-btn__label",
|
|
243
|
+
"ncua-btn__spinner",
|
|
237
244
|
"ncua-button-close-x",
|
|
238
245
|
"ncua-button-stepper"
|
|
239
246
|
],
|
package/data/carousel-arrow.json
CHANGED
|
@@ -50,11 +50,6 @@
|
|
|
50
50
|
"type": "function",
|
|
51
51
|
"required": false
|
|
52
52
|
},
|
|
53
|
-
"size": {
|
|
54
|
-
"type": "string",
|
|
55
|
-
"required": true,
|
|
56
|
-
"rawType": "\"md\""
|
|
57
|
-
},
|
|
58
53
|
"type": {
|
|
59
54
|
"type": "enum",
|
|
60
55
|
"required": false,
|
|
@@ -77,11 +72,11 @@
|
|
|
77
72
|
"usage": {
|
|
78
73
|
"import": "import { CarouselArrow } from '@ncds/ui-admin';",
|
|
79
74
|
"react": {
|
|
80
|
-
"default": "<CarouselArrow chevron=\"left\"
|
|
81
|
-
"chevron:left": "<CarouselArrow chevron=\"left\"
|
|
82
|
-
"chevron:right": "<CarouselArrow chevron=\"right\"
|
|
83
|
-
"type:default": "<CarouselArrow type=\"default\" chevron=\"left\"
|
|
84
|
-
"type:line": "<CarouselArrow type=\"line\" chevron=\"left\"
|
|
75
|
+
"default": "<CarouselArrow chevron=\"left\" />",
|
|
76
|
+
"chevron:left": "<CarouselArrow chevron=\"left\" />",
|
|
77
|
+
"chevron:right": "<CarouselArrow chevron=\"right\" />",
|
|
78
|
+
"type:default": "<CarouselArrow type=\"default\" chevron=\"left\" />",
|
|
79
|
+
"type:line": "<CarouselArrow type=\"line\" chevron=\"left\" />"
|
|
85
80
|
}
|
|
86
81
|
}
|
|
87
82
|
}
|
|
@@ -53,14 +53,6 @@
|
|
|
53
53
|
"required": false,
|
|
54
54
|
"default": true
|
|
55
55
|
},
|
|
56
|
-
"size": {
|
|
57
|
-
"type": "enum",
|
|
58
|
-
"required": false,
|
|
59
|
-
"values": [
|
|
60
|
-
"sm"
|
|
61
|
-
],
|
|
62
|
-
"default": "sm"
|
|
63
|
-
},
|
|
64
56
|
"totalPage": {
|
|
65
57
|
"type": "number",
|
|
66
58
|
"required": true
|
|
@@ -71,7 +63,6 @@
|
|
|
71
63
|
"ncua-carousel-number-group",
|
|
72
64
|
"ncua-carousel-number-group--dark",
|
|
73
65
|
"ncua-carousel-number-group--light",
|
|
74
|
-
"ncua-carousel-number-group--sm",
|
|
75
66
|
"ncua-carousel-number-group__number",
|
|
76
67
|
"ncua-carousel-number-group__total"
|
|
77
68
|
],
|
|
@@ -80,8 +71,7 @@
|
|
|
80
71
|
"react": {
|
|
81
72
|
"default": "<CarouselNumberGroup currentPage={0} totalPage={0} />",
|
|
82
73
|
"color:dark": "<CarouselNumberGroup color=\"dark\" currentPage={0} totalPage={0} />",
|
|
83
|
-
"color:light": "<CarouselNumberGroup color=\"light\" currentPage={0} totalPage={0} />"
|
|
84
|
-
"size:sm": "<CarouselNumberGroup size=\"sm\" currentPage={0} totalPage={0} />"
|
|
74
|
+
"color:light": "<CarouselNumberGroup color=\"light\" currentPage={0} totalPage={0} />"
|
|
85
75
|
}
|
|
86
76
|
}
|
|
87
77
|
}
|
package/data/combo-box.json
CHANGED
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"optionItems": {
|
|
93
93
|
"type": "object",
|
|
94
94
|
"required": false,
|
|
95
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
95
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
|
|
96
96
|
"properties": {
|
|
97
97
|
"id": {
|
|
98
98
|
"type": "string",
|
|
@@ -105,7 +105,8 @@
|
|
|
105
105
|
},
|
|
106
106
|
"icon": {
|
|
107
107
|
"type": "function",
|
|
108
|
-
"required": false
|
|
108
|
+
"required": false,
|
|
109
|
+
"semantic": "icon-component"
|
|
109
110
|
}
|
|
110
111
|
},
|
|
111
112
|
"default": "[]"
|
|
@@ -118,7 +119,7 @@
|
|
|
118
119
|
"register": {
|
|
119
120
|
"type": "object",
|
|
120
121
|
"required": false,
|
|
121
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
122
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/node_modules/.pnpm/react-hook-form@7.72.0_react@18.2.0/node_modules/react-hook-form/dist/types/form\").UseFormRegisterReturn | undefined"
|
|
122
123
|
},
|
|
123
124
|
"required": {
|
|
124
125
|
"type": "boolean",
|
|
@@ -147,7 +148,7 @@
|
|
|
147
148
|
"value": {
|
|
148
149
|
"type": "object",
|
|
149
150
|
"required": false,
|
|
150
|
-
"rawType": "import(\"/Users/nhncommerce/Desktop/company/
|
|
151
|
+
"rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/dropdown/option\").OptionValue | undefined"
|
|
151
152
|
}
|
|
152
153
|
},
|
|
153
154
|
"html": {},
|