@ncds/ui-admin-mcp 1.0.0-alpha.11 → 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 +16 -0
  3. package/bin/server.mjs +0 -0
  4. package/bin/tools/getComponentProps.js +1 -0
  5. package/bin/tools/renderToHtml.js +259 -72
  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 +128 -0
  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 +5 -4
  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
@@ -106,7 +106,7 @@
106
106
  "optionItems": {
107
107
  "type": "object",
108
108
  "required": false,
109
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
109
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
110
110
  "properties": {
111
111
  "id": {
112
112
  "type": "string",
@@ -119,7 +119,8 @@
119
119
  },
120
120
  "icon": {
121
121
  "type": "function",
122
- "required": false
122
+ "required": false,
123
+ "semantic": "icon-component"
123
124
  }
124
125
  },
125
126
  "default": "[]"
@@ -132,7 +133,7 @@
132
133
  "register": {
133
134
  "type": "object",
134
135
  "required": false,
135
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/node_modules/react-hook-form/dist/types/form\").UseFormRegisterReturn | undefined"
136
+ "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"
136
137
  },
137
138
  "size": {
138
139
  "type": "enum",
@@ -156,7 +157,7 @@
156
157
  "value": {
157
158
  "type": "object",
158
159
  "required": false,
159
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/dropdown/option\").OptionValue | undefined"
160
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/dropdown/option\").OptionValue | undefined"
160
161
  }
161
162
  },
162
163
  "html": {},
package/data/select.json CHANGED
@@ -52,7 +52,7 @@
52
52
  "optionItems": {
53
53
  "type": "object",
54
54
  "required": false,
55
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
55
+ "rawType": "import(\"/Users/nhncommerce/Desktop/company/ncds/packages/ui-admin/src/types/dropdown/option\").OptionType[] | undefined",
56
56
  "properties": {
57
57
  "id": {
58
58
  "type": "string",
@@ -65,7 +65,8 @@
65
65
  },
66
66
  "icon": {
67
67
  "type": "function",
68
- "required": false
68
+ "required": false,
69
+ "semantic": "icon-component"
69
70
  }
70
71
  }
71
72
  },
@@ -76,7 +77,7 @@
76
77
  "register": {
77
78
  "type": "object",
78
79
  "required": false,
79
- "rawType": "import(\"/Users/nhncommerce/Desktop/company/ai-driven-ncds/packages/ui-admin/node_modules/react-hook-form/dist/types/form\").UseFormRegisterReturn | undefined"
80
+ "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"
80
81
  },
81
82
  "size": {
82
83
  "type": "enum",
@@ -86,7 +87,7 @@
86
87
  "sm",
87
88
  "xs"
88
89
  ],
89
- "default": "md"
90
+ "default": "xs"
90
91
  },
91
92
  "type": {
92
93
  "type": "enum",
package/data/spinner.json CHANGED
@@ -64,7 +64,7 @@
64
64
  "xl",
65
65
  "xs"
66
66
  ],
67
- "default": "md"
67
+ "default": "sm"
68
68
  }
69
69
  },
70
70
  "html": {},
package/data/switch.json CHANGED
@@ -123,9 +123,14 @@
123
123
  }
124
124
  },
125
125
  "size": {
126
- "type": "string",
126
+ "type": "enum",
127
127
  "required": false,
128
- "rawType": "any",
128
+ "values": [
129
+ "md",
130
+ "sm",
131
+ "xs",
132
+ "xxs"
133
+ ],
129
134
  "default": "xs"
130
135
  },
131
136
  "value": {
@@ -138,6 +143,10 @@
138
143
  "bemClasses": [
139
144
  "ncua-switch",
140
145
  "ncua-switch--disabled",
146
+ "ncua-switch--md",
147
+ "ncua-switch--sm",
148
+ "ncua-switch--xs",
149
+ "ncua-switch--xxs",
141
150
  "ncua-switch__label",
142
151
  "ncua-switch__option",
143
152
  "ncua-switch__option--active",
@@ -150,7 +159,11 @@
150
159
  "usage": {
151
160
  "import": "import { Switch } from '@ncds/ui-admin';",
152
161
  "react": {
153
- "default": "<Switch left=\"\" name=\"\" right=\"\" />"
162
+ "default": "<Switch left=\"\" name=\"\" right=\"\" />",
163
+ "size:md": "<Switch size=\"md\" left=\"\" name=\"\" right=\"\" />",
164
+ "size:sm": "<Switch size=\"sm\" left=\"\" name=\"\" right=\"\" />",
165
+ "size:xs": "<Switch size=\"xs\" left=\"\" name=\"\" right=\"\" />",
166
+ "size:xxs": "<Switch size=\"xxs\" left=\"\" name=\"\" right=\"\" />"
154
167
  }
155
168
  }
156
169
  }
@@ -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.11",
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
  }