aural-ui 2.0.0 → 2.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/dist/components/badge/Badge.stories.tsx +7 -0
- package/dist/components/banner/Banner.stories.tsx +7 -0
- package/dist/components/button/Button.stories.tsx +7 -0
- package/dist/components/char-count/CharCount.stories.tsx +7 -0
- package/dist/components/checkbox/Checkbox.stories.tsx +7 -0
- package/dist/components/chip/Chip.stories.tsx +10 -0
- package/dist/components/collapsible/Collapsible.stories.tsx +7 -0
- package/dist/components/dropdown/index.tsx +16 -0
- package/dist/components/form/Form.stories.tsx +7 -0
- package/dist/components/helper-text/HelperText.stories.tsx +7 -0
- package/dist/components/icon-button/IconButton.stories.tsx +4 -0
- package/dist/components/if-else/if-else.stories.tsx +7 -0
- package/dist/components/input/Input.stories.tsx +7 -0
- package/dist/components/label/Label.stories.tsx +7 -0
- package/dist/components/overlay/index.tsx +1 -1
- package/dist/components/pagination/Pagination.stories.tsx +7 -0
- package/dist/components/radio/Radio.stories.tsx +7 -0
- package/dist/components/scroll-area/index.tsx +18 -5
- package/dist/components/select/Select.stories.tsx +7 -0
- package/dist/components/stepper/Stepper.stories.tsx +7 -0
- package/dist/components/switch/Switch.stories.tsx +7 -0
- package/dist/components/switch-case/SwitchCase.stories.tsx +7 -0
- package/dist/components/tag/Tag.stories.tsx +7 -0
- package/dist/components/textarea/TextArea.stories.tsx +7 -0
- package/dist/components/textarea/index.tsx +2 -0
- package/dist/components/toast/Toast.stories.tsx +7 -0
- package/dist/components/typography/Typography.stories.tsx +7 -0
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +1101 -0
- package/dist/icons/ai-avatar-icon/index.tsx +36 -0
- package/dist/icons/ai-avatar-icon/meta.ts +8 -0
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +1013 -0
- package/dist/icons/arrow-corner-up-left-icon/index.tsx +24 -0
- package/dist/icons/arrow-corner-up-left-icon/meta.ts +8 -0
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +1056 -0
- package/dist/icons/arrow-corner-up-right-icon/index.tsx +24 -0
- package/dist/icons/arrow-corner-up-right-icon/meta.ts +8 -0
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +1027 -0
- package/dist/icons/layout-column-icon/index.tsx +23 -0
- package/dist/icons/layout-column-icon/meta.ts +8 -0
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +1007 -0
- package/dist/icons/layout-left-icon/index.tsx +26 -0
- package/dist/icons/layout-left-icon/meta.ts +8 -0
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +1001 -0
- package/dist/icons/layout-right-icon/index.tsx +26 -0
- package/dist/icons/layout-right-icon/meta.ts +8 -0
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +1010 -0
- package/dist/icons/paint-roll-icon/index.tsx +24 -0
- package/dist/icons/paint-roll-icon/meta.ts +8 -0
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +1018 -0
- package/dist/icons/sparkles-soft-icon/index.tsx +29 -0
- package/dist/icons/sparkles-soft-icon/meta.ts +8 -0
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +1006 -0
- package/dist/icons/text-color-icon/index.tsx +35 -0
- package/dist/icons/text-color-icon/meta.ts +8 -0
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +1039 -0
- package/dist/icons/text-indicator-icon/index.tsx +24 -0
- package/dist/icons/text-indicator-icon/meta.ts +8 -0
- package/dist/index.js +124 -99
- package/package.json +1 -1
|
@@ -0,0 +1,1101 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
|
|
4
|
+
import { AiAvatarIcon } from "."
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof AiAvatarIcon> = {
|
|
7
|
+
title: "Icons/AiAvatarIcon",
|
|
8
|
+
component: AiAvatarIcon,
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: "fullscreen",
|
|
11
|
+
backgrounds: {
|
|
12
|
+
default: "dark",
|
|
13
|
+
values: [
|
|
14
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
15
|
+
{ name: "darker", value: "#000000" },
|
|
16
|
+
{ name: "light", value: "#ffffff" },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
docs: {
|
|
20
|
+
page: () => (
|
|
21
|
+
<>
|
|
22
|
+
{/* Override default docs styling */}
|
|
23
|
+
<style>
|
|
24
|
+
{`
|
|
25
|
+
.sbdocs-wrapper {
|
|
26
|
+
padding: 0 ;
|
|
27
|
+
max-width: none ;
|
|
28
|
+
background: transparent ;
|
|
29
|
+
}
|
|
30
|
+
.sbdocs-content {
|
|
31
|
+
max-width: none ;
|
|
32
|
+
padding: 0 ;
|
|
33
|
+
margin: 0 ;
|
|
34
|
+
background: transparent ;
|
|
35
|
+
}
|
|
36
|
+
.docs-story {
|
|
37
|
+
background: transparent ;
|
|
38
|
+
}
|
|
39
|
+
.sbdocs {
|
|
40
|
+
background: transparent ;
|
|
41
|
+
}
|
|
42
|
+
body {
|
|
43
|
+
background: #0a0a0a ;
|
|
44
|
+
}
|
|
45
|
+
#storybook-docs {
|
|
46
|
+
background: #0a0a0a ;
|
|
47
|
+
}
|
|
48
|
+
.sbdocs-preview {
|
|
49
|
+
background: transparent ;
|
|
50
|
+
border: none ;
|
|
51
|
+
}
|
|
52
|
+
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
+
color: white ;
|
|
54
|
+
}
|
|
55
|
+
.sbdocs-p, .sbdocs-li {
|
|
56
|
+
color: rgba(255, 255, 255, 0.7) ;
|
|
57
|
+
}
|
|
58
|
+
.sbdocs-code {
|
|
59
|
+
background: rgba(255, 255, 255, 0.1) ;
|
|
60
|
+
color: rgba(168, 85, 247, 1) ;
|
|
61
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
62
|
+
}
|
|
63
|
+
.sbdocs-pre {
|
|
64
|
+
background: rgba(0, 0, 0, 0.4) ;
|
|
65
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
66
|
+
}
|
|
67
|
+
.sbdocs-table {
|
|
68
|
+
background: rgba(255, 255, 255, 0.05) ;
|
|
69
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
70
|
+
}
|
|
71
|
+
.sbdocs-table th {
|
|
72
|
+
background: rgba(255, 255, 255, 0.05) ;
|
|
73
|
+
color: white ;
|
|
74
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
75
|
+
}
|
|
76
|
+
.sbdocs-table td {
|
|
77
|
+
color: rgba(255, 255, 255, 0.7) ;
|
|
78
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
|
|
79
|
+
}
|
|
80
|
+
`}
|
|
81
|
+
</style>
|
|
82
|
+
|
|
83
|
+
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
|
|
84
|
+
{/* Header */}
|
|
85
|
+
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
86
|
+
<div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-blue-500/10" />
|
|
87
|
+
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
|
+
<div className="!space-y-6 text-center">
|
|
89
|
+
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-pink-500/20">
|
|
90
|
+
<AiAvatarIcon className="h-12 w-12" />
|
|
91
|
+
</div>
|
|
92
|
+
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
|
+
AiAvatarIcon
|
|
94
|
+
</h1>
|
|
95
|
+
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
96
|
+
A sophisticated AI avatar icon featuring sparkle elements
|
|
97
|
+
and a distinct purple theme. Perfect for AI assistants,
|
|
98
|
+
chatbots, virtual agents, and machine learning interfaces.
|
|
99
|
+
Built with accessibility in mind using Radix UI's
|
|
100
|
+
AccessibleIcon wrapper.
|
|
101
|
+
</p>
|
|
102
|
+
|
|
103
|
+
{/* Stats */}
|
|
104
|
+
<div className="flex items-center justify-center gap-8 pt-8">
|
|
105
|
+
<div className="text-center">
|
|
106
|
+
<div className="text-3xl font-bold text-purple-300">
|
|
107
|
+
Accessible
|
|
108
|
+
</div>
|
|
109
|
+
<div className="text-sm text-white/60">
|
|
110
|
+
Screen reader friendly
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
<div className="h-8 w-px bg-white/20" />
|
|
114
|
+
<div className="text-center">
|
|
115
|
+
<div className="text-3xl font-bold text-pink-300">
|
|
116
|
+
Scalable
|
|
117
|
+
</div>
|
|
118
|
+
<div className="text-sm text-white/60">
|
|
119
|
+
Any size needed
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
<div className="h-8 w-px bg-white/20" />
|
|
123
|
+
<div className="text-center">
|
|
124
|
+
<div className="text-3xl font-bold text-blue-300">
|
|
125
|
+
Customizable
|
|
126
|
+
</div>
|
|
127
|
+
<div className="text-sm text-white/60">
|
|
128
|
+
Independent styling
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
|
|
136
|
+
{/* Content */}
|
|
137
|
+
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
138
|
+
{/* Quick Usage */}
|
|
139
|
+
<div className="!space-y-8">
|
|
140
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
141
|
+
Quick Start
|
|
142
|
+
</h2>
|
|
143
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
144
|
+
<div className="!space-y-4">
|
|
145
|
+
<h3 className="text-xl font-semibold !text-purple-300">
|
|
146
|
+
Basic Usage
|
|
147
|
+
</h3>
|
|
148
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
149
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
150
|
+
{`import { AiAvatarIcon } from "@icons/ai-avatar-icon"
|
|
151
|
+
|
|
152
|
+
function MyComponent() {
|
|
153
|
+
return (
|
|
154
|
+
<div className="flex items-center gap-3">
|
|
155
|
+
<AiAvatarIcon className="h-8 w-8" />
|
|
156
|
+
<span>AI Assistant</span>
|
|
157
|
+
</div>
|
|
158
|
+
)
|
|
159
|
+
}`}
|
|
160
|
+
</pre>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
<div className="!space-y-4">
|
|
165
|
+
<h3 className="text-xl font-semibold !text-purple-300">
|
|
166
|
+
Live Preview
|
|
167
|
+
</h3>
|
|
168
|
+
<div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
|
|
169
|
+
<div className="flex items-center gap-3 rounded-lg border border-purple-500/20 bg-purple-500/10 px-4 py-2">
|
|
170
|
+
<AiAvatarIcon className="h-8 w-8" />
|
|
171
|
+
<span className="text-white">AI Assistant</span>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
{/* Props Documentation */}
|
|
179
|
+
<div className="!space-y-8">
|
|
180
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
181
|
+
Props & Configuration
|
|
182
|
+
</h2>
|
|
183
|
+
|
|
184
|
+
<div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
|
|
185
|
+
<div className="bg-white/5 p-4">
|
|
186
|
+
<h3 className="text-xl font-semibold !text-white">Props</h3>
|
|
187
|
+
</div>
|
|
188
|
+
<table className="!my-0 w-full">
|
|
189
|
+
<thead className="bg-white/5">
|
|
190
|
+
<tr className="border-b border-white/10">
|
|
191
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
192
|
+
Prop
|
|
193
|
+
</th>
|
|
194
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
195
|
+
Type
|
|
196
|
+
</th>
|
|
197
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
198
|
+
Default
|
|
199
|
+
</th>
|
|
200
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
201
|
+
Description
|
|
202
|
+
</th>
|
|
203
|
+
</tr>
|
|
204
|
+
</thead>
|
|
205
|
+
<tbody>
|
|
206
|
+
<tr className="border-b border-white/5">
|
|
207
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
208
|
+
width
|
|
209
|
+
</td>
|
|
210
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
211
|
+
number | string
|
|
212
|
+
</td>
|
|
213
|
+
<td className="px-6 py-4 text-sm !text-white/50">40</td>
|
|
214
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
215
|
+
Width of the icon in pixels
|
|
216
|
+
</td>
|
|
217
|
+
</tr>
|
|
218
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
219
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
220
|
+
height
|
|
221
|
+
</td>
|
|
222
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
223
|
+
number | string
|
|
224
|
+
</td>
|
|
225
|
+
<td className="px-6 py-4 text-sm !text-white/50">40</td>
|
|
226
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
227
|
+
Height of the icon in pixels
|
|
228
|
+
</td>
|
|
229
|
+
</tr>
|
|
230
|
+
<tr className="border-b border-white/5">
|
|
231
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
232
|
+
classes
|
|
233
|
+
</td>
|
|
234
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
235
|
+
object
|
|
236
|
+
</td>
|
|
237
|
+
<td className="px-6 py-4 text-sm !text-white/50">{}</td>
|
|
238
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
239
|
+
Custom classes for circle and path elements
|
|
240
|
+
</td>
|
|
241
|
+
</tr>
|
|
242
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
243
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
244
|
+
classes.circle
|
|
245
|
+
</td>
|
|
246
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
247
|
+
string
|
|
248
|
+
</td>
|
|
249
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
250
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
251
|
+
CSS classes for the background circle
|
|
252
|
+
</td>
|
|
253
|
+
</tr>
|
|
254
|
+
<tr className="border-b border-white/5">
|
|
255
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
256
|
+
classes.path
|
|
257
|
+
</td>
|
|
258
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
259
|
+
string
|
|
260
|
+
</td>
|
|
261
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
262
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
263
|
+
CSS classes for the sparkle elements
|
|
264
|
+
</td>
|
|
265
|
+
</tr>
|
|
266
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
267
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
268
|
+
className
|
|
269
|
+
</td>
|
|
270
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
271
|
+
string
|
|
272
|
+
</td>
|
|
273
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
274
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
275
|
+
CSS classes for the entire SVG element
|
|
276
|
+
</td>
|
|
277
|
+
</tr>
|
|
278
|
+
<tr className="!bg-black/10">
|
|
279
|
+
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
280
|
+
...svgProps
|
|
281
|
+
</td>
|
|
282
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
283
|
+
SVGProps
|
|
284
|
+
</td>
|
|
285
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
286
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
287
|
+
All standard SVG element props
|
|
288
|
+
</td>
|
|
289
|
+
</tr>
|
|
290
|
+
</tbody>
|
|
291
|
+
</table>
|
|
292
|
+
</div>
|
|
293
|
+
</div>
|
|
294
|
+
|
|
295
|
+
{/* Size Variations */}
|
|
296
|
+
<div className="!space-y-8">
|
|
297
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
298
|
+
Size Variations
|
|
299
|
+
</h2>
|
|
300
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
301
|
+
<div className="!space-y-6">
|
|
302
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
303
|
+
<div className="!space-y-4">
|
|
304
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
305
|
+
Standard Sizes
|
|
306
|
+
</h3>
|
|
307
|
+
<div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
|
|
308
|
+
<div className="text-center">
|
|
309
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-6 w-6" />
|
|
310
|
+
<span className="text-xs text-white/60">24px</span>
|
|
311
|
+
</div>
|
|
312
|
+
<div className="text-center">
|
|
313
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-8 w-8" />
|
|
314
|
+
<span className="text-xs text-white/60">32px</span>
|
|
315
|
+
</div>
|
|
316
|
+
<div className="text-center">
|
|
317
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-10 w-10" />
|
|
318
|
+
<span className="text-xs text-white/60">40px</span>
|
|
319
|
+
</div>
|
|
320
|
+
<div className="text-center">
|
|
321
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-12 w-12" />
|
|
322
|
+
<span className="text-xs text-white/60">48px</span>
|
|
323
|
+
</div>
|
|
324
|
+
<div className="text-center">
|
|
325
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-16 w-16" />
|
|
326
|
+
<span className="text-xs text-white/60">64px</span>
|
|
327
|
+
</div>
|
|
328
|
+
<div className="text-center">
|
|
329
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-20 w-20" />
|
|
330
|
+
<span className="text-xs text-white/60">80px</span>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
|
|
335
|
+
<div className="!space-y-4">
|
|
336
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
337
|
+
Code Example
|
|
338
|
+
</h3>
|
|
339
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
340
|
+
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
341
|
+
{`// Small (32px)
|
|
342
|
+
<AiAvatarIcon className="h-8 w-8" />
|
|
343
|
+
|
|
344
|
+
// Medium (40px) - Default
|
|
345
|
+
<AiAvatarIcon className="h-10 w-10" />
|
|
346
|
+
|
|
347
|
+
// Large (64px)
|
|
348
|
+
<AiAvatarIcon className="h-16 w-16" />
|
|
349
|
+
|
|
350
|
+
// Custom size
|
|
351
|
+
<AiAvatarIcon width={80} height={80} />`}
|
|
352
|
+
</pre>
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
|
|
360
|
+
{/* Color Customization */}
|
|
361
|
+
<div className="!space-y-8">
|
|
362
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
363
|
+
Color Customization
|
|
364
|
+
</h2>
|
|
365
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
366
|
+
<div className="!space-y-4">
|
|
367
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
368
|
+
Theme Variations
|
|
369
|
+
</h3>
|
|
370
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
371
|
+
<div className="flex items-center gap-4">
|
|
372
|
+
<AiAvatarIcon className="h-10 w-10" />
|
|
373
|
+
<div>
|
|
374
|
+
<div className="text-sm font-medium text-white">
|
|
375
|
+
Default Theme
|
|
376
|
+
</div>
|
|
377
|
+
<div className="text-xs text-white/60">
|
|
378
|
+
Purple & Pink sparkles
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
<div className="flex items-center gap-4">
|
|
383
|
+
<AiAvatarIcon
|
|
384
|
+
className="h-10 w-10"
|
|
385
|
+
classes={{
|
|
386
|
+
circle: "fill-blue-800",
|
|
387
|
+
path: "fill-blue-300",
|
|
388
|
+
}}
|
|
389
|
+
/>
|
|
390
|
+
<div>
|
|
391
|
+
<div className="text-sm font-medium text-white">
|
|
392
|
+
Blue Theme
|
|
393
|
+
</div>
|
|
394
|
+
<div className="text-xs text-white/60">
|
|
395
|
+
Blue background & sparkles
|
|
396
|
+
</div>
|
|
397
|
+
</div>
|
|
398
|
+
</div>
|
|
399
|
+
<div className="flex items-center gap-4">
|
|
400
|
+
<AiAvatarIcon
|
|
401
|
+
className="h-10 w-10"
|
|
402
|
+
classes={{
|
|
403
|
+
circle: "fill-green-800",
|
|
404
|
+
path: "fill-green-300",
|
|
405
|
+
}}
|
|
406
|
+
/>
|
|
407
|
+
<div>
|
|
408
|
+
<div className="text-sm font-medium text-white">
|
|
409
|
+
Green Theme
|
|
410
|
+
</div>
|
|
411
|
+
<div className="text-xs text-white/60">
|
|
412
|
+
Green background & sparkles
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
<div className="flex items-center gap-4">
|
|
417
|
+
<AiAvatarIcon
|
|
418
|
+
className="h-10 w-10"
|
|
419
|
+
classes={{
|
|
420
|
+
circle: "fill-orange-800",
|
|
421
|
+
path: "fill-orange-300",
|
|
422
|
+
}}
|
|
423
|
+
/>
|
|
424
|
+
<div>
|
|
425
|
+
<div className="text-sm font-medium text-white">
|
|
426
|
+
Orange Theme
|
|
427
|
+
</div>
|
|
428
|
+
<div className="text-xs text-white/60">
|
|
429
|
+
Orange background & sparkles
|
|
430
|
+
</div>
|
|
431
|
+
</div>
|
|
432
|
+
</div>
|
|
433
|
+
</div>
|
|
434
|
+
</div>
|
|
435
|
+
|
|
436
|
+
<div className="!space-y-4">
|
|
437
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
438
|
+
Custom Styling
|
|
439
|
+
</h3>
|
|
440
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
441
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
442
|
+
{`// Using classes prop for custom colors
|
|
443
|
+
<AiAvatarIcon
|
|
444
|
+
classes={{
|
|
445
|
+
circle: "fill-blue-800",
|
|
446
|
+
path: "fill-blue-300"
|
|
447
|
+
}}
|
|
448
|
+
/>
|
|
449
|
+
|
|
450
|
+
// Using Tailwind CSS modifiers
|
|
451
|
+
<AiAvatarIcon
|
|
452
|
+
classes={{
|
|
453
|
+
circle: "fill-gradient-to-br from-purple-800 to-pink-800",
|
|
454
|
+
path: "fill-purple-200"
|
|
455
|
+
}}
|
|
456
|
+
/>
|
|
457
|
+
|
|
458
|
+
// CSS custom properties
|
|
459
|
+
<AiAvatarIcon
|
|
460
|
+
classes={{
|
|
461
|
+
circle: "fill-[var(--ai-bg-color)]",
|
|
462
|
+
path: "fill-[var(--ai-accent-color)]"
|
|
463
|
+
}}
|
|
464
|
+
/>`}
|
|
465
|
+
</pre>
|
|
466
|
+
</div>
|
|
467
|
+
</div>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
|
|
471
|
+
{/* Usage Examples */}
|
|
472
|
+
<div className="!space-y-8">
|
|
473
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
474
|
+
Usage Examples
|
|
475
|
+
</h2>
|
|
476
|
+
|
|
477
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
478
|
+
{/* Chat Interface */}
|
|
479
|
+
<div className="!space-y-4">
|
|
480
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
481
|
+
Chat Interface
|
|
482
|
+
</h3>
|
|
483
|
+
<div className="!space-y-4">
|
|
484
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-4">
|
|
485
|
+
<div className="flex items-start gap-3">
|
|
486
|
+
<AiAvatarIcon className="h-8 w-8 flex-shrink-0" />
|
|
487
|
+
<div className="flex-1">
|
|
488
|
+
<div className="flex items-center gap-2">
|
|
489
|
+
<span className="text-sm font-medium text-purple-300">
|
|
490
|
+
AI Assistant
|
|
491
|
+
</span>
|
|
492
|
+
<span className="text-xs text-white/50">now</span>
|
|
493
|
+
</div>
|
|
494
|
+
<p className="mt-1 text-sm !text-white/80">
|
|
495
|
+
Hello! I'm here to help you with any questions you
|
|
496
|
+
might have.
|
|
497
|
+
</p>
|
|
498
|
+
</div>
|
|
499
|
+
</div>
|
|
500
|
+
<div className="flex items-start gap-3">
|
|
501
|
+
<div className="h-8 w-8 flex-shrink-0 rounded-full bg-gray-600"></div>
|
|
502
|
+
<div className="flex-1">
|
|
503
|
+
<div className="flex items-center gap-2">
|
|
504
|
+
<span className="text-sm font-medium text-white">
|
|
505
|
+
You
|
|
506
|
+
</span>
|
|
507
|
+
<span className="text-xs text-white/50">now</span>
|
|
508
|
+
</div>
|
|
509
|
+
<p className="mt-1 text-sm !text-white/80">
|
|
510
|
+
Can you help me understand AI avatars?
|
|
511
|
+
</p>
|
|
512
|
+
</div>
|
|
513
|
+
</div>
|
|
514
|
+
</div>
|
|
515
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
516
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
517
|
+
{`<div className="flex items-start gap-3">
|
|
518
|
+
<AiAvatarIcon className="h-8 w-8 flex-shrink-0" />
|
|
519
|
+
<div className="flex-1">
|
|
520
|
+
<div className="flex items-center gap-2">
|
|
521
|
+
<span className="text-sm font-medium text-purple-300">AI Assistant</span>
|
|
522
|
+
<span className="text-xs text-white/50">now</span>
|
|
523
|
+
</div>
|
|
524
|
+
<p className="mt-1 text-sm !text-white/80">
|
|
525
|
+
Hello! I'm here to help you with any questions you might have.
|
|
526
|
+
</p>
|
|
527
|
+
</div>
|
|
528
|
+
</div>`}
|
|
529
|
+
</pre>
|
|
530
|
+
</div>
|
|
531
|
+
</div>
|
|
532
|
+
</div>
|
|
533
|
+
|
|
534
|
+
{/* Profile Card */}
|
|
535
|
+
<div className="!space-y-4">
|
|
536
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
537
|
+
AI Profile Card
|
|
538
|
+
</h3>
|
|
539
|
+
<div className="!space-y-4">
|
|
540
|
+
<div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-6">
|
|
541
|
+
<div className="!space-y-4 text-center">
|
|
542
|
+
<AiAvatarIcon className="!mx-auto h-16 w-16" />
|
|
543
|
+
<div>
|
|
544
|
+
<h4 className="font-medium !text-white">
|
|
545
|
+
Claude AI
|
|
546
|
+
</h4>
|
|
547
|
+
<p className="text-sm !text-purple-300/80">
|
|
548
|
+
Your intelligent assistant
|
|
549
|
+
</p>
|
|
550
|
+
</div>
|
|
551
|
+
<div className="flex items-center justify-center gap-2 text-xs text-purple-400">
|
|
552
|
+
<div className="h-2 w-2 rounded-full bg-green-400"></div>
|
|
553
|
+
<span>Online & Ready</span>
|
|
554
|
+
</div>
|
|
555
|
+
</div>
|
|
556
|
+
</div>
|
|
557
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
558
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
559
|
+
{`<div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-6">
|
|
560
|
+
<div className="space-y-4 text-center">
|
|
561
|
+
<AiAvatarIcon className="mx-auto h-16 w-16" />
|
|
562
|
+
<div>
|
|
563
|
+
<h4 className="font-medium !text-white">Claude AI</h4>
|
|
564
|
+
<p className="text-sm !text-purple-300/80">Your intelligent assistant</p>
|
|
565
|
+
</div>
|
|
566
|
+
<div className="flex items-center justify-center gap-2 text-xs text-purple-400">
|
|
567
|
+
<div className="h-2 w-2 rounded-full bg-green-400"></div>
|
|
568
|
+
<span>Online & Ready</span>
|
|
569
|
+
</div>
|
|
570
|
+
</div>
|
|
571
|
+
</div>`}
|
|
572
|
+
</pre>
|
|
573
|
+
</div>
|
|
574
|
+
</div>
|
|
575
|
+
</div>
|
|
576
|
+
|
|
577
|
+
{/* Navigation Menu */}
|
|
578
|
+
<div className="!space-y-4">
|
|
579
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
580
|
+
Navigation Menu
|
|
581
|
+
</h3>
|
|
582
|
+
<div className="!space-y-4">
|
|
583
|
+
<div className="!space-y-2">
|
|
584
|
+
<div className="flex items-center gap-3 rounded-lg bg-purple-500/20 px-3 py-2 text-purple-200">
|
|
585
|
+
<AiAvatarIcon className="h-5 w-5" />
|
|
586
|
+
<span className="text-sm font-medium">
|
|
587
|
+
AI Assistant
|
|
588
|
+
</span>
|
|
589
|
+
</div>
|
|
590
|
+
<div className="flex items-center gap-3 rounded-lg px-3 py-2 text-white/60 hover:bg-white/5">
|
|
591
|
+
<div className="h-5 w-5 rounded bg-gray-600"></div>
|
|
592
|
+
<span className="text-sm">Conversations</span>
|
|
593
|
+
</div>
|
|
594
|
+
<div className="flex items-center gap-3 rounded-lg px-3 py-2 text-white/60 hover:bg-white/5">
|
|
595
|
+
<div className="h-5 w-5 rounded bg-gray-600"></div>
|
|
596
|
+
<span className="text-sm">Settings</span>
|
|
597
|
+
</div>
|
|
598
|
+
</div>
|
|
599
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
600
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
601
|
+
{`// Active menu item
|
|
602
|
+
<div className="flex items-center gap-3 rounded-lg bg-purple-500/20 px-3 py-2 text-purple-200">
|
|
603
|
+
<AiAvatarIcon className="h-5 w-5" />
|
|
604
|
+
<span className="text-sm font-medium">AI Assistant</span>
|
|
605
|
+
</div>
|
|
606
|
+
|
|
607
|
+
// Regular menu items
|
|
608
|
+
<div className="flex items-center gap-3 rounded-lg px-3 py-2 text-white/60 hover:bg-white/5">
|
|
609
|
+
<div className="h-5 w-5 rounded bg-gray-600"></div>
|
|
610
|
+
<span className="text-sm">Conversations</span>
|
|
611
|
+
</div>`}
|
|
612
|
+
</pre>
|
|
613
|
+
</div>
|
|
614
|
+
</div>
|
|
615
|
+
</div>
|
|
616
|
+
|
|
617
|
+
{/* Feature Card */}
|
|
618
|
+
<div className="!space-y-4">
|
|
619
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
620
|
+
Feature Showcase
|
|
621
|
+
</h3>
|
|
622
|
+
<div className="!space-y-4">
|
|
623
|
+
<div className="grid gap-4">
|
|
624
|
+
<div className="group cursor-pointer rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10">
|
|
625
|
+
<div className="flex items-center gap-4">
|
|
626
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
627
|
+
<AiAvatarIcon className="h-6 w-6" />
|
|
628
|
+
</div>
|
|
629
|
+
<div>
|
|
630
|
+
<h4 className="font-medium !text-white">
|
|
631
|
+
AI-Powered Chat
|
|
632
|
+
</h4>
|
|
633
|
+
<p className="text-sm !text-white/60">
|
|
634
|
+
Intelligent conversations with context awareness
|
|
635
|
+
</p>
|
|
636
|
+
</div>
|
|
637
|
+
</div>
|
|
638
|
+
</div>
|
|
639
|
+
<div className="group cursor-pointer rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10">
|
|
640
|
+
<div className="flex items-center gap-4">
|
|
641
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
642
|
+
<AiAvatarIcon
|
|
643
|
+
className="h-6 w-6"
|
|
644
|
+
classes={{
|
|
645
|
+
circle: "fill-blue-800",
|
|
646
|
+
path: "fill-blue-300",
|
|
647
|
+
}}
|
|
648
|
+
/>
|
|
649
|
+
</div>
|
|
650
|
+
<div>
|
|
651
|
+
<h4 className="font-medium !text-white">
|
|
652
|
+
Smart Analytics
|
|
653
|
+
</h4>
|
|
654
|
+
<p className="text-sm !text-white/60">
|
|
655
|
+
Data insights powered by machine learning
|
|
656
|
+
</p>
|
|
657
|
+
</div>
|
|
658
|
+
</div>
|
|
659
|
+
</div>
|
|
660
|
+
</div>
|
|
661
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
662
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
663
|
+
{`<div className="group cursor-pointer rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10">
|
|
664
|
+
<div className="flex items-center gap-4">
|
|
665
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
666
|
+
<AiAvatarIcon className="h-6 w-6" />
|
|
667
|
+
</div>
|
|
668
|
+
<div>
|
|
669
|
+
<h4 className="font-medium text-white">AI-Powered Chat</h4>
|
|
670
|
+
<p className="text-sm text-white/60">
|
|
671
|
+
Intelligent conversations with context awareness
|
|
672
|
+
</p>
|
|
673
|
+
</div>
|
|
674
|
+
</div>
|
|
675
|
+
</div>`}
|
|
676
|
+
</pre>
|
|
677
|
+
</div>
|
|
678
|
+
</div>
|
|
679
|
+
</div>
|
|
680
|
+
</div>
|
|
681
|
+
</div>
|
|
682
|
+
|
|
683
|
+
{/* Accessibility */}
|
|
684
|
+
<div className="!space-y-8">
|
|
685
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
686
|
+
Accessibility Features
|
|
687
|
+
</h2>
|
|
688
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
689
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
690
|
+
<h3 className="text-lg font-semibold !text-green-300">
|
|
691
|
+
✅ Built-in Features
|
|
692
|
+
</h3>
|
|
693
|
+
<ul className="!space-y-2 text-sm !text-white/70">
|
|
694
|
+
<li className="!text-white/70">
|
|
695
|
+
Uses Radix UI AccessibleIcon wrapper
|
|
696
|
+
</li>
|
|
697
|
+
<li className="!text-white/70">
|
|
698
|
+
Provides screen reader label "Ai Avatar icon"
|
|
699
|
+
</li>
|
|
700
|
+
<li className="!text-white/70">
|
|
701
|
+
Supports keyboard navigation when interactive
|
|
702
|
+
</li>
|
|
703
|
+
<li className="!text-white/70">
|
|
704
|
+
Maintains proper color contrast ratios
|
|
705
|
+
</li>
|
|
706
|
+
<li className="!text-white/70">
|
|
707
|
+
Scales proportionally with size changes
|
|
708
|
+
</li>
|
|
709
|
+
</ul>
|
|
710
|
+
</div>
|
|
711
|
+
|
|
712
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
713
|
+
<h3 className="text-lg font-semibold !text-purple-300">
|
|
714
|
+
💡 Best Practices
|
|
715
|
+
</h3>
|
|
716
|
+
<ul className="!space-y-2 text-sm text-white/70">
|
|
717
|
+
<li className="!text-white/70">
|
|
718
|
+
Always pair with descriptive text or labels
|
|
719
|
+
</li>
|
|
720
|
+
<li className="!text-white/70">
|
|
721
|
+
Use consistent colors for AI-related elements
|
|
722
|
+
</li>
|
|
723
|
+
<li className="!text-white/70">
|
|
724
|
+
Ensure sufficient color contrast for sparkle elements
|
|
725
|
+
</li>
|
|
726
|
+
<li className="!text-white/70">
|
|
727
|
+
Add focus states for interactive elements
|
|
728
|
+
</li>
|
|
729
|
+
<li className="!text-white/70">
|
|
730
|
+
Consider providing alternative text context
|
|
731
|
+
</li>
|
|
732
|
+
</ul>
|
|
733
|
+
</div>
|
|
734
|
+
</div>
|
|
735
|
+
|
|
736
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
737
|
+
<h3 className="mb-4 text-lg font-semibold !text-blue-300">
|
|
738
|
+
Custom Accessibility Label
|
|
739
|
+
</h3>
|
|
740
|
+
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
741
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
742
|
+
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
743
|
+
{`// Custom implementation with specific label
|
|
744
|
+
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
745
|
+
|
|
746
|
+
function CustomAiAvatarIcon({ label = "AI Assistant", ...props }) {
|
|
747
|
+
return (
|
|
748
|
+
<AccessibleIcon label={label}>
|
|
749
|
+
<AiAvatarIcon {...props} />
|
|
750
|
+
</AccessibleIcon>
|
|
751
|
+
)
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
// Usage with specific context
|
|
755
|
+
<CustomAiAvatarIcon
|
|
756
|
+
label="Claude AI Assistant avatar"
|
|
757
|
+
className="h-8 w-8"
|
|
758
|
+
/>`}
|
|
759
|
+
</pre>
|
|
760
|
+
</div>
|
|
761
|
+
<div className="!space-y-4">
|
|
762
|
+
<p className="text-sm !text-white/70">
|
|
763
|
+
For specific contexts, you can wrap the AiAvatarIcon
|
|
764
|
+
with a custom AccessibleIcon component that provides
|
|
765
|
+
more descriptive labels for different AI assistants or
|
|
766
|
+
contexts.
|
|
767
|
+
</p>
|
|
768
|
+
<div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-4">
|
|
769
|
+
<div className="flex items-center gap-2 text-sm text-purple-200">
|
|
770
|
+
<AiAvatarIcon className="h-4 w-4" />
|
|
771
|
+
<span>
|
|
772
|
+
This approach gives screen readers specific AI
|
|
773
|
+
context
|
|
774
|
+
</span>
|
|
775
|
+
</div>
|
|
776
|
+
</div>
|
|
777
|
+
</div>
|
|
778
|
+
</div>
|
|
779
|
+
</div>
|
|
780
|
+
</div>
|
|
781
|
+
|
|
782
|
+
{/* Related Icons */}
|
|
783
|
+
<div className="!space-y-8">
|
|
784
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
785
|
+
Related Icons
|
|
786
|
+
</h2>
|
|
787
|
+
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
788
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
789
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
790
|
+
<span className="text-2xl">🤖</span>
|
|
791
|
+
</div>
|
|
792
|
+
<div>
|
|
793
|
+
<div className="font-medium text-white">BotIcon</div>
|
|
794
|
+
<div className="text-xs text-white/60">
|
|
795
|
+
Robot assistants
|
|
796
|
+
</div>
|
|
797
|
+
</div>
|
|
798
|
+
</div>
|
|
799
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
800
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
|
|
801
|
+
<span className="text-2xl">👤</span>
|
|
802
|
+
</div>
|
|
803
|
+
<div>
|
|
804
|
+
<div className="font-medium text-white">UserIcon</div>
|
|
805
|
+
<div className="text-xs text-white/60">Human users</div>
|
|
806
|
+
</div>
|
|
807
|
+
</div>
|
|
808
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
809
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
810
|
+
<span className="text-2xl">💬</span>
|
|
811
|
+
</div>
|
|
812
|
+
<div>
|
|
813
|
+
<div className="font-medium text-white">ChatIcon</div>
|
|
814
|
+
<div className="text-xs text-white/60">Conversations</div>
|
|
815
|
+
</div>
|
|
816
|
+
</div>
|
|
817
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
818
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
|
|
819
|
+
<span className="text-2xl">⚡</span>
|
|
820
|
+
</div>
|
|
821
|
+
<div>
|
|
822
|
+
<div className="font-medium text-white">
|
|
823
|
+
AutomationIcon
|
|
824
|
+
</div>
|
|
825
|
+
<div className="text-xs text-white/60">
|
|
826
|
+
Smart automation
|
|
827
|
+
</div>
|
|
828
|
+
</div>
|
|
829
|
+
</div>
|
|
830
|
+
</div>
|
|
831
|
+
</div>
|
|
832
|
+
</div>
|
|
833
|
+
|
|
834
|
+
{/* Footer */}
|
|
835
|
+
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
836
|
+
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
837
|
+
<div className="!space-y-4 text-center">
|
|
838
|
+
<p className="!text-white/60">
|
|
839
|
+
AiAvatarIcon is part of the Aural UI icon library, designed
|
|
840
|
+
specifically for AI and machine learning interfaces with
|
|
841
|
+
accessibility in mind.
|
|
842
|
+
</p>
|
|
843
|
+
<p className="text-sm !text-white/40">
|
|
844
|
+
Features customizable colors for circle and sparkle
|
|
845
|
+
elements, following WCAG guidelines for accessibility.
|
|
846
|
+
</p>
|
|
847
|
+
</div>
|
|
848
|
+
</div>
|
|
849
|
+
</div>
|
|
850
|
+
</div>
|
|
851
|
+
</>
|
|
852
|
+
),
|
|
853
|
+
},
|
|
854
|
+
},
|
|
855
|
+
tags: ["autodocs"],
|
|
856
|
+
argTypes: {
|
|
857
|
+
width: {
|
|
858
|
+
control: { type: "range", min: 16, max: 120, step: 4 },
|
|
859
|
+
description: "Width of the icon in pixels",
|
|
860
|
+
},
|
|
861
|
+
height: {
|
|
862
|
+
control: { type: "range", min: 16, max: 120, step: 4 },
|
|
863
|
+
description: "Height of the icon in pixels",
|
|
864
|
+
},
|
|
865
|
+
className: {
|
|
866
|
+
control: "text",
|
|
867
|
+
description: "CSS classes for the entire SVG element",
|
|
868
|
+
},
|
|
869
|
+
},
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
export default meta
|
|
873
|
+
type Story = StoryObj<typeof AiAvatarIcon>
|
|
874
|
+
|
|
875
|
+
// Story parameters for consistent dark theme
|
|
876
|
+
const storyParameters = {
|
|
877
|
+
backgrounds: {
|
|
878
|
+
default: "dark",
|
|
879
|
+
values: [
|
|
880
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
881
|
+
{ name: "darker", value: "#000000" },
|
|
882
|
+
],
|
|
883
|
+
},
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
export const Default: Story = {
|
|
887
|
+
args: {
|
|
888
|
+
width: 40,
|
|
889
|
+
height: 40,
|
|
890
|
+
className: "",
|
|
891
|
+
},
|
|
892
|
+
parameters: storyParameters,
|
|
893
|
+
render: (args) => (
|
|
894
|
+
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
895
|
+
<AiAvatarIcon {...args} />
|
|
896
|
+
</div>
|
|
897
|
+
),
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
export const SizeVariations: Story = {
|
|
901
|
+
parameters: {
|
|
902
|
+
...storyParameters,
|
|
903
|
+
docs: {
|
|
904
|
+
description: {
|
|
905
|
+
story:
|
|
906
|
+
"AiAvatarIcon in different sizes, from small chat indicators to large profile displays.",
|
|
907
|
+
},
|
|
908
|
+
},
|
|
909
|
+
},
|
|
910
|
+
render: () => (
|
|
911
|
+
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
912
|
+
<div className="text-center">
|
|
913
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-6 w-6" />
|
|
914
|
+
<span className="text-xs text-white/60">24px</span>
|
|
915
|
+
</div>
|
|
916
|
+
<div className="text-center">
|
|
917
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-8 w-8" />
|
|
918
|
+
<span className="text-xs text-white/60">32px</span>
|
|
919
|
+
</div>
|
|
920
|
+
<div className="text-center">
|
|
921
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-10 w-10" />
|
|
922
|
+
<span className="text-xs text-white/60">40px</span>
|
|
923
|
+
</div>
|
|
924
|
+
<div className="text-center">
|
|
925
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-12 w-12" />
|
|
926
|
+
<span className="text-xs text-white/60">48px</span>
|
|
927
|
+
</div>
|
|
928
|
+
<div className="text-center">
|
|
929
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-16 w-16" />
|
|
930
|
+
<span className="text-xs text-white/60">64px</span>
|
|
931
|
+
</div>
|
|
932
|
+
<div className="text-center">
|
|
933
|
+
<AiAvatarIcon className="!mx-auto mb-2 h-20 w-20" />
|
|
934
|
+
<span className="text-xs text-white/60">80px</span>
|
|
935
|
+
</div>
|
|
936
|
+
</div>
|
|
937
|
+
),
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
export const ColorVariations: Story = {
|
|
941
|
+
parameters: {
|
|
942
|
+
...storyParameters,
|
|
943
|
+
docs: {
|
|
944
|
+
description: {
|
|
945
|
+
story:
|
|
946
|
+
"AiAvatarIcon with different color themes for various AI personalities and brands.",
|
|
947
|
+
},
|
|
948
|
+
},
|
|
949
|
+
},
|
|
950
|
+
render: () => (
|
|
951
|
+
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
|
|
952
|
+
<div className="text-center">
|
|
953
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
|
|
954
|
+
<AiAvatarIcon className="h-10 w-10" />
|
|
955
|
+
</div>
|
|
956
|
+
<div className="text-sm font-medium text-white">Default</div>
|
|
957
|
+
<div className="text-xs text-purple-400">Purple & Pink</div>
|
|
958
|
+
</div>
|
|
959
|
+
<div className="text-center">
|
|
960
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
|
|
961
|
+
<AiAvatarIcon
|
|
962
|
+
className="h-10 w-10"
|
|
963
|
+
classes={{
|
|
964
|
+
circle: "fill-blue-800",
|
|
965
|
+
path: "fill-blue-300",
|
|
966
|
+
}}
|
|
967
|
+
/>
|
|
968
|
+
</div>
|
|
969
|
+
<div className="text-sm font-medium text-white">Blue</div>
|
|
970
|
+
<div className="text-xs text-blue-400">Tech & Corporate</div>
|
|
971
|
+
</div>
|
|
972
|
+
<div className="text-center">
|
|
973
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
|
|
974
|
+
<AiAvatarIcon
|
|
975
|
+
className="h-10 w-10"
|
|
976
|
+
classes={{
|
|
977
|
+
circle: "fill-green-800",
|
|
978
|
+
path: "fill-green-300",
|
|
979
|
+
}}
|
|
980
|
+
/>
|
|
981
|
+
</div>
|
|
982
|
+
<div className="text-sm font-medium text-white">Green</div>
|
|
983
|
+
<div className="text-xs text-green-400">Eco & Health</div>
|
|
984
|
+
</div>
|
|
985
|
+
<div className="text-center">
|
|
986
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-orange-500/30 bg-orange-500/20">
|
|
987
|
+
<AiAvatarIcon
|
|
988
|
+
className="h-10 w-10"
|
|
989
|
+
classes={{
|
|
990
|
+
circle: "fill-orange-800",
|
|
991
|
+
path: "fill-orange-300",
|
|
992
|
+
}}
|
|
993
|
+
/>
|
|
994
|
+
</div>
|
|
995
|
+
<div className="text-sm font-medium text-white">Orange</div>
|
|
996
|
+
<div className="text-xs text-orange-400">Creative & Warm</div>
|
|
997
|
+
</div>
|
|
998
|
+
</div>
|
|
999
|
+
),
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
export const UsageExamples: Story = {
|
|
1003
|
+
parameters: {
|
|
1004
|
+
...storyParameters,
|
|
1005
|
+
docs: {
|
|
1006
|
+
description: {
|
|
1007
|
+
story:
|
|
1008
|
+
"Real-world usage examples showing AiAvatarIcon in different AI interface contexts.",
|
|
1009
|
+
},
|
|
1010
|
+
},
|
|
1011
|
+
},
|
|
1012
|
+
render: () => (
|
|
1013
|
+
<div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
1014
|
+
{/* Chat Interface */}
|
|
1015
|
+
<div className="!space-y-2">
|
|
1016
|
+
<h3 className="text-sm font-medium text-white">Chat Interface</h3>
|
|
1017
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-4">
|
|
1018
|
+
<div className="flex items-start gap-3">
|
|
1019
|
+
<AiAvatarIcon className="h-8 w-8 flex-shrink-0" />
|
|
1020
|
+
<div className="flex-1">
|
|
1021
|
+
<div className="flex items-center gap-2">
|
|
1022
|
+
<span className="text-sm font-medium text-purple-300">
|
|
1023
|
+
AI Assistant
|
|
1024
|
+
</span>
|
|
1025
|
+
<span className="text-xs text-white/50">now</span>
|
|
1026
|
+
</div>
|
|
1027
|
+
<p className="mt-1 text-sm !text-white/80">
|
|
1028
|
+
Hello! I'm here to help you with any questions you might have.
|
|
1029
|
+
</p>
|
|
1030
|
+
</div>
|
|
1031
|
+
</div>
|
|
1032
|
+
</div>
|
|
1033
|
+
</div>
|
|
1034
|
+
|
|
1035
|
+
{/* Profile Card */}
|
|
1036
|
+
<div className="!space-y-2">
|
|
1037
|
+
<h3 className="text-sm font-medium text-white">AI Profile Card</h3>
|
|
1038
|
+
<div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-6">
|
|
1039
|
+
<div className="!space-y-4 text-center">
|
|
1040
|
+
<AiAvatarIcon className="!mx-auto h-16 w-16" />
|
|
1041
|
+
<div>
|
|
1042
|
+
<h4 className="font-medium text-white">Claude AI</h4>
|
|
1043
|
+
<p className="text-sm text-purple-300/80">
|
|
1044
|
+
Your intelligent assistant
|
|
1045
|
+
</p>
|
|
1046
|
+
</div>
|
|
1047
|
+
<div className="flex items-center justify-center gap-2 text-xs text-purple-400">
|
|
1048
|
+
<div className="h-2 w-2 rounded-full bg-green-400"></div>
|
|
1049
|
+
<span>Online & Ready</span>
|
|
1050
|
+
</div>
|
|
1051
|
+
</div>
|
|
1052
|
+
</div>
|
|
1053
|
+
</div>
|
|
1054
|
+
|
|
1055
|
+
{/* Feature Showcase */}
|
|
1056
|
+
<div className="!space-y-2">
|
|
1057
|
+
<h3 className="text-sm font-medium text-white">Feature Cards</h3>
|
|
1058
|
+
<div className="grid gap-4">
|
|
1059
|
+
<div className="group cursor-pointer rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10">
|
|
1060
|
+
<div className="flex items-center gap-4">
|
|
1061
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
1062
|
+
<AiAvatarIcon className="h-6 w-6" />
|
|
1063
|
+
</div>
|
|
1064
|
+
<div>
|
|
1065
|
+
<h4 className="font-medium text-white">AI-Powered Chat</h4>
|
|
1066
|
+
<p className="text-sm text-white/60">
|
|
1067
|
+
Intelligent conversations with context awareness
|
|
1068
|
+
</p>
|
|
1069
|
+
</div>
|
|
1070
|
+
</div>
|
|
1071
|
+
</div>
|
|
1072
|
+
</div>
|
|
1073
|
+
</div>
|
|
1074
|
+
</div>
|
|
1075
|
+
),
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
export const Playground: Story = {
|
|
1079
|
+
parameters: {
|
|
1080
|
+
...storyParameters,
|
|
1081
|
+
docs: {
|
|
1082
|
+
description: {
|
|
1083
|
+
story:
|
|
1084
|
+
"Interactive playground to experiment with different AiAvatarIcon configurations and themes.",
|
|
1085
|
+
},
|
|
1086
|
+
},
|
|
1087
|
+
},
|
|
1088
|
+
args: {
|
|
1089
|
+
width: 64,
|
|
1090
|
+
height: 64,
|
|
1091
|
+
className: "",
|
|
1092
|
+
classes: {},
|
|
1093
|
+
},
|
|
1094
|
+
render: (args) => (
|
|
1095
|
+
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
1096
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
1097
|
+
<AiAvatarIcon {...args} />
|
|
1098
|
+
</div>
|
|
1099
|
+
</div>
|
|
1100
|
+
),
|
|
1101
|
+
}
|