@framingui/mcp-server 0.5.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.
Files changed (206) hide show
  1. package/README.md +1027 -0
  2. package/dist/auth/cache.d.ts +28 -0
  3. package/dist/auth/cache.d.ts.map +1 -0
  4. package/dist/auth/cache.js +48 -0
  5. package/dist/auth/cache.js.map +1 -0
  6. package/dist/auth/guard.d.ts +22 -0
  7. package/dist/auth/guard.d.ts.map +1 -0
  8. package/dist/auth/guard.js +37 -0
  9. package/dist/auth/guard.js.map +1 -0
  10. package/dist/auth/state.d.ts +42 -0
  11. package/dist/auth/state.d.ts.map +1 -0
  12. package/dist/auth/state.js +96 -0
  13. package/dist/auth/state.js.map +1 -0
  14. package/dist/auth/theme-access.d.ts +21 -0
  15. package/dist/auth/theme-access.d.ts.map +1 -0
  16. package/dist/auth/theme-access.js +30 -0
  17. package/dist/auth/theme-access.js.map +1 -0
  18. package/dist/auth/verify.d.ts +44 -0
  19. package/dist/auth/verify.d.ts.map +1 -0
  20. package/dist/auth/verify.js +77 -0
  21. package/dist/auth/verify.js.map +1 -0
  22. package/dist/cli/agent-md-templates.d.ts +16 -0
  23. package/dist/cli/agent-md-templates.d.ts.map +1 -0
  24. package/dist/cli/agent-md-templates.js +311 -0
  25. package/dist/cli/agent-md-templates.js.map +1 -0
  26. package/dist/cli/credentials.d.ts +29 -0
  27. package/dist/cli/credentials.d.ts.map +1 -0
  28. package/dist/cli/credentials.js +66 -0
  29. package/dist/cli/credentials.js.map +1 -0
  30. package/dist/cli/guide-template.d.ts +10 -0
  31. package/dist/cli/guide-template.d.ts.map +1 -0
  32. package/dist/cli/guide-template.js +195 -0
  33. package/dist/cli/guide-template.js.map +1 -0
  34. package/dist/cli/index.d.ts +7 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +41 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/cli/init.d.ts +6 -0
  39. package/dist/cli/init.d.ts.map +1 -0
  40. package/dist/cli/init.js +319 -0
  41. package/dist/cli/init.js.map +1 -0
  42. package/dist/cli/login.d.ts +9 -0
  43. package/dist/cli/login.d.ts.map +1 -0
  44. package/dist/cli/login.js +121 -0
  45. package/dist/cli/login.js.map +1 -0
  46. package/dist/cli/logout.d.ts +9 -0
  47. package/dist/cli/logout.d.ts.map +1 -0
  48. package/dist/cli/logout.js +18 -0
  49. package/dist/cli/logout.js.map +1 -0
  50. package/dist/cli/status.d.ts +9 -0
  51. package/dist/cli/status.d.ts.map +1 -0
  52. package/dist/cli/status.js +31 -0
  53. package/dist/cli/status.js.map +1 -0
  54. package/dist/data/component-props.d.ts +30 -0
  55. package/dist/data/component-props.d.ts.map +1 -0
  56. package/dist/data/component-props.js +537 -0
  57. package/dist/data/component-props.js.map +1 -0
  58. package/dist/data/component-registry.d.ts +30 -0
  59. package/dist/data/component-registry.d.ts.map +1 -0
  60. package/dist/data/component-registry.js +320 -0
  61. package/dist/data/component-registry.js.map +1 -0
  62. package/dist/data/examples/screen-examples.d.ts +38 -0
  63. package/dist/data/examples/screen-examples.d.ts.map +1 -0
  64. package/dist/data/examples/screen-examples.js +500 -0
  65. package/dist/data/examples/screen-examples.js.map +1 -0
  66. package/dist/data/hint-generator.d.ts +16 -0
  67. package/dist/data/hint-generator.d.ts.map +1 -0
  68. package/dist/data/hint-generator.js +298 -0
  69. package/dist/data/hint-generator.js.map +1 -0
  70. package/dist/data/recipe-resolver.d.ts +48 -0
  71. package/dist/data/recipe-resolver.d.ts.map +1 -0
  72. package/dist/data/recipe-resolver.js +226 -0
  73. package/dist/data/recipe-resolver.js.map +1 -0
  74. package/dist/data/template-matcher.d.ts +50 -0
  75. package/dist/data/template-matcher.d.ts.map +1 -0
  76. package/dist/data/template-matcher.js +240 -0
  77. package/dist/data/template-matcher.js.map +1 -0
  78. package/dist/generators/core-resolver.d.ts +56 -0
  79. package/dist/generators/core-resolver.d.ts.map +1 -0
  80. package/dist/generators/core-resolver.js +490 -0
  81. package/dist/generators/core-resolver.js.map +1 -0
  82. package/dist/generators/css-generator.d.ts +49 -0
  83. package/dist/generators/css-generator.d.ts.map +1 -0
  84. package/dist/generators/css-generator.js +294 -0
  85. package/dist/generators/css-generator.js.map +1 -0
  86. package/dist/generators/index.d.ts +13 -0
  87. package/dist/generators/index.d.ts.map +1 -0
  88. package/dist/generators/index.js +16 -0
  89. package/dist/generators/index.js.map +1 -0
  90. package/dist/generators/llm-generator.d.ts +96 -0
  91. package/dist/generators/llm-generator.d.ts.map +1 -0
  92. package/dist/generators/llm-generator.js +296 -0
  93. package/dist/generators/llm-generator.js.map +1 -0
  94. package/dist/index.d.ts +3 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +965 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/prompts/getting-started.d.ts +18 -0
  99. package/dist/prompts/getting-started.d.ts.map +1 -0
  100. package/dist/prompts/getting-started.js +112 -0
  101. package/dist/prompts/getting-started.js.map +1 -0
  102. package/dist/prompts/screen-workflow.d.ts +17 -0
  103. package/dist/prompts/screen-workflow.d.ts.map +1 -0
  104. package/dist/prompts/screen-workflow.js +246 -0
  105. package/dist/prompts/screen-workflow.js.map +1 -0
  106. package/dist/schemas/mcp-schemas.d.ts +4342 -0
  107. package/dist/schemas/mcp-schemas.d.ts.map +1 -0
  108. package/dist/schemas/mcp-schemas.js +989 -0
  109. package/dist/schemas/mcp-schemas.js.map +1 -0
  110. package/dist/storage/blueprint-storage.d.ts +68 -0
  111. package/dist/storage/blueprint-storage.d.ts.map +1 -0
  112. package/dist/storage/blueprint-storage.js +135 -0
  113. package/dist/storage/blueprint-storage.js.map +1 -0
  114. package/dist/storage/timestamp-manager.d.ts +32 -0
  115. package/dist/storage/timestamp-manager.d.ts.map +1 -0
  116. package/dist/storage/timestamp-manager.js +59 -0
  117. package/dist/storage/timestamp-manager.js.map +1 -0
  118. package/dist/tools/export-screen.d.ts +34 -0
  119. package/dist/tools/export-screen.d.ts.map +1 -0
  120. package/dist/tools/export-screen.js +344 -0
  121. package/dist/tools/export-screen.js.map +1 -0
  122. package/dist/tools/generate-blueprint.d.ts +15 -0
  123. package/dist/tools/generate-blueprint.d.ts.map +1 -0
  124. package/dist/tools/generate-blueprint.js +165 -0
  125. package/dist/tools/generate-blueprint.js.map +1 -0
  126. package/dist/tools/generate-screen.d.ts +13 -0
  127. package/dist/tools/generate-screen.d.ts.map +1 -0
  128. package/dist/tools/generate-screen.js +82 -0
  129. package/dist/tools/generate-screen.js.map +1 -0
  130. package/dist/tools/get-screen-generation-context.d.ts +11 -0
  131. package/dist/tools/get-screen-generation-context.d.ts.map +1 -0
  132. package/dist/tools/get-screen-generation-context.js +325 -0
  133. package/dist/tools/get-screen-generation-context.js.map +1 -0
  134. package/dist/tools/list-components.d.ts +15 -0
  135. package/dist/tools/list-components.d.ts.map +1 -0
  136. package/dist/tools/list-components.js +46 -0
  137. package/dist/tools/list-components.js.map +1 -0
  138. package/dist/tools/list-icon-libraries.d.ts +12 -0
  139. package/dist/tools/list-icon-libraries.d.ts.map +1 -0
  140. package/dist/tools/list-icon-libraries.js +48 -0
  141. package/dist/tools/list-icon-libraries.js.map +1 -0
  142. package/dist/tools/list-screen-templates.d.ts +15 -0
  143. package/dist/tools/list-screen-templates.d.ts.map +1 -0
  144. package/dist/tools/list-screen-templates.js +61 -0
  145. package/dist/tools/list-screen-templates.js.map +1 -0
  146. package/dist/tools/list-themes.d.ts +13 -0
  147. package/dist/tools/list-themes.d.ts.map +1 -0
  148. package/dist/tools/list-themes.js +42 -0
  149. package/dist/tools/list-themes.js.map +1 -0
  150. package/dist/tools/list-tokens.d.ts +13 -0
  151. package/dist/tools/list-tokens.d.ts.map +1 -0
  152. package/dist/tools/list-tokens.js +92 -0
  153. package/dist/tools/list-tokens.js.map +1 -0
  154. package/dist/tools/preview-component.d.ts +18 -0
  155. package/dist/tools/preview-component.d.ts.map +1 -0
  156. package/dist/tools/preview-component.js +63 -0
  157. package/dist/tools/preview-component.js.map +1 -0
  158. package/dist/tools/preview-icon-library.d.ts +13 -0
  159. package/dist/tools/preview-icon-library.d.ts.map +1 -0
  160. package/dist/tools/preview-icon-library.js +63 -0
  161. package/dist/tools/preview-icon-library.js.map +1 -0
  162. package/dist/tools/preview-screen-template.d.ts +18 -0
  163. package/dist/tools/preview-screen-template.d.ts.map +1 -0
  164. package/dist/tools/preview-screen-template.js +99 -0
  165. package/dist/tools/preview-screen-template.js.map +1 -0
  166. package/dist/tools/preview-theme.d.ts +15 -0
  167. package/dist/tools/preview-theme.d.ts.map +1 -0
  168. package/dist/tools/preview-theme.js +172 -0
  169. package/dist/tools/preview-theme.js.map +1 -0
  170. package/dist/tools/validate-environment.d.ts +37 -0
  171. package/dist/tools/validate-environment.d.ts.map +1 -0
  172. package/dist/tools/validate-environment.js +153 -0
  173. package/dist/tools/validate-environment.js.map +1 -0
  174. package/dist/tools/validate-screen-definition.d.ts +10 -0
  175. package/dist/tools/validate-screen-definition.d.ts.map +1 -0
  176. package/dist/tools/validate-screen-definition.js +559 -0
  177. package/dist/tools/validate-screen-definition.js.map +1 -0
  178. package/dist/tools/validate-screen.d.ts +13 -0
  179. package/dist/tools/validate-screen.d.ts.map +1 -0
  180. package/dist/tools/validate-screen.js +106 -0
  181. package/dist/tools/validate-screen.js.map +1 -0
  182. package/dist/tools/whoami.d.ts +17 -0
  183. package/dist/tools/whoami.d.ts.map +1 -0
  184. package/dist/tools/whoami.js +65 -0
  185. package/dist/tools/whoami.js.map +1 -0
  186. package/dist/utils/dependency-extractor.d.ts +13 -0
  187. package/dist/utils/dependency-extractor.d.ts.map +1 -0
  188. package/dist/utils/dependency-extractor.js +232 -0
  189. package/dist/utils/dependency-extractor.js.map +1 -0
  190. package/dist/utils/error-handler.d.ts +29 -0
  191. package/dist/utils/error-handler.d.ts.map +1 -0
  192. package/dist/utils/error-handler.js +48 -0
  193. package/dist/utils/error-handler.js.map +1 -0
  194. package/dist/utils/logger.d.ts +8 -0
  195. package/dist/utils/logger.d.ts.map +1 -0
  196. package/dist/utils/logger.js +14 -0
  197. package/dist/utils/logger.js.map +1 -0
  198. package/dist/utils/package-json-reader.d.ts +37 -0
  199. package/dist/utils/package-json-reader.d.ts.map +1 -0
  200. package/dist/utils/package-json-reader.js +108 -0
  201. package/dist/utils/package-json-reader.js.map +1 -0
  202. package/dist/utils/tailwind-config-reader.d.ts +23 -0
  203. package/dist/utils/tailwind-config-reader.d.ts.map +1 -0
  204. package/dist/utils/tailwind-config-reader.js +81 -0
  205. package/dist/utils/tailwind-config-reader.js.map +1 -0
  206. package/package.json +103 -0
@@ -0,0 +1,537 @@
1
+ /**
2
+ * Shared Component Props Data Module
3
+ * 실제 @framingui/ui 컴포넌트에서 추출한 Tier 1 (15개 core) props/variants 데이터
4
+ *
5
+ * 사용처:
6
+ * - preview-component.ts: 컴포넌트 상세 정보 제공
7
+ * - get-screen-generation-context.ts: 인라인 props 컨텍스트 제공
8
+ * - validate-screen-definition.ts: props 유효성 검증
9
+ */
10
+ /**
11
+ * Tier 1 Core 컴포넌트 (15개) 전체 props/variants 데이터
12
+ * 실제 packages/ui/src/components/*.tsx 소스에서 추출
13
+ */
14
+ const COMPONENT_PROPS_DATA = {
15
+ button: {
16
+ props: [
17
+ {
18
+ name: 'variant',
19
+ type: "'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'",
20
+ required: false,
21
+ defaultValue: "'default'",
22
+ description: 'Visual style variant',
23
+ },
24
+ {
25
+ name: 'size',
26
+ type: "'default' | 'sm' | 'lg' | 'icon'",
27
+ required: false,
28
+ defaultValue: "'default'",
29
+ description: 'Button size',
30
+ },
31
+ {
32
+ name: 'asChild',
33
+ type: 'boolean',
34
+ required: false,
35
+ defaultValue: 'false',
36
+ description: 'Render as child element using Radix Slot',
37
+ },
38
+ ],
39
+ variants: [
40
+ { name: 'variant', value: 'default', description: 'Default primary button' },
41
+ { name: 'variant', value: 'destructive', description: 'Red destructive action' },
42
+ { name: 'variant', value: 'outline', description: 'Outlined button' },
43
+ { name: 'variant', value: 'secondary', description: 'Secondary gray button' },
44
+ { name: 'variant', value: 'ghost', description: 'Transparent ghost button' },
45
+ { name: 'variant', value: 'link', description: 'Link-styled button' },
46
+ ],
47
+ dependencies: {
48
+ internal: [],
49
+ external: ['@radix-ui/react-slot'],
50
+ },
51
+ examples: [
52
+ {
53
+ title: 'Basic Usage',
54
+ code: `import { Button } from '@framingui/ui';\n\n<Button variant="default">Click me</Button>`,
55
+ description: 'Simple button with default variant',
56
+ },
57
+ {
58
+ title: 'Destructive Action',
59
+ code: `<Button variant="destructive">Delete</Button>`,
60
+ description: 'Button for destructive actions',
61
+ },
62
+ ],
63
+ accessibility: 'Supports keyboard navigation and ARIA attributes. Focus-visible ring for keyboard users.',
64
+ },
65
+ input: {
66
+ props: [
67
+ {
68
+ name: 'type',
69
+ type: 'string',
70
+ required: false,
71
+ description: 'HTML input type (text, email, password, etc.)',
72
+ },
73
+ {
74
+ name: 'placeholder',
75
+ type: 'string',
76
+ required: false,
77
+ description: 'Placeholder text',
78
+ },
79
+ {
80
+ name: 'disabled',
81
+ type: 'boolean',
82
+ required: false,
83
+ defaultValue: 'false',
84
+ description: 'Disabled state',
85
+ },
86
+ ],
87
+ dependencies: {
88
+ internal: [],
89
+ external: [],
90
+ },
91
+ examples: [
92
+ {
93
+ title: 'Basic Input',
94
+ code: `import { Input } from '@framingui/ui';\n\n<Input type="email" placeholder="Enter your email" />`,
95
+ description: 'Simple email input',
96
+ },
97
+ ],
98
+ accessibility: 'Focus-visible ring for keyboard navigation. Pair with Label for accessibility.',
99
+ },
100
+ label: {
101
+ props: [
102
+ {
103
+ name: 'htmlFor',
104
+ type: 'string',
105
+ required: false,
106
+ description: 'ID of the associated form element',
107
+ },
108
+ ],
109
+ dependencies: {
110
+ internal: [],
111
+ external: ['@radix-ui/react-label'],
112
+ },
113
+ examples: [
114
+ {
115
+ title: 'With Input',
116
+ code: `import { Label, Input } from '@framingui/ui';\n\n<Label htmlFor="email">Email</Label>\n<Input id="email" type="email" />`,
117
+ description: 'Label paired with input',
118
+ },
119
+ ],
120
+ accessibility: 'Peer-disabled styling for paired disabled inputs. Semantic HTML label element.',
121
+ },
122
+ card: {
123
+ props: [
124
+ {
125
+ name: 'className',
126
+ type: 'string',
127
+ required: false,
128
+ description: 'Additional CSS classes',
129
+ },
130
+ ],
131
+ subComponents: ['CardHeader', 'CardTitle', 'CardDescription', 'CardContent', 'CardFooter'],
132
+ dependencies: {
133
+ internal: [],
134
+ external: [],
135
+ },
136
+ examples: [
137
+ {
138
+ title: 'Basic Card',
139
+ code: `import { Card, CardHeader, CardTitle, CardContent } from '@framingui/ui';\n\n<Card>\n <CardHeader>\n <CardTitle>Card Title</CardTitle>\n </CardHeader>\n <CardContent>Card content here</CardContent>\n</Card>`,
140
+ description: 'Card with header and content',
141
+ },
142
+ ],
143
+ accessibility: 'Semantic HTML structure for screen readers',
144
+ },
145
+ badge: {
146
+ props: [
147
+ {
148
+ name: 'variant',
149
+ type: "'default' | 'secondary' | 'destructive' | 'outline'",
150
+ required: false,
151
+ defaultValue: "'default'",
152
+ description: 'Badge variant styling',
153
+ },
154
+ ],
155
+ variants: [
156
+ { name: 'variant', value: 'default', description: 'Default primary badge' },
157
+ { name: 'variant', value: 'secondary', description: 'Secondary badge' },
158
+ { name: 'variant', value: 'destructive', description: 'Destructive red badge' },
159
+ { name: 'variant', value: 'outline', description: 'Outlined badge' },
160
+ ],
161
+ dependencies: {
162
+ internal: [],
163
+ external: [],
164
+ },
165
+ examples: [
166
+ {
167
+ title: 'Status Badge',
168
+ code: `import { Badge } from '@framingui/ui';\n\n<Badge variant="secondary">Active</Badge>`,
169
+ description: 'Badge for status display',
170
+ },
171
+ ],
172
+ accessibility: 'Focus ring styling for keyboard navigation',
173
+ },
174
+ avatar: {
175
+ props: [
176
+ {
177
+ name: 'className',
178
+ type: 'string',
179
+ required: false,
180
+ description: 'Additional CSS classes',
181
+ },
182
+ ],
183
+ subComponents: ['AvatarImage', 'AvatarFallback'],
184
+ dependencies: {
185
+ internal: [],
186
+ external: ['@radix-ui/react-avatar'],
187
+ },
188
+ examples: [
189
+ {
190
+ title: 'With Fallback',
191
+ code: `import { Avatar, AvatarImage, AvatarFallback } from '@framingui/ui';\n\n<Avatar>\n <AvatarImage src="/avatar.jpg" alt="User" />\n <AvatarFallback>CN</AvatarFallback>\n</Avatar>`,
192
+ description: 'Avatar with image and fallback initials',
193
+ },
194
+ ],
195
+ accessibility: 'Fallback text for image load failures. Alt text support via AvatarImage.',
196
+ },
197
+ separator: {
198
+ props: [
199
+ {
200
+ name: 'orientation',
201
+ type: "'horizontal' | 'vertical'",
202
+ required: false,
203
+ defaultValue: "'horizontal'",
204
+ description: 'Separator direction',
205
+ },
206
+ {
207
+ name: 'decorative',
208
+ type: 'boolean',
209
+ required: false,
210
+ defaultValue: 'true',
211
+ description: 'Whether separator is purely decorative',
212
+ },
213
+ ],
214
+ dependencies: {
215
+ internal: [],
216
+ external: ['@radix-ui/react-separator'],
217
+ },
218
+ accessibility: 'Decorative prop set for screen readers. ARIA role appropriate to context.',
219
+ },
220
+ checkbox: {
221
+ props: [
222
+ {
223
+ name: 'checked',
224
+ type: "boolean | 'indeterminate'",
225
+ required: false,
226
+ description: 'Checkbox state',
227
+ },
228
+ {
229
+ name: 'onCheckedChange',
230
+ type: "(checked: boolean | 'indeterminate') => void",
231
+ required: false,
232
+ description: 'Change callback',
233
+ },
234
+ {
235
+ name: 'disabled',
236
+ type: 'boolean',
237
+ required: false,
238
+ defaultValue: 'false',
239
+ description: 'Disabled state',
240
+ },
241
+ ],
242
+ dependencies: {
243
+ internal: [],
244
+ external: ['@radix-ui/react-checkbox', 'lucide-react'],
245
+ },
246
+ examples: [
247
+ {
248
+ title: 'Basic Checkbox',
249
+ code: `import { Checkbox } from '@framingui/ui';\n\n<Checkbox id="terms" />\n<label htmlFor="terms">Accept terms</label>`,
250
+ description: 'Checkbox with label',
251
+ },
252
+ ],
253
+ accessibility: 'Focus-visible ring. ARIA-checked state management. Keyboard navigation.',
254
+ },
255
+ 'radio-group': {
256
+ props: [
257
+ {
258
+ name: 'value',
259
+ type: 'string',
260
+ required: false,
261
+ description: 'Selected radio value',
262
+ },
263
+ {
264
+ name: 'onValueChange',
265
+ type: '(value: string) => void',
266
+ required: false,
267
+ description: 'Change callback',
268
+ },
269
+ {
270
+ name: 'disabled',
271
+ type: 'boolean',
272
+ required: false,
273
+ defaultValue: 'false',
274
+ description: 'Disable all items',
275
+ },
276
+ ],
277
+ subComponents: ['RadioGroupItem'],
278
+ dependencies: {
279
+ internal: [],
280
+ external: ['@radix-ui/react-radio-group', 'lucide-react'],
281
+ },
282
+ examples: [
283
+ {
284
+ title: 'Basic RadioGroup',
285
+ code: `import { RadioGroup, RadioGroupItem } from '@framingui/ui';\nimport { Label } from '@framingui/ui';\n\n<RadioGroup defaultValue="option-1">\n <div className="flex items-center space-x-2">\n <RadioGroupItem value="option-1" id="option-1" />\n <Label htmlFor="option-1">Option 1</Label>\n </div>\n</RadioGroup>`,
286
+ description: 'Radio group with labeled options',
287
+ },
288
+ ],
289
+ accessibility: 'Keyboard navigation with arrow keys. ARIA-checked state management.',
290
+ },
291
+ switch: {
292
+ props: [
293
+ {
294
+ name: 'checked',
295
+ type: 'boolean',
296
+ required: false,
297
+ description: 'Switch state',
298
+ },
299
+ {
300
+ name: 'onCheckedChange',
301
+ type: '(checked: boolean) => void',
302
+ required: false,
303
+ description: 'Change callback',
304
+ },
305
+ {
306
+ name: 'disabled',
307
+ type: 'boolean',
308
+ required: false,
309
+ defaultValue: 'false',
310
+ description: 'Disabled state',
311
+ },
312
+ ],
313
+ dependencies: {
314
+ internal: [],
315
+ external: ['@radix-ui/react-switch'],
316
+ },
317
+ examples: [
318
+ {
319
+ title: 'Basic Switch',
320
+ code: `import { Switch } from '@framingui/ui';\nimport { Label } from '@framingui/ui';\n\n<div className="flex items-center space-x-2">\n <Switch id="airplane-mode" />\n <Label htmlFor="airplane-mode">Airplane Mode</Label>\n</div>`,
321
+ description: 'Toggle switch with label',
322
+ },
323
+ ],
324
+ accessibility: 'Focus-visible ring. ARIA-checked state. Smooth animation on toggle.',
325
+ },
326
+ textarea: {
327
+ props: [
328
+ {
329
+ name: 'placeholder',
330
+ type: 'string',
331
+ required: false,
332
+ description: 'Placeholder text',
333
+ },
334
+ {
335
+ name: 'disabled',
336
+ type: 'boolean',
337
+ required: false,
338
+ defaultValue: 'false',
339
+ description: 'Disabled state',
340
+ },
341
+ {
342
+ name: 'rows',
343
+ type: 'number',
344
+ required: false,
345
+ description: 'Visible text rows',
346
+ },
347
+ ],
348
+ dependencies: {
349
+ internal: [],
350
+ external: [],
351
+ },
352
+ examples: [
353
+ {
354
+ title: 'Basic Textarea',
355
+ code: `import { Textarea } from '@framingui/ui';\n\n<Textarea placeholder="Type your message here." />`,
356
+ description: 'Simple textarea',
357
+ },
358
+ ],
359
+ accessibility: 'Focus-visible ring. Minimum height 80px. Pair with Label for accessibility.',
360
+ },
361
+ skeleton: {
362
+ props: [
363
+ {
364
+ name: 'className',
365
+ type: 'string',
366
+ required: false,
367
+ description: 'CSS classes for width/height sizing',
368
+ },
369
+ ],
370
+ dependencies: {
371
+ internal: [],
372
+ external: [],
373
+ },
374
+ examples: [
375
+ {
376
+ title: 'Card Skeleton',
377
+ code: `import { Skeleton } from '@framingui/ui';\n\n<div className="space-y-2">\n <Skeleton className="h-4 w-[250px]" />\n <Skeleton className="h-4 w-[200px]" />\n</div>`,
378
+ description: 'Loading skeleton placeholders',
379
+ },
380
+ ],
381
+ accessibility: 'Uses animate-pulse for loading state indication.',
382
+ },
383
+ 'scroll-area': {
384
+ props: [
385
+ {
386
+ name: 'className',
387
+ type: 'string',
388
+ required: false,
389
+ description: 'Additional CSS classes',
390
+ },
391
+ ],
392
+ subComponents: ['ScrollBar'],
393
+ dependencies: {
394
+ internal: [],
395
+ external: ['@radix-ui/react-scroll-area'],
396
+ },
397
+ examples: [
398
+ {
399
+ title: 'Scrollable Content',
400
+ code: `import { ScrollArea } from '@framingui/ui';\n\n<ScrollArea className="h-[200px] w-[350px] rounded-md border p-4">\n Long scrollable content here...\n</ScrollArea>`,
401
+ description: 'Scrollable container with custom scrollbar',
402
+ },
403
+ ],
404
+ accessibility: 'Native scrollbar behavior preservation. Touch support for mobile.',
405
+ },
406
+ form: {
407
+ props: [
408
+ {
409
+ name: 'control',
410
+ type: 'Control<TFieldValues>',
411
+ required: true,
412
+ description: 'react-hook-form control object (via FormProvider)',
413
+ },
414
+ ],
415
+ subComponents: [
416
+ 'FormField',
417
+ 'FormItem',
418
+ 'FormLabel',
419
+ 'FormControl',
420
+ 'FormDescription',
421
+ 'FormMessage',
422
+ ],
423
+ dependencies: {
424
+ internal: [],
425
+ external: ['react-hook-form', '@radix-ui/react-label', '@radix-ui/react-slot'],
426
+ },
427
+ examples: [
428
+ {
429
+ title: 'Basic Form',
430
+ code: `import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from '@framingui/ui';\nimport { useForm } from 'react-hook-form';\n\nconst form = useForm();\n\n<Form {...form}>\n <FormField\n control={form.control}\n name="username"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Username</FormLabel>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n</Form>`,
431
+ description: 'Form with validation and error messages',
432
+ },
433
+ ],
434
+ accessibility: 'aria-describedby for descriptions and errors. aria-invalid for validation. Focus management.',
435
+ },
436
+ select: {
437
+ props: [
438
+ {
439
+ name: 'value',
440
+ type: 'string',
441
+ required: false,
442
+ description: 'Selected value',
443
+ },
444
+ {
445
+ name: 'onValueChange',
446
+ type: '(value: string) => void',
447
+ required: false,
448
+ description: 'Change callback',
449
+ },
450
+ {
451
+ name: 'defaultValue',
452
+ type: 'string',
453
+ required: false,
454
+ description: 'Initial value',
455
+ },
456
+ {
457
+ name: 'disabled',
458
+ type: 'boolean',
459
+ required: false,
460
+ defaultValue: 'false',
461
+ description: 'Disabled state',
462
+ },
463
+ ],
464
+ subComponents: [
465
+ 'SelectTrigger',
466
+ 'SelectContent',
467
+ 'SelectValue',
468
+ 'SelectGroup',
469
+ 'SelectLabel',
470
+ 'SelectItem',
471
+ 'SelectSeparator',
472
+ ],
473
+ dependencies: {
474
+ internal: [],
475
+ external: ['@radix-ui/react-select', 'lucide-react'],
476
+ },
477
+ examples: [
478
+ {
479
+ title: 'Basic Select',
480
+ code: `import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '@framingui/ui';\n\n<Select>\n <SelectTrigger className="w-[180px]">\n <SelectValue placeholder="Select a fruit" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value="apple">Apple</SelectItem>\n <SelectItem value="banana">Banana</SelectItem>\n </SelectContent>\n</Select>`,
481
+ description: 'Select dropdown with options',
482
+ },
483
+ ],
484
+ accessibility: 'Full keyboard navigation. Focus trap within dropdown. ARIA roles and states.',
485
+ },
486
+ // 기존 dialog 데이터 (preview-component에서 이전)
487
+ dialog: {
488
+ props: [
489
+ {
490
+ name: 'open',
491
+ type: 'boolean',
492
+ required: false,
493
+ description: 'Controlled open state',
494
+ },
495
+ {
496
+ name: 'onOpenChange',
497
+ type: '(open: boolean) => void',
498
+ required: false,
499
+ description: 'Callback when open state changes',
500
+ },
501
+ ],
502
+ subComponents: [
503
+ 'DialogTrigger',
504
+ 'DialogContent',
505
+ 'DialogHeader',
506
+ 'DialogTitle',
507
+ 'DialogDescription',
508
+ 'DialogFooter',
509
+ 'DialogClose',
510
+ ],
511
+ dependencies: {
512
+ internal: [],
513
+ external: ['@radix-ui/react-dialog'],
514
+ },
515
+ examples: [
516
+ {
517
+ title: 'Basic Dialog',
518
+ code: `import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle } from '@framingui/ui';\n\n<Dialog>\n <DialogTrigger asChild>\n <Button>Open</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog Title</DialogTitle>\n </DialogHeader>\n </DialogContent>\n</Dialog>`,
519
+ description: 'Modal dialog with trigger button',
520
+ },
521
+ ],
522
+ accessibility: 'Focus trap, ESC to close, ARIA dialog role',
523
+ },
524
+ };
525
+ /**
526
+ * 컴포넌트 ID로 props 데이터 조회
527
+ */
528
+ export function getComponentPropsData(componentId) {
529
+ return COMPONENT_PROPS_DATA[componentId];
530
+ }
531
+ /**
532
+ * 모든 컴포넌트 props 데이터가 있는 컴포넌트 ID 목록 반환
533
+ */
534
+ export function getComponentIdsWithProps() {
535
+ return Object.keys(COMPONENT_PROPS_DATA);
536
+ }
537
+ //# sourceMappingURL=component-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-props.js","sourceRoot":"","sources":["../../src/data/component-props.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Component Registry (SPEC-MCP-003)
3
+ * Static component metadata from @framingui/ui
4
+ *
5
+ * This registry provides metadata for all UI components
6
+ * organized by tier (1: Core, 2: Complex, 3: Advanced)
7
+ */
8
+ import type { ComponentMeta } from '../schemas/mcp-schemas.js';
9
+ /**
10
+ * All component metadata organized by tier
11
+ * Data extracted from @framingui/ui exports
12
+ */
13
+ export declare const COMPONENT_CATALOG: ComponentMeta[];
14
+ /**
15
+ * Get all components
16
+ */
17
+ export declare function getAllComponents(): ComponentMeta[];
18
+ /**
19
+ * Get components by category
20
+ */
21
+ export declare function getComponentsByCategory(category: 'core' | 'complex' | 'advanced'): ComponentMeta[];
22
+ /**
23
+ * Get component by ID
24
+ */
25
+ export declare function getComponentById(id: string): ComponentMeta | undefined;
26
+ /**
27
+ * Search components by keyword
28
+ */
29
+ export declare function searchComponents(keyword: string): ComponentMeta[];
30
+ //# sourceMappingURL=component-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../src/data/component-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,EA0R5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GACxC,aAAa,EAAE,CAEjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAQjE"}