aural-ui 2.1.0 → 2.1.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 (88) hide show
  1. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +952 -0
  2. package/dist/icons/apple-logo-icon/index.tsx +26 -0
  3. package/dist/icons/apple-logo-icon/meta.ts +8 -0
  4. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +1008 -0
  5. package/dist/icons/arrow-left-icon/index.tsx +24 -0
  6. package/dist/icons/arrow-left-icon/meta.ts +8 -0
  7. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +1050 -0
  8. package/dist/icons/backward-ten-seconds-icon/index.tsx +35 -0
  9. package/dist/icons/backward-ten-seconds-icon/meta.ts +8 -0
  10. package/dist/icons/camera-icon/CameraIcon.stories.tsx +1271 -0
  11. package/dist/icons/camera-icon/index.tsx +22 -0
  12. package/dist/icons/camera-icon/meta.ts +8 -0
  13. package/dist/icons/coin-icon/CoinIcon.stories.tsx +1382 -0
  14. package/dist/icons/coin-icon/index.tsx +36 -0
  15. package/dist/icons/coin-icon/meta.ts +8 -0
  16. package/dist/icons/email-icon/EmailIcon.stories.tsx +995 -0
  17. package/dist/icons/email-icon/index.tsx +22 -0
  18. package/dist/icons/email-icon/meta.ts +8 -0
  19. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +1167 -0
  20. package/dist/icons/expand-icon/index.tsx +22 -0
  21. package/dist/icons/expand-icon/meta.ts +8 -0
  22. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +1054 -0
  23. package/dist/icons/forward-ten-seconds-icon/index.tsx +33 -0
  24. package/dist/icons/forward-ten-seconds-icon/meta.ts +8 -0
  25. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +1004 -0
  26. package/dist/icons/google-logo-icon/index.tsx +34 -0
  27. package/dist/icons/google-logo-icon/meta.ts +8 -0
  28. package/dist/icons/heart-icon/HeartIcon.stories.tsx +1080 -0
  29. package/dist/icons/heart-icon/index.tsx +21 -0
  30. package/dist/icons/heart-icon/meta.ts +8 -0
  31. package/dist/icons/index.ts +32 -4
  32. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +1020 -0
  33. package/dist/icons/indian-flag-icon/index.tsx +46 -0
  34. package/dist/icons/indian-flag-icon/meta.ts +8 -0
  35. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +1449 -0
  36. package/dist/icons/instagram-icon/index.tsx +17 -0
  37. package/dist/icons/instagram-icon/meta.ts +8 -0
  38. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +1582 -0
  39. package/dist/icons/linked-in-icon/index.tsx +17 -0
  40. package/dist/icons/linked-in-icon/meta.ts +8 -0
  41. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +1214 -0
  42. package/dist/icons/minimize-icon/index.tsx +22 -0
  43. package/dist/icons/minimize-icon/meta.ts +8 -0
  44. package/dist/icons/pause-icon/PauseIcon.stories.tsx +1060 -0
  45. package/dist/icons/pause-icon/index.tsx +30 -0
  46. package/dist/icons/pause-icon/meta.ts +8 -0
  47. package/dist/icons/share-icon/ShareIcon.stories.tsx +1081 -0
  48. package/dist/icons/share-icon/index.tsx +22 -0
  49. package/dist/icons/share-icon/meta.ts +8 -0
  50. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +1047 -0
  51. package/dist/icons/skip-backward-icon/index.tsx +29 -0
  52. package/dist/icons/skip-backward-icon/meta.ts +8 -0
  53. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +1049 -0
  54. package/dist/icons/skip-forward-icon/index.tsx +29 -0
  55. package/dist/icons/skip-forward-icon/meta.ts +8 -0
  56. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +1020 -0
  57. package/dist/icons/store-coin-icon/index.tsx +35 -0
  58. package/dist/icons/store-coin-icon/meta.ts +8 -0
  59. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +1489 -0
  60. package/dist/icons/threads-icon/index.tsx +17 -0
  61. package/dist/icons/threads-icon/meta.ts +8 -0
  62. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +1463 -0
  63. package/dist/icons/twitter-x-icon/index.tsx +17 -0
  64. package/dist/icons/twitter-x-icon/meta.ts +8 -0
  65. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +1105 -0
  66. package/dist/icons/video-play-list-icon/index.tsx +22 -0
  67. package/dist/icons/video-play-list-icon/meta.ts +8 -0
  68. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +1416 -0
  69. package/dist/icons/voice-playing-icon/index.tsx +24 -0
  70. package/dist/icons/voice-playing-icon/meta.ts +8 -0
  71. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +1230 -0
  72. package/dist/icons/volume-full-icon/index.tsx +25 -0
  73. package/dist/icons/volume-full-icon/meta.ts +8 -0
  74. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +1153 -0
  75. package/dist/icons/volume-half-icon/index.tsx +25 -0
  76. package/dist/icons/volume-half-icon/meta.ts +8 -0
  77. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +1144 -0
  78. package/dist/icons/volume-off-icon/index.tsx +26 -0
  79. package/dist/icons/volume-off-icon/meta.ts +8 -0
  80. package/dist/icons/warning-icon/WarningIcon.stories.tsx +1106 -0
  81. package/dist/icons/warning-icon/index.tsx +27 -0
  82. package/dist/icons/warning-icon/meta.ts +8 -0
  83. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +996 -0
  84. package/dist/icons/youtube-icon/index.tsx +24 -0
  85. package/dist/icons/youtube-icon/meta.ts +8 -0
  86. package/dist/index.js +1 -1
  87. package/dist/styles/aural-theme.css +9 -0
  88. package/package.json +1 -1
@@ -0,0 +1,1382 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { CoinIcon } from "."
5
+
6
+ const meta: Meta<typeof CoinIcon> = {
7
+ title: "Icons/CoinIcon",
8
+ component: CoinIcon,
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-yellow-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-yellow-500/10 via-transparent to-amber-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-yellow-500/30 bg-gradient-to-br from-yellow-500/20 to-amber-500/20">
90
+ <CoinIcon className="h-12 w-12" />
91
+ </div>
92
+ <h1 className="text-5xl font-bold !text-white">CoinIcon</h1>
93
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
94
+ A golden coin icon with authentic metallic shine and
95
+ dimensional depth. Perfect for financial applications,
96
+ reward systems, gaming interfaces, e-commerce platforms, and
97
+ any interface where currency, earnings, or value
98
+ representation is needed.
99
+ </p>
100
+
101
+ {/* Stats */}
102
+ <div className="flex items-center justify-center gap-8 pt-8">
103
+ <div className="text-center">
104
+ <div className="text-3xl font-bold text-yellow-300">
105
+ Currency
106
+ </div>
107
+ <div className="text-sm text-white/60">
108
+ Financial value
109
+ </div>
110
+ </div>
111
+ <div className="h-8 w-px bg-white/20" />
112
+ <div className="text-center">
113
+ <div className="text-3xl font-bold text-amber-300">
114
+ Rewards
115
+ </div>
116
+ <div className="text-sm text-white/60">
117
+ Achievement system
118
+ </div>
119
+ </div>
120
+ <div className="h-8 w-px bg-white/20" />
121
+ <div className="text-center">
122
+ <div className="text-3xl font-bold text-orange-300">
123
+ Premium
124
+ </div>
125
+ <div className="text-sm text-white/60">
126
+ Golden standard
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+
134
+ {/* Content */}
135
+ <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
136
+ {/* Quick Usage */}
137
+ <div className="!space-y-8">
138
+ <h2 className="text-center text-3xl font-bold !text-white">
139
+ Quick Start
140
+ </h2>
141
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
142
+ <div className="!space-y-4">
143
+ <h3 className="text-xl font-semibold !text-yellow-300">
144
+ Basic Usage
145
+ </h3>
146
+ <div className="rounded-lg bg-black/40 p-4">
147
+ <pre className="overflow-x-auto text-sm !text-green-300">
148
+ {`import { CoinIcon } from "@icons/coin-icon"
149
+
150
+ function WalletBalance() {
151
+ return (
152
+ <div className="flex items-center gap-2">
153
+ <CoinIcon className="h-5 w-5" />
154
+ <span className="text-yellow-400">{balance} coins</span>
155
+ </div>
156
+ )
157
+ }`}
158
+ </pre>
159
+ </div>
160
+ </div>
161
+
162
+ <div className="!space-y-4">
163
+ <h3 className="text-xl font-semibold !text-yellow-300">
164
+ Live Preview
165
+ </h3>
166
+ <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
167
+ <div className="flex items-center gap-3 rounded-lg border border-yellow-500/20 bg-yellow-500/10 px-4 py-2">
168
+ <CoinIcon className="h-5 w-5" />
169
+ <span className="font-medium text-yellow-300">
170
+ 1,247 coins
171
+ </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-yellow-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">24</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-yellow-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">24</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-yellow-300">
232
+ className
233
+ </td>
234
+ <td className="px-6 py-4 text-sm !text-white/70">
235
+ string
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
+ CSS classes for styling (use for size overrides)
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-yellow-300">
244
+ style
245
+ </td>
246
+ <td className="px-6 py-4 text-sm !text-white/70">
247
+ CSSProperties
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
+ Inline styles (avoid changing fill colors)
252
+ </td>
253
+ </tr>
254
+ <tr className="border-b border-white/5">
255
+ <td className="px-6 py-4 font-mono text-sm !text-yellow-300">
256
+ onClick
257
+ </td>
258
+ <td className="px-6 py-4 text-sm !text-white/70">
259
+ function
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
+ Click handler for interactive use
264
+ </td>
265
+ </tr>
266
+ <tr className="!bg-black/10">
267
+ <td className="px-6 py-4 font-mono text-sm !text-yellow-300">
268
+ ...svgProps
269
+ </td>
270
+ <td className="px-6 py-4 text-sm !text-white/70">
271
+ SVGProps
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
+ All standard SVG element props
276
+ </td>
277
+ </tr>
278
+ </tbody>
279
+ </table>
280
+ </div>
281
+
282
+ <div className="rounded-lg border border-yellow-500/20 bg-yellow-500/10 p-4">
283
+ <div className="flex items-center gap-2 text-sm text-yellow-200">
284
+ <CoinIcon className="h-4 w-4" />
285
+ <span>
286
+ <strong>Note:</strong> CoinIcon uses predefined fill
287
+ colors for authentic golden appearance. Avoid overriding
288
+ fill colors to maintain visual consistency.
289
+ </span>
290
+ </div>
291
+ </div>
292
+ </div>
293
+
294
+ {/* Size Variations */}
295
+ <div className="!space-y-8">
296
+ <h2 className="text-center text-3xl font-bold !text-white">
297
+ Size Variations
298
+ </h2>
299
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
300
+ <div className="!space-y-6">
301
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
302
+ <div className="!space-y-4">
303
+ <h3 className="text-lg font-semibold !text-yellow-300">
304
+ Standard Sizes
305
+ </h3>
306
+ <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
307
+ <div className="text-center">
308
+ <CoinIcon className="!mx-auto mb-2 h-3 w-3" />
309
+ <span className="text-xs text-white/60">12px</span>
310
+ </div>
311
+ <div className="text-center">
312
+ <CoinIcon className="!mx-auto mb-2 h-4 w-4" />
313
+ <span className="text-xs text-white/60">16px</span>
314
+ </div>
315
+ <div className="text-center">
316
+ <CoinIcon className="!mx-auto mb-2 h-5 w-5" />
317
+ <span className="text-xs text-white/60">20px</span>
318
+ </div>
319
+ <div className="text-center">
320
+ <CoinIcon className="!mx-auto mb-2 h-6 w-6" />
321
+ <span className="text-xs text-white/60">24px</span>
322
+ </div>
323
+ <div className="text-center">
324
+ <CoinIcon className="!mx-auto mb-2 h-8 w-8" />
325
+ <span className="text-xs text-white/60">32px</span>
326
+ </div>
327
+ <div className="text-center">
328
+ <CoinIcon className="!mx-auto mb-2 h-12 w-12" />
329
+ <span className="text-xs text-white/60">48px</span>
330
+ </div>
331
+ </div>
332
+ </div>
333
+
334
+ <div className="!space-y-4">
335
+ <h3 className="text-lg font-semibold !text-yellow-300">
336
+ Code Example
337
+ </h3>
338
+ <div className="rounded-lg bg-black/40 p-4">
339
+ <pre className="overflow-x-auto text-sm !text-cyan-300">
340
+ {`// Small (16px) - inline currency
341
+ <CoinIcon className="h-4 w-4" />
342
+
343
+ // Medium (24px) - standard interface
344
+ <CoinIcon className="h-6 w-6" />
345
+
346
+ // Large (32px) - prominent displays
347
+ <CoinIcon className="h-8 w-8" />
348
+
349
+ // Custom size
350
+ <CoinIcon width={40} height={40} />`}
351
+ </pre>
352
+ </div>
353
+ </div>
354
+ </div>
355
+ </div>
356
+ </div>
357
+ </div>
358
+
359
+ {/* Color & Design */}
360
+ <div className="!space-y-8">
361
+ <h2 className="text-center text-3xl font-bold !text-white">
362
+ Design & Styling
363
+ </h2>
364
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
365
+ <div className="!space-y-4">
366
+ <h3 className="text-lg font-semibold !text-yellow-300">
367
+ Built-in Golden Design
368
+ </h3>
369
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
370
+ <div className="flex items-center gap-4">
371
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black/30">
372
+ <CoinIcon className="h-8 w-8" />
373
+ </div>
374
+ <div>
375
+ <div className="text-sm font-medium text-white">
376
+ Authentic Golden Color
377
+ </div>
378
+ <div className="text-xs text-white/60">
379
+ #FFB340 base with shine overlay
380
+ </div>
381
+ </div>
382
+ </div>
383
+ <div className="flex items-center gap-4">
384
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-white/5">
385
+ <CoinIcon className="h-8 w-8" />
386
+ </div>
387
+ <div>
388
+ <div className="text-sm font-medium text-white">
389
+ Dimensional Shine
390
+ </div>
391
+ <div className="text-xs text-white/60">
392
+ #FFF5C6 highlight for depth
393
+ </div>
394
+ </div>
395
+ </div>
396
+ <div className="flex items-center gap-4">
397
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-yellow-500/10">
398
+ <CoinIcon className="h-8 w-8" />
399
+ </div>
400
+ <div>
401
+ <div className="text-sm font-medium text-white">
402
+ Currency Symbol
403
+ </div>
404
+ <div className="text-xs text-white/60">
405
+ #FFFAE8 detail for recognition
406
+ </div>
407
+ </div>
408
+ </div>
409
+ </div>
410
+ </div>
411
+
412
+ <div className="!space-y-4">
413
+ <h3 className="text-lg font-semibold !text-yellow-300">
414
+ Usage Guidelines
415
+ </h3>
416
+ <div className="rounded-lg bg-black/40 p-4">
417
+ <pre className="overflow-x-auto text-sm !text-green-300">
418
+ {`// Recommended usage
419
+ <CoinIcon className="h-5 w-5" />
420
+
421
+ // With balance display
422
+ <div className="flex items-center gap-2">
423
+ <CoinIcon className="h-4 w-4" />
424
+ <span className="text-yellow-400">1,247</span>
425
+ </div>
426
+
427
+ // Interactive coin button
428
+ <button
429
+ className="flex items-center gap-2 p-2 rounded-lg
430
+ hover:bg-yellow-500/10 transition-colors"
431
+ >
432
+ <CoinIcon className="h-5 w-5" />
433
+ <span>Earn Coins</span>
434
+ </button>
435
+
436
+ // Avoid overriding colors
437
+ // ❌ Don't do this:
438
+ <CoinIcon style={{ fill: 'red' }} />
439
+
440
+ // ✅ Use as designed:
441
+ <CoinIcon className="h-6 w-6" />`}
442
+ </pre>
443
+ </div>
444
+ </div>
445
+ </div>
446
+ </div>
447
+
448
+ {/* Usage Examples */}
449
+ <div className="!space-y-8">
450
+ <h2 className="text-center text-3xl font-bold !text-white">
451
+ Usage Examples
452
+ </h2>
453
+
454
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
455
+ {/* Wallet Interface */}
456
+ <div className="!space-y-4">
457
+ <h3 className="text-lg font-semibold !text-yellow-300">
458
+ Digital Wallet
459
+ </h3>
460
+ <div className="!space-y-4">
461
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
462
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
463
+ <div className="border-b border-white/10 bg-gradient-to-r from-yellow-500/20 to-amber-500/20 p-4">
464
+ <div className="flex items-center justify-between">
465
+ <div>
466
+ <h4 className="text-lg font-semibold text-white">
467
+ My Wallet
468
+ </h4>
469
+ <p className="text-sm text-white/60">
470
+ Digital currency balance
471
+ </p>
472
+ </div>
473
+ <div className="flex items-center gap-2">
474
+ <CoinIcon className="h-6 w-6" />
475
+ <span className="text-xl font-bold text-yellow-300">
476
+ 2,847
477
+ </span>
478
+ </div>
479
+ </div>
480
+ </div>
481
+ <div className="space-y-4 p-4">
482
+ <div className="flex items-center justify-between">
483
+ <div className="flex items-center gap-3">
484
+ <div className="flex h-8 w-8 items-center justify-center rounded-lg bg-green-500/20">
485
+ <span className="text-sm text-green-400">
486
+ +
487
+ </span>
488
+ </div>
489
+ <div>
490
+ <div className="text-sm font-medium text-white">
491
+ Daily Bonus
492
+ </div>
493
+ <div className="text-xs text-white/60">
494
+ Earned today
495
+ </div>
496
+ </div>
497
+ </div>
498
+ <div className="flex items-center gap-1">
499
+ <CoinIcon className="h-4 w-4" />
500
+ <span className="font-medium text-green-400">
501
+ +50
502
+ </span>
503
+ </div>
504
+ </div>
505
+ <div className="flex items-center justify-between">
506
+ <div className="flex items-center gap-3">
507
+ <div className="flex h-8 w-8 items-center justify-center rounded-lg bg-blue-500/20">
508
+ <span className="text-sm text-blue-400">
509
+ 🎯
510
+ </span>
511
+ </div>
512
+ <div>
513
+ <div className="text-sm font-medium text-white">
514
+ Quest Reward
515
+ </div>
516
+ <div className="text-xs text-white/60">
517
+ Challenge completed
518
+ </div>
519
+ </div>
520
+ </div>
521
+ <div className="flex items-center gap-1">
522
+ <CoinIcon className="h-4 w-4" />
523
+ <span className="font-medium text-blue-400">
524
+ +125
525
+ </span>
526
+ </div>
527
+ </div>
528
+ <div className="flex items-center justify-between">
529
+ <div className="flex items-center gap-3">
530
+ <div className="flex h-8 w-8 items-center justify-center rounded-lg bg-red-500/20">
531
+ <span className="text-sm text-red-400">
532
+ -
533
+ </span>
534
+ </div>
535
+ <div>
536
+ <div className="text-sm font-medium text-white">
537
+ Store Purchase
538
+ </div>
539
+ <div className="text-xs text-white/60">
540
+ Power-up bought
541
+ </div>
542
+ </div>
543
+ </div>
544
+ <div className="flex items-center gap-1">
545
+ <CoinIcon className="h-4 w-4" />
546
+ <span className="font-medium text-red-400">
547
+ -75
548
+ </span>
549
+ </div>
550
+ </div>
551
+ </div>
552
+ </div>
553
+ </div>
554
+ <div className="rounded-lg bg-black/40 p-4">
555
+ <pre className="overflow-x-auto text-sm !text-green-300">
556
+ {`// Digital wallet interface
557
+ <div className="wallet-header">
558
+ <div className="wallet-info">
559
+ <h3>My Wallet</h3>
560
+ <p>Digital currency balance</p>
561
+ </div>
562
+ <div className="balance-display">
563
+ <CoinIcon className="h-6 w-6" />
564
+ <span className="balance">{balance}</span>
565
+ </div>
566
+ </div>
567
+ <div className="transaction-list">
568
+ {transactions.map(transaction => (
569
+ <div key={transaction.id} className="transaction-item">
570
+ <TransactionIcon type={transaction.type} />
571
+ <TransactionDetails transaction={transaction} />
572
+ <div className="coin-amount">
573
+ <CoinIcon className="h-4 w-4" />
574
+ <span className={transaction.type === 'earned' ? 'text-green' : 'text-red'}>
575
+ {transaction.type === 'earned' ? '+' : '-'}{transaction.amount}
576
+ </span>
577
+ </div>
578
+ </div>
579
+ ))}
580
+ </div>`}
581
+ </pre>
582
+ </div>
583
+ </div>
584
+ </div>
585
+
586
+ {/* Game Store */}
587
+ <div className="!space-y-4">
588
+ <h3 className="text-lg font-semibold !text-yellow-300">
589
+ Game Store
590
+ </h3>
591
+ <div className="!space-y-4">
592
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
593
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
594
+ <div className="border-b border-white/10 bg-white/5 p-4">
595
+ <div className="flex items-center justify-between">
596
+ <h4 className="text-lg font-semibold text-white">
597
+ Item Shop
598
+ </h4>
599
+ <div className="flex items-center gap-2 rounded-lg border border-yellow-500/30 bg-yellow-500/20 px-3 py-1">
600
+ <CoinIcon className="h-4 w-4" />
601
+ <span className="font-medium text-yellow-300">
602
+ 2,847
603
+ </span>
604
+ </div>
605
+ </div>
606
+ </div>
607
+ <div className="grid grid-cols-2 gap-3 p-4">
608
+ <div className="rounded-lg border border-white/10 bg-black/30 p-3">
609
+ <div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-purple-500/20">
610
+ <span className="text-2xl">⚔️</span>
611
+ </div>
612
+ <div className="mb-1 text-sm font-medium text-white">
613
+ Epic Sword
614
+ </div>
615
+ <div className="flex items-center justify-between">
616
+ <div className="flex items-center gap-1">
617
+ <CoinIcon className="h-3 w-3" />
618
+ <span className="text-xs text-yellow-400">
619
+ 500
620
+ </span>
621
+ </div>
622
+ <button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-2 py-1 text-xs text-yellow-300 transition-colors hover:bg-yellow-500/30">
623
+ Buy
624
+ </button>
625
+ </div>
626
+ </div>
627
+ <div className="rounded-lg border border-white/10 bg-black/30 p-3">
628
+ <div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-blue-500/20">
629
+ <span className="text-2xl">🛡️</span>
630
+ </div>
631
+ <div className="mb-1 text-sm font-medium text-white">
632
+ Magic Shield
633
+ </div>
634
+ <div className="flex items-center justify-between">
635
+ <div className="flex items-center gap-1">
636
+ <CoinIcon className="h-3 w-3" />
637
+ <span className="text-xs text-yellow-400">
638
+ 350
639
+ </span>
640
+ </div>
641
+ <button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-2 py-1 text-xs text-yellow-300 transition-colors hover:bg-yellow-500/30">
642
+ Buy
643
+ </button>
644
+ </div>
645
+ </div>
646
+ <div className="rounded-lg border border-white/10 bg-black/30 p-3">
647
+ <div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-green-500/20">
648
+ <span className="text-2xl">🧪</span>
649
+ </div>
650
+ <div className="mb-1 text-sm font-medium text-white">
651
+ Health Potion
652
+ </div>
653
+ <div className="flex items-center justify-between">
654
+ <div className="flex items-center gap-1">
655
+ <CoinIcon className="h-3 w-3" />
656
+ <span className="text-xs text-yellow-400">
657
+ 25
658
+ </span>
659
+ </div>
660
+ <button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-2 py-1 text-xs text-yellow-300 transition-colors hover:bg-yellow-500/30">
661
+ Buy
662
+ </button>
663
+ </div>
664
+ </div>
665
+ <div className="rounded-lg border border-white/10 bg-black/30 p-3">
666
+ <div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-red-500/20">
667
+ <span className="text-2xl">💎</span>
668
+ </div>
669
+ <div className="mb-1 text-sm font-medium text-white">
670
+ Rare Gem
671
+ </div>
672
+ <div className="flex items-center justify-between">
673
+ <div className="flex items-center gap-1">
674
+ <CoinIcon className="h-3 w-3" />
675
+ <span className="text-xs text-yellow-400">
676
+ 1,200
677
+ </span>
678
+ </div>
679
+ <button className="rounded border border-red-500/30 bg-red-500/20 px-2 py-1 text-xs text-red-300">
680
+ Insufficient
681
+ </button>
682
+ </div>
683
+ </div>
684
+ </div>
685
+ </div>
686
+ </div>
687
+ <div className="rounded-lg bg-black/40 p-4">
688
+ <pre className="overflow-x-auto text-sm !text-green-300">
689
+ {`// Game store with coin pricing
690
+ <div className="store-header">
691
+ <h3>Item Shop</h3>
692
+ <div className="player-balance">
693
+ <CoinIcon className="h-4 w-4" />
694
+ <span>{playerCoins}</span>
695
+ </div>
696
+ </div>
697
+ <div className="item-grid">
698
+ {storeItems.map(item => (
699
+ <div key={item.id} className="store-item">
700
+ <ItemIcon item={item} />
701
+ <div className="item-name">{item.name}</div>
702
+ <div className="item-footer">
703
+ <div className="item-price">
704
+ <CoinIcon className="h-3 w-3" />
705
+ <span>{item.price}</span>
706
+ </div>
707
+ <button
708
+ className={playerCoins >= item.price ? 'buy-btn' : 'insufficient-btn'}
709
+ disabled={playerCoins < item.price}
710
+ onClick={() => purchaseItem(item)}
711
+ >
712
+ {playerCoins >= item.price ? 'Buy' : 'Insufficient'}
713
+ </button>
714
+ </div>
715
+ </div>
716
+ ))}
717
+ </div>`}
718
+ </pre>
719
+ </div>
720
+ </div>
721
+ </div>
722
+
723
+ {/* Rewards Dashboard */}
724
+ <div className="!space-y-4">
725
+ <h3 className="text-lg font-semibold !text-yellow-300">
726
+ Rewards Dashboard
727
+ </h3>
728
+ <div className="!space-y-4">
729
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
730
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
731
+ <div className="border-b border-white/10 bg-gradient-to-r from-purple-500/20 to-yellow-500/20 p-4">
732
+ <h4 className="mb-2 text-lg font-semibold text-white">
733
+ Daily Challenges
734
+ </h4>
735
+ <div className="text-sm text-white/60">
736
+ Complete tasks to earn coins
737
+ </div>
738
+ </div>
739
+ <div className="space-y-3 p-4">
740
+ <div className="flex items-center justify-between rounded-lg border border-green-500/20 bg-green-500/10 p-3">
741
+ <div className="flex items-center gap-3">
742
+ <div className="flex h-8 w-8 items-center justify-center rounded-lg bg-green-500/20">
743
+ <span className="text-sm text-green-400">
744
+
745
+ </span>
746
+ </div>
747
+ <div>
748
+ <div className="text-sm font-medium text-white">
749
+ Login Streak
750
+ </div>
751
+ <div className="text-xs text-green-400">
752
+ Completed
753
+ </div>
754
+ </div>
755
+ </div>
756
+ <div className="flex items-center gap-1">
757
+ <CoinIcon className="h-4 w-4" />
758
+ <span className="font-medium text-green-400">
759
+ +10
760
+ </span>
761
+ </div>
762
+ </div>
763
+ <div className="flex items-center justify-between rounded-lg border border-blue-500/20 bg-blue-500/10 p-3">
764
+ <div className="flex items-center gap-3">
765
+ <div className="flex h-8 w-8 items-center justify-center rounded-lg bg-blue-500/20">
766
+ <span className="text-sm text-blue-400">
767
+ 2/3
768
+ </span>
769
+ </div>
770
+ <div>
771
+ <div className="text-sm font-medium text-white">
772
+ Share Content
773
+ </div>
774
+ <div className="text-xs text-blue-400">
775
+ 2 of 3 shares
776
+ </div>
777
+ </div>
778
+ </div>
779
+ <div className="flex items-center gap-1">
780
+ <CoinIcon className="h-4 w-4" />
781
+ <span className="font-medium text-yellow-400">
782
+ 25
783
+ </span>
784
+ </div>
785
+ </div>
786
+ <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
787
+ <div className="flex items-center gap-3">
788
+ <div className="flex h-8 w-8 items-center justify-center rounded-lg bg-white/10">
789
+ <span className="text-sm text-white/60">
790
+ 0/5
791
+ </span>
792
+ </div>
793
+ <div>
794
+ <div className="text-sm font-medium text-white">
795
+ Invite Friends
796
+ </div>
797
+ <div className="text-xs text-white/60">
798
+ 0 of 5 invites
799
+ </div>
800
+ </div>
801
+ </div>
802
+ <div className="flex items-center gap-1">
803
+ <CoinIcon className="h-4 w-4" />
804
+ <span className="font-medium text-yellow-400">
805
+ 100
806
+ </span>
807
+ </div>
808
+ </div>
809
+ </div>
810
+ </div>
811
+ </div>
812
+ <div className="rounded-lg bg-black/40 p-4">
813
+ <pre className="overflow-x-auto text-sm !text-green-300">
814
+ {`// Rewards and challenges dashboard
815
+ <div className="challenges-dashboard">
816
+ <div className="dashboard-header">
817
+ <h3>Daily Challenges</h3>
818
+ <p>Complete tasks to earn coins</p>
819
+ </div>
820
+ <div className="challenges-list">
821
+ {challenges.map(challenge => (
822
+ <div
823
+ key={challenge.id}
824
+ className={challenge.completed ? 'challenge-completed' : 'challenge-active'}
825
+ >
826
+ <ChallengeIcon
827
+ progress={challenge.progress}
828
+ total={challenge.total}
829
+ completed={challenge.completed}
830
+ />
831
+ <div className="challenge-info">
832
+ <div className="challenge-title">{challenge.title}</div>
833
+ <div className="challenge-progress">
834
+ {challenge.progress} of {challenge.total} {challenge.unit}
835
+ </div>
836
+ </div>
837
+ <div className="challenge-reward">
838
+ <CoinIcon className="h-4 w-4" />
839
+ <span className="reward-amount">{challenge.reward}</span>
840
+ </div>
841
+ </div>
842
+ ))}
843
+ </div>
844
+ </div>`}
845
+ </pre>
846
+ </div>
847
+ </div>
848
+ </div>
849
+
850
+ {/* E-commerce Pricing */}
851
+ <div className="!space-y-4">
852
+ <h3 className="text-lg font-semibold !text-yellow-300">
853
+ E-commerce Integration
854
+ </h3>
855
+ <div className="!space-y-4">
856
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
857
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
858
+ <div className="border-b border-white/10 bg-white/5 p-4">
859
+ <h4 className="text-lg font-semibold text-white">
860
+ Premium Membership
861
+ </h4>
862
+ <p className="text-sm text-white/60">
863
+ Unlock exclusive features and benefits
864
+ </p>
865
+ </div>
866
+ <div className="space-y-4 p-6">
867
+ <div className="grid grid-cols-3 gap-4">
868
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4 text-center">
869
+ <div className="mb-1 text-2xl font-bold text-white">
870
+ Basic
871
+ </div>
872
+ <div className="mb-2 flex items-center justify-center gap-1">
873
+ <CoinIcon className="h-4 w-4" />
874
+ <span className="font-medium text-yellow-400">
875
+ Free
876
+ </span>
877
+ </div>
878
+ <ul className="space-y-1 text-xs text-white/60">
879
+ <li>Limited features</li>
880
+ <li>Basic support</li>
881
+ </ul>
882
+ </div>
883
+ <div className="rounded-lg border border-yellow-500/30 bg-yellow-500/10 p-4 text-center">
884
+ <div className="mb-1 text-2xl font-bold text-white">
885
+ Pro
886
+ </div>
887
+ <div className="mb-2 flex items-center justify-center gap-1">
888
+ <CoinIcon className="h-4 w-4" />
889
+ <span className="font-medium text-yellow-400">
890
+ 299/mo
891
+ </span>
892
+ </div>
893
+ <ul className="space-y-1 text-xs text-white/60">
894
+ <li>Advanced features</li>
895
+ <li>Priority support</li>
896
+ </ul>
897
+ </div>
898
+ <div className="rounded-lg border border-purple-500/30 bg-purple-500/10 p-4 text-center">
899
+ <div className="mb-1 text-2xl font-bold text-white">
900
+ Enterprise
901
+ </div>
902
+ <div className="mb-2 flex items-center justify-center gap-1">
903
+ <CoinIcon className="h-4 w-4" />
904
+ <span className="font-medium text-yellow-400">
905
+ 999/mo
906
+ </span>
907
+ </div>
908
+ <ul className="space-y-1 text-xs text-white/60">
909
+ <li>All features</li>
910
+ <li>24/7 support</li>
911
+ </ul>
912
+ </div>
913
+ </div>
914
+ <div className="text-center">
915
+ <button className="rounded-lg border border-yellow-500/30 bg-yellow-500/20 px-6 py-2 text-yellow-300 transition-colors hover:bg-yellow-500/30">
916
+ Choose Plan
917
+ </button>
918
+ </div>
919
+ </div>
920
+ </div>
921
+ </div>
922
+ <div className="rounded-lg bg-black/40 p-4">
923
+ <pre className="overflow-x-auto text-sm !text-green-300">
924
+ {`// E-commerce pricing with coin display
925
+ <div className="pricing-plans">
926
+ <div className="pricing-header">
927
+ <h3>Premium Membership</h3>
928
+ <p>Unlock exclusive features and benefits</p>
929
+ </div>
930
+ <div className="plans-grid">
931
+ {pricingPlans.map(plan => (
932
+ <div
933
+ key={plan.id}
934
+ className={plan.featured ? 'plan-featured' : 'plan-standard'}
935
+ >
936
+ <div className="plan-name">{plan.name}</div>
937
+ <div className="plan-price">
938
+ <CoinIcon className="h-4 w-4" />
939
+ <span className="price-amount">
940
+ {plan.price === 0 ? 'Free' : plan.price + '/mo'}
941
+ </span>
942
+ </div>
943
+ <ul className="plan-features">
944
+ {plan.features.map(feature => (
945
+ <li key={feature}>{feature}</li>
946
+ ))}
947
+ </ul>
948
+ <button
949
+ className="plan-cta"
950
+ onClick={() => selectPlan(plan)}
951
+ >
952
+ Choose Plan
953
+ </button>
954
+ </div>
955
+ ))}
956
+ </div>
957
+ </div>`}
958
+ </pre>
959
+ </div>
960
+ </div>
961
+ </div>
962
+ </div>
963
+ </div>
964
+
965
+ {/* Accessibility */}
966
+ <div className="!space-y-8">
967
+ <h2 className="text-center text-3xl font-bold !text-white">
968
+ Accessibility Features
969
+ </h2>
970
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
971
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
972
+ <h3 className="text-lg font-semibold !text-green-300">
973
+ ✅ Built-in Features
974
+ </h3>
975
+ <ul className="!space-y-2 text-sm !text-white/70">
976
+ <li className="!text-white/70">
977
+ Uses Radix UI AccessibleIcon wrapper
978
+ </li>
979
+ <li className="!text-white/70">
980
+ Provides screen reader label "Coin icon"
981
+ </li>
982
+ <li className="!text-white/70">
983
+ Supports keyboard navigation when interactive
984
+ </li>
985
+ <li className="!text-white/70">
986
+ High contrast golden colors for visibility
987
+ </li>
988
+ <li className="!text-white/70">
989
+ Consistent visual design across all sizes
990
+ </li>
991
+ </ul>
992
+ </div>
993
+
994
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
995
+ <h3 className="text-lg font-semibold !text-yellow-300">
996
+ 💡 Best Practices
997
+ </h3>
998
+ <ul className="!space-y-2 text-sm text-white/70">
999
+ <li className="!text-white/70">
1000
+ Always pair with numerical values for context
1001
+ </li>
1002
+ <li className="!text-white/70">
1003
+ Use consistent coin terminology across the interface
1004
+ </li>
1005
+ <li className="!text-white/70">
1006
+ Provide clear labels for coin-based interactions
1007
+ </li>
1008
+ <li className="!text-white/70">
1009
+ Consider currency exchange rates for international users
1010
+ </li>
1011
+ <li className="!text-white/70">
1012
+ Implement proper error handling for insufficient funds
1013
+ </li>
1014
+ </ul>
1015
+ </div>
1016
+ </div>
1017
+
1018
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1019
+ <h3 className="mb-4 text-lg font-semibold !text-blue-300">
1020
+ Proper ARIA Implementation
1021
+ </h3>
1022
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
1023
+ <div className="rounded-lg bg-black/40 p-4">
1024
+ <pre className="overflow-x-auto text-sm !text-cyan-300">
1025
+ {`// Wallet balance display
1026
+ <div className="balance-display">
1027
+ <CoinIcon
1028
+ className="h-5 w-5"
1029
+ aria-hidden="true"
1030
+ />
1031
+ <span
1032
+ aria-label={balance + " coins in wallet"}
1033
+ className="balance-amount"
1034
+ >
1035
+ {balance}
1036
+ </span>
1037
+ </div>
1038
+
1039
+ // Interactive coin button
1040
+ <button
1041
+ aria-label={"Purchase item for " + price + " coins"}
1042
+ aria-describedby="coin-balance"
1043
+ onClick={handlePurchase}
1044
+ disabled={balance < price}
1045
+ >
1046
+ <CoinIcon className="h-4 w-4" />
1047
+ <span>{price}</span>
1048
+ </button>
1049
+ <div id="coin-balance" className="sr-only">
1050
+ Current balance: {balance} coins
1051
+ </div>
1052
+
1053
+ // Reward notification
1054
+ <div
1055
+ role="alert"
1056
+ aria-live="polite"
1057
+ className="reward-notification"
1058
+ >
1059
+ <CoinIcon className="h-4 w-4" />
1060
+ <span>You earned {rewardAmount} coins!</span>
1061
+ </div>
1062
+
1063
+ // Store item pricing
1064
+ <div className="store-item">
1065
+ <ItemImage />
1066
+ <div className="item-details">
1067
+ <h3>{item.name}</h3>
1068
+ <div
1069
+ className="item-price"
1070
+ aria-label={"Price: " + item.price + " coins"}
1071
+ >
1072
+ <CoinIcon className="h-3 w-3" />
1073
+ <span>{item.price}</span>
1074
+ </div>
1075
+ </div>
1076
+ </div>`}
1077
+ </pre>
1078
+ </div>
1079
+ <div className="!space-y-4">
1080
+ <p className="text-sm !text-white/70">
1081
+ When using CoinIcon for financial displays, always
1082
+ provide clear context about the currency value and
1083
+ ensure users understand the monetary implications of
1084
+ their actions.
1085
+ </p>
1086
+ <div className="rounded-lg border border-yellow-500/20 bg-yellow-500/10 p-4">
1087
+ <div className="flex items-center gap-2 text-sm text-yellow-200">
1088
+ <CoinIcon className="h-4 w-4" />
1089
+ <span>
1090
+ Always announce balance changes and transaction
1091
+ results to screen readers
1092
+ </span>
1093
+ </div>
1094
+ </div>
1095
+ </div>
1096
+ </div>
1097
+ </div>
1098
+ </div>
1099
+
1100
+ {/* Related Icons */}
1101
+ <div className="!space-y-8">
1102
+ <h2 className="text-center text-3xl font-bold !text-white">
1103
+ Related Icons
1104
+ </h2>
1105
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
1106
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1107
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
1108
+ <span className="!text-2xl !text-white">💳</span>
1109
+ </div>
1110
+ <div>
1111
+ <div className="font-medium text-white">
1112
+ CreditCardIcon
1113
+ </div>
1114
+ <div className="text-xs text-white/60">
1115
+ Payment method
1116
+ </div>
1117
+ </div>
1118
+ </div>
1119
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1120
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
1121
+ <span className="!text-2xl !text-white">💰</span>
1122
+ </div>
1123
+ <div>
1124
+ <div className="font-medium text-white">WalletIcon</div>
1125
+ <div className="text-xs text-white/60">
1126
+ Digital wallet
1127
+ </div>
1128
+ </div>
1129
+ </div>
1130
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1131
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
1132
+ <span className="!text-2xl !text-white">🏆</span>
1133
+ </div>
1134
+ <div>
1135
+ <div className="font-medium text-white">TrophyIcon</div>
1136
+ <div className="text-xs text-white/60">
1137
+ Achievement reward
1138
+ </div>
1139
+ </div>
1140
+ </div>
1141
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1142
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
1143
+ <span className="!text-2xl !text-white">🛒</span>
1144
+ </div>
1145
+ <div>
1146
+ <div className="font-medium text-white">ShoppingIcon</div>
1147
+ <div className="text-xs text-white/60">
1148
+ Purchase items
1149
+ </div>
1150
+ </div>
1151
+ </div>
1152
+ </div>
1153
+ </div>
1154
+ </div>
1155
+
1156
+ {/* Footer */}
1157
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
1158
+ <div className="!mx-auto max-w-7xl px-6 py-8">
1159
+ <div className="!space-y-4 text-center">
1160
+ <p className="!text-white/60">
1161
+ CoinIcon is part of the Aural UI icon library, built with
1162
+ accessibility and financial interface best practices in
1163
+ mind.
1164
+ </p>
1165
+ <p className="text-sm !text-white/40">
1166
+ All icons use Radix UI's AccessibleIcon for screen reader
1167
+ compatibility and follow WCAG guidelines for monetary
1168
+ displays and transaction interfaces.
1169
+ </p>
1170
+ </div>
1171
+ </div>
1172
+ </div>
1173
+ </div>
1174
+ </>
1175
+ ),
1176
+ },
1177
+ },
1178
+ tags: ["autodocs"],
1179
+ argTypes: {
1180
+ width: {
1181
+ control: { type: "range", min: 8, max: 96, step: 2 },
1182
+ description: "Width of the icon in pixels",
1183
+ },
1184
+ height: {
1185
+ control: { type: "range", min: 8, max: 96, step: 2 },
1186
+ description: "Height of the icon in pixels",
1187
+ },
1188
+ className: {
1189
+ control: "text",
1190
+ description: "CSS classes for styling (use for size overrides)",
1191
+ },
1192
+ onClick: {
1193
+ action: "clicked",
1194
+ description: "Click handler for interactive use",
1195
+ },
1196
+ },
1197
+ }
1198
+
1199
+ export default meta
1200
+ type Story = StoryObj<typeof CoinIcon>
1201
+
1202
+ // Story parameters for consistent dark theme
1203
+ const storyParameters = {
1204
+ backgrounds: {
1205
+ default: "dark",
1206
+ values: [
1207
+ { name: "dark", value: "#0a0a0a" },
1208
+ { name: "darker", value: "#000000" },
1209
+ ],
1210
+ },
1211
+ }
1212
+
1213
+ export const Default: Story = {
1214
+ args: {
1215
+ className: "h-8 w-8",
1216
+ },
1217
+ parameters: storyParameters,
1218
+ render: (args) => (
1219
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1220
+ <CoinIcon {...args} />
1221
+ </div>
1222
+ ),
1223
+ }
1224
+
1225
+ export const SizeVariations: Story = {
1226
+ parameters: {
1227
+ ...storyParameters,
1228
+ docs: {
1229
+ description: {
1230
+ story:
1231
+ "CoinIcon in different sizes, from small inline currency displays to large wallet interfaces.",
1232
+ },
1233
+ },
1234
+ },
1235
+ render: () => (
1236
+ <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">
1237
+ <div className="text-center">
1238
+ <CoinIcon className="!mx-auto mb-2 h-3 w-3" />
1239
+ <span className="text-xs text-white/60">12px</span>
1240
+ </div>
1241
+ <div className="text-center">
1242
+ <CoinIcon className="!mx-auto mb-2 h-4 w-4" />
1243
+ <span className="text-xs text-white/60">16px</span>
1244
+ </div>
1245
+ <div className="text-center">
1246
+ <CoinIcon className="!mx-auto mb-2 h-5 w-5" />
1247
+ <span className="text-xs text-white/60">20px</span>
1248
+ </div>
1249
+ <div className="text-center">
1250
+ <CoinIcon className="!mx-auto mb-2 h-6 w-6" />
1251
+ <span className="text-xs text-white/60">24px</span>
1252
+ </div>
1253
+ <div className="text-center">
1254
+ <CoinIcon className="!mx-auto mb-2 h-8 w-8" />
1255
+ <span className="text-xs text-white/60">32px</span>
1256
+ </div>
1257
+ <div className="text-center">
1258
+ <CoinIcon className="!mx-auto mb-2 h-12 w-12" />
1259
+ <span className="text-xs text-white/60">48px</span>
1260
+ </div>
1261
+ </div>
1262
+ ),
1263
+ }
1264
+
1265
+ export const ContextualUsage: Story = {
1266
+ parameters: {
1267
+ ...storyParameters,
1268
+ docs: {
1269
+ description: {
1270
+ story:
1271
+ "CoinIcon in different contextual applications showing its built-in golden design.",
1272
+ },
1273
+ },
1274
+ },
1275
+ render: () => (
1276
+ <div className="grid min-h-dvh grid-cols-1 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-3">
1277
+ <div className="text-center">
1278
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-yellow-500/30 bg-yellow-500/20">
1279
+ <CoinIcon className="h-8 w-8" />
1280
+ </div>
1281
+ <div className="text-sm font-medium text-white">Wallet Balance</div>
1282
+ <div className="text-xs text-yellow-400">Currency display</div>
1283
+ </div>
1284
+ <div className="text-center">
1285
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-amber-500/30 bg-amber-500/20">
1286
+ <CoinIcon className="h-8 w-8" />
1287
+ </div>
1288
+ <div className="text-sm font-medium text-white">Store Pricing</div>
1289
+ <div className="text-xs text-amber-400">E-commerce value</div>
1290
+ </div>
1291
+ <div className="text-center">
1292
+ <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">
1293
+ <CoinIcon className="h-8 w-8" />
1294
+ </div>
1295
+ <div className="text-sm font-medium text-white">Game Rewards</div>
1296
+ <div className="text-xs text-orange-400">Achievement system</div>
1297
+ </div>
1298
+ </div>
1299
+ ),
1300
+ }
1301
+
1302
+ export const UsageExamples: Story = {
1303
+ parameters: {
1304
+ ...storyParameters,
1305
+ docs: {
1306
+ description: {
1307
+ story:
1308
+ "Real-world usage examples showing CoinIcon in different financial and gaming contexts.",
1309
+ },
1310
+ },
1311
+ },
1312
+ render: () => (
1313
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1314
+ {/* Wallet Display */}
1315
+ <div className="!space-y-2">
1316
+ <h3 className="text-sm font-medium text-white">
1317
+ Digital Wallet Balance
1318
+ </h3>
1319
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1320
+ <div className="flex items-center justify-between rounded border border-yellow-500/30 bg-gradient-to-r from-yellow-500/20 to-amber-500/20 p-3">
1321
+ <span className="font-medium text-white">Current Balance</span>
1322
+ <div className="flex items-center gap-2">
1323
+ <CoinIcon className="h-5 w-5" />
1324
+ <span className="text-lg font-bold text-yellow-300">2,847</span>
1325
+ </div>
1326
+ </div>
1327
+ </div>
1328
+ </div>
1329
+
1330
+ {/* Store Item */}
1331
+ <div className="!space-y-2">
1332
+ <h3 className="text-sm font-medium text-white">Store Item Pricing</h3>
1333
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1334
+ <div className="flex items-center justify-between rounded border border-white/10 bg-black/30 p-3">
1335
+ <div className="flex items-center gap-3">
1336
+ <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-purple-500/20">
1337
+ <span>⚔️</span>
1338
+ </div>
1339
+ <div>
1340
+ <div className="text-sm font-medium text-white">Epic Sword</div>
1341
+ <div className="text-xs text-white/60">Legendary weapon</div>
1342
+ </div>
1343
+ </div>
1344
+ <div className="flex items-center gap-2">
1345
+ <div className="flex items-center gap-1">
1346
+ <CoinIcon className="h-4 w-4" />
1347
+ <span className="font-medium text-yellow-400">500</span>
1348
+ </div>
1349
+ <button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-3 py-1 text-sm text-yellow-300 transition-colors hover:bg-yellow-500/30">
1350
+ Buy
1351
+ </button>
1352
+ </div>
1353
+ </div>
1354
+ </div>
1355
+ </div>
1356
+ </div>
1357
+ ),
1358
+ }
1359
+
1360
+ export const Playground: Story = {
1361
+ parameters: {
1362
+ ...storyParameters,
1363
+ docs: {
1364
+ description: {
1365
+ story:
1366
+ "Interactive playground to experiment with different CoinIcon configurations.",
1367
+ },
1368
+ },
1369
+ },
1370
+ args: {
1371
+ width: 24,
1372
+ height: 24,
1373
+ className: "",
1374
+ },
1375
+ render: (args) => (
1376
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1377
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1378
+ <CoinIcon {...args} />
1379
+ </div>
1380
+ </div>
1381
+ ),
1382
+ }