aural-ui 2.0.9 → 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 +102 -111
  87. package/dist/styles/aural-theme.css +9 -0
  88. package/package.json +4 -2
@@ -0,0 +1,952 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { AppleLogoIcon } from "."
5
+
6
+ const meta: Meta<typeof AppleLogoIcon> = {
7
+ title: "Icons/AppleLogoIcon",
8
+ component: AppleLogoIcon,
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 !important;
27
+ max-width: none !important;
28
+ background: transparent !important;
29
+ }
30
+ .sbdocs-content {
31
+ max-width: none !important;
32
+ padding: 0 !important;
33
+ margin: 0 !important;
34
+ background: transparent !important;
35
+ }
36
+ .docs-story {
37
+ background: transparent !important;
38
+ }
39
+ .sbdocs {
40
+ background: transparent !important;
41
+ }
42
+ body {
43
+ background: #0a0a0a !important;
44
+ }
45
+ #storybook-docs {
46
+ background: #0a0a0a !important;
47
+ }
48
+ .sbdocs-preview {
49
+ background: transparent !important;
50
+ border: none !important;
51
+ }
52
+ .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
+ color: white !important;
54
+ }
55
+ .sbdocs-p, .sbdocs-li {
56
+ color: rgba(255, 255, 255, 0.7) !important;
57
+ }
58
+ .sbdocs-code {
59
+ background: rgba(255, 255, 255, 0.1) !important;
60
+ color: rgba(168, 85, 247, 1) !important;
61
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
62
+ }
63
+ .sbdocs-pre {
64
+ background: rgba(0, 0, 0, 0.4) !important;
65
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
66
+ }
67
+ .sbdocs-table {
68
+ background: rgba(255, 255, 255, 0.05) !important;
69
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
70
+ }
71
+ .sbdocs-table th {
72
+ background: rgba(255, 255, 255, 0.05) !important;
73
+ color: white !important;
74
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
75
+ }
76
+ .sbdocs-table td {
77
+ color: rgba(255, 255, 255, 0.7) !important;
78
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
79
+ }
80
+ `}
81
+ </style>
82
+
83
+ <div className="min-h-screen bg-gradient-to-br from-gray-900 via-blue-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-blue-500/10 via-transparent to-gray-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-gray-500/30 bg-gradient-to-br from-gray-500/20 to-blue-500/20">
90
+ <AppleLogoIcon className="h-12 w-12 text-white" />
91
+ </div>
92
+ <h1 className="!text-fm-primary text-5xl font-bold">
93
+ AppleLogoIcon
94
+ </h1>
95
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
96
+ The iconic Apple logo for branding, authentication, and
97
+ platform identification. Built with accessibility in mind
98
+ using Radix UI's AccessibleIcon wrapper for seamless screen
99
+ reader support.
100
+ </p>
101
+
102
+ {/* Stats */}
103
+ <div className="flex items-center justify-center gap-8 pt-8">
104
+ <div className="text-center">
105
+ <div className="text-3xl font-bold text-blue-300">
106
+ Accessible
107
+ </div>
108
+ <div className="text-sm text-white/60">
109
+ Screen reader friendly
110
+ </div>
111
+ </div>
112
+ <div className="h-8 w-px bg-white/20" />
113
+ <div className="text-center">
114
+ <div className="text-3xl font-bold text-gray-300">
115
+ Scalable
116
+ </div>
117
+ <div className="text-sm text-white/60">
118
+ Any size needed
119
+ </div>
120
+ </div>
121
+ <div className="h-8 w-px bg-white/20" />
122
+ <div className="text-center">
123
+ <div className="text-3xl font-bold text-purple-300">
124
+ Flexible
125
+ </div>
126
+ <div className="text-sm text-white/60">
127
+ Customizable styling
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+
135
+ {/* Content */}
136
+ <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
137
+ {/* Quick Usage */}
138
+ <div className="!space-y-8">
139
+ <h2 className="text-center text-3xl font-bold !text-white">
140
+ Quick Start
141
+ </h2>
142
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
143
+ <div className="!space-y-4">
144
+ <h3 className="text-xl font-semibold !text-blue-300">
145
+ Basic Usage
146
+ </h3>
147
+ <div className="rounded-lg bg-black/40 p-4">
148
+ <pre className="overflow-x-auto text-sm !text-green-300">
149
+ {`import { AppleLogoIcon } from "@icons/apple-logo-icon"
150
+
151
+ function LoginPage() {
152
+ return (
153
+ <button className="flex items-center gap-3">
154
+ <AppleLogoIcon className="h-5 w-5 text-white" />
155
+ <span>Sign in with Apple</span>
156
+ </button>
157
+ )
158
+ }`}
159
+ </pre>
160
+ </div>
161
+ </div>
162
+
163
+ <div className="!space-y-4">
164
+ <h3 className="text-xl font-semibold !text-blue-300">
165
+ Live Preview
166
+ </h3>
167
+ <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
168
+ <button className="flex items-center gap-3 rounded-lg border border-gray-500/20 bg-black px-6 py-3 transition-colors hover:bg-gray-900">
169
+ <AppleLogoIcon className="h-5 w-5 text-white" />
170
+ <span className="text-white">Sign in with Apple</span>
171
+ </button>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+
177
+ {/* Props Documentation */}
178
+ <div className="!space-y-8">
179
+ <h2 className="text-center text-3xl font-bold !text-white">
180
+ Props & Configuration
181
+ </h2>
182
+
183
+ <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
184
+ <div className="bg-white/5 p-4">
185
+ <h3 className="text-xl font-semibold !text-white">Props</h3>
186
+ </div>
187
+ <table className="!my-0 w-full">
188
+ <thead className="bg-white/5">
189
+ <tr className="border-b border-white/10">
190
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
191
+ Prop
192
+ </th>
193
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
194
+ Type
195
+ </th>
196
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
197
+ Default
198
+ </th>
199
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
200
+ Description
201
+ </th>
202
+ </tr>
203
+ </thead>
204
+ <tbody>
205
+ <tr className="border-b border-white/5">
206
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
207
+ width
208
+ </td>
209
+ <td className="px-6 py-4 text-sm !text-white/70">
210
+ number | string
211
+ </td>
212
+ <td className="px-6 py-4 text-sm !text-white/50">20</td>
213
+ <td className="px-6 py-4 text-sm !text-white/70">
214
+ Width of the icon in pixels
215
+ </td>
216
+ </tr>
217
+ <tr className="border-b border-white/5 !bg-black/10">
218
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
219
+ height
220
+ </td>
221
+ <td className="px-6 py-4 text-sm !text-white/70">
222
+ number | string
223
+ </td>
224
+ <td className="px-6 py-4 text-sm !text-white/50">20</td>
225
+ <td className="px-6 py-4 text-sm !text-white/70">
226
+ Height of the icon in pixels
227
+ </td>
228
+ </tr>
229
+ <tr className="border-b border-white/5">
230
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
231
+ fill
232
+ </td>
233
+ <td className="px-6 py-4 text-sm !text-white/70">
234
+ string
235
+ </td>
236
+ <td className="px-6 py-4 text-sm !text-white/50">
237
+ #fff
238
+ </td>
239
+ <td className="px-6 py-4 text-sm !text-white/70">
240
+ Fill color of the icon
241
+ </td>
242
+ </tr>
243
+ <tr className="border-b border-white/5 !bg-black/10">
244
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
245
+ className
246
+ </td>
247
+ <td className="px-6 py-4 text-sm !text-white/70">
248
+ string
249
+ </td>
250
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
251
+ <td className="px-6 py-4 text-sm !text-white/70">
252
+ CSS classes for styling
253
+ </td>
254
+ </tr>
255
+ <tr className="!bg-black/10">
256
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
257
+ ...svgProps
258
+ </td>
259
+ <td className="px-6 py-4 text-sm !text-white/70">
260
+ SVGProps
261
+ </td>
262
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
263
+ <td className="px-6 py-4 text-sm !text-white/70">
264
+ All standard SVG element props
265
+ </td>
266
+ </tr>
267
+ </tbody>
268
+ </table>
269
+ </div>
270
+ </div>
271
+
272
+ {/* Size Variations */}
273
+ <div className="!space-y-8">
274
+ <h2 className="text-center text-3xl font-bold !text-white">
275
+ Size Variations
276
+ </h2>
277
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
278
+ <div className="!space-y-6">
279
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
280
+ <div className="!space-y-4">
281
+ <h3 className="text-lg font-semibold !text-blue-300">
282
+ Standard Sizes
283
+ </h3>
284
+ <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
285
+ <div className="text-center">
286
+ <AppleLogoIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
287
+ <span className="text-xs text-white/60">12px</span>
288
+ </div>
289
+ <div className="text-center">
290
+ <AppleLogoIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
291
+ <span className="text-xs text-white/60">16px</span>
292
+ </div>
293
+ <div className="text-center">
294
+ <AppleLogoIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
295
+ <span className="text-xs text-white/60">20px</span>
296
+ </div>
297
+ <div className="text-center">
298
+ <AppleLogoIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
299
+ <span className="text-xs text-white/60">24px</span>
300
+ </div>
301
+ <div className="text-center">
302
+ <AppleLogoIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
303
+ <span className="text-xs text-white/60">32px</span>
304
+ </div>
305
+ <div className="text-center">
306
+ <AppleLogoIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
307
+ <span className="text-xs text-white/60">48px</span>
308
+ </div>
309
+ </div>
310
+ </div>
311
+
312
+ <div className="!space-y-4">
313
+ <h3 className="text-lg font-semibold !text-blue-300">
314
+ Code Example
315
+ </h3>
316
+ <div className="rounded-lg bg-black/40 p-4">
317
+ <pre className="overflow-x-auto text-sm !text-blue-300">
318
+ {`// Small (16px)
319
+ <AppleLogoIcon className="h-4 w-4" />
320
+
321
+ // Medium (24px)
322
+ <AppleLogoIcon className="h-6 w-6" />
323
+
324
+ // Large (32px)
325
+ <AppleLogoIcon className="h-8 w-8" />
326
+
327
+ // Custom size
328
+ <AppleLogoIcon width={40} height={40} />`}
329
+ </pre>
330
+ </div>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </div>
335
+ </div>
336
+
337
+ {/* Color Variations */}
338
+ <div className="!space-y-8">
339
+ <h2 className="text-center text-3xl font-bold !text-white">
340
+ Color Variations
341
+ </h2>
342
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
343
+ <div className="!space-y-4">
344
+ <h3 className="text-lg font-semibold !text-blue-300">
345
+ Brand Colors
346
+ </h3>
347
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
348
+ <div className="flex items-center gap-4">
349
+ <AppleLogoIcon className="h-6 w-6 text-white" />
350
+ <div>
351
+ <div className="text-sm font-medium text-white">
352
+ Classic White
353
+ </div>
354
+ <div className="text-xs text-white/60">
355
+ text-white
356
+ </div>
357
+ </div>
358
+ </div>
359
+ <div className="flex items-center gap-4">
360
+ <AppleLogoIcon className="h-6 w-6 text-gray-800" />
361
+ <div>
362
+ <div className="text-sm font-medium text-white">
363
+ Space Gray
364
+ </div>
365
+ <div className="text-xs text-white/60">
366
+ text-gray-800
367
+ </div>
368
+ </div>
369
+ </div>
370
+ <div className="flex items-center gap-4">
371
+ <AppleLogoIcon className="h-6 w-6 text-blue-500" />
372
+ <div>
373
+ <div className="text-sm font-medium text-white">
374
+ Apple Blue
375
+ </div>
376
+ <div className="text-xs text-white/60">
377
+ text-blue-500
378
+ </div>
379
+ </div>
380
+ </div>
381
+ <div className="flex items-center gap-4">
382
+ <AppleLogoIcon className="h-6 w-6 text-gray-400" />
383
+ <div>
384
+ <div className="text-sm font-medium text-white">
385
+ Neutral
386
+ </div>
387
+ <div className="text-xs text-white/60">
388
+ text-gray-400
389
+ </div>
390
+ </div>
391
+ </div>
392
+ </div>
393
+ </div>
394
+
395
+ <div className="!space-y-4">
396
+ <h3 className="text-lg font-semibold !text-blue-300">
397
+ Custom Colors
398
+ </h3>
399
+ <div className="rounded-lg bg-black/40 p-4">
400
+ <pre className="overflow-x-auto text-sm !text-green-300">
401
+ {`// Using Tailwind classes
402
+ <AppleLogoIcon className="h-6 w-6 text-white" />
403
+ <AppleLogoIcon className="h-6 w-6 text-gray-800" />
404
+
405
+ // Using CSS custom properties
406
+ <AppleLogoIcon
407
+ className="h-6 w-6"
408
+ style={{ color: 'var(--brand-primary)' }}
409
+ />
410
+
411
+ // Direct fill prop
412
+ <AppleLogoIcon
413
+ width={24}
414
+ height={24}
415
+ fill="#ffffff"
416
+ />`}
417
+ </pre>
418
+ </div>
419
+ </div>
420
+ </div>
421
+ </div>
422
+
423
+ {/* Usage Examples */}
424
+ <div className="!space-y-8">
425
+ <h2 className="text-center text-3xl font-bold !text-white">
426
+ Usage Examples
427
+ </h2>
428
+
429
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
430
+ {/* Authentication Button */}
431
+ <div className="!space-y-4">
432
+ <h3 className="text-lg font-semibold !text-blue-300">
433
+ Authentication Button
434
+ </h3>
435
+ <div className="!space-y-4">
436
+ <div className="flex gap-4">
437
+ <button className="flex items-center gap-3 rounded-lg bg-black px-6 py-3 text-white transition-colors hover:bg-gray-900">
438
+ <AppleLogoIcon className="h-5 w-5" />
439
+ Sign in with Apple
440
+ </button>
441
+ <button className="flex items-center gap-3 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white transition-colors hover:bg-white/10">
442
+ <AppleLogoIcon className="h-4 w-4" />
443
+ Continue
444
+ </button>
445
+ </div>
446
+ <div className="rounded-lg bg-black/40 p-4">
447
+ <pre className="overflow-x-auto text-sm !text-green-300">
448
+ {`// Primary authentication button
449
+ <button className="flex items-center gap-3 bg-black px-6 py-3 rounded-lg text-white">
450
+ <AppleLogoIcon className="h-5 w-5" />
451
+ Sign in with Apple
452
+ </button>
453
+
454
+ // Secondary continue button
455
+ <button className="flex items-center gap-3 bg-white/5 border border-white/20 px-4 py-2 rounded-lg">
456
+ <AppleLogoIcon className="h-4 w-4" />
457
+ Continue
458
+ </button>`}
459
+ </pre>
460
+ </div>
461
+ </div>
462
+ </div>
463
+
464
+ {/* App Footer */}
465
+ <div className="!space-y-4">
466
+ <h3 className="text-lg font-semibold !text-blue-300">
467
+ App Footer
468
+ </h3>
469
+ <div className="!space-y-4">
470
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
471
+ <div className="flex items-center justify-center gap-4">
472
+ <span className="text-sm text-white/70">
473
+ Available on
474
+ </span>
475
+ <div className="flex items-center gap-2">
476
+ <AppleLogoIcon className="h-6 w-6 text-white" />
477
+ <span className="text-white">App Store</span>
478
+ </div>
479
+ </div>
480
+ </div>
481
+ <div className="rounded-lg bg-black/40 p-4">
482
+ <pre className="overflow-x-auto text-sm !text-green-300">
483
+ {`<div className="flex items-center justify-center gap-4">
484
+ <span className="text-sm text-white/70">Available on</span>
485
+ <div className="flex items-center gap-2">
486
+ <AppleLogoIcon className="h-6 w-6 text-white" />
487
+ <span className="text-white">App Store</span>
488
+ </div>
489
+ </div>`}
490
+ </pre>
491
+ </div>
492
+ </div>
493
+ </div>
494
+
495
+ {/* Platform Badge */}
496
+ <div className="!space-y-4">
497
+ <h3 className="text-lg font-semibold !text-blue-300">
498
+ Platform Badge
499
+ </h3>
500
+ <div className="!space-y-4">
501
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
502
+ <div className="inline-flex items-center gap-2 rounded-full border border-gray-500/30 bg-gray-500/10 px-3 py-1">
503
+ <AppleLogoIcon className="h-4 w-4 text-white" />
504
+ <span className="text-sm text-white">macOS</span>
505
+ </div>
506
+ </div>
507
+ <div className="rounded-lg bg-black/40 p-4">
508
+ <pre className="overflow-x-auto text-sm !text-green-300">
509
+ {`<div className="inline-flex items-center gap-2 rounded-full border border-gray-500/30 bg-gray-500/10 px-3 py-1">
510
+ <AppleLogoIcon className="h-4 w-4 text-white" />
511
+ <span className="text-sm text-white">macOS</span>
512
+ </div>`}
513
+ </pre>
514
+ </div>
515
+ </div>
516
+ </div>
517
+
518
+ {/* Download Card */}
519
+ <div className="!space-y-4">
520
+ <h3 className="text-lg font-semibold !text-blue-300">
521
+ Download Card
522
+ </h3>
523
+ <div className="!space-y-4">
524
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
525
+ <div className="flex items-center justify-between">
526
+ <div className="flex items-center gap-4">
527
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
528
+ <AppleLogoIcon className="h-6 w-6 text-white" />
529
+ </div>
530
+ <div>
531
+ <div className="font-medium text-white">
532
+ iOS App
533
+ </div>
534
+ <div className="text-sm text-white/60">
535
+ Download for iPhone & iPad
536
+ </div>
537
+ </div>
538
+ </div>
539
+ <button className="rounded-lg bg-blue-500 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-600">
540
+ Download
541
+ </button>
542
+ </div>
543
+ </div>
544
+ <div className="rounded-lg bg-black/40 p-4">
545
+ <pre className="overflow-x-auto text-sm !text-green-300">
546
+ {`<div className="flex items-center justify-between">
547
+ <div className="flex items-center gap-4">
548
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
549
+ <AppleLogoIcon className="h-6 w-6 text-white" />
550
+ </div>
551
+ <div>
552
+ <div className="font-medium text-white">iOS App</div>
553
+ <div className="text-sm text-white/60">Download for iPhone & iPad</div>
554
+ </div>
555
+ </div>
556
+ <button className="bg-blue-500 hover:bg-blue-600 px-4 py-2 rounded-lg text-sm text-white">
557
+ Download
558
+ </button>
559
+ </div>`}
560
+ </pre>
561
+ </div>
562
+ </div>
563
+ </div>
564
+ </div>
565
+ </div>
566
+
567
+ {/* Accessibility */}
568
+ <div className="!space-y-8">
569
+ <h2 className="text-center text-3xl font-bold !text-white">
570
+ Accessibility Features
571
+ </h2>
572
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
573
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
574
+ <h3 className="text-lg font-semibold !text-green-300">
575
+ ✅ Built-in Features
576
+ </h3>
577
+ <ul className="!space-y-2 text-sm !text-white/70">
578
+ <li className="!text-white/70">
579
+ Uses Radix UI AccessibleIcon wrapper
580
+ </li>
581
+ <li className="!text-white/70">
582
+ Provides screen reader label "Apple logo"
583
+ </li>
584
+ <li className="!text-white/70">
585
+ Supports keyboard navigation when interactive
586
+ </li>
587
+ <li className="!text-white/70">
588
+ Maintains proper color contrast ratios
589
+ </li>
590
+ <li className="!text-white/70">
591
+ Scales with user's font size preferences
592
+ </li>
593
+ </ul>
594
+ </div>
595
+
596
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
597
+ <h3 className="text-lg font-semibold !text-blue-300">
598
+ 💡 Best Practices
599
+ </h3>
600
+ <ul className="!space-y-2 text-sm text-white/70">
601
+ <li className="!text-white/70">
602
+ Always pair with descriptive text for actions
603
+ </li>
604
+ <li className="!text-white/70">
605
+ Use consistent sizing across similar contexts
606
+ </li>
607
+ <li className="!text-white/70">
608
+ Ensure sufficient color contrast on backgrounds
609
+ </li>
610
+ <li className="!text-white/70">
611
+ Add focus states for interactive elements
612
+ </li>
613
+ <li className="!text-white/70">
614
+ Consider brand guidelines for Apple logo usage
615
+ </li>
616
+ </ul>
617
+ </div>
618
+ </div>
619
+
620
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
621
+ <h3 className="mb-4 text-lg font-semibold !text-purple-300">
622
+ Custom Accessibility Label
623
+ </h3>
624
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
625
+ <div className="rounded-lg bg-black/40 p-4">
626
+ <pre className="overflow-x-auto text-sm !text-blue-300">
627
+ {`// Custom implementation with specific label
628
+ import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
629
+
630
+ function CustomAppleIcon({ label = "Apple", ...props }) {
631
+ return (
632
+ <AccessibleIcon label={label}>
633
+ <AppleLogoIcon {...props} />
634
+ </AccessibleIcon>
635
+ )
636
+ }
637
+
638
+ // Usage with specific context
639
+ <CustomAppleIcon
640
+ label="Sign in with Apple"
641
+ className="h-5 w-5 text-white"
642
+ />`}
643
+ </pre>
644
+ </div>
645
+ <div className="!space-y-4">
646
+ <p className="text-sm !text-white/70">
647
+ For specific contexts, you can wrap the AppleLogoIcon
648
+ with a custom AccessibleIcon component that provides
649
+ more descriptive labels for authentication or platform
650
+ identification.
651
+ </p>
652
+ <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
653
+ <div className="flex items-center gap-2 text-sm text-blue-200">
654
+ <AppleLogoIcon className="h-4 w-4" />
655
+ <span>
656
+ This approach gives screen readers more context
657
+ </span>
658
+ </div>
659
+ </div>
660
+ </div>
661
+ </div>
662
+ </div>
663
+ </div>
664
+
665
+ {/* Related Icons */}
666
+ <div className="!space-y-8">
667
+ <h2 className="text-center text-3xl font-bold !text-white">
668
+ Related Icons
669
+ </h2>
670
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
671
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
672
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
673
+ <span className="text-2xl">🔐</span>
674
+ </div>
675
+ <div>
676
+ <div className="font-medium text-white">LoginIcon</div>
677
+ <div className="text-xs text-white/60">
678
+ Authentication
679
+ </div>
680
+ </div>
681
+ </div>
682
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
683
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
684
+ <span className="text-2xl">👤</span>
685
+ </div>
686
+ <div>
687
+ <div className="font-medium text-white">UserIcon</div>
688
+ <div className="text-xs text-white/60">User profile</div>
689
+ </div>
690
+ </div>
691
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
692
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
693
+ <span className="text-2xl">📱</span>
694
+ </div>
695
+ <div>
696
+ <div className="font-medium text-white">MobileIcon</div>
697
+ <div className="text-xs text-white/60">
698
+ Device platform
699
+ </div>
700
+ </div>
701
+ </div>
702
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
703
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
704
+ <span className="text-2xl">⬇️</span>
705
+ </div>
706
+ <div>
707
+ <div className="font-medium text-white">DownloadIcon</div>
708
+ <div className="text-xs text-white/60">Download apps</div>
709
+ </div>
710
+ </div>
711
+ </div>
712
+ </div>
713
+ </div>
714
+
715
+ {/* Footer */}
716
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
717
+ <div className="!mx-auto max-w-7xl px-6 py-8">
718
+ <div className="!space-y-4 text-center">
719
+ <p className="!text-white/60">
720
+ AppleLogoIcon is part of the Aural UI icon library, built
721
+ with accessibility and brand consistency in mind.
722
+ </p>
723
+ <p className="text-sm !text-white/40">
724
+ All icons use Radix UI's AccessibleIcon for screen reader
725
+ compatibility and follow WCAG guidelines.
726
+ </p>
727
+ </div>
728
+ </div>
729
+ </div>
730
+ </div>
731
+ </>
732
+ ),
733
+ },
734
+ },
735
+ tags: ["autodocs"],
736
+ argTypes: {
737
+ width: {
738
+ control: { type: "range", min: 8, max: 96, step: 2 },
739
+ description: "Width of the icon in pixels",
740
+ },
741
+ height: {
742
+ control: { type: "range", min: 8, max: 96, step: 2 },
743
+ description: "Height of the icon in pixels",
744
+ },
745
+ fill: {
746
+ control: "color",
747
+ description: "Fill color of the icon",
748
+ },
749
+ className: {
750
+ control: "text",
751
+ description: "CSS classes for styling",
752
+ },
753
+ },
754
+ }
755
+
756
+ export default meta
757
+ type Story = StoryObj<typeof AppleLogoIcon>
758
+
759
+ // Story parameters for consistent dark theme
760
+ const storyParameters = {
761
+ backgrounds: {
762
+ default: "dark",
763
+ values: [
764
+ { name: "dark", value: "#0a0a0a" },
765
+ { name: "darker", value: "#000000" },
766
+ ],
767
+ },
768
+ }
769
+
770
+ export const Default: Story = {
771
+ args: {
772
+ width: 20,
773
+ height: 20,
774
+ className: "text-white",
775
+ },
776
+ parameters: storyParameters,
777
+ render: (args) => (
778
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
779
+ <AppleLogoIcon {...args} />
780
+ </div>
781
+ ),
782
+ }
783
+
784
+ export const SizeVariations: Story = {
785
+ parameters: {
786
+ ...storyParameters,
787
+ docs: {
788
+ description: {
789
+ story:
790
+ "AppleLogoIcon in different sizes, from small UI elements to large brand displays.",
791
+ },
792
+ },
793
+ },
794
+ render: () => (
795
+ <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">
796
+ <div className="text-center">
797
+ <AppleLogoIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
798
+ <span className="text-xs text-white/60">12px</span>
799
+ </div>
800
+ <div className="text-center">
801
+ <AppleLogoIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
802
+ <span className="text-xs text-white/60">16px</span>
803
+ </div>
804
+ <div className="text-center">
805
+ <AppleLogoIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
806
+ <span className="text-xs text-white/60">20px</span>
807
+ </div>
808
+ <div className="text-center">
809
+ <AppleLogoIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
810
+ <span className="text-xs text-white/60">24px</span>
811
+ </div>
812
+ <div className="text-center">
813
+ <AppleLogoIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
814
+ <span className="text-xs text-white/60">32px</span>
815
+ </div>
816
+ <div className="text-center">
817
+ <AppleLogoIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
818
+ <span className="text-xs text-white/60">48px</span>
819
+ </div>
820
+ </div>
821
+ ),
822
+ }
823
+
824
+ export const ColorVariations: Story = {
825
+ parameters: {
826
+ ...storyParameters,
827
+ docs: {
828
+ description: {
829
+ story:
830
+ "AppleLogoIcon in different brand and semantic colors for various contexts.",
831
+ },
832
+ },
833
+ },
834
+ render: () => (
835
+ <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">
836
+ <div className="text-center">
837
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/30 bg-white/20">
838
+ <AppleLogoIcon className="h-8 w-8 text-white" />
839
+ </div>
840
+ <div className="text-sm font-medium text-white">Classic White</div>
841
+ <div className="text-xs text-white/60">text-white</div>
842
+ </div>
843
+ <div className="text-center">
844
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-500/30 bg-gray-500/20">
845
+ <AppleLogoIcon className="h-8 w-8 text-gray-800" />
846
+ </div>
847
+ <div className="text-sm font-medium text-white">Space Gray</div>
848
+ <div className="text-xs text-gray-400">text-gray-800</div>
849
+ </div>
850
+ <div className="text-center">
851
+ <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">
852
+ <AppleLogoIcon className="h-8 w-8 text-blue-500" />
853
+ </div>
854
+ <div className="text-sm font-medium text-white">Apple Blue</div>
855
+ <div className="text-xs text-blue-400">text-blue-500</div>
856
+ </div>
857
+ <div className="text-center">
858
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-400/30 bg-gray-400/20">
859
+ <AppleLogoIcon className="h-8 w-8 text-gray-400" />
860
+ </div>
861
+ <div className="text-sm font-medium text-white">Neutral</div>
862
+ <div className="text-xs text-gray-400">text-gray-400</div>
863
+ </div>
864
+ </div>
865
+ ),
866
+ }
867
+
868
+ export const UsageExamples: Story = {
869
+ parameters: {
870
+ ...storyParameters,
871
+ docs: {
872
+ description: {
873
+ story:
874
+ "Real-world usage examples showing AppleLogoIcon in different branding and authentication contexts.",
875
+ },
876
+ },
877
+ },
878
+ render: () => (
879
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
880
+ {/* Authentication Buttons */}
881
+ <div className="!space-y-2">
882
+ <h3 className="text-sm font-medium text-white">Authentication</h3>
883
+ <div className="flex gap-4">
884
+ <button className="flex items-center gap-3 rounded-lg bg-black px-6 py-3 text-white transition-colors hover:bg-gray-900">
885
+ <AppleLogoIcon className="h-5 w-5" />
886
+ Sign in with Apple
887
+ </button>
888
+ <button className="flex items-center gap-3 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white transition-colors hover:bg-white/10">
889
+ <AppleLogoIcon className="h-4 w-4" />
890
+ Continue
891
+ </button>
892
+ </div>
893
+ </div>
894
+
895
+ {/* Platform Badge */}
896
+ <div className="!space-y-2">
897
+ <h3 className="text-sm font-medium text-white">Platform Badge</h3>
898
+ <div className="inline-flex items-center gap-2 rounded-full border border-gray-500/30 bg-gray-500/10 px-3 py-1">
899
+ <AppleLogoIcon className="h-4 w-4 text-white" />
900
+ <span className="text-sm text-white">macOS</span>
901
+ </div>
902
+ </div>
903
+
904
+ {/* Download Card */}
905
+ <div className="!space-y-2">
906
+ <h3 className="text-sm font-medium text-white">Download Card</h3>
907
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
908
+ <div className="flex items-center justify-between">
909
+ <div className="flex items-center gap-4">
910
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
911
+ <AppleLogoIcon className="h-6 w-6 text-white" />
912
+ </div>
913
+ <div>
914
+ <div className="font-medium text-white">iOS App</div>
915
+ <div className="text-sm text-white/60">
916
+ Download for iPhone & iPad
917
+ </div>
918
+ </div>
919
+ </div>
920
+ <button className="rounded-lg bg-blue-500 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-600">
921
+ Download
922
+ </button>
923
+ </div>
924
+ </div>
925
+ </div>
926
+ </div>
927
+ ),
928
+ }
929
+
930
+ export const Playground: Story = {
931
+ parameters: {
932
+ ...storyParameters,
933
+ docs: {
934
+ description: {
935
+ story:
936
+ "Interactive playground to experiment with different AppleLogoIcon configurations.",
937
+ },
938
+ },
939
+ },
940
+ args: {
941
+ width: 32,
942
+ height: 32,
943
+ className: "text-white",
944
+ },
945
+ render: (args) => (
946
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
947
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
948
+ <AppleLogoIcon {...args} />
949
+ </div>
950
+ </div>
951
+ ),
952
+ }