@lglab/compose-ui-mcp 0.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 (48) hide show
  1. package/README.md +11 -0
  2. package/dist/assets/llms/accordion.md +184 -0
  3. package/dist/assets/llms/alert-dialog.md +306 -0
  4. package/dist/assets/llms/autocomplete.md +756 -0
  5. package/dist/assets/llms/avatar.md +166 -0
  6. package/dist/assets/llms/badge.md +478 -0
  7. package/dist/assets/llms/button.md +238 -0
  8. package/dist/assets/llms/card.md +264 -0
  9. package/dist/assets/llms/checkbox-group.md +158 -0
  10. package/dist/assets/llms/checkbox.md +83 -0
  11. package/dist/assets/llms/collapsible.md +165 -0
  12. package/dist/assets/llms/combobox.md +1255 -0
  13. package/dist/assets/llms/context-menu.md +371 -0
  14. package/dist/assets/llms/dialog.md +592 -0
  15. package/dist/assets/llms/drawer.md +437 -0
  16. package/dist/assets/llms/field.md +74 -0
  17. package/dist/assets/llms/form.md +1931 -0
  18. package/dist/assets/llms/input.md +47 -0
  19. package/dist/assets/llms/menu.md +484 -0
  20. package/dist/assets/llms/menubar.md +804 -0
  21. package/dist/assets/llms/meter.md +181 -0
  22. package/dist/assets/llms/navigation-menu.md +187 -0
  23. package/dist/assets/llms/number-field.md +243 -0
  24. package/dist/assets/llms/pagination.md +514 -0
  25. package/dist/assets/llms/popover.md +206 -0
  26. package/dist/assets/llms/preview-card.md +146 -0
  27. package/dist/assets/llms/progress.md +60 -0
  28. package/dist/assets/llms/radio-group.md +105 -0
  29. package/dist/assets/llms/scroll-area.md +132 -0
  30. package/dist/assets/llms/select.md +276 -0
  31. package/dist/assets/llms/separator.md +49 -0
  32. package/dist/assets/llms/skeleton.md +96 -0
  33. package/dist/assets/llms/slider.md +161 -0
  34. package/dist/assets/llms/switch.md +101 -0
  35. package/dist/assets/llms/table.md +1325 -0
  36. package/dist/assets/llms/tabs.md +327 -0
  37. package/dist/assets/llms/textarea.md +38 -0
  38. package/dist/assets/llms/toast.md +349 -0
  39. package/dist/assets/llms/toggle-group.md +261 -0
  40. package/dist/assets/llms/toggle.md +161 -0
  41. package/dist/assets/llms/toolbar.md +148 -0
  42. package/dist/assets/llms/tooltip.md +486 -0
  43. package/dist/assets/llms-full.txt +14515 -0
  44. package/dist/assets/llms.txt +65 -0
  45. package/dist/index.d.mts +1 -0
  46. package/dist/index.mjs +161 -0
  47. package/dist/index.mjs.map +1 -0
  48. package/package.json +54 -0
@@ -0,0 +1,371 @@
1
+ # Context Menu
2
+
3
+ A menu triggered by right-click or long press, rendering at the pointer position.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @lglab/compose-ui
9
+ ```
10
+
11
+ ## Import
12
+
13
+ ```tsx
14
+ import { ContextMenuRoot, ContextMenuTrigger, ContextMenuPortal, ContextMenuPositioner, ContextMenuPopup, ContextMenuArrow, ContextMenuItem, ContextMenuSeparator, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuRadioItemLabel, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuCheckboxItemLabel, ContextMenuSubmenuTrigger, ContextMenuSubmenuRoot } from '@lglab/compose-ui'
15
+ ```
16
+
17
+ ## Examples
18
+
19
+ ### Basic
20
+
21
+ ```tsx
22
+ import {
23
+ ContextMenuItem,
24
+ ContextMenuPopup,
25
+ ContextMenuPortal,
26
+ ContextMenuPositioner,
27
+ ContextMenuRoot,
28
+ ContextMenuSeparator,
29
+ ContextMenuTrigger,
30
+ } from '@lglab/compose-ui/context-menu'
31
+
32
+ export default function DefaultExample() {
33
+ return (
34
+ <ContextMenuRoot>
35
+ <ContextMenuTrigger className='flex h-40 w-full sm:w-72 p-2 items-center justify-center rounded-lg border border-dashed border-border bg-muted/50 text-sm text-muted-foreground text-center'>
36
+ Right-click here
37
+ </ContextMenuTrigger>
38
+ <ContextMenuPortal>
39
+ <ContextMenuPositioner>
40
+ <ContextMenuPopup>
41
+ <ContextMenuItem>Profile</ContextMenuItem>
42
+ <ContextMenuItem>Settings</ContextMenuItem>
43
+ <ContextMenuSeparator />
44
+ <ContextMenuItem>Logout</ContextMenuItem>
45
+ </ContextMenuPopup>
46
+ </ContextMenuPositioner>
47
+ </ContextMenuPortal>
48
+ </ContextMenuRoot>
49
+ )
50
+ }
51
+ ```
52
+
53
+ ### With Icons
54
+
55
+ ```tsx
56
+ import {
57
+ ContextMenuItem,
58
+ ContextMenuPopup,
59
+ ContextMenuPortal,
60
+ ContextMenuPositioner,
61
+ ContextMenuRoot,
62
+ ContextMenuSeparator,
63
+ ContextMenuTrigger,
64
+ } from '@lglab/compose-ui/context-menu'
65
+ import { Copy, LogOut, PenLine, Settings, Trash2, User } from 'lucide-react'
66
+
67
+ export default function WithIconsExample() {
68
+ return (
69
+ <ContextMenuRoot>
70
+ <ContextMenuTrigger className='flex h-40 w-full sm:w-72 p-2 items-center justify-center rounded-lg border border-dashed border-border bg-muted/50 text-sm text-muted-foreground text-center'>
71
+ Right-click here
72
+ </ContextMenuTrigger>
73
+ <ContextMenuPortal>
74
+ <ContextMenuPositioner>
75
+ <ContextMenuPopup>
76
+ <ContextMenuItem>
77
+ <User className='size-4' />
78
+ Profile
79
+ </ContextMenuItem>
80
+ <ContextMenuItem>
81
+ <Settings className='size-4' />
82
+ Settings
83
+ </ContextMenuItem>
84
+ <ContextMenuSeparator />
85
+ <ContextMenuItem>
86
+ <PenLine className='size-4' />
87
+ Edit
88
+ </ContextMenuItem>
89
+ <ContextMenuItem>
90
+ <Copy className='size-4' />
91
+ Duplicate
92
+ </ContextMenuItem>
93
+ <ContextMenuSeparator />
94
+ <ContextMenuItem className='text-destructive'>
95
+ <Trash2 className='size-4' />
96
+ Delete
97
+ </ContextMenuItem>
98
+ <ContextMenuItem>
99
+ <LogOut className='size-4' />
100
+ Logout
101
+ </ContextMenuItem>
102
+ </ContextMenuPopup>
103
+ </ContextMenuPositioner>
104
+ </ContextMenuPortal>
105
+ </ContextMenuRoot>
106
+ )
107
+ }
108
+ ```
109
+
110
+ ### Groups
111
+
112
+ ```tsx
113
+ import {
114
+ ContextMenuGroup,
115
+ ContextMenuGroupLabel,
116
+ ContextMenuItem,
117
+ ContextMenuPopup,
118
+ ContextMenuPortal,
119
+ ContextMenuPositioner,
120
+ ContextMenuRoot,
121
+ ContextMenuSeparator,
122
+ ContextMenuTrigger,
123
+ } from '@lglab/compose-ui/context-menu'
124
+ import { Copy, FilePlus, FolderOpen, Save, Settings, User } from 'lucide-react'
125
+
126
+ export default function GroupsExample() {
127
+ return (
128
+ <ContextMenuRoot>
129
+ <ContextMenuTrigger className='flex h-40 w-full sm:w-72 p-2 items-center justify-center rounded-lg border border-dashed border-border bg-muted/50 text-sm text-muted-foreground text-center'>
130
+ Right-click for grouped options
131
+ </ContextMenuTrigger>
132
+ <ContextMenuPortal>
133
+ <ContextMenuPositioner>
134
+ <ContextMenuPopup>
135
+ <ContextMenuGroup>
136
+ <ContextMenuGroupLabel>File</ContextMenuGroupLabel>
137
+ <ContextMenuItem>
138
+ <FilePlus className='size-4' />
139
+ New File
140
+ </ContextMenuItem>
141
+ <ContextMenuItem>
142
+ <FolderOpen className='size-4' />
143
+ Open
144
+ </ContextMenuItem>
145
+ <ContextMenuItem>
146
+ <Save className='size-4' />
147
+ Save
148
+ </ContextMenuItem>
149
+ </ContextMenuGroup>
150
+ <ContextMenuSeparator />
151
+ <ContextMenuGroup>
152
+ <ContextMenuGroupLabel>Edit</ContextMenuGroupLabel>
153
+ <ContextMenuItem>
154
+ <Copy className='size-4' />
155
+ Copy
156
+ </ContextMenuItem>
157
+ </ContextMenuGroup>
158
+ <ContextMenuSeparator />
159
+ <ContextMenuGroup>
160
+ <ContextMenuGroupLabel>Account</ContextMenuGroupLabel>
161
+ <ContextMenuItem>
162
+ <User className='size-4' />
163
+ Profile
164
+ </ContextMenuItem>
165
+ <ContextMenuItem>
166
+ <Settings className='size-4' />
167
+ Settings
168
+ </ContextMenuItem>
169
+ </ContextMenuGroup>
170
+ </ContextMenuPopup>
171
+ </ContextMenuPositioner>
172
+ </ContextMenuPortal>
173
+ </ContextMenuRoot>
174
+ )
175
+ }
176
+ ```
177
+
178
+ ### Checkbox Items
179
+
180
+ ```tsx
181
+ import {
182
+ ContextMenuCheckboxItem,
183
+ ContextMenuCheckboxItemIndicator,
184
+ ContextMenuCheckboxItemLabel,
185
+ ContextMenuPopup,
186
+ ContextMenuPortal,
187
+ ContextMenuPositioner,
188
+ ContextMenuRoot,
189
+ ContextMenuSeparator,
190
+ ContextMenuTrigger,
191
+ } from '@lglab/compose-ui/context-menu'
192
+ import { Check } from 'lucide-react'
193
+ import * as React from 'react'
194
+
195
+ export default function CheckboxItemsExample() {
196
+ const [showStatusBar, setShowStatusBar] = React.useState(true)
197
+ const [showActivityBar, setShowActivityBar] = React.useState(false)
198
+ const [showPanel, setShowPanel] = React.useState(false)
199
+
200
+ return (
201
+ <ContextMenuRoot>
202
+ <ContextMenuTrigger className='flex h-40 w-full sm:w-72 p-2 items-center justify-center rounded-lg border border-dashed border-border bg-muted/50 text-sm text-muted-foreground text-center'>
203
+ Right-click to toggle options
204
+ </ContextMenuTrigger>
205
+ <ContextMenuPortal>
206
+ <ContextMenuPositioner>
207
+ <ContextMenuPopup>
208
+ <ContextMenuCheckboxItem
209
+ checked={showStatusBar}
210
+ onCheckedChange={setShowStatusBar}
211
+ >
212
+ <ContextMenuCheckboxItemIndicator>
213
+ <Check className='size-3.5' />
214
+ </ContextMenuCheckboxItemIndicator>
215
+ <ContextMenuCheckboxItemLabel>Status Bar</ContextMenuCheckboxItemLabel>
216
+ </ContextMenuCheckboxItem>
217
+ <ContextMenuCheckboxItem
218
+ checked={showActivityBar}
219
+ onCheckedChange={setShowActivityBar}
220
+ >
221
+ <ContextMenuCheckboxItemIndicator>
222
+ <Check className='size-3.5' />
223
+ </ContextMenuCheckboxItemIndicator>
224
+ <ContextMenuCheckboxItemLabel>Activity Bar</ContextMenuCheckboxItemLabel>
225
+ </ContextMenuCheckboxItem>
226
+ <ContextMenuSeparator />
227
+ <ContextMenuCheckboxItem checked={showPanel} onCheckedChange={setShowPanel}>
228
+ <ContextMenuCheckboxItemIndicator>
229
+ <Check className='size-3.5' />
230
+ </ContextMenuCheckboxItemIndicator>
231
+ <ContextMenuCheckboxItemLabel>Panel</ContextMenuCheckboxItemLabel>
232
+ </ContextMenuCheckboxItem>
233
+ </ContextMenuPopup>
234
+ </ContextMenuPositioner>
235
+ </ContextMenuPortal>
236
+ </ContextMenuRoot>
237
+ )
238
+ }
239
+ ```
240
+
241
+ ### Radio Group
242
+
243
+ ```tsx
244
+ import {
245
+ ContextMenuGroup,
246
+ ContextMenuGroupLabel,
247
+ ContextMenuPopup,
248
+ ContextMenuPortal,
249
+ ContextMenuPositioner,
250
+ ContextMenuRadioGroup,
251
+ ContextMenuRadioItem,
252
+ ContextMenuRadioItemIndicator,
253
+ ContextMenuRadioItemLabel,
254
+ ContextMenuRoot,
255
+ ContextMenuTrigger,
256
+ } from '@lglab/compose-ui/context-menu'
257
+ import { Check } from 'lucide-react'
258
+ import * as React from 'react'
259
+
260
+ export default function RadioGroupExample() {
261
+ const [theme, setTheme] = React.useState('system')
262
+
263
+ return (
264
+ <ContextMenuRoot>
265
+ <ContextMenuTrigger className='flex h-40 w-full sm:w-72 p-2 items-center justify-center rounded-lg border border-dashed border-border bg-muted/50 text-sm text-muted-foreground text-center'>
266
+ Right-click to select theme
267
+ </ContextMenuTrigger>
268
+ <ContextMenuPortal>
269
+ <ContextMenuPositioner>
270
+ <ContextMenuPopup>
271
+ <ContextMenuGroup>
272
+ <ContextMenuGroupLabel>Theme</ContextMenuGroupLabel>
273
+ <ContextMenuRadioGroup value={theme} onValueChange={setTheme}>
274
+ <ContextMenuRadioItem value='light'>
275
+ <ContextMenuRadioItemIndicator>
276
+ <Check className='size-3.5' />
277
+ </ContextMenuRadioItemIndicator>
278
+ <ContextMenuRadioItemLabel>Light</ContextMenuRadioItemLabel>
279
+ </ContextMenuRadioItem>
280
+ <ContextMenuRadioItem value='dark'>
281
+ <ContextMenuRadioItemIndicator>
282
+ <Check className='size-3.5' />
283
+ </ContextMenuRadioItemIndicator>
284
+ <ContextMenuRadioItemLabel>Dark</ContextMenuRadioItemLabel>
285
+ </ContextMenuRadioItem>
286
+ <ContextMenuRadioItem value='system'>
287
+ <ContextMenuRadioItemIndicator>
288
+ <Check className='size-3.5' />
289
+ </ContextMenuRadioItemIndicator>
290
+ <ContextMenuRadioItemLabel>System</ContextMenuRadioItemLabel>
291
+ </ContextMenuRadioItem>
292
+ </ContextMenuRadioGroup>
293
+ </ContextMenuGroup>
294
+ </ContextMenuPopup>
295
+ </ContextMenuPositioner>
296
+ </ContextMenuPortal>
297
+ </ContextMenuRoot>
298
+ )
299
+ }
300
+ ```
301
+
302
+ ### Submenu
303
+
304
+ ```tsx
305
+ import {
306
+ ContextMenuItem,
307
+ ContextMenuPopup,
308
+ ContextMenuPortal,
309
+ ContextMenuPositioner,
310
+ ContextMenuRoot,
311
+ ContextMenuSeparator,
312
+ ContextMenuSubmenuRoot,
313
+ ContextMenuSubmenuTrigger,
314
+ ContextMenuTrigger,
315
+ } from '@lglab/compose-ui/context-menu'
316
+ import { ChevronRight } from 'lucide-react'
317
+
318
+ export default function SubmenuExample() {
319
+ return (
320
+ <ContextMenuRoot>
321
+ <ContextMenuTrigger className='flex h-40 w-full sm:w-72 p-2 items-center justify-center rounded-lg border border-dashed border-border bg-muted/50 text-sm text-muted-foreground text-center'>
322
+ Right-click for share options
323
+ </ContextMenuTrigger>
324
+ <ContextMenuPortal>
325
+ <ContextMenuPositioner>
326
+ <ContextMenuPopup>
327
+ <ContextMenuItem>Copy Link</ContextMenuItem>
328
+ <ContextMenuItem>Email Link</ContextMenuItem>
329
+ <ContextMenuSeparator />
330
+ <ContextMenuSubmenuRoot>
331
+ <ContextMenuSubmenuTrigger>
332
+ Social Media
333
+ <ChevronRight className='size-4' />
334
+ </ContextMenuSubmenuTrigger>
335
+ <ContextMenuPortal>
336
+ <ContextMenuPositioner side='right' sideOffset={4}>
337
+ <ContextMenuPopup>
338
+ <ContextMenuItem>Twitter</ContextMenuItem>
339
+ <ContextMenuItem>Facebook</ContextMenuItem>
340
+ <ContextMenuItem>LinkedIn</ContextMenuItem>
341
+ <ContextMenuSubmenuRoot>
342
+ <ContextMenuSubmenuTrigger>
343
+ More
344
+ <ChevronRight className='size-4' />
345
+ </ContextMenuSubmenuTrigger>
346
+ <ContextMenuPortal>
347
+ <ContextMenuPositioner side='right' sideOffset={4}>
348
+ <ContextMenuPopup>
349
+ <ContextMenuItem>Reddit</ContextMenuItem>
350
+ <ContextMenuItem>Pinterest</ContextMenuItem>
351
+ <ContextMenuItem>Mastodon</ContextMenuItem>
352
+ </ContextMenuPopup>
353
+ </ContextMenuPositioner>
354
+ </ContextMenuPortal>
355
+ </ContextMenuSubmenuRoot>
356
+ </ContextMenuPopup>
357
+ </ContextMenuPositioner>
358
+ </ContextMenuPortal>
359
+ </ContextMenuSubmenuRoot>
360
+ </ContextMenuPopup>
361
+ </ContextMenuPositioner>
362
+ </ContextMenuPortal>
363
+ </ContextMenuRoot>
364
+ )
365
+ }
366
+ ```
367
+
368
+ ## Resources
369
+
370
+ - [Base UI Context Menu Documentation](https://base-ui.com/react/components/context-menu)
371
+ - [API Reference](https://base-ui.com/react/components/context-menu#api-reference)