@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.
- package/README.md +11 -0
- package/dist/assets/llms/accordion.md +184 -0
- package/dist/assets/llms/alert-dialog.md +306 -0
- package/dist/assets/llms/autocomplete.md +756 -0
- package/dist/assets/llms/avatar.md +166 -0
- package/dist/assets/llms/badge.md +478 -0
- package/dist/assets/llms/button.md +238 -0
- package/dist/assets/llms/card.md +264 -0
- package/dist/assets/llms/checkbox-group.md +158 -0
- package/dist/assets/llms/checkbox.md +83 -0
- package/dist/assets/llms/collapsible.md +165 -0
- package/dist/assets/llms/combobox.md +1255 -0
- package/dist/assets/llms/context-menu.md +371 -0
- package/dist/assets/llms/dialog.md +592 -0
- package/dist/assets/llms/drawer.md +437 -0
- package/dist/assets/llms/field.md +74 -0
- package/dist/assets/llms/form.md +1931 -0
- package/dist/assets/llms/input.md +47 -0
- package/dist/assets/llms/menu.md +484 -0
- package/dist/assets/llms/menubar.md +804 -0
- package/dist/assets/llms/meter.md +181 -0
- package/dist/assets/llms/navigation-menu.md +187 -0
- package/dist/assets/llms/number-field.md +243 -0
- package/dist/assets/llms/pagination.md +514 -0
- package/dist/assets/llms/popover.md +206 -0
- package/dist/assets/llms/preview-card.md +146 -0
- package/dist/assets/llms/progress.md +60 -0
- package/dist/assets/llms/radio-group.md +105 -0
- package/dist/assets/llms/scroll-area.md +132 -0
- package/dist/assets/llms/select.md +276 -0
- package/dist/assets/llms/separator.md +49 -0
- package/dist/assets/llms/skeleton.md +96 -0
- package/dist/assets/llms/slider.md +161 -0
- package/dist/assets/llms/switch.md +101 -0
- package/dist/assets/llms/table.md +1325 -0
- package/dist/assets/llms/tabs.md +327 -0
- package/dist/assets/llms/textarea.md +38 -0
- package/dist/assets/llms/toast.md +349 -0
- package/dist/assets/llms/toggle-group.md +261 -0
- package/dist/assets/llms/toggle.md +161 -0
- package/dist/assets/llms/toolbar.md +148 -0
- package/dist/assets/llms/tooltip.md +486 -0
- package/dist/assets/llms-full.txt +14515 -0
- package/dist/assets/llms.txt +65 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +161 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Avatar
|
|
2
|
+
|
|
3
|
+
An easily stylable avatar component for displaying user profile pictures, initials, or fallback content.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @lglab/compose-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Import
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { AvatarRoot, AvatarImage, AvatarFallback, AvatarStack } from '@lglab/compose-ui'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Examples
|
|
18
|
+
|
|
19
|
+
### Basic
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { AvatarFallback, AvatarImage, AvatarRoot } from '@lglab/compose-ui/avatar'
|
|
23
|
+
|
|
24
|
+
export default function BasicExample() {
|
|
25
|
+
return (
|
|
26
|
+
<div className='flex items-center gap-4'>
|
|
27
|
+
<AvatarRoot size='sm'>
|
|
28
|
+
<AvatarImage
|
|
29
|
+
src='https://images.unsplash.com/photo-1543610892-0b1f7e6d8ac1?w=128&h=128&dpr=2&q=80'
|
|
30
|
+
alt='Sarah Chen'
|
|
31
|
+
/>
|
|
32
|
+
<AvatarFallback>SC</AvatarFallback>
|
|
33
|
+
</AvatarRoot>
|
|
34
|
+
<AvatarRoot>
|
|
35
|
+
<AvatarImage
|
|
36
|
+
src='https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=128&h=128&dpr=2&q=80'
|
|
37
|
+
alt='Marcus Johnson'
|
|
38
|
+
/>
|
|
39
|
+
<AvatarFallback>MJ</AvatarFallback>
|
|
40
|
+
</AvatarRoot>
|
|
41
|
+
<AvatarRoot size='lg'>
|
|
42
|
+
<AvatarImage
|
|
43
|
+
src='https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=128&h=128&dpr=2&q=80'
|
|
44
|
+
alt='Emma Wilson'
|
|
45
|
+
/>
|
|
46
|
+
<AvatarFallback>EW</AvatarFallback>
|
|
47
|
+
</AvatarRoot>
|
|
48
|
+
</div>
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Fallback
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
import { AvatarFallback, AvatarImage, AvatarRoot } from '@lglab/compose-ui/avatar'
|
|
57
|
+
|
|
58
|
+
export default function FallbackExample() {
|
|
59
|
+
return (
|
|
60
|
+
<div className='flex items-center gap-4'>
|
|
61
|
+
<AvatarRoot size='sm'>
|
|
62
|
+
<AvatarFallback>SC</AvatarFallback>
|
|
63
|
+
</AvatarRoot>
|
|
64
|
+
<AvatarRoot>
|
|
65
|
+
<AvatarFallback>MJ</AvatarFallback>
|
|
66
|
+
</AvatarRoot>
|
|
67
|
+
<AvatarRoot size='lg'>
|
|
68
|
+
<AvatarImage src='invalid-url' alt='Failed Image' />
|
|
69
|
+
<AvatarFallback>FI</AvatarFallback>
|
|
70
|
+
</AvatarRoot>
|
|
71
|
+
</div>
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Stack
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
import {
|
|
80
|
+
AvatarFallback,
|
|
81
|
+
AvatarImage,
|
|
82
|
+
AvatarRoot,
|
|
83
|
+
AvatarStack,
|
|
84
|
+
} from '@lglab/compose-ui/avatar'
|
|
85
|
+
|
|
86
|
+
export default function StackExample() {
|
|
87
|
+
return (
|
|
88
|
+
<AvatarStack aria-label='Project contributors'>
|
|
89
|
+
<AvatarRoot size='lg'>
|
|
90
|
+
<AvatarImage
|
|
91
|
+
src='https://images.unsplash.com/photo-1543610892-0b1f7e6d8ac1?w=128&h=128&dpr=2&q=80'
|
|
92
|
+
alt='Sarah Chen'
|
|
93
|
+
/>
|
|
94
|
+
<AvatarFallback>SC</AvatarFallback>
|
|
95
|
+
</AvatarRoot>
|
|
96
|
+
<AvatarRoot size='lg'>
|
|
97
|
+
<AvatarImage
|
|
98
|
+
src='https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=128&h=128&dpr=2&q=80'
|
|
99
|
+
alt='Marcus Johnson'
|
|
100
|
+
/>
|
|
101
|
+
<AvatarFallback>MJ</AvatarFallback>
|
|
102
|
+
</AvatarRoot>
|
|
103
|
+
<AvatarRoot size='lg'>
|
|
104
|
+
<AvatarImage
|
|
105
|
+
src='https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=128&h=128&dpr=2&q=80'
|
|
106
|
+
alt='Emma Wilson'
|
|
107
|
+
/>
|
|
108
|
+
<AvatarFallback>EW</AvatarFallback>
|
|
109
|
+
</AvatarRoot>
|
|
110
|
+
</AvatarStack>
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Stack with overflow
|
|
116
|
+
|
|
117
|
+
```tsx
|
|
118
|
+
import {
|
|
119
|
+
AvatarFallback,
|
|
120
|
+
AvatarImage,
|
|
121
|
+
AvatarRoot,
|
|
122
|
+
AvatarStack,
|
|
123
|
+
} from '@lglab/compose-ui/avatar'
|
|
124
|
+
|
|
125
|
+
export default function StackOverflowExample() {
|
|
126
|
+
return (
|
|
127
|
+
<AvatarStack aria-label='Project contributors' maxVisible={3}>
|
|
128
|
+
<AvatarRoot size='lg'>
|
|
129
|
+
<AvatarImage
|
|
130
|
+
src='https://images.unsplash.com/photo-1543610892-0b1f7e6d8ac1?w=128&h=128&dpr=2&q=80'
|
|
131
|
+
alt='Sarah Chen'
|
|
132
|
+
/>
|
|
133
|
+
<AvatarFallback>SC</AvatarFallback>
|
|
134
|
+
</AvatarRoot>
|
|
135
|
+
<AvatarRoot size='lg'>
|
|
136
|
+
<AvatarImage
|
|
137
|
+
src='https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=128&h=128&dpr=2&q=80'
|
|
138
|
+
alt='Marcus Johnson'
|
|
139
|
+
/>
|
|
140
|
+
<AvatarFallback>MJ</AvatarFallback>
|
|
141
|
+
</AvatarRoot>
|
|
142
|
+
<AvatarRoot size='lg'>
|
|
143
|
+
<AvatarImage
|
|
144
|
+
src='https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=128&h=128&dpr=2&q=80'
|
|
145
|
+
alt='Emma Wilson'
|
|
146
|
+
/>
|
|
147
|
+
<AvatarFallback>EW</AvatarFallback>
|
|
148
|
+
</AvatarRoot>
|
|
149
|
+
<AvatarRoot>
|
|
150
|
+
<AvatarFallback>AB</AvatarFallback>
|
|
151
|
+
</AvatarRoot>
|
|
152
|
+
<AvatarRoot>
|
|
153
|
+
<AvatarFallback>CD</AvatarFallback>
|
|
154
|
+
</AvatarRoot>
|
|
155
|
+
<AvatarRoot>
|
|
156
|
+
<AvatarFallback>EF</AvatarFallback>
|
|
157
|
+
</AvatarRoot>
|
|
158
|
+
</AvatarStack>
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Resources
|
|
164
|
+
|
|
165
|
+
- [Base UI Avatar Documentation](https://base-ui.com/react/components/avatar)
|
|
166
|
+
- [API Reference](https://base-ui.com/react/components/avatar#api-reference)
|
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
# Badge
|
|
2
|
+
|
|
3
|
+
A versatile badge component for displaying labels, status indicators, and tags with multiple variants, sizes, and shapes.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @lglab/compose-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Import
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { Badge, BadgeDot, BadgeButton } from '@lglab/compose-ui'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Examples
|
|
18
|
+
|
|
19
|
+
### Variants
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { Badge } from '@lglab/compose-ui/badge'
|
|
23
|
+
|
|
24
|
+
export default function DefaultExample() {
|
|
25
|
+
return (
|
|
26
|
+
<div className='flex flex-wrap gap-2'>
|
|
27
|
+
<Badge variant='default'>Default</Badge>
|
|
28
|
+
<Badge variant='secondary'>Secondary</Badge>
|
|
29
|
+
<Badge variant='destructive'>Destructive</Badge>
|
|
30
|
+
<Badge variant='success'>Success</Badge>
|
|
31
|
+
<Badge variant='warning'>Warning</Badge>
|
|
32
|
+
<Badge variant='info'>Info</Badge>
|
|
33
|
+
</div>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Sizes
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { Badge } from '@lglab/compose-ui/badge'
|
|
42
|
+
|
|
43
|
+
export default function SizesExample() {
|
|
44
|
+
return (
|
|
45
|
+
<div className='flex flex-wrap items-center gap-2'>
|
|
46
|
+
<Badge size='sm'>Small</Badge>
|
|
47
|
+
<Badge size='md'>Medium</Badge>
|
|
48
|
+
<Badge size='lg'>Large</Badge>
|
|
49
|
+
</div>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Shapes
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import { Badge } from '@lglab/compose-ui/badge'
|
|
58
|
+
|
|
59
|
+
export default function ShapesExample() {
|
|
60
|
+
return (
|
|
61
|
+
<div className='flex flex-wrap gap-2'>
|
|
62
|
+
<Badge shape='pill'>Pill</Badge>
|
|
63
|
+
<Badge shape='rounded'>Rounded</Badge>
|
|
64
|
+
</div>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### With Dot
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
import { Badge, BadgeDot } from '@lglab/compose-ui/badge'
|
|
73
|
+
|
|
74
|
+
const badges = [
|
|
75
|
+
{ variant: 'success', label: 'Active' },
|
|
76
|
+
{ variant: 'warning', label: 'Pending' },
|
|
77
|
+
{ variant: 'info', label: 'New' },
|
|
78
|
+
{ variant: 'destructive', label: 'Error' },
|
|
79
|
+
{ variant: 'secondary', label: 'Inactive' },
|
|
80
|
+
] as const
|
|
81
|
+
|
|
82
|
+
export default function WithDotExample() {
|
|
83
|
+
return (
|
|
84
|
+
<div className='flex flex-col gap-6'>
|
|
85
|
+
<div className='flex flex-wrap gap-2'>
|
|
86
|
+
{badges.map(({ variant, label }) => (
|
|
87
|
+
<Badge key={variant} variant={variant} appearance='outline'>
|
|
88
|
+
<BadgeDot />
|
|
89
|
+
{label}
|
|
90
|
+
</Badge>
|
|
91
|
+
))}
|
|
92
|
+
</div>
|
|
93
|
+
<div className='flex flex-wrap gap-2'>
|
|
94
|
+
{badges.map(({ variant, label }) => (
|
|
95
|
+
<Badge
|
|
96
|
+
key={variant}
|
|
97
|
+
variant={variant}
|
|
98
|
+
appearance='outline'
|
|
99
|
+
className='relative'
|
|
100
|
+
>
|
|
101
|
+
<BadgeDot className='absolute top-0 right-0 translate-x-1/2 -translate-y-1/2 animate-ping' />
|
|
102
|
+
<BadgeDot className='absolute top-0 right-0 translate-x-1/2 -translate-y-1/2' />
|
|
103
|
+
{label}
|
|
104
|
+
</Badge>
|
|
105
|
+
))}
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### With Icon
|
|
113
|
+
|
|
114
|
+
```tsx
|
|
115
|
+
import { Badge } from '@lglab/compose-ui/badge'
|
|
116
|
+
import { AlertTriangleIcon, CheckCircle2Icon, InfoIcon } from 'lucide-react'
|
|
117
|
+
|
|
118
|
+
export default function WithIconExample() {
|
|
119
|
+
return (
|
|
120
|
+
<div className='flex flex-wrap gap-2'>
|
|
121
|
+
<Badge variant='success'>
|
|
122
|
+
<CheckCircle2Icon />
|
|
123
|
+
Completed
|
|
124
|
+
</Badge>
|
|
125
|
+
<Badge variant='info'>
|
|
126
|
+
<InfoIcon />
|
|
127
|
+
Information
|
|
128
|
+
</Badge>
|
|
129
|
+
<Badge variant='warning'>
|
|
130
|
+
<AlertTriangleIcon />
|
|
131
|
+
Warning
|
|
132
|
+
</Badge>
|
|
133
|
+
</div>
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### With Button
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
import { Badge, BadgeButton } from '@lglab/compose-ui/badge'
|
|
142
|
+
import { XIcon } from 'lucide-react'
|
|
143
|
+
|
|
144
|
+
export default function WithButtonExample() {
|
|
145
|
+
return (
|
|
146
|
+
<div className='flex flex-wrap gap-2'>
|
|
147
|
+
<Badge variant='default'>
|
|
148
|
+
Label
|
|
149
|
+
<BadgeButton aria-label='Remove'>
|
|
150
|
+
<XIcon />
|
|
151
|
+
</BadgeButton>
|
|
152
|
+
</Badge>
|
|
153
|
+
<Badge variant='success'>
|
|
154
|
+
Success
|
|
155
|
+
<BadgeButton aria-label='Remove'>
|
|
156
|
+
<XIcon />
|
|
157
|
+
</BadgeButton>
|
|
158
|
+
</Badge>
|
|
159
|
+
<Badge variant='info' appearance='light'>
|
|
160
|
+
Info
|
|
161
|
+
<BadgeButton aria-label='Remove'>
|
|
162
|
+
<XIcon />
|
|
163
|
+
</BadgeButton>
|
|
164
|
+
</Badge>
|
|
165
|
+
<Badge variant='warning' appearance='outline'>
|
|
166
|
+
Warning
|
|
167
|
+
<BadgeButton aria-label='Remove'>
|
|
168
|
+
<XIcon />
|
|
169
|
+
</BadgeButton>
|
|
170
|
+
</Badge>
|
|
171
|
+
</div>
|
|
172
|
+
)
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Appearances
|
|
177
|
+
|
|
178
|
+
```tsx
|
|
179
|
+
import { Badge, BadgeDot } from '@lglab/compose-ui/badge'
|
|
180
|
+
|
|
181
|
+
export default function AppearancesExample() {
|
|
182
|
+
return (
|
|
183
|
+
<div className='flex flex-col gap-6'>
|
|
184
|
+
<div className='flex flex-col gap-2'>
|
|
185
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Default (Solid)</h3>
|
|
186
|
+
<div className='flex flex-wrap gap-2'>
|
|
187
|
+
<Badge variant='default' appearance='default'>
|
|
188
|
+
Default
|
|
189
|
+
</Badge>
|
|
190
|
+
<Badge variant='secondary' appearance='default'>
|
|
191
|
+
Secondary
|
|
192
|
+
</Badge>
|
|
193
|
+
<Badge variant='destructive' appearance='default'>
|
|
194
|
+
Destructive
|
|
195
|
+
</Badge>
|
|
196
|
+
<Badge variant='success' appearance='default'>
|
|
197
|
+
Success
|
|
198
|
+
</Badge>
|
|
199
|
+
<Badge variant='warning' appearance='default'>
|
|
200
|
+
Warning
|
|
201
|
+
</Badge>
|
|
202
|
+
<Badge variant='info' appearance='default'>
|
|
203
|
+
Info
|
|
204
|
+
</Badge>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<div className='flex flex-col gap-2'>
|
|
209
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Light</h3>
|
|
210
|
+
<div className='flex flex-wrap gap-2'>
|
|
211
|
+
<Badge variant='default' appearance='light'>
|
|
212
|
+
Default
|
|
213
|
+
</Badge>
|
|
214
|
+
<Badge variant='secondary' appearance='light'>
|
|
215
|
+
Secondary
|
|
216
|
+
</Badge>
|
|
217
|
+
<Badge variant='destructive' appearance='light'>
|
|
218
|
+
Destructive
|
|
219
|
+
</Badge>
|
|
220
|
+
<Badge variant='success' appearance='light'>
|
|
221
|
+
Success
|
|
222
|
+
</Badge>
|
|
223
|
+
<Badge variant='warning' appearance='light'>
|
|
224
|
+
Warning
|
|
225
|
+
</Badge>
|
|
226
|
+
<Badge variant='info' appearance='light'>
|
|
227
|
+
Info
|
|
228
|
+
</Badge>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div className='flex flex-col gap-2'>
|
|
233
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Outline</h3>
|
|
234
|
+
<div className='flex flex-wrap gap-2'>
|
|
235
|
+
<Badge variant='default' appearance='outline'>
|
|
236
|
+
Default
|
|
237
|
+
</Badge>
|
|
238
|
+
<Badge variant='secondary' appearance='outline'>
|
|
239
|
+
Secondary
|
|
240
|
+
</Badge>
|
|
241
|
+
<Badge variant='destructive' appearance='outline'>
|
|
242
|
+
Destructive
|
|
243
|
+
</Badge>
|
|
244
|
+
<Badge variant='success' appearance='outline'>
|
|
245
|
+
Success
|
|
246
|
+
</Badge>
|
|
247
|
+
<Badge variant='warning' appearance='outline'>
|
|
248
|
+
Warning
|
|
249
|
+
</Badge>
|
|
250
|
+
<Badge variant='info' appearance='outline'>
|
|
251
|
+
Info
|
|
252
|
+
</Badge>
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
|
|
256
|
+
<div className='flex flex-col gap-2'>
|
|
257
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Ghost</h3>
|
|
258
|
+
<div className='flex flex-wrap gap-2'>
|
|
259
|
+
<Badge variant='default' appearance='ghost'>
|
|
260
|
+
<BadgeDot />
|
|
261
|
+
Default
|
|
262
|
+
</Badge>
|
|
263
|
+
<Badge variant='secondary' appearance='ghost'>
|
|
264
|
+
<BadgeDot />
|
|
265
|
+
Secondary
|
|
266
|
+
</Badge>
|
|
267
|
+
<Badge variant='destructive' appearance='ghost'>
|
|
268
|
+
<BadgeDot />
|
|
269
|
+
Destructive
|
|
270
|
+
</Badge>
|
|
271
|
+
<Badge variant='success' appearance='ghost'>
|
|
272
|
+
<BadgeDot />
|
|
273
|
+
Success
|
|
274
|
+
</Badge>
|
|
275
|
+
<Badge variant='warning' appearance='ghost'>
|
|
276
|
+
<BadgeDot />
|
|
277
|
+
Warning
|
|
278
|
+
</Badge>
|
|
279
|
+
<Badge variant='info' appearance='ghost'>
|
|
280
|
+
<BadgeDot />
|
|
281
|
+
Info
|
|
282
|
+
</Badge>
|
|
283
|
+
</div>
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Custom Colors
|
|
291
|
+
|
|
292
|
+
```tsx
|
|
293
|
+
import { Badge, BadgeDot } from '@lglab/compose-ui/badge'
|
|
294
|
+
|
|
295
|
+
export default function CustomColorsExample() {
|
|
296
|
+
return (
|
|
297
|
+
<div className='flex flex-col gap-6'>
|
|
298
|
+
{/* Default (solid) appearance with custom colors */}
|
|
299
|
+
<div className='flex flex-col gap-2'>
|
|
300
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Default (Solid)</h3>
|
|
301
|
+
<div className='flex flex-wrap gap-2'>
|
|
302
|
+
<Badge
|
|
303
|
+
variant='default'
|
|
304
|
+
appearance='default'
|
|
305
|
+
className='bg-purple-600 text-white'
|
|
306
|
+
>
|
|
307
|
+
Purple
|
|
308
|
+
</Badge>
|
|
309
|
+
<Badge
|
|
310
|
+
variant='default'
|
|
311
|
+
appearance='default'
|
|
312
|
+
className='bg-pink-500 text-white'
|
|
313
|
+
>
|
|
314
|
+
Pink
|
|
315
|
+
</Badge>
|
|
316
|
+
<Badge
|
|
317
|
+
variant='default'
|
|
318
|
+
appearance='default'
|
|
319
|
+
className='bg-indigo-600 text-white'
|
|
320
|
+
>
|
|
321
|
+
Indigo
|
|
322
|
+
</Badge>
|
|
323
|
+
<Badge
|
|
324
|
+
variant='default'
|
|
325
|
+
appearance='default'
|
|
326
|
+
className='bg-teal-600 text-white'
|
|
327
|
+
>
|
|
328
|
+
Teal
|
|
329
|
+
</Badge>
|
|
330
|
+
<Badge
|
|
331
|
+
variant='default'
|
|
332
|
+
appearance='default'
|
|
333
|
+
className='bg-amber-600 text-white'
|
|
334
|
+
>
|
|
335
|
+
Amber
|
|
336
|
+
</Badge>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
{/* Light appearance with custom colors */}
|
|
341
|
+
<div className='flex flex-col gap-2'>
|
|
342
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Light</h3>
|
|
343
|
+
<div className='flex flex-wrap gap-2'>
|
|
344
|
+
<Badge
|
|
345
|
+
variant='default'
|
|
346
|
+
appearance='light'
|
|
347
|
+
className='bg-purple-500/10 text-purple-600 dark:text-purple-400'
|
|
348
|
+
>
|
|
349
|
+
Purple
|
|
350
|
+
</Badge>
|
|
351
|
+
<Badge
|
|
352
|
+
variant='default'
|
|
353
|
+
appearance='light'
|
|
354
|
+
className='bg-pink-500/10 text-pink-600 dark:text-pink-400'
|
|
355
|
+
>
|
|
356
|
+
Pink
|
|
357
|
+
</Badge>
|
|
358
|
+
<Badge
|
|
359
|
+
variant='default'
|
|
360
|
+
appearance='light'
|
|
361
|
+
className='bg-indigo-500/10 text-indigo-600 dark:text-indigo-400'
|
|
362
|
+
>
|
|
363
|
+
Indigo
|
|
364
|
+
</Badge>
|
|
365
|
+
<Badge
|
|
366
|
+
variant='default'
|
|
367
|
+
appearance='light'
|
|
368
|
+
className='bg-teal-500/10 text-teal-600 dark:text-teal-400'
|
|
369
|
+
>
|
|
370
|
+
Teal
|
|
371
|
+
</Badge>
|
|
372
|
+
<Badge
|
|
373
|
+
variant='default'
|
|
374
|
+
appearance='light'
|
|
375
|
+
className='bg-amber-500/10 text-amber-600 dark:text-amber-400'
|
|
376
|
+
>
|
|
377
|
+
Amber
|
|
378
|
+
</Badge>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
|
|
382
|
+
{/* Outline appearance with custom colors */}
|
|
383
|
+
<div className='flex flex-col gap-2'>
|
|
384
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Outline</h3>
|
|
385
|
+
<div className='flex flex-wrap gap-2'>
|
|
386
|
+
<Badge
|
|
387
|
+
variant='default'
|
|
388
|
+
appearance='outline'
|
|
389
|
+
className='border-purple-500 bg-purple-500/10 text-purple-600 dark:text-purple-400'
|
|
390
|
+
>
|
|
391
|
+
Purple
|
|
392
|
+
</Badge>
|
|
393
|
+
<Badge
|
|
394
|
+
variant='default'
|
|
395
|
+
appearance='outline'
|
|
396
|
+
className='border-pink-500 bg-pink-500/10 text-pink-600 dark:text-pink-400'
|
|
397
|
+
>
|
|
398
|
+
Pink
|
|
399
|
+
</Badge>
|
|
400
|
+
<Badge
|
|
401
|
+
variant='default'
|
|
402
|
+
appearance='outline'
|
|
403
|
+
className='border-indigo-500 bg-indigo-500/10 text-indigo-600 dark:text-indigo-400'
|
|
404
|
+
>
|
|
405
|
+
Indigo
|
|
406
|
+
</Badge>
|
|
407
|
+
<Badge
|
|
408
|
+
variant='default'
|
|
409
|
+
appearance='outline'
|
|
410
|
+
className='border-teal-500 bg-teal-500/10 text-teal-600 dark:text-teal-400'
|
|
411
|
+
>
|
|
412
|
+
Teal
|
|
413
|
+
</Badge>
|
|
414
|
+
<Badge
|
|
415
|
+
variant='default'
|
|
416
|
+
appearance='outline'
|
|
417
|
+
className='border-amber-500 bg-amber-500/10 text-amber-600 dark:text-amber-400'
|
|
418
|
+
>
|
|
419
|
+
Amber
|
|
420
|
+
</Badge>
|
|
421
|
+
</div>
|
|
422
|
+
</div>
|
|
423
|
+
|
|
424
|
+
{/* Ghost appearance with custom colors */}
|
|
425
|
+
<div className='flex flex-col gap-2'>
|
|
426
|
+
<h3 className='text-sm font-medium text-muted-foreground'>Ghost</h3>
|
|
427
|
+
<div className='flex flex-wrap gap-2'>
|
|
428
|
+
<Badge
|
|
429
|
+
variant='default'
|
|
430
|
+
appearance='ghost'
|
|
431
|
+
className='text-purple-600 dark:text-purple-400'
|
|
432
|
+
>
|
|
433
|
+
<BadgeDot />
|
|
434
|
+
Purple
|
|
435
|
+
</Badge>
|
|
436
|
+
<Badge
|
|
437
|
+
variant='default'
|
|
438
|
+
appearance='ghost'
|
|
439
|
+
className='text-pink-600 dark:text-pink-400'
|
|
440
|
+
>
|
|
441
|
+
<BadgeDot />
|
|
442
|
+
Pink
|
|
443
|
+
</Badge>
|
|
444
|
+
<Badge
|
|
445
|
+
variant='default'
|
|
446
|
+
appearance='ghost'
|
|
447
|
+
className='text-indigo-600 dark:text-indigo-400'
|
|
448
|
+
>
|
|
449
|
+
<BadgeDot />
|
|
450
|
+
Indigo
|
|
451
|
+
</Badge>
|
|
452
|
+
<Badge
|
|
453
|
+
variant='default'
|
|
454
|
+
appearance='ghost'
|
|
455
|
+
className='text-teal-600 dark:text-teal-400'
|
|
456
|
+
>
|
|
457
|
+
<BadgeDot />
|
|
458
|
+
Teal
|
|
459
|
+
</Badge>
|
|
460
|
+
<Badge
|
|
461
|
+
variant='default'
|
|
462
|
+
appearance='ghost'
|
|
463
|
+
className='text-amber-600 dark:text-amber-400'
|
|
464
|
+
>
|
|
465
|
+
<BadgeDot />
|
|
466
|
+
Amber
|
|
467
|
+
</Badge>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
</div>
|
|
471
|
+
)
|
|
472
|
+
}
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
## Resources
|
|
476
|
+
|
|
477
|
+
- [Base UI Badge Documentation](https://base-ui.com/react/components/badge)
|
|
478
|
+
- [API Reference](https://base-ui.com/react/components/badge#api-reference)
|