@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.
Files changed (51) hide show
  1. package/bin/components.bundle.js +1 -1
  2. package/bin/definitions/instructions.md +119 -3
  3. package/bin/server.mjs +0 -0
  4. package/bin/tools/getComponentProps.js +1 -0
  5. package/bin/tools/renderToHtml.js +312 -60
  6. package/bin/types.d.ts +7 -0
  7. package/bin/utils/bemValidator.d.ts +1 -1
  8. package/bin/utils/compliance.js +3 -1
  9. package/bin/utils/dataLoader.d.ts +0 -1
  10. package/bin/utils/dataLoader.js +8 -16
  11. package/bin/utils/domEnvironment.js +1 -0
  12. package/bin/utils/fuzzyMatch.d.ts +4 -0
  13. package/bin/utils/fuzzyMatch.js +12 -3
  14. package/bin/utils/logger.d.ts +5 -5
  15. package/bin/utils/logger.js +5 -5
  16. package/data/_meta.json +4 -5
  17. package/data/badge-group.json +9 -6
  18. package/data/badge.json +32 -16
  19. package/data/bread-crumb.json +1 -1
  20. package/data/button-group.json +49 -0
  21. package/data/button.json +11 -4
  22. package/data/carousel-arrow.json +5 -10
  23. package/data/carousel-number-group.json +1 -11
  24. package/data/combo-box.json +5 -4
  25. package/data/data-grid.json +212 -0
  26. package/data/date-picker.json +7 -1
  27. package/data/dot.json +1 -1
  28. package/data/dropdown.json +8 -6
  29. package/data/empty-state.json +7 -5
  30. package/data/featured-icon.json +3 -2
  31. package/data/file-input.json +8 -2
  32. package/data/horizontal-tab.json +8 -7
  33. package/data/image-file-input.json +8 -2
  34. package/data/input-base.json +9 -2
  35. package/data/modal.json +206 -4
  36. package/data/notification.json +3 -2
  37. package/data/number-input.json +8 -2
  38. package/data/password-input.json +8 -2
  39. package/data/progress-bar.json +1 -1
  40. package/data/range-date-picker-with-buttons.json +12 -4
  41. package/data/range-date-picker.json +12 -4
  42. package/data/select-box.json +5 -4
  43. package/data/select.json +13 -24
  44. package/data/spinner.json +1 -1
  45. package/data/switch.json +16 -3
  46. package/data/table.json +247 -0
  47. package/data/tag.json +3 -2
  48. package/data/toggle.json +1 -1
  49. package/data/tooltip.json +6 -2
  50. package/data/vertical-tab.json +8 -6
  51. package/package.json +9 -4
@@ -0,0 +1,247 @@
1
+ {
2
+ "name": "table",
3
+ "exportName": "Table",
4
+ "importPath": "@ncds/ui-admin",
5
+ "jsRequired": true,
6
+ "category": "data-display",
7
+ "description": "Table은 어드민 SaaS 환경에서 데이터 표현을 위한 핵심 구조 컴포넌트입니다.",
8
+ "aliases": [
9
+ "Table",
10
+ "Horizontal Table",
11
+ "Vertical Table",
12
+ "List Table",
13
+ "Description Table",
14
+ "테이블",
15
+ "목록",
16
+ "데이터 표시",
17
+ "Row",
18
+ "Cell",
19
+ "Header",
20
+ "HeaderCell",
21
+ "Table.Row",
22
+ "Table.Cell",
23
+ "Table.HeaderCell",
24
+ "Table.ColGroup",
25
+ "Table.Footer",
26
+ "Table.Empty",
27
+ "Table.Pagination",
28
+ "fixedHeader",
29
+ "maxHeight",
30
+ "hoverable",
31
+ "selectable",
32
+ "sortDirection",
33
+ "onSort",
34
+ "isHeader",
35
+ "status",
36
+ "colSpan",
37
+ "widths",
38
+ "Pagination",
39
+ "NCDS"
40
+ ],
41
+ "hasChildren": true,
42
+ "whenToUse": [],
43
+ "forbiddenRules": [
44
+ "컬러 토큰 외 임의 색상 사용 금지",
45
+ "Row Height 임의 수정 금지",
46
+ "텍스트 정렬 규칙 무시 금지",
47
+ "프로젝트별 Padding 임의 변경 금지",
48
+ "정렬 아이콘 위치 변경 금지"
49
+ ],
50
+ "seeAlso": [
51
+ "checkbox",
52
+ "pagination",
53
+ "badge",
54
+ "empty-state"
55
+ ],
56
+ "htmlElement": "div",
57
+ "props": {
58
+ "children": {
59
+ "type": "ReactNode",
60
+ "required": true
61
+ },
62
+ "fixedHeader": {
63
+ "type": "boolean",
64
+ "required": false,
65
+ "default": false
66
+ },
67
+ "hoverable": {
68
+ "type": "boolean",
69
+ "required": false,
70
+ "default": true
71
+ },
72
+ "maxHeight": {
73
+ "type": "string",
74
+ "required": false,
75
+ "rawType": "string | number | undefined"
76
+ },
77
+ "selectable": {
78
+ "type": "boolean",
79
+ "required": false,
80
+ "default": false
81
+ },
82
+ "type": {
83
+ "type": "enum",
84
+ "required": false,
85
+ "values": [
86
+ "horizontal",
87
+ "vertical"
88
+ ],
89
+ "default": "horizontal"
90
+ }
91
+ },
92
+ "subComponents": {
93
+ "Table.Header": {
94
+ "props": {
95
+ "children": {
96
+ "type": "ReactNode",
97
+ "required": true
98
+ },
99
+ "className": {
100
+ "type": "string",
101
+ "required": false
102
+ }
103
+ }
104
+ },
105
+ "Table.Body": {
106
+ "props": {
107
+ "children": {
108
+ "type": "ReactNode",
109
+ "required": true
110
+ },
111
+ "className": {
112
+ "type": "string",
113
+ "required": false
114
+ }
115
+ }
116
+ },
117
+ "Table.Row": {
118
+ "props": {
119
+ "selected": {
120
+ "type": "boolean",
121
+ "required": false
122
+ },
123
+ "status": {
124
+ "type": "enum",
125
+ "required": false,
126
+ "values": [
127
+ "error",
128
+ "warning"
129
+ ]
130
+ }
131
+ }
132
+ },
133
+ "Table.HeaderCell": {
134
+ "props": {
135
+ "onSort": {
136
+ "type": "function",
137
+ "required": false
138
+ },
139
+ "sortDirection": {
140
+ "type": "enum",
141
+ "required": false,
142
+ "values": [
143
+ "asc",
144
+ "desc",
145
+ "none"
146
+ ]
147
+ },
148
+ "width": {
149
+ "type": "string",
150
+ "required": false,
151
+ "rawType": "string | number | undefined"
152
+ }
153
+ }
154
+ },
155
+ "Table.Cell": {
156
+ "props": {
157
+ "isHeader": {
158
+ "type": "boolean",
159
+ "required": false
160
+ }
161
+ }
162
+ },
163
+ "Table.Footer": {
164
+ "props": {
165
+ "children": {
166
+ "type": "ReactNode",
167
+ "required": true
168
+ },
169
+ "className": {
170
+ "type": "string",
171
+ "required": false
172
+ }
173
+ }
174
+ },
175
+ "Table.Pagination": {
176
+ "props": {
177
+ "children": {
178
+ "type": "ReactNode",
179
+ "required": true
180
+ },
181
+ "className": {
182
+ "type": "string",
183
+ "required": false
184
+ }
185
+ }
186
+ },
187
+ "Table.ColGroup": {
188
+ "props": {
189
+ "widths": {
190
+ "type": "object",
191
+ "required": true,
192
+ "rawType": "(string | number)[]"
193
+ }
194
+ }
195
+ },
196
+ "Table.Empty": {
197
+ "props": {
198
+ "children": {
199
+ "type": "ReactNode",
200
+ "required": false
201
+ },
202
+ "colSpan": {
203
+ "type": "number",
204
+ "required": true
205
+ }
206
+ }
207
+ }
208
+ },
209
+ "html": {},
210
+ "bemClasses": [
211
+ "ncua-table",
212
+ "ncua-table--fixed-header",
213
+ "ncua-table--horizontal",
214
+ "ncua-table--hoverable",
215
+ "ncua-table--selectable",
216
+ "ncua-table--vertical",
217
+ "ncua-table-wrapper",
218
+ "ncua-table__body",
219
+ "ncua-table__cell",
220
+ "ncua-table__empty",
221
+ "ncua-table__footer",
222
+ "ncua-table__header",
223
+ "ncua-table__header-cell",
224
+ "ncua-table__header-cell--sortable",
225
+ "ncua-table__header-cell-inner",
226
+ "ncua-table__header-cell-text",
227
+ "ncua-table__pagination",
228
+ "ncua-table__row",
229
+ "ncua-table__row--error",
230
+ "ncua-table__row--selected",
231
+ "ncua-table__row--warning",
232
+ "ncua-table__scroll-area",
233
+ "ncua-table__scroll-container",
234
+ "ncua-table__scrollbar",
235
+ "ncua-table__scrollbar-thumb",
236
+ "ncua-table__sort-icon",
237
+ "ncua-table__table"
238
+ ],
239
+ "usage": {
240
+ "import": "import { Table } from '@ncds/ui-admin';",
241
+ "react": {
242
+ "default": "<Table children=\"예시\" />",
243
+ "type:horizontal": "<Table type=\"horizontal\" children=\"예시\" />",
244
+ "type:vertical": "<Table type=\"vertical\" children=\"예시\" />"
245
+ }
246
+ }
247
+ }
package/data/tag.json CHANGED
@@ -54,7 +54,7 @@
54
54
  "icon": {
55
55
  "type": "object",
56
56
  "required": false,
57
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
57
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
58
58
  "properties": {
59
59
  "type": {
60
60
  "type": "string",
@@ -63,7 +63,8 @@
63
63
  },
64
64
  "icon": {
65
65
  "type": "function",
66
- "required": false
66
+ "required": false,
67
+ "semantic": "icon-component"
67
68
  },
68
69
  "color": {
69
70
  "type": "enum",
package/data/toggle.json CHANGED
@@ -65,7 +65,7 @@
65
65
  "md",
66
66
  "sm"
67
67
  ],
68
- "default": "md"
68
+ "default": "sm"
69
69
  },
70
70
  "supportText": {
71
71
  "type": "string",
package/data/tooltip.json CHANGED
@@ -114,7 +114,7 @@
114
114
  "black",
115
115
  "white"
116
116
  ],
117
- "default": "black"
117
+ "default": "white"
118
118
  },
119
119
  "type": {
120
120
  "type": "enum",
@@ -124,6 +124,10 @@
124
124
  "short"
125
125
  ],
126
126
  "default": "short"
127
+ },
128
+ "zIndex": {
129
+ "type": "number",
130
+ "required": false
127
131
  }
128
132
  },
129
133
  "html": {},
@@ -149,9 +153,9 @@
149
153
  "ncua-tooltip--top-left",
150
154
  "ncua-tooltip--top-right",
151
155
  "ncua-tooltip--white",
156
+ "ncua-tooltip-panel",
152
157
  "ncua-tooltip__bg",
153
158
  "ncua-tooltip__bg--force-hidden",
154
- "ncua-tooltip__bg--measuring",
155
159
  "ncua-tooltip__bg--visible",
156
160
  "ncua-tooltip__close-button",
157
161
  "ncua-tooltip__content",
@@ -59,7 +59,7 @@
59
59
  "menus": {
60
60
  "type": "object",
61
61
  "required": false,
62
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/components/tab/TabButton\").TabButtonProps[] | undefined",
62
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/components/tab/TabButton\").TabButtonProps[] | undefined",
63
63
  "properties": {
64
64
  "id": {
65
65
  "type": "string",
@@ -96,7 +96,7 @@
96
96
  "badgeInfo": {
97
97
  "type": "object",
98
98
  "required": false,
99
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/components/badge/Badge\").BadgeProps | undefined",
99
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/components/badge/Badge\").BadgeProps | undefined",
100
100
  "properties": {
101
101
  "label": {
102
102
  "type": "string",
@@ -130,7 +130,7 @@
130
130
  "leadingIcon": {
131
131
  "type": "object",
132
132
  "required": false,
133
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
133
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
134
134
  "properties": {
135
135
  "type": {
136
136
  "type": "string",
@@ -139,7 +139,8 @@
139
139
  },
140
140
  "icon": {
141
141
  "type": "function",
142
- "required": false
142
+ "required": false,
143
+ "semantic": "icon-component"
143
144
  },
144
145
  "color": {
145
146
  "type": "enum",
@@ -192,7 +193,7 @@
192
193
  "trailingIcon": {
193
194
  "type": "object",
194
195
  "required": false,
195
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
196
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/side-slot\").SideSlotType | undefined",
196
197
  "properties": {
197
198
  "type": {
198
199
  "type": "string",
@@ -201,7 +202,8 @@
201
202
  },
202
203
  "icon": {
203
204
  "type": "function",
204
- "required": false
205
+ "required": false,
206
+ "semantic": "icon-component"
205
207
  },
206
208
  "color": {
207
209
  "type": "enum",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncds/ui-admin-mcp",
3
- "version": "1.0.0-alpha.10",
3
+ "version": "1.0.0-alpha.12",
4
4
  "description": "NCDS UI Admin MCP 서버 — AI 에이전트가 NCUA 컴포넌트를 조회하고 HTML을 검증할 수 있는 MCP 서버",
5
5
  "bin": {
6
6
  "ncua-mcp": "./bin/server.mjs"
@@ -21,10 +21,12 @@
21
21
  "generate:cdn-meta": "tsx scripts/generate-cdn-meta.ts",
22
22
  "build:bundle": "tsx scripts/build-bundle.ts",
23
23
  "build:server": "tsc --project tsconfig.json && rm -rf bin/definitions && cp -r src/definitions bin/definitions",
24
- "build": "yarn extract && yarn extract:icons && yarn extract:tokens && yarn generate:cdn-meta && yarn build:bundle && yarn build:server",
24
+ "build": "pnpm extract && pnpm extract:icons && pnpm extract:tokens && pnpm generate:cdn-meta && pnpm build:bundle && pnpm build:server",
25
+ "check-meta": "tsx scripts/check-meta-coherence.ts",
25
26
  "test": "vitest run --config vitest.config.ts",
26
27
  "test:coverage": "vitest run --coverage --config vitest.config.ts",
27
- "publish:npm": "npm publish --access=public"
28
+ "publish:npm": "pnpm run build && npm publish --access=public",
29
+ "publish:npm:alpha": "pnpm run build && npm publish --access=public --tag alpha"
28
30
  },
29
31
  "keywords": [
30
32
  "ncds",
@@ -54,8 +56,11 @@
54
56
  "zod": "^4.3.6"
55
57
  },
56
58
  "devDependencies": {
59
+ "@ncds/ui-admin": "workspace:*",
57
60
  "@types/node": "^25.5.0",
58
61
  "@types/react": "^18.3.20",
59
- "ts-morph": "^27.0.2"
62
+ "esbuild": "^0.28.0",
63
+ "ts-morph": "^27.0.2",
64
+ "vitest": "^4.1.4"
60
65
  }
61
66
  }