@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,486 @@
1
+ # Tooltip
2
+
3
+ A popup that appears when an element is hovered or focused, showing a hint for sighted users.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @lglab/compose-ui
9
+ ```
10
+
11
+ ## Import
12
+
13
+ ```tsx
14
+ import { TooltipProvider, TooltipRoot, TooltipTrigger, TooltipPortal, TooltipPositioner, TooltipPopup, TooltipArrow } from '@lglab/compose-ui'
15
+ ```
16
+
17
+ ## Examples
18
+
19
+ ### Default
20
+
21
+ ```tsx
22
+ import { Button } from '@lglab/compose-ui/button'
23
+ import {
24
+ TooltipArrow,
25
+ TooltipPopup,
26
+ TooltipPortal,
27
+ TooltipPositioner,
28
+ TooltipRoot,
29
+ TooltipTrigger,
30
+ } from '@lglab/compose-ui/tooltip'
31
+ import { Plus } from 'lucide-react'
32
+
33
+ export default function DefaultExample() {
34
+ return (
35
+ <TooltipRoot>
36
+ <TooltipTrigger
37
+ render={(props) => (
38
+ <Button {...props} variant='outline' size='icon'>
39
+ <Plus className='size-4' />
40
+ <span className='sr-only'>Add item</span>
41
+ </Button>
42
+ )}
43
+ />
44
+ <TooltipPortal>
45
+ <TooltipPositioner>
46
+ <TooltipPopup>
47
+ <TooltipArrow />
48
+ Add item
49
+ </TooltipPopup>
50
+ </TooltipPositioner>
51
+ </TooltipPortal>
52
+ </TooltipRoot>
53
+ )
54
+ }
55
+ ```
56
+
57
+ ### Variants
58
+
59
+ ```tsx
60
+ import { Button } from '@lglab/compose-ui/button'
61
+ import {
62
+ TooltipArrow,
63
+ TooltipPopup,
64
+ TooltipPortal,
65
+ TooltipPositioner,
66
+ TooltipRoot,
67
+ TooltipTrigger,
68
+ } from '@lglab/compose-ui/tooltip'
69
+
70
+ export default function VariantsExample() {
71
+ return (
72
+ <div className='flex items-center gap-2'>
73
+ <TooltipRoot variant='default'>
74
+ <TooltipTrigger render={(props) => <Button {...props}>Default</Button>} />
75
+ <TooltipPortal>
76
+ <TooltipPositioner>
77
+ <TooltipPopup>
78
+ <TooltipArrow />
79
+ Default tooltip
80
+ </TooltipPopup>
81
+ </TooltipPositioner>
82
+ </TooltipPortal>
83
+ </TooltipRoot>
84
+
85
+ <TooltipRoot variant='secondary'>
86
+ <TooltipTrigger
87
+ render={(props) => (
88
+ <Button {...props} variant='secondary'>
89
+ Secondary
90
+ </Button>
91
+ )}
92
+ />
93
+ <TooltipPortal>
94
+ <TooltipPositioner>
95
+ <TooltipPopup>
96
+ <TooltipArrow />
97
+ Secondary tooltip
98
+ </TooltipPopup>
99
+ </TooltipPositioner>
100
+ </TooltipPortal>
101
+ </TooltipRoot>
102
+
103
+ <TooltipRoot variant='outline'>
104
+ <TooltipTrigger
105
+ render={(props) => (
106
+ <Button {...props} variant='outline'>
107
+ Outline
108
+ </Button>
109
+ )}
110
+ />
111
+ <TooltipPortal>
112
+ <TooltipPositioner>
113
+ <TooltipPopup>
114
+ <TooltipArrow />
115
+ Outline tooltip
116
+ </TooltipPopup>
117
+ </TooltipPositioner>
118
+ </TooltipPortal>
119
+ </TooltipRoot>
120
+ </div>
121
+ )
122
+ }
123
+ ```
124
+
125
+ ### No Arrow
126
+
127
+ ```tsx
128
+ import { Button } from '@lglab/compose-ui/button'
129
+ import {
130
+ TooltipPopup,
131
+ TooltipPortal,
132
+ TooltipPositioner,
133
+ TooltipRoot,
134
+ TooltipTrigger,
135
+ } from '@lglab/compose-ui/tooltip'
136
+ import { Info } from 'lucide-react'
137
+
138
+ export default function NoArrowExample() {
139
+ return (
140
+ <TooltipRoot>
141
+ <TooltipTrigger
142
+ render={(props) => (
143
+ <Button {...props} variant='outline' size='icon'>
144
+ <Info className='size-4' />
145
+ <span className='sr-only'>Information</span>
146
+ </Button>
147
+ )}
148
+ />
149
+ <TooltipPortal>
150
+ <TooltipPositioner>
151
+ <TooltipPopup>Tooltip without arrow</TooltipPopup>
152
+ </TooltipPositioner>
153
+ </TooltipPortal>
154
+ </TooltipRoot>
155
+ )
156
+ }
157
+ ```
158
+
159
+ ### Sides
160
+
161
+ ```tsx
162
+ import { Button } from '@lglab/compose-ui/button'
163
+ import {
164
+ TooltipArrow,
165
+ TooltipPopup,
166
+ TooltipPortal,
167
+ TooltipPositioner,
168
+ TooltipRoot,
169
+ TooltipTrigger,
170
+ } from '@lglab/compose-ui/tooltip'
171
+ import { ArrowDown, ArrowLeft, ArrowRight, ArrowUp } from 'lucide-react'
172
+
173
+ export default function SidesExample() {
174
+ return (
175
+ <div className='flex flex-wrap items-center gap-2'>
176
+ <TooltipRoot>
177
+ <TooltipTrigger
178
+ render={(props) => (
179
+ <Button {...props} variant='outline' size='icon'>
180
+ <ArrowUp className='size-4' />
181
+ <span className='sr-only'>Top</span>
182
+ </Button>
183
+ )}
184
+ />
185
+ <TooltipPortal>
186
+ <TooltipPositioner side='top'>
187
+ <TooltipPopup>
188
+ <TooltipArrow />
189
+ Top
190
+ </TooltipPopup>
191
+ </TooltipPositioner>
192
+ </TooltipPortal>
193
+ </TooltipRoot>
194
+
195
+ <TooltipRoot>
196
+ <TooltipTrigger
197
+ render={(props) => (
198
+ <Button {...props} variant='outline' size='icon'>
199
+ <ArrowDown className='size-4' />
200
+ <span className='sr-only'>Bottom</span>
201
+ </Button>
202
+ )}
203
+ />
204
+ <TooltipPortal>
205
+ <TooltipPositioner side='bottom'>
206
+ <TooltipPopup>
207
+ <TooltipArrow />
208
+ Bottom
209
+ </TooltipPopup>
210
+ </TooltipPositioner>
211
+ </TooltipPortal>
212
+ </TooltipRoot>
213
+
214
+ <TooltipRoot>
215
+ <TooltipTrigger
216
+ render={(props) => (
217
+ <Button {...props} variant='outline' size='icon'>
218
+ <ArrowLeft className='size-4' />
219
+ <span className='sr-only'>Left</span>
220
+ </Button>
221
+ )}
222
+ />
223
+ <TooltipPortal>
224
+ <TooltipPositioner side='left'>
225
+ <TooltipPopup>
226
+ <TooltipArrow />
227
+ Left
228
+ </TooltipPopup>
229
+ </TooltipPositioner>
230
+ </TooltipPortal>
231
+ </TooltipRoot>
232
+
233
+ <TooltipRoot>
234
+ <TooltipTrigger
235
+ render={(props) => (
236
+ <Button {...props} variant='outline' size='icon'>
237
+ <ArrowRight className='size-4' />
238
+ <span className='sr-only'>Right</span>
239
+ </Button>
240
+ )}
241
+ />
242
+ <TooltipPortal>
243
+ <TooltipPositioner side='right'>
244
+ <TooltipPopup>
245
+ <TooltipArrow />
246
+ Right
247
+ </TooltipPopup>
248
+ </TooltipPositioner>
249
+ </TooltipPortal>
250
+ </TooltipRoot>
251
+ </div>
252
+ )
253
+ }
254
+ ```
255
+
256
+ ### Track Cursor
257
+
258
+ ```tsx
259
+ import {
260
+ TooltipArrow,
261
+ TooltipPopup,
262
+ TooltipPortal,
263
+ TooltipPositioner,
264
+ TooltipRoot,
265
+ TooltipTrigger,
266
+ } from '@lglab/compose-ui/tooltip'
267
+
268
+ export default function TrackCursorExample() {
269
+ return (
270
+ <TooltipRoot trackCursorAxis='both'>
271
+ <TooltipTrigger
272
+ render={(props) => (
273
+ <div
274
+ {...props}
275
+ className='flex h-32 w-64 cursor-default items-center justify-center rounded-md border border-dashed border-border bg-muted/50 text-sm text-muted-foreground'
276
+ >
277
+ Hover anywhere in this area
278
+ </div>
279
+ )}
280
+ />
281
+ <TooltipPortal>
282
+ <TooltipPositioner>
283
+ <TooltipPopup>
284
+ <TooltipArrow />
285
+ Following your cursor
286
+ </TooltipPopup>
287
+ </TooltipPositioner>
288
+ </TooltipPortal>
289
+ </TooltipRoot>
290
+ )
291
+ }
292
+ ```
293
+
294
+ ### Delay
295
+
296
+ ```tsx
297
+ import { Button } from '@lglab/compose-ui/button'
298
+ import {
299
+ TooltipArrow,
300
+ TooltipPopup,
301
+ TooltipPortal,
302
+ TooltipPositioner,
303
+ TooltipRoot,
304
+ TooltipTrigger,
305
+ } from '@lglab/compose-ui/tooltip'
306
+ import { Clock } from 'lucide-react'
307
+
308
+ export default function DelayExample() {
309
+ return (
310
+ <div className='flex items-center gap-2'>
311
+ <TooltipRoot>
312
+ <TooltipTrigger
313
+ delay={0}
314
+ render={(props) => (
315
+ <Button {...props} variant='outline'>
316
+ <Clock className='size-4' />
317
+ No delay
318
+ </Button>
319
+ )}
320
+ />
321
+ <TooltipPortal>
322
+ <TooltipPositioner>
323
+ <TooltipPopup>
324
+ <TooltipArrow />
325
+ Opens instantly
326
+ </TooltipPopup>
327
+ </TooltipPositioner>
328
+ </TooltipPortal>
329
+ </TooltipRoot>
330
+
331
+ <TooltipRoot>
332
+ <TooltipTrigger
333
+ delay={1000}
334
+ render={(props) => (
335
+ <Button {...props} variant='outline'>
336
+ <Clock className='size-4' />
337
+ 1s delay
338
+ </Button>
339
+ )}
340
+ />
341
+ <TooltipPortal>
342
+ <TooltipPositioner>
343
+ <TooltipPopup>
344
+ <TooltipArrow />
345
+ Opens after 1 second
346
+ </TooltipPopup>
347
+ </TooltipPositioner>
348
+ </TooltipPortal>
349
+ </TooltipRoot>
350
+ </div>
351
+ )
352
+ }
353
+ ```
354
+
355
+ ### Provider
356
+
357
+ ```tsx
358
+ import { Button } from '@lglab/compose-ui/button'
359
+ import {
360
+ TooltipArrow,
361
+ TooltipPopup,
362
+ TooltipPortal,
363
+ TooltipPositioner,
364
+ TooltipProvider,
365
+ TooltipRoot,
366
+ TooltipTrigger,
367
+ } from '@lglab/compose-ui/tooltip'
368
+ import { Bold, Italic, Underline } from 'lucide-react'
369
+
370
+ export default function ProviderExample() {
371
+ return (
372
+ <TooltipProvider delay={200} closeDelay={0}>
373
+ <div className='flex items-center gap-1'>
374
+ <TooltipRoot>
375
+ <TooltipTrigger
376
+ render={(props) => (
377
+ <Button {...props} variant='outline' size='icon'>
378
+ <Bold className='size-4' />
379
+ <span className='sr-only'>Bold</span>
380
+ </Button>
381
+ )}
382
+ />
383
+ <TooltipPortal>
384
+ <TooltipPositioner>
385
+ <TooltipPopup>
386
+ <TooltipArrow />
387
+ Bold
388
+ </TooltipPopup>
389
+ </TooltipPositioner>
390
+ </TooltipPortal>
391
+ </TooltipRoot>
392
+
393
+ <TooltipRoot>
394
+ <TooltipTrigger
395
+ render={(props) => (
396
+ <Button {...props} variant='outline' size='icon'>
397
+ <Italic className='size-4' />
398
+ <span className='sr-only'>Italic</span>
399
+ </Button>
400
+ )}
401
+ />
402
+ <TooltipPortal>
403
+ <TooltipPositioner>
404
+ <TooltipPopup>
405
+ <TooltipArrow />
406
+ Italic
407
+ </TooltipPopup>
408
+ </TooltipPositioner>
409
+ </TooltipPortal>
410
+ </TooltipRoot>
411
+
412
+ <TooltipRoot>
413
+ <TooltipTrigger
414
+ render={(props) => (
415
+ <Button {...props} variant='outline' size='icon'>
416
+ <Underline className='size-4' />
417
+ <span className='sr-only'>Underline</span>
418
+ </Button>
419
+ )}
420
+ />
421
+ <TooltipPortal>
422
+ <TooltipPositioner>
423
+ <TooltipPopup>
424
+ <TooltipArrow />
425
+ Underline
426
+ </TooltipPopup>
427
+ </TooltipPositioner>
428
+ </TooltipPortal>
429
+ </TooltipRoot>
430
+ </div>
431
+ </TooltipProvider>
432
+ )
433
+ }
434
+ ```
435
+
436
+ ### Anchor to Another Element
437
+
438
+ ```tsx
439
+ import { Button } from '@lglab/compose-ui/button'
440
+ import {
441
+ TooltipArrow,
442
+ TooltipPopup,
443
+ TooltipPortal,
444
+ TooltipPositioner,
445
+ TooltipRoot,
446
+ TooltipTrigger,
447
+ } from '@lglab/compose-ui/tooltip'
448
+ import * as React from 'react'
449
+
450
+ export default function AnchorElementExample() {
451
+ const [anchor, setAnchor] = React.useState<HTMLElement | null>(null)
452
+
453
+ return (
454
+ <div className='flex items-center gap-2'>
455
+ <span
456
+ ref={setAnchor}
457
+ className='rounded-md bg-muted px-3 py-2 text-sm font-medium text-muted-foreground'
458
+ >
459
+ Anchor element
460
+ </span>
461
+ <TooltipRoot>
462
+ <TooltipTrigger
463
+ render={(props) => (
464
+ <Button {...props} variant='outline'>
465
+ Hover me
466
+ </Button>
467
+ )}
468
+ />
469
+ <TooltipPortal>
470
+ <TooltipPositioner anchor={anchor}>
471
+ <TooltipPopup>
472
+ <TooltipArrow />
473
+ Anchored to the span element
474
+ </TooltipPopup>
475
+ </TooltipPositioner>
476
+ </TooltipPortal>
477
+ </TooltipRoot>
478
+ </div>
479
+ )
480
+ }
481
+ ```
482
+
483
+ ## Resources
484
+
485
+ - [Base UI Tooltip Documentation](https://base-ui.com/react/components/tooltip)
486
+ - [API Reference](https://base-ui.com/react/components/tooltip#api-reference)