@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,261 @@
1
+ # Toggle Group
2
+
3
+ Provides a shared state to a series of toggle buttons.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @lglab/compose-ui
9
+ ```
10
+
11
+ ## Import
12
+
13
+ ```tsx
14
+ import { ToggleGroupRoot, ToggleGroupItem } from '@lglab/compose-ui'
15
+ ```
16
+
17
+ ## Examples
18
+
19
+ ### Default
20
+
21
+ ```tsx
22
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
23
+ import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from 'lucide-react'
24
+
25
+ export default function DefaultExample() {
26
+ return (
27
+ <ToggleGroupRoot defaultValue={['left']}>
28
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon'>
29
+ <AlignLeftIcon />
30
+ </ToggleGroupItem>
31
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon'>
32
+ <AlignCenterIcon />
33
+ </ToggleGroupItem>
34
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon'>
35
+ <AlignRightIcon />
36
+ </ToggleGroupItem>
37
+ </ToggleGroupRoot>
38
+ )
39
+ }
40
+ ```
41
+
42
+ ### Multiple Selection
43
+
44
+ ```tsx
45
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
46
+ import { BoldIcon, ItalicIcon, UnderlineIcon } from 'lucide-react'
47
+
48
+ export default function MultipleExample() {
49
+ return (
50
+ <ToggleGroupRoot multiple defaultValue={['bold']}>
51
+ <ToggleGroupItem value='bold' aria-label='Bold' size='icon'>
52
+ <BoldIcon />
53
+ </ToggleGroupItem>
54
+ <ToggleGroupItem value='italic' aria-label='Italic' size='icon'>
55
+ <ItalicIcon />
56
+ </ToggleGroupItem>
57
+ <ToggleGroupItem value='underline' aria-label='Underline' size='icon'>
58
+ <UnderlineIcon />
59
+ </ToggleGroupItem>
60
+ </ToggleGroupRoot>
61
+ )
62
+ }
63
+ ```
64
+
65
+ ### Controlled
66
+
67
+ ```tsx
68
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
69
+ import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from 'lucide-react'
70
+ import { useState } from 'react'
71
+
72
+ export default function ControlledExample() {
73
+ const [value, setValue] = useState<string[]>(['left'])
74
+
75
+ return (
76
+ <div className='flex flex-col items-center gap-3'>
77
+ <ToggleGroupRoot value={value} onValueChange={setValue}>
78
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon'>
79
+ <AlignLeftIcon />
80
+ </ToggleGroupItem>
81
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon'>
82
+ <AlignCenterIcon />
83
+ </ToggleGroupItem>
84
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon'>
85
+ <AlignRightIcon />
86
+ </ToggleGroupItem>
87
+ </ToggleGroupRoot>
88
+ <span className='text-sm'>
89
+ {value.length > 0 ? `Aligned: ${value[0]}` : 'No alignment'}
90
+ </span>
91
+ </div>
92
+ )
93
+ }
94
+ ```
95
+
96
+ ### Disabled
97
+
98
+ ```tsx
99
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
100
+ import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from 'lucide-react'
101
+
102
+ export default function DisabledExample() {
103
+ return (
104
+ <ToggleGroupRoot disabled defaultValue={['left']}>
105
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon'>
106
+ <AlignLeftIcon />
107
+ </ToggleGroupItem>
108
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon'>
109
+ <AlignCenterIcon />
110
+ </ToggleGroupItem>
111
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon'>
112
+ <AlignRightIcon />
113
+ </ToggleGroupItem>
114
+ </ToggleGroupRoot>
115
+ )
116
+ }
117
+ ```
118
+
119
+ ### Sizes
120
+
121
+ ```tsx
122
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
123
+ import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from 'lucide-react'
124
+
125
+ export default function SizesExample() {
126
+ return (
127
+ <div className='flex flex-col items-start gap-4'>
128
+ <ToggleGroupRoot defaultValue={['left']}>
129
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon-sm'>
130
+ <AlignLeftIcon />
131
+ </ToggleGroupItem>
132
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon-sm'>
133
+ <AlignCenterIcon />
134
+ </ToggleGroupItem>
135
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon-sm'>
136
+ <AlignRightIcon />
137
+ </ToggleGroupItem>
138
+ </ToggleGroupRoot>
139
+
140
+ <ToggleGroupRoot defaultValue={['left']}>
141
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon'>
142
+ <AlignLeftIcon />
143
+ </ToggleGroupItem>
144
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon'>
145
+ <AlignCenterIcon />
146
+ </ToggleGroupItem>
147
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon'>
148
+ <AlignRightIcon />
149
+ </ToggleGroupItem>
150
+ </ToggleGroupRoot>
151
+
152
+ <ToggleGroupRoot defaultValue={['left']}>
153
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon-lg'>
154
+ <AlignLeftIcon />
155
+ </ToggleGroupItem>
156
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon-lg'>
157
+ <AlignCenterIcon />
158
+ </ToggleGroupItem>
159
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon-lg'>
160
+ <AlignRightIcon />
161
+ </ToggleGroupItem>
162
+ </ToggleGroupRoot>
163
+ </div>
164
+ )
165
+ }
166
+ ```
167
+
168
+ ### Vertical Orientation
169
+
170
+ ```tsx
171
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
172
+ import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from 'lucide-react'
173
+
174
+ export default function OrientationExample() {
175
+ return (
176
+ <ToggleGroupRoot orientation='vertical' defaultValue={['left']}>
177
+ <ToggleGroupItem value='left' aria-label='Align left' size='icon'>
178
+ <AlignLeftIcon />
179
+ </ToggleGroupItem>
180
+ <ToggleGroupItem value='center' aria-label='Align center' size='icon'>
181
+ <AlignCenterIcon />
182
+ </ToggleGroupItem>
183
+ <ToggleGroupItem value='right' aria-label='Align right' size='icon'>
184
+ <AlignRightIcon />
185
+ </ToggleGroupItem>
186
+ </ToggleGroupRoot>
187
+ )
188
+ }
189
+ ```
190
+
191
+ ### With Text
192
+
193
+ ```tsx
194
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
195
+ import { BoldIcon, ItalicIcon, UnderlineIcon } from 'lucide-react'
196
+
197
+ export default function WithTextExample() {
198
+ return (
199
+ <ToggleGroupRoot defaultValue={['bold']}>
200
+ <ToggleGroupItem value='bold' aria-label='Bold'>
201
+ <BoldIcon />
202
+ Bold
203
+ </ToggleGroupItem>
204
+ <ToggleGroupItem value='italic' aria-label='Italic'>
205
+ <ItalicIcon />
206
+ Italic
207
+ </ToggleGroupItem>
208
+ <ToggleGroupItem value='underline' aria-label='Underline'>
209
+ <UnderlineIcon />
210
+ Underline
211
+ </ToggleGroupItem>
212
+ </ToggleGroupRoot>
213
+ )
214
+ }
215
+ ```
216
+
217
+ ### Ghost
218
+
219
+ ```tsx
220
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
221
+ import { Bookmark, Heart, Star } from 'lucide-react'
222
+
223
+ export default function GhostExample() {
224
+ return (
225
+ <ToggleGroupRoot multiple>
226
+ <ToggleGroupItem
227
+ value='star'
228
+ variant='ghost'
229
+ aria-label='Favorite'
230
+ size='icon'
231
+ className='data-pressed:*:[svg]:fill-yellow-500 data-pressed:*:[svg]:stroke-yellow-500'
232
+ >
233
+ <Star />
234
+ </ToggleGroupItem>
235
+ <ToggleGroupItem
236
+ value='heart'
237
+ variant='ghost'
238
+ aria-label='Like'
239
+ size='icon'
240
+ className='data-pressed:*:[svg]:fill-red-500 data-pressed:*:[svg]:stroke-red-500'
241
+ >
242
+ <Heart />
243
+ </ToggleGroupItem>
244
+ <ToggleGroupItem
245
+ value='bookmark'
246
+ variant='ghost'
247
+ aria-label='Bookmark'
248
+ size='icon'
249
+ className='data-pressed:*:[svg]:fill-blue-500 data-pressed:*:[svg]:stroke-blue-500'
250
+ >
251
+ <Bookmark />
252
+ </ToggleGroupItem>
253
+ </ToggleGroupRoot>
254
+ )
255
+ }
256
+ ```
257
+
258
+ ## Resources
259
+
260
+ - [Base UI Toggle Group Documentation](https://base-ui.com/react/components/toggle-group)
261
+ - [API Reference](https://base-ui.com/react/components/toggle-group#api-reference)
@@ -0,0 +1,161 @@
1
+ # Toggle
2
+
3
+ A two-state button that can be on or off.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @lglab/compose-ui
9
+ ```
10
+
11
+ ## Import
12
+
13
+ ```tsx
14
+ import { Toggle } from '@lglab/compose-ui'
15
+ ```
16
+
17
+ ## Examples
18
+
19
+ ### Default
20
+
21
+ ```tsx
22
+ import { Toggle } from '@lglab/compose-ui/toggle'
23
+ import { BoldIcon } from 'lucide-react'
24
+
25
+ export default function DefaultExample() {
26
+ return (
27
+ <Toggle aria-label='Toggle bold' size='icon'>
28
+ <BoldIcon />
29
+ </Toggle>
30
+ )
31
+ }
32
+ ```
33
+
34
+ ### Sizes
35
+
36
+ ```tsx
37
+ import { Toggle } from '@lglab/compose-ui/toggle'
38
+ import { BoldIcon } from 'lucide-react'
39
+
40
+ export default function SizesExample() {
41
+ return (
42
+ <div className='flex items-center flex-wrap gap-2'>
43
+ <Toggle aria-label='Toggle bold' size='icon-sm'>
44
+ <BoldIcon className='size-3.5' />
45
+ </Toggle>
46
+ <Toggle aria-label='Toggle bold' size='icon'>
47
+ <BoldIcon />
48
+ </Toggle>
49
+ <Toggle aria-label='Toggle bold' size='icon-lg'>
50
+ <BoldIcon />
51
+ </Toggle>
52
+ </div>
53
+ )
54
+ }
55
+ ```
56
+
57
+ ### Pressed
58
+
59
+ ```tsx
60
+ import { Toggle } from '@lglab/compose-ui/toggle'
61
+ import { BoldIcon } from 'lucide-react'
62
+
63
+ export default function PressedExample() {
64
+ return (
65
+ <Toggle defaultPressed aria-label='Toggle bold' size='icon'>
66
+ <BoldIcon />
67
+ </Toggle>
68
+ )
69
+ }
70
+ ```
71
+
72
+ ### Controlled
73
+
74
+ ```tsx
75
+ import { Toggle } from '@lglab/compose-ui/toggle'
76
+ import { BoldIcon } from 'lucide-react'
77
+ import { useState } from 'react'
78
+
79
+ export default function ControlledExample() {
80
+ const [pressed, setPressed] = useState(false)
81
+
82
+ return (
83
+ <div className='flex items-center gap-3'>
84
+ <Toggle
85
+ pressed={pressed}
86
+ onPressedChange={setPressed}
87
+ aria-label='Toggle bold'
88
+ size='icon'
89
+ >
90
+ <BoldIcon />
91
+ </Toggle>
92
+ <span className='text-sm'>{pressed ? 'Bold on' : 'Bold off'}</span>
93
+ </div>
94
+ )
95
+ }
96
+ ```
97
+
98
+ ### Disabled
99
+
100
+ ```tsx
101
+ import { Toggle } from '@lglab/compose-ui/toggle'
102
+ import { BoldIcon } from 'lucide-react'
103
+
104
+ export default function DisabledExample() {
105
+ return (
106
+ <div className='flex flex-wrap gap-2'>
107
+ <Toggle disabled aria-label='Toggle bold' size='icon'>
108
+ <BoldIcon />
109
+ </Toggle>
110
+ <Toggle disabled defaultPressed aria-label='Toggle bold' size='icon'>
111
+ <BoldIcon />
112
+ </Toggle>
113
+ </div>
114
+ )
115
+ }
116
+ ```
117
+
118
+ ### With Text
119
+
120
+ ```tsx
121
+ import { Toggle } from '@lglab/compose-ui/toggle'
122
+ import { BoldIcon } from 'lucide-react'
123
+
124
+ export default function WithTextExample() {
125
+ return (
126
+ <div className='flex flex-wrap gap-2'>
127
+ <Toggle aria-label='Toggle bold'>
128
+ <BoldIcon />
129
+ Bold
130
+ </Toggle>
131
+ <Toggle aria-label='Toggle bold'>Bold</Toggle>
132
+ </div>
133
+ )
134
+ }
135
+ ```
136
+
137
+ ### Ghost
138
+
139
+ ```tsx
140
+ import { Toggle } from '@lglab/compose-ui/toggle'
141
+ import { Heart } from 'lucide-react'
142
+
143
+ export default function GhostExample() {
144
+ return (
145
+ <div className='flex flex-wrap gap-2'>
146
+ <Toggle
147
+ variant='ghost'
148
+ aria-label='Toggle like'
149
+ className='data-pressed:*:[svg]:fill-red-500 data-pressed:*:[svg]:stroke-red-500'
150
+ >
151
+ <Heart />
152
+ </Toggle>
153
+ </div>
154
+ )
155
+ }
156
+ ```
157
+
158
+ ## Resources
159
+
160
+ - [Base UI Toggle Documentation](https://base-ui.com/react/components/toggle)
161
+ - [API Reference](https://base-ui.com/react/components/toggle#api-reference)
@@ -0,0 +1,148 @@
1
+ # Toolbar
2
+
3
+ A container for grouping a set of buttons and controls.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @lglab/compose-ui
9
+ ```
10
+
11
+ ## Import
12
+
13
+ ```tsx
14
+ import { ToolbarRoot, ToolbarButton, ToolbarLink, ToolbarInput, ToolbarGroup, ToolbarSeparator } from '@lglab/compose-ui'
15
+ ```
16
+
17
+ ## Examples
18
+
19
+ ### Rich Text Editor
20
+
21
+ ```tsx
22
+ import {
23
+ SelectIcon,
24
+ SelectItem,
25
+ SelectItemIndicator,
26
+ SelectItemText,
27
+ SelectList,
28
+ SelectPopup,
29
+ SelectPortal,
30
+ SelectPositioner,
31
+ SelectRoot,
32
+ SelectTrigger,
33
+ SelectValue,
34
+ } from '@lglab/compose-ui/select'
35
+ import { ToggleGroupItem, ToggleGroupRoot } from '@lglab/compose-ui/toggle-group'
36
+ import {
37
+ ToolbarButton,
38
+ ToolbarGroup,
39
+ ToolbarRoot,
40
+ ToolbarSeparator,
41
+ } from '@lglab/compose-ui/toolbar'
42
+ import {
43
+ AlignCenterIcon,
44
+ AlignLeftIcon,
45
+ AlignRightIcon,
46
+ BoldIcon,
47
+ CheckIcon,
48
+ ChevronsUpDownIcon,
49
+ ItalicIcon,
50
+ UnderlineIcon,
51
+ } from 'lucide-react'
52
+
53
+ const fontFaces = [
54
+ { label: 'Helvetica', value: 'helvetica' },
55
+ { label: 'Arial', value: 'arial' },
56
+ { label: 'Times New Roman', value: 'times' },
57
+ { label: 'Georgia', value: 'georgia' },
58
+ ]
59
+
60
+ export default function DefaultExample() {
61
+ return (
62
+ <ToolbarRoot>
63
+ <ToggleGroupRoot className='flex' multiple>
64
+ <ToolbarButton
65
+ render={<ToggleGroupItem value='bold' size='icon-sm' />}
66
+ aria-label='Bold'
67
+ >
68
+ <BoldIcon className='size-4' />
69
+ </ToolbarButton>
70
+ <ToolbarButton
71
+ render={<ToggleGroupItem value='italic' size='icon-sm' />}
72
+ aria-label='Italic'
73
+ >
74
+ <ItalicIcon className='size-4' />
75
+ </ToolbarButton>
76
+ <ToolbarButton
77
+ render={<ToggleGroupItem value='underline' size='icon-sm' />}
78
+ aria-label='Underline'
79
+ >
80
+ <UnderlineIcon className='size-4' />
81
+ </ToolbarButton>
82
+ </ToggleGroupRoot>
83
+
84
+ <ToolbarSeparator />
85
+
86
+ <ToggleGroupRoot defaultValue={['left']} className='flex'>
87
+ <ToolbarButton
88
+ render={<ToggleGroupItem value='left' size='icon-sm' />}
89
+ aria-label='Align left'
90
+ >
91
+ <AlignLeftIcon className='size-4' />
92
+ </ToolbarButton>
93
+ <ToolbarButton
94
+ render={<ToggleGroupItem value='center' size='icon-sm' />}
95
+ aria-label='Align center'
96
+ >
97
+ <AlignCenterIcon className='size-4' />
98
+ </ToolbarButton>
99
+ <ToolbarButton
100
+ render={<ToggleGroupItem value='right' size='icon-sm' />}
101
+ aria-label='Align right'
102
+ >
103
+ <AlignRightIcon className='size-4' />
104
+ </ToolbarButton>
105
+ </ToggleGroupRoot>
106
+
107
+ <ToolbarSeparator />
108
+
109
+ <ToolbarGroup aria-label='Format'>
110
+ <ToolbarButton size='sm'>$</ToolbarButton>
111
+ <ToolbarButton size='sm'>%</ToolbarButton>
112
+ </ToolbarGroup>
113
+
114
+ <ToolbarSeparator />
115
+
116
+ <SelectRoot items={fontFaces} defaultValue='helvetica'>
117
+ <ToolbarButton render={<SelectTrigger />}>
118
+ <SelectValue />
119
+ <SelectIcon>
120
+ <ChevronsUpDownIcon className='size-4 opacity-50' />
121
+ </SelectIcon>
122
+ </ToolbarButton>
123
+ <SelectPortal>
124
+ <SelectPositioner>
125
+ <SelectPopup>
126
+ <SelectList>
127
+ {fontFaces.map((fontFace) => (
128
+ <SelectItem key={fontFace.value} value={fontFace.value}>
129
+ <SelectItemText>{fontFace.label}</SelectItemText>
130
+ <SelectItemIndicator>
131
+ <CheckIcon className='size-4' />
132
+ </SelectItemIndicator>
133
+ </SelectItem>
134
+ ))}
135
+ </SelectList>
136
+ </SelectPopup>
137
+ </SelectPositioner>
138
+ </SelectPortal>
139
+ </SelectRoot>
140
+ </ToolbarRoot>
141
+ )
142
+ }
143
+ ```
144
+
145
+ ## Resources
146
+
147
+ - [Base UI Toolbar Documentation](https://base-ui.com/react/components/toolbar)
148
+ - [API Reference](https://base-ui.com/react/components/toolbar#api-reference)