@urbint/cl 1.0.1

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/.cursor/rules +313 -0
  2. package/.rnstorybook/index.ts +11 -0
  3. package/.rnstorybook/main.ts +8 -0
  4. package/.rnstorybook/preview.tsx +14 -0
  5. package/.rnstorybook/storybook.requires.ts +49 -0
  6. package/.storybook/main.ts +16 -0
  7. package/.storybook/preview.ts +32 -0
  8. package/.storybook/vitest.setup.ts +7 -0
  9. package/App.tsx +422 -0
  10. package/README.md +229 -0
  11. package/app.json +33 -0
  12. package/assets/adaptive-icon.png +0 -0
  13. package/assets/favicon.png +0 -0
  14. package/assets/icon.png +0 -0
  15. package/assets/splash-icon.png +0 -0
  16. package/babel.config.js +16 -0
  17. package/docs/components/CodeBlock.tsx +80 -0
  18. package/docs/components/PropTable.tsx +93 -0
  19. package/docs/components/Sidebar.tsx +199 -0
  20. package/docs/components/index.ts +8 -0
  21. package/docs/data/colorTokens.ts +70 -0
  22. package/docs/data/componentData.tsx +1685 -0
  23. package/docs/data/index.ts +7 -0
  24. package/docs/index.ts +19 -0
  25. package/docs/navigation.ts +94 -0
  26. package/docs/pages/ColorsPage.tsx +226 -0
  27. package/docs/pages/ComponentPage.tsx +235 -0
  28. package/docs/pages/InstallationPage.tsx +232 -0
  29. package/docs/pages/IntroductionPage.tsx +163 -0
  30. package/docs/pages/ThemingPage.tsx +251 -0
  31. package/docs/pages/index.ts +10 -0
  32. package/docs/theme.ts +64 -0
  33. package/docs/types.ts +54 -0
  34. package/index.ts +8 -0
  35. package/llms.txt +1893 -0
  36. package/mcp-config.example.json +10 -0
  37. package/mcp-server/README.md +192 -0
  38. package/mcp-server/package-lock.json +1707 -0
  39. package/mcp-server/package.json +38 -0
  40. package/mcp-server/src/index.ts +1136 -0
  41. package/mcp-server/src/registry/components.ts +1446 -0
  42. package/mcp-server/src/registry/index.ts +3 -0
  43. package/mcp-server/src/registry/tokens.ts +256 -0
  44. package/mcp-server/tsconfig.json +19 -0
  45. package/package.json +92 -0
  46. package/src/components/Accordion/Accordion.stories.tsx +226 -0
  47. package/src/components/Accordion/Accordion.tsx +255 -0
  48. package/src/components/Accordion/index.ts +12 -0
  49. package/src/components/ActionSheet/ActionSheet.stories.tsx +393 -0
  50. package/src/components/ActionSheet/ActionSheet.tsx +258 -0
  51. package/src/components/ActionSheet/index.ts +2 -0
  52. package/src/components/Alert/Alert.stories.tsx +165 -0
  53. package/src/components/Alert/Alert.tsx +164 -0
  54. package/src/components/Alert/index.ts +2 -0
  55. package/src/components/AlertDialog/AlertDialog.stories.tsx +330 -0
  56. package/src/components/AlertDialog/AlertDialog.tsx +234 -0
  57. package/src/components/AlertDialog/index.ts +2 -0
  58. package/src/components/Avatar/Avatar.stories.tsx +154 -0
  59. package/src/components/Avatar/Avatar.tsx +219 -0
  60. package/src/components/Avatar/index.ts +2 -0
  61. package/src/components/Badge/Badge.stories.tsx +146 -0
  62. package/src/components/Badge/Badge.tsx +125 -0
  63. package/src/components/Badge/index.ts +2 -0
  64. package/src/components/Box/Box.stories.tsx +192 -0
  65. package/src/components/Box/Box.tsx +184 -0
  66. package/src/components/Box/index.ts +2 -0
  67. package/src/components/Button/Button.stories.tsx +157 -0
  68. package/src/components/Button/Button.tsx +180 -0
  69. package/src/components/Button/index.ts +2 -0
  70. package/src/components/Card/Card.stories.tsx +145 -0
  71. package/src/components/Card/Card.tsx +169 -0
  72. package/src/components/Card/index.ts +11 -0
  73. package/src/components/Center/Center.stories.tsx +215 -0
  74. package/src/components/Center/Center.tsx +29 -0
  75. package/src/components/Center/index.ts +2 -0
  76. package/src/components/Checkbox/Checkbox.stories.tsx +94 -0
  77. package/src/components/Checkbox/Checkbox.tsx +242 -0
  78. package/src/components/Checkbox/index.ts +2 -0
  79. package/src/components/DatePicker/DatePicker.stories.tsx +623 -0
  80. package/src/components/DatePicker/DatePicker.tsx +1228 -0
  81. package/src/components/DatePicker/index.ts +8 -0
  82. package/src/components/Divider/Divider.stories.tsx +224 -0
  83. package/src/components/Divider/Divider.tsx +73 -0
  84. package/src/components/Divider/index.ts +2 -0
  85. package/src/components/Drawer/Drawer.stories.tsx +414 -0
  86. package/src/components/Drawer/Drawer.tsx +342 -0
  87. package/src/components/Drawer/index.ts +11 -0
  88. package/src/components/Fab/Fab.stories.tsx +360 -0
  89. package/src/components/Fab/Fab.tsx +185 -0
  90. package/src/components/Fab/index.ts +2 -0
  91. package/src/components/FormControl/FormControl.stories.tsx +276 -0
  92. package/src/components/FormControl/FormControl.tsx +185 -0
  93. package/src/components/FormControl/index.ts +12 -0
  94. package/src/components/Grid/Grid.stories.tsx +244 -0
  95. package/src/components/Grid/Grid.tsx +93 -0
  96. package/src/components/Grid/index.ts +2 -0
  97. package/src/components/HStack/HStack.stories.tsx +230 -0
  98. package/src/components/HStack/HStack.tsx +80 -0
  99. package/src/components/HStack/index.ts +2 -0
  100. package/src/components/Heading/Heading.stories.tsx +111 -0
  101. package/src/components/Heading/Heading.tsx +85 -0
  102. package/src/components/Heading/index.ts +2 -0
  103. package/src/components/Icon/Icon.stories.tsx +320 -0
  104. package/src/components/Icon/Icon.tsx +117 -0
  105. package/src/components/Icon/index.ts +2 -0
  106. package/src/components/Image/Image.stories.tsx +357 -0
  107. package/src/components/Image/Image.tsx +168 -0
  108. package/src/components/Image/index.ts +2 -0
  109. package/src/components/Input/Input.stories.tsx +164 -0
  110. package/src/components/Input/Input.tsx +274 -0
  111. package/src/components/Input/index.ts +2 -0
  112. package/src/components/Link/Link.stories.tsx +187 -0
  113. package/src/components/Link/Link.tsx +104 -0
  114. package/src/components/Link/index.ts +2 -0
  115. package/src/components/Menu/Menu.stories.tsx +363 -0
  116. package/src/components/Menu/Menu.tsx +238 -0
  117. package/src/components/Menu/index.ts +2 -0
  118. package/src/components/Modal/Modal.stories.tsx +156 -0
  119. package/src/components/Modal/Modal.tsx +280 -0
  120. package/src/components/Modal/index.ts +11 -0
  121. package/src/components/Popover/Popover.stories.tsx +330 -0
  122. package/src/components/Popover/Popover.tsx +315 -0
  123. package/src/components/Popover/index.ts +11 -0
  124. package/src/components/Portal/Portal.stories.tsx +376 -0
  125. package/src/components/Portal/Portal.tsx +100 -0
  126. package/src/components/Portal/index.ts +2 -0
  127. package/src/components/Pressable/Pressable.stories.tsx +338 -0
  128. package/src/components/Pressable/Pressable.tsx +71 -0
  129. package/src/components/Pressable/index.ts +2 -0
  130. package/src/components/Progress/Progress.stories.tsx +131 -0
  131. package/src/components/Progress/Progress.tsx +219 -0
  132. package/src/components/Progress/index.ts +2 -0
  133. package/src/components/Radio/Radio.stories.tsx +101 -0
  134. package/src/components/Radio/Radio.tsx +234 -0
  135. package/src/components/Radio/index.ts +2 -0
  136. package/src/components/Select/Select.stories.tsx +908 -0
  137. package/src/components/Select/Select.tsx +659 -0
  138. package/src/components/Select/index.ts +8 -0
  139. package/src/components/Skeleton/Skeleton.stories.tsx +154 -0
  140. package/src/components/Skeleton/Skeleton.tsx +192 -0
  141. package/src/components/Skeleton/index.ts +8 -0
  142. package/src/components/Slider/Slider.stories.tsx +363 -0
  143. package/src/components/Slider/Slider.tsx +209 -0
  144. package/src/components/Slider/index.ts +2 -0
  145. package/src/components/Spinner/Spinner.stories.tsx +108 -0
  146. package/src/components/Spinner/Spinner.tsx +121 -0
  147. package/src/components/Spinner/index.ts +2 -0
  148. package/src/components/Switch/Switch.stories.tsx +116 -0
  149. package/src/components/Switch/Switch.tsx +172 -0
  150. package/src/components/Switch/index.ts +2 -0
  151. package/src/components/Table/Table.stories.tsx +417 -0
  152. package/src/components/Table/Table.tsx +233 -0
  153. package/src/components/Table/index.ts +2 -0
  154. package/src/components/Text/Text.stories.tsx +93 -0
  155. package/src/components/Text/Text.tsx +119 -0
  156. package/src/components/Text/index.ts +2 -0
  157. package/src/components/Textarea/Textarea.stories.tsx +280 -0
  158. package/src/components/Textarea/Textarea.tsx +212 -0
  159. package/src/components/Textarea/index.ts +2 -0
  160. package/src/components/Toast/Toast.stories.tsx +446 -0
  161. package/src/components/Toast/Toast.tsx +221 -0
  162. package/src/components/Toast/index.ts +2 -0
  163. package/src/components/Tooltip/Tooltip.stories.tsx +354 -0
  164. package/src/components/Tooltip/Tooltip.tsx +261 -0
  165. package/src/components/Tooltip/index.ts +2 -0
  166. package/src/components/VStack/VStack.stories.tsx +183 -0
  167. package/src/components/VStack/VStack.tsx +76 -0
  168. package/src/components/VStack/index.ts +2 -0
  169. package/src/components/index.ts +62 -0
  170. package/src/hooks/index.ts +7 -0
  171. package/src/hooks/useControllableState.ts +41 -0
  172. package/src/hooks/useDisclosure.ts +51 -0
  173. package/src/index.ts +22 -0
  174. package/src/stories/Button.stories.tsx +53 -0
  175. package/src/stories/Button.tsx +101 -0
  176. package/src/stories/Configure.mdx +364 -0
  177. package/src/stories/Header.stories.tsx +33 -0
  178. package/src/stories/Header.tsx +75 -0
  179. package/src/stories/Page.stories.tsx +25 -0
  180. package/src/stories/Page.tsx +154 -0
  181. package/src/stories/assets/accessibility.png +0 -0
  182. package/src/stories/assets/accessibility.svg +1 -0
  183. package/src/stories/assets/addon-library.png +0 -0
  184. package/src/stories/assets/assets.png +0 -0
  185. package/src/stories/assets/avif-test-image.avif +0 -0
  186. package/src/stories/assets/context.png +0 -0
  187. package/src/stories/assets/discord.svg +1 -0
  188. package/src/stories/assets/docs.png +0 -0
  189. package/src/stories/assets/figma-plugin.png +0 -0
  190. package/src/stories/assets/github.svg +1 -0
  191. package/src/stories/assets/share.png +0 -0
  192. package/src/stories/assets/styling.png +0 -0
  193. package/src/stories/assets/testing.png +0 -0
  194. package/src/stories/assets/theming.png +0 -0
  195. package/src/stories/assets/tutorials.svg +1 -0
  196. package/src/stories/assets/youtube.svg +1 -0
  197. package/src/styles/index.ts +7 -0
  198. package/src/styles/tokens.ts +318 -0
  199. package/src/styles/unistyles.ts +254 -0
  200. package/src/utils/createContext.tsx +25 -0
  201. package/src/utils/index.ts +7 -0
  202. package/src/utils/mergeRefs.ts +21 -0
  203. package/tsconfig.json +26 -0
  204. package/urbint-cl-1.0.0.tgz +0 -0
  205. package/vitest.config.ts +37 -0
  206. package/vitest.shims.d.ts +1 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "mcpServers": {
3
+ "urbint-cl": {
4
+ "command": "node",
5
+ "args": ["__REPLACE_WITH_ABSOLUTE_PATH__/mcp-server/dist/index.js"],
6
+ "env": {}
7
+ }
8
+ }
9
+ }
10
+
@@ -0,0 +1,192 @@
1
+ # Urbint Component Library - MCP Server
2
+
3
+ This MCP (Model Context Protocol) server enables AI assistants across your organization to interact with the Urbint Component Library design system.
4
+
5
+ ## Features
6
+
7
+ The MCP server provides the following capabilities:
8
+
9
+ ### Tools
10
+
11
+ | Tool | Description |
12
+ |------|-------------|
13
+ | `list_components` | List all available components, optionally filter by category |
14
+ | `get_component` | Get detailed documentation for a specific component |
15
+ | `search_components` | Search components by name, description, or tags |
16
+ | `get_design_tokens` | Get design tokens (colors, spacing, typography, etc.) |
17
+ | `search_tokens` | Search for specific design tokens |
18
+ | `generate_component_code` | Generate code snippets for components |
19
+ | `get_form_pattern` | Get form pattern code with validation |
20
+ | `get_layout_pattern` | Get layout pattern code (dashboard, sidebar, etc.) |
21
+
22
+ ### Resources
23
+
24
+ - `urbint://docs/overview` - Library overview and getting started
25
+ - `urbint://docs/components` - Complete component documentation
26
+ - `urbint://docs/tokens` - All design tokens
27
+ - `urbint://docs/installation` - Installation guide
28
+ - `urbint://component/{name}` - Individual component documentation
29
+
30
+ ## Installation
31
+
32
+ ```bash
33
+ cd mcp-server
34
+ npm install
35
+ npm run build
36
+ ```
37
+
38
+ ## Usage with Cursor/Claude
39
+
40
+ Add this to your MCP settings (e.g., `~/.cursor/mcp.json` or Cursor settings):
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "urbint-cl": {
46
+ "command": "node",
47
+ "args": ["/path/to/urbint-cl/mcp-server/dist/index.js"]
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ ### For Cursor IDE
54
+
55
+ 1. Open Cursor Settings (`Cmd+,`)
56
+ 2. Search for "MCP"
57
+ 3. Add the server configuration:
58
+
59
+ ```json
60
+ {
61
+ "urbint-cl": {
62
+ "command": "node",
63
+ "args": ["/absolute/path/to/urbint-cl/mcp-server/dist/index.js"]
64
+ }
65
+ }
66
+ ```
67
+
68
+ ### For Claude Desktop
69
+
70
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
71
+
72
+ ```json
73
+ {
74
+ "mcpServers": {
75
+ "urbint-cl": {
76
+ "command": "node",
77
+ "args": ["/absolute/path/to/urbint-cl/mcp-server/dist/index.js"]
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ ## Development
84
+
85
+ ```bash
86
+ # Run in development mode
87
+ npm run dev
88
+
89
+ # Build
90
+ npm run build
91
+
92
+ # Start production server
93
+ npm start
94
+ ```
95
+
96
+ ## Example Interactions
97
+
98
+ Once configured, you can ask Claude/AI assistants:
99
+
100
+ - "List all form components in the Urbint design system"
101
+ - "Show me how to use the Button component"
102
+ - "What colors are available in the design system?"
103
+ - "Generate a form with email, password, and remember me fields"
104
+ - "Show me a dashboard layout pattern"
105
+ - "Search for loading indicators"
106
+
107
+ ## API Reference
108
+
109
+ ### list_components
110
+
111
+ ```json
112
+ {
113
+ "category": "form" // optional: layout, typography, form, feedback, data-display, overlay, action, utility
114
+ }
115
+ ```
116
+
117
+ ### get_component
118
+
119
+ ```json
120
+ {
121
+ "name": "Button" // required: component name
122
+ }
123
+ ```
124
+
125
+ ### search_components
126
+
127
+ ```json
128
+ {
129
+ "query": "loading" // required: search query
130
+ }
131
+ ```
132
+
133
+ ### get_design_tokens
134
+
135
+ ```json
136
+ {
137
+ "category": "colors" // optional: colors, spacing, typography, borderRadius, elevation, all
138
+ }
139
+ ```
140
+
141
+ ### generate_component_code
142
+
143
+ ```json
144
+ {
145
+ "component": "Button",
146
+ "variant": "primary",
147
+ "withState": true,
148
+ "props": { "size": "lg" }
149
+ }
150
+ ```
151
+
152
+ ### get_form_pattern
153
+
154
+ ```json
155
+ {
156
+ "fields": [
157
+ { "name": "email", "type": "email", "label": "Email", "required": true },
158
+ { "name": "password", "type": "password", "label": "Password", "required": true }
159
+ ],
160
+ "includeValidation": true
161
+ }
162
+ ```
163
+
164
+ ### get_layout_pattern
165
+
166
+ ```json
167
+ {
168
+ "pattern": "dashboard" // card-grid, sidebar-layout, header-content, list-detail, dashboard, form-layout
169
+ }
170
+ ```
171
+
172
+ ## Troubleshooting
173
+
174
+ ### Server not connecting
175
+
176
+ 1. Ensure the server is built: `npm run build`
177
+ 2. Check the path in your MCP configuration is absolute
178
+ 3. Restart Cursor/Claude after configuration changes
179
+
180
+ ### Tools not appearing
181
+
182
+ 1. Wait for the server to initialize (check console for "MCP Server running")
183
+ 2. Refresh the MCP connection in Cursor settings
184
+
185
+ ## Contributing
186
+
187
+ To add new components to the registry:
188
+
189
+ 1. Edit `src/registry/components.ts`
190
+ 2. Add component metadata following the `ComponentMetadata` interface
191
+ 3. Rebuild with `npm run build`
192
+