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.
Files changed (59) hide show
  1. package/dist/components/badge/Badge.stories.tsx +7 -0
  2. package/dist/components/banner/Banner.stories.tsx +7 -0
  3. package/dist/components/button/Button.stories.tsx +7 -0
  4. package/dist/components/char-count/CharCount.stories.tsx +7 -0
  5. package/dist/components/checkbox/Checkbox.stories.tsx +7 -0
  6. package/dist/components/chip/Chip.stories.tsx +10 -0
  7. package/dist/components/collapsible/Collapsible.stories.tsx +7 -0
  8. package/dist/components/dropdown/index.tsx +16 -0
  9. package/dist/components/form/Form.stories.tsx +7 -0
  10. package/dist/components/helper-text/HelperText.stories.tsx +7 -0
  11. package/dist/components/icon-button/IconButton.stories.tsx +4 -0
  12. package/dist/components/if-else/if-else.stories.tsx +7 -0
  13. package/dist/components/input/Input.stories.tsx +7 -0
  14. package/dist/components/label/Label.stories.tsx +7 -0
  15. package/dist/components/overlay/index.tsx +1 -1
  16. package/dist/components/pagination/Pagination.stories.tsx +7 -0
  17. package/dist/components/radio/Radio.stories.tsx +7 -0
  18. package/dist/components/scroll-area/index.tsx +18 -5
  19. package/dist/components/select/Select.stories.tsx +7 -0
  20. package/dist/components/stepper/Stepper.stories.tsx +7 -0
  21. package/dist/components/switch/Switch.stories.tsx +7 -0
  22. package/dist/components/switch-case/SwitchCase.stories.tsx +7 -0
  23. package/dist/components/tag/Tag.stories.tsx +7 -0
  24. package/dist/components/textarea/TextArea.stories.tsx +7 -0
  25. package/dist/components/textarea/index.tsx +2 -0
  26. package/dist/components/toast/Toast.stories.tsx +7 -0
  27. package/dist/components/typography/Typography.stories.tsx +7 -0
  28. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +1101 -0
  29. package/dist/icons/ai-avatar-icon/index.tsx +36 -0
  30. package/dist/icons/ai-avatar-icon/meta.ts +8 -0
  31. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +1013 -0
  32. package/dist/icons/arrow-corner-up-left-icon/index.tsx +24 -0
  33. package/dist/icons/arrow-corner-up-left-icon/meta.ts +8 -0
  34. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +1056 -0
  35. package/dist/icons/arrow-corner-up-right-icon/index.tsx +24 -0
  36. package/dist/icons/arrow-corner-up-right-icon/meta.ts +8 -0
  37. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +1027 -0
  38. package/dist/icons/layout-column-icon/index.tsx +23 -0
  39. package/dist/icons/layout-column-icon/meta.ts +8 -0
  40. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +1007 -0
  41. package/dist/icons/layout-left-icon/index.tsx +26 -0
  42. package/dist/icons/layout-left-icon/meta.ts +8 -0
  43. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +1001 -0
  44. package/dist/icons/layout-right-icon/index.tsx +26 -0
  45. package/dist/icons/layout-right-icon/meta.ts +8 -0
  46. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +1010 -0
  47. package/dist/icons/paint-roll-icon/index.tsx +24 -0
  48. package/dist/icons/paint-roll-icon/meta.ts +8 -0
  49. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +1018 -0
  50. package/dist/icons/sparkles-soft-icon/index.tsx +29 -0
  51. package/dist/icons/sparkles-soft-icon/meta.ts +8 -0
  52. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +1006 -0
  53. package/dist/icons/text-color-icon/index.tsx +35 -0
  54. package/dist/icons/text-color-icon/meta.ts +8 -0
  55. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +1039 -0
  56. package/dist/icons/text-indicator-icon/index.tsx +24 -0
  57. package/dist/icons/text-indicator-icon/meta.ts +8 -0
  58. package/dist/index.js +124 -99
  59. package/package.json +1 -1
@@ -0,0 +1,1013 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { ArrowCornerUpLeftIcon } from "."
5
+
6
+ const meta: Meta<typeof ArrowCornerUpLeftIcon> = {
7
+ title: "Icons/ArrowCornerUpLeftIcon",
8
+ component: ArrowCornerUpLeftIcon,
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-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-indigo-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-blue-500/30 bg-gradient-to-br from-blue-500/20 to-indigo-500/20">
90
+ <ArrowCornerUpLeftIcon className="h-12 w-12 text-blue-400" />
91
+ </div>
92
+ <h1 className="!text-fm-primary text-5xl font-bold">
93
+ ArrowCornerUpLeftIcon
94
+ </h1>
95
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
96
+ A directional icon for navigation, indicating upward and
97
+ leftward movement. Perfect for back navigation, return
98
+ actions, and corner-based directional indicators. Built with
99
+ accessibility in mind using Radix UI's AccessibleIcon
100
+ 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-blue-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-indigo-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-purple-300">
125
+ Flexible
126
+ </div>
127
+ <div className="text-sm text-white/60">
128
+ Customizable 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-blue-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 { ArrowCornerUpLeftIcon } from "@icons/arrow-corner-up-left-icon"
151
+
152
+ function MyComponent() {
153
+ return (
154
+ <button className="flex items-center gap-2">
155
+ <ArrowCornerUpLeftIcon className="h-5 w-5 text-blue-500" />
156
+ <span>Back to previous</span>
157
+ </button>
158
+ )
159
+ }`}
160
+ </pre>
161
+ </div>
162
+ </div>
163
+
164
+ <div className="!space-y-4">
165
+ <h3 className="text-xl font-semibold !text-blue-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
+ <button className="flex items-center gap-3 rounded-lg border border-blue-500/20 bg-blue-500/10 px-4 py-2 transition-colors hover:bg-blue-500/20">
170
+ <ArrowCornerUpLeftIcon className="h-5 w-5 text-blue-400" />
171
+ <span className="text-white">Back to previous</span>
172
+ </button>
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-blue-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">18</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-blue-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">18</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-blue-300">
232
+ stroke
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">
238
+ currentColor
239
+ </td>
240
+ <td className="px-6 py-4 text-sm !text-white/70">
241
+ Stroke color of the icon
242
+ </td>
243
+ </tr>
244
+ <tr className="border-b border-white/5 !bg-black/10">
245
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
246
+ strokeWidth
247
+ </td>
248
+ <td className="px-6 py-4 text-sm !text-white/70">
249
+ number | string
250
+ </td>
251
+ <td className="px-6 py-4 text-sm !text-white/50">
252
+ 1.5
253
+ </td>
254
+ <td className="px-6 py-4 text-sm !text-white/70">
255
+ Width of the stroke
256
+ </td>
257
+ </tr>
258
+ <tr className="border-b border-white/5">
259
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
260
+ className
261
+ </td>
262
+ <td className="px-6 py-4 text-sm !text-white/70">
263
+ string
264
+ </td>
265
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
266
+ <td className="px-6 py-4 text-sm !text-white/70">
267
+ CSS classes for styling
268
+ </td>
269
+ </tr>
270
+ <tr className="!bg-black/10">
271
+ <td className="px-6 py-4 font-mono text-sm !text-blue-300">
272
+ ...svgProps
273
+ </td>
274
+ <td className="px-6 py-4 text-sm !text-white/70">
275
+ SVGProps
276
+ </td>
277
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
278
+ <td className="px-6 py-4 text-sm !text-white/70">
279
+ All standard SVG element props
280
+ </td>
281
+ </tr>
282
+ </tbody>
283
+ </table>
284
+ </div>
285
+ </div>
286
+
287
+ {/* Size Variations */}
288
+ <div className="!space-y-8">
289
+ <h2 className="text-center text-3xl font-bold !text-white">
290
+ Size Variations
291
+ </h2>
292
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
293
+ <div className="!space-y-6">
294
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
295
+ <div className="!space-y-4">
296
+ <h3 className="text-lg font-semibold !text-blue-300">
297
+ Standard Sizes
298
+ </h3>
299
+ <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
300
+ <div className="text-center">
301
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
302
+ <span className="text-xs text-white/60">12px</span>
303
+ </div>
304
+ <div className="text-center">
305
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
306
+ <span className="text-xs text-white/60">16px</span>
307
+ </div>
308
+ <div className="text-center">
309
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
310
+ <span className="text-xs text-white/60">20px</span>
311
+ </div>
312
+ <div className="text-center">
313
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
314
+ <span className="text-xs text-white/60">24px</span>
315
+ </div>
316
+ <div className="text-center">
317
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
318
+ <span className="text-xs text-white/60">32px</span>
319
+ </div>
320
+ <div className="text-center">
321
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
322
+ <span className="text-xs text-white/60">48px</span>
323
+ </div>
324
+ </div>
325
+ </div>
326
+
327
+ <div className="!space-y-4">
328
+ <h3 className="text-lg font-semibold !text-blue-300">
329
+ Code Example
330
+ </h3>
331
+ <div className="rounded-lg bg-black/40 p-4">
332
+ <pre className="overflow-x-auto text-sm !text-blue-300">
333
+ {`// Small (16px)
334
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
335
+
336
+ // Medium (24px)
337
+ <ArrowCornerUpLeftIcon className="h-6 w-6" />
338
+
339
+ // Large (32px)
340
+ <ArrowCornerUpLeftIcon className="h-8 w-8" />
341
+
342
+ // Custom size
343
+ <ArrowCornerUpLeftIcon width={40} height={40} />`}
344
+ </pre>
345
+ </div>
346
+ </div>
347
+ </div>
348
+ </div>
349
+ </div>
350
+ </div>
351
+
352
+ {/* Color Variations */}
353
+ <div className="!space-y-8">
354
+ <h2 className="text-center text-3xl font-bold !text-white">
355
+ Color Variations
356
+ </h2>
357
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
358
+ <div className="!space-y-4">
359
+ <h3 className="text-lg font-semibold !text-blue-300">
360
+ Semantic Colors
361
+ </h3>
362
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
363
+ <div className="flex items-center gap-4">
364
+ <ArrowCornerUpLeftIcon className="h-6 w-6 text-blue-400" />
365
+ <div>
366
+ <div className="text-sm font-medium text-white">
367
+ Primary
368
+ </div>
369
+ <div className="text-xs text-white/60">
370
+ text-blue-400
371
+ </div>
372
+ </div>
373
+ </div>
374
+ <div className="flex items-center gap-4">
375
+ <ArrowCornerUpLeftIcon className="h-6 w-6 text-indigo-400" />
376
+ <div>
377
+ <div className="text-sm font-medium text-white">
378
+ Secondary
379
+ </div>
380
+ <div className="text-xs text-white/60">
381
+ text-indigo-400
382
+ </div>
383
+ </div>
384
+ </div>
385
+ <div className="flex items-center gap-4">
386
+ <ArrowCornerUpLeftIcon className="h-6 w-6 text-gray-400" />
387
+ <div>
388
+ <div className="text-sm font-medium text-white">
389
+ Neutral
390
+ </div>
391
+ <div className="text-xs text-white/60">
392
+ text-gray-400
393
+ </div>
394
+ </div>
395
+ </div>
396
+ <div className="flex items-center gap-4">
397
+ <ArrowCornerUpLeftIcon className="h-6 w-6 text-purple-400" />
398
+ <div>
399
+ <div className="text-sm font-medium text-white">
400
+ Accent
401
+ </div>
402
+ <div className="text-xs text-white/60">
403
+ text-purple-400
404
+ </div>
405
+ </div>
406
+ </div>
407
+ </div>
408
+ </div>
409
+
410
+ <div className="!space-y-4">
411
+ <h3 className="text-lg font-semibold !text-blue-300">
412
+ Custom Colors
413
+ </h3>
414
+ <div className="rounded-lg bg-black/40 p-4">
415
+ <pre className="overflow-x-auto text-sm !text-green-300">
416
+ {`// Using Tailwind classes
417
+ <ArrowCornerUpLeftIcon className="h-6 w-6 text-blue-400" />
418
+ <ArrowCornerUpLeftIcon className="h-6 w-6 text-indigo-500" />
419
+
420
+ // Using CSS custom properties
421
+ <ArrowCornerUpLeftIcon
422
+ className="h-6 w-6"
423
+ style={{ color: 'var(--color-primary)' }}
424
+ />
425
+
426
+ // Direct stroke prop
427
+ <ArrowCornerUpLeftIcon
428
+ width={24}
429
+ height={24}
430
+ stroke="#3b82f6"
431
+ />`}
432
+ </pre>
433
+ </div>
434
+ </div>
435
+ </div>
436
+ </div>
437
+
438
+ {/* Usage Examples */}
439
+ <div className="!space-y-8">
440
+ <h2 className="text-center text-3xl font-bold !text-white">
441
+ Usage Examples
442
+ </h2>
443
+
444
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
445
+ {/* Navigation Button */}
446
+ <div className="!space-y-4">
447
+ <h3 className="text-lg font-semibold !text-blue-300">
448
+ Back Navigation
449
+ </h3>
450
+ <div className="!space-y-4">
451
+ <div className="flex items-center gap-4">
452
+ <button className="flex items-center gap-2 rounded-lg border border-blue-500/20 bg-blue-500/10 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/20">
453
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
454
+ Back to Dashboard
455
+ </button>
456
+ <button className="flex items-center gap-2 rounded-lg border border-gray-500/20 bg-gray-500/10 px-3 py-2 text-gray-200 transition-colors hover:bg-gray-500/20">
457
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
458
+ Return
459
+ </button>
460
+ </div>
461
+ <div className="rounded-lg bg-black/40 p-4">
462
+ <pre className="overflow-x-auto text-sm !text-green-300">
463
+ {`<button className="flex items-center gap-2 bg-blue-500/10 border border-blue-500/20 px-4 py-2 rounded-lg">
464
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
465
+ Back to Dashboard
466
+ </button>
467
+
468
+ <button className="flex items-center gap-2 bg-gray-500/10 border border-gray-500/20 px-3 py-2 rounded-lg">
469
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
470
+ Return
471
+ </button>`}
472
+ </pre>
473
+ </div>
474
+ </div>
475
+ </div>
476
+
477
+ {/* Breadcrumb Navigation */}
478
+ <div className="!space-y-4">
479
+ <h3 className="text-lg font-semibold !text-blue-300">
480
+ Breadcrumb Navigation
481
+ </h3>
482
+ <div className="!space-y-4">
483
+ <nav className="flex items-center space-x-2 text-sm">
484
+ <button className="flex items-center gap-1 text-blue-400 hover:text-blue-300">
485
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
486
+ <span>Home</span>
487
+ </button>
488
+ <span className="text-gray-500">/</span>
489
+ <button className="flex items-center gap-1 text-blue-400 hover:text-blue-300">
490
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
491
+ <span>Products</span>
492
+ </button>
493
+ <span className="text-gray-500">/</span>
494
+ <span className="text-white">Current Page</span>
495
+ </nav>
496
+ <div className="rounded-lg bg-black/40 p-4">
497
+ <pre className="overflow-x-auto text-sm !text-green-300">
498
+ {`<nav className="flex items-center space-x-2 text-sm">
499
+ <button className="flex items-center gap-1 text-blue-400 hover:text-blue-300">
500
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
501
+ <span>Home</span>
502
+ </button>
503
+ <span className="text-gray-500">/</span>
504
+ <button className="flex items-center gap-1 text-blue-400 hover:text-blue-300">
505
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
506
+ <span>Products</span>
507
+ </button>
508
+ <span className="text-gray-500">/</span>
509
+ <span className="text-white">Current Page</span>
510
+ </nav>`}
511
+ </pre>
512
+ </div>
513
+ </div>
514
+ </div>
515
+
516
+ {/* Menu Navigation */}
517
+ <div className="!space-y-4">
518
+ <h3 className="text-lg font-semibold !text-blue-300">
519
+ Menu Navigation
520
+ </h3>
521
+ <div className="!space-y-4">
522
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
523
+ <div className="space-y-2">
524
+ <div className="flex items-center justify-between">
525
+ <span className="text-white">Settings</span>
526
+ <button className="p-1 text-gray-400 hover:text-white">
527
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
528
+ </button>
529
+ </div>
530
+ <div className="flex items-center justify-between">
531
+ <span className="text-white">Profile</span>
532
+ <button className="p-1 text-gray-400 hover:text-white">
533
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
534
+ </button>
535
+ </div>
536
+ <div className="flex items-center justify-between">
537
+ <span className="text-white">Help</span>
538
+ <button className="p-1 text-gray-400 hover:text-white">
539
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
540
+ </button>
541
+ </div>
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="space-y-2">
547
+ <div className="flex items-center justify-between">
548
+ <span className="text-white">Settings</span>
549
+ <button className="p-1 text-gray-400 hover:text-white">
550
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
551
+ </button>
552
+ </div>
553
+ {/* More menu items... */}
554
+ </div>`}
555
+ </pre>
556
+ </div>
557
+ </div>
558
+ </div>
559
+
560
+ {/* Floating Action */}
561
+ <div className="!space-y-4">
562
+ <h3 className="text-lg font-semibold !text-blue-300">
563
+ Floating Action Button
564
+ </h3>
565
+ <div className="!space-y-4">
566
+ <div className="relative h-32 rounded-lg border border-white/10 bg-white/5 p-4">
567
+ <button className="absolute bottom-4 left-4 flex h-12 w-12 items-center justify-center rounded-full bg-blue-500 shadow-lg transition-all hover:bg-blue-600 hover:shadow-xl">
568
+ <ArrowCornerUpLeftIcon className="h-5 w-5 text-white" />
569
+ </button>
570
+ <div className="text-center text-sm text-white/60">
571
+ Hover over the floating button
572
+ </div>
573
+ </div>
574
+ <div className="rounded-lg bg-black/40 p-4">
575
+ <pre className="overflow-x-auto text-sm !text-green-300">
576
+ {`<button className="fixed bottom-4 left-4 flex h-12 w-12 items-center justify-center rounded-full bg-blue-500 shadow-lg transition-all hover:bg-blue-600 hover:shadow-xl">
577
+ <ArrowCornerUpLeftIcon className="h-5 w-5 text-white" />
578
+ </button>`}
579
+ </pre>
580
+ </div>
581
+ </div>
582
+ </div>
583
+ </div>
584
+ </div>
585
+
586
+ {/* Accessibility */}
587
+ <div className="!space-y-8">
588
+ <h2 className="text-center text-3xl font-bold !text-white">
589
+ Accessibility Features
590
+ </h2>
591
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
592
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
593
+ <h3 className="text-lg font-semibold !text-green-300">
594
+ ✅ Built-in Features
595
+ </h3>
596
+ <ul className="!space-y-2 text-sm !text-white/70">
597
+ <li className="!text-white/70">
598
+ Uses Radix UI AccessibleIcon wrapper
599
+ </li>
600
+ <li className="!text-white/70">
601
+ Provides screen reader label "Arrow Corner Up Left icon"
602
+ </li>
603
+ <li className="!text-white/70">
604
+ Supports keyboard navigation when interactive
605
+ </li>
606
+ <li className="!text-white/70">
607
+ Maintains proper color contrast ratios
608
+ </li>
609
+ <li className="!text-white/70">
610
+ Scales with user's font size preferences
611
+ </li>
612
+ </ul>
613
+ </div>
614
+
615
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
616
+ <h3 className="text-lg font-semibold !text-blue-300">
617
+ 💡 Best Practices
618
+ </h3>
619
+ <ul className="!space-y-2 text-sm text-white/70">
620
+ <li className="!text-white/70">
621
+ Always pair with descriptive text or aria-label
622
+ </li>
623
+ <li className="!text-white/70">
624
+ Use consistent positioning for navigation
625
+ </li>
626
+ <li className="!text-white/70">
627
+ Ensure sufficient color contrast
628
+ </li>
629
+ <li className="!text-white/70">
630
+ Add focus states for interactive elements
631
+ </li>
632
+ <li className="!text-white/70">
633
+ Consider motion sensitivity for hover effects
634
+ </li>
635
+ </ul>
636
+ </div>
637
+ </div>
638
+
639
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
640
+ <h3 className="mb-4 text-lg font-semibold !text-purple-300">
641
+ Custom Accessibility Label
642
+ </h3>
643
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
644
+ <div className="rounded-lg bg-black/40 p-4">
645
+ <pre className="overflow-x-auto text-sm !text-blue-300">
646
+ {`// Custom implementation with specific label
647
+ import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
648
+
649
+ function CustomArrowIcon({ label = "Navigate back", ...props }) {
650
+ return (
651
+ <AccessibleIcon label={label}>
652
+ <ArrowCornerUpLeftIcon {...props} />
653
+ </AccessibleIcon>
654
+ )
655
+ }
656
+
657
+ // Usage with specific context
658
+ <CustomArrowIcon
659
+ label="Return to previous page"
660
+ className="h-4 w-4 text-blue-400"
661
+ />`}
662
+ </pre>
663
+ </div>
664
+ <div className="!space-y-4">
665
+ <p className="text-sm !text-white/70">
666
+ For specific contexts, you can wrap the
667
+ ArrowCornerUpLeftIcon with a custom AccessibleIcon
668
+ component that provides more descriptive labels.
669
+ </p>
670
+ <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
671
+ <div className="flex items-center gap-2 text-sm text-blue-200">
672
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
673
+ <span>
674
+ This approach gives screen readers more context
675
+ </span>
676
+ </div>
677
+ </div>
678
+ </div>
679
+ </div>
680
+ </div>
681
+ </div>
682
+
683
+ {/* Related Icons */}
684
+ <div className="!space-y-8">
685
+ <h2 className="text-center text-3xl font-bold !text-white">
686
+ Related Icons
687
+ </h2>
688
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
689
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
690
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
691
+ <span className="text-2xl">↖️</span>
692
+ </div>
693
+ <div>
694
+ <div className="font-medium text-white">
695
+ ArrowUpLeftIcon
696
+ </div>
697
+ <div className="text-xs text-white/60">
698
+ Diagonal navigation
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-indigo-500/20">
704
+ <span className="text-2xl">⬅️</span>
705
+ </div>
706
+ <div>
707
+ <div className="font-medium text-white">
708
+ ArrowLeftIcon
709
+ </div>
710
+ <div className="text-xs text-white/60">
711
+ Horizontal navigation
712
+ </div>
713
+ </div>
714
+ </div>
715
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
716
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
717
+ <span className="text-2xl">⬆️</span>
718
+ </div>
719
+ <div>
720
+ <div className="font-medium text-white">ArrowUpIcon</div>
721
+ <div className="text-xs text-white/60">
722
+ Vertical navigation
723
+ </div>
724
+ </div>
725
+ </div>
726
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
727
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-cyan-500/20">
728
+ <span className="text-2xl">🔄</span>
729
+ </div>
730
+ <div>
731
+ <div className="font-medium text-white">RefreshIcon</div>
732
+ <div className="text-xs text-white/60">
733
+ Reload & refresh
734
+ </div>
735
+ </div>
736
+ </div>
737
+ </div>
738
+ </div>
739
+ </div>
740
+
741
+ {/* Footer */}
742
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
743
+ <div className="!mx-auto max-w-7xl px-6 py-8">
744
+ <div className="!space-y-4 text-center">
745
+ <p className="!text-white/60">
746
+ ArrowCornerUpLeftIcon is part of the Aural UI icon library,
747
+ built with accessibility and consistency in mind.
748
+ </p>
749
+ <p className="text-sm !text-white/40">
750
+ All icons use Radix UI's AccessibleIcon for screen reader
751
+ compatibility and follow WCAG guidelines.
752
+ </p>
753
+ </div>
754
+ </div>
755
+ </div>
756
+ </div>
757
+ </>
758
+ ),
759
+ },
760
+ },
761
+ tags: ["autodocs"],
762
+ argTypes: {
763
+ width: {
764
+ control: { type: "range", min: 8, max: 96, step: 2 },
765
+ description: "Width of the icon in pixels",
766
+ },
767
+ height: {
768
+ control: { type: "range", min: 8, max: 96, step: 2 },
769
+ description: "Height of the icon in pixels",
770
+ },
771
+ stroke: {
772
+ control: "color",
773
+ description: "Stroke color of the icon",
774
+ },
775
+ strokeWidth: {
776
+ control: { type: "range", min: 0.5, max: 4, step: 0.1 },
777
+ description: "Width of the stroke",
778
+ },
779
+ className: {
780
+ control: "text",
781
+ description: "CSS classes for styling",
782
+ },
783
+ },
784
+ }
785
+
786
+ export default meta
787
+ type Story = StoryObj<typeof ArrowCornerUpLeftIcon>
788
+
789
+ // Story parameters for consistent dark theme
790
+ const storyParameters = {
791
+ backgrounds: {
792
+ default: "dark",
793
+ values: [
794
+ { name: "dark", value: "#0a0a0a" },
795
+ { name: "darker", value: "#000000" },
796
+ ],
797
+ },
798
+ }
799
+
800
+ export const Default: Story = {
801
+ args: {
802
+ width: 24,
803
+ height: 24,
804
+ className: "text-blue-400",
805
+ },
806
+ parameters: storyParameters,
807
+ render: (args) => (
808
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
809
+ <ArrowCornerUpLeftIcon {...args} />
810
+ </div>
811
+ ),
812
+ }
813
+
814
+ export const SizeVariations: Story = {
815
+ parameters: {
816
+ ...storyParameters,
817
+ docs: {
818
+ description: {
819
+ story:
820
+ "ArrowCornerUpLeftIcon in different sizes, from small UI elements to large displays.",
821
+ },
822
+ },
823
+ },
824
+ render: () => (
825
+ <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">
826
+ <div className="text-center">
827
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
828
+ <span className="text-xs text-white/60">12px</span>
829
+ </div>
830
+ <div className="text-center">
831
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
832
+ <span className="text-xs text-white/60">16px</span>
833
+ </div>
834
+ <div className="text-center">
835
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
836
+ <span className="text-xs text-white/60">20px</span>
837
+ </div>
838
+ <div className="text-center">
839
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
840
+ <span className="text-xs text-white/60">24px</span>
841
+ </div>
842
+ <div className="text-center">
843
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
844
+ <span className="text-xs text-white/60">32px</span>
845
+ </div>
846
+ <div className="text-center">
847
+ <ArrowCornerUpLeftIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
848
+ <span className="text-xs text-white/60">48px</span>
849
+ </div>
850
+ </div>
851
+ ),
852
+ }
853
+
854
+ export const ColorVariations: Story = {
855
+ parameters: {
856
+ ...storyParameters,
857
+ docs: {
858
+ description: {
859
+ story:
860
+ "ArrowCornerUpLeftIcon in different semantic colors for various navigation contexts.",
861
+ },
862
+ },
863
+ },
864
+ render: () => (
865
+ <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">
866
+ <div className="text-center">
867
+ <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">
868
+ <ArrowCornerUpLeftIcon className="h-8 w-8 text-blue-400" />
869
+ </div>
870
+ <div className="text-sm font-medium text-white">Primary</div>
871
+ <div className="text-xs text-blue-400">text-blue-400</div>
872
+ </div>
873
+ <div className="text-center">
874
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-indigo-500/30 bg-indigo-500/20">
875
+ <ArrowCornerUpLeftIcon className="h-8 w-8 text-indigo-400" />
876
+ </div>
877
+ <div className="text-sm font-medium text-white">Secondary</div>
878
+ <div className="text-xs text-indigo-400">text-indigo-400</div>
879
+ </div>
880
+ <div className="text-center">
881
+ <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">
882
+ <ArrowCornerUpLeftIcon className="h-8 w-8 text-gray-400" />
883
+ </div>
884
+ <div className="text-sm font-medium text-white">Neutral</div>
885
+ <div className="text-xs text-gray-400">text-gray-400</div>
886
+ </div>
887
+ <div className="text-center">
888
+ <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">
889
+ <ArrowCornerUpLeftIcon className="h-8 w-8 text-purple-400" />
890
+ </div>
891
+ <div className="text-sm font-medium text-white">Accent</div>
892
+ <div className="text-xs text-purple-400">text-purple-400</div>
893
+ </div>
894
+ </div>
895
+ ),
896
+ }
897
+
898
+ export const NavigationExamples: Story = {
899
+ parameters: {
900
+ ...storyParameters,
901
+ docs: {
902
+ description: {
903
+ story:
904
+ "Real-world navigation examples showing ArrowCornerUpLeftIcon in different UI contexts.",
905
+ },
906
+ },
907
+ },
908
+ render: () => (
909
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
910
+ {/* Back Navigation */}
911
+ <div className="!space-y-2">
912
+ <h3 className="text-sm font-medium text-white">Back Navigation</h3>
913
+ <div className="flex items-center gap-4">
914
+ <button className="flex items-center gap-2 rounded-lg border border-blue-500/20 bg-blue-500/10 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/20">
915
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
916
+ Back to Dashboard
917
+ </button>
918
+ <button className="flex items-center gap-2 rounded-lg border border-gray-500/20 bg-gray-500/10 px-3 py-2 text-gray-200 transition-colors hover:bg-gray-500/20">
919
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
920
+ Return
921
+ </button>
922
+ </div>
923
+ </div>
924
+
925
+ {/* Breadcrumb Navigation */}
926
+ <div className="!space-y-2">
927
+ <h3 className="text-sm font-medium text-white">
928
+ Breadcrumb Navigation
929
+ </h3>
930
+ <nav className="flex items-center space-x-2 text-sm">
931
+ <button className="flex items-center gap-1 text-blue-400 hover:text-blue-300">
932
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
933
+ <span>Home</span>
934
+ </button>
935
+ <span className="text-gray-500">/</span>
936
+ <button className="flex items-center gap-1 text-blue-400 hover:text-blue-300">
937
+ <ArrowCornerUpLeftIcon className="h-3 w-3" />
938
+ <span>Products</span>
939
+ </button>
940
+ <span className="text-gray-500">/</span>
941
+ <span className="text-white">Current Page</span>
942
+ </nav>
943
+ </div>
944
+
945
+ {/* Menu Navigation */}
946
+ <div className="!space-y-2">
947
+ <h3 className="text-sm font-medium text-white">Menu Navigation</h3>
948
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
949
+ <div className="space-y-2">
950
+ <div className="flex items-center justify-between">
951
+ <span className="text-white">Settings</span>
952
+ <button className="p-1 text-gray-400 hover:text-white">
953
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
954
+ </button>
955
+ </div>
956
+ <div className="flex items-center justify-between">
957
+ <span className="text-white">Profile</span>
958
+ <button className="p-1 text-gray-400 hover:text-white">
959
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
960
+ </button>
961
+ </div>
962
+ <div className="flex items-center justify-between">
963
+ <span className="text-white">Help</span>
964
+ <button className="p-1 text-gray-400 hover:text-white">
965
+ <ArrowCornerUpLeftIcon className="h-4 w-4" />
966
+ </button>
967
+ </div>
968
+ </div>
969
+ </div>
970
+ </div>
971
+
972
+ {/* Floating Action Button */}
973
+ <div className="!space-y-2">
974
+ <h3 className="text-sm font-medium text-white">
975
+ Floating Action Button
976
+ </h3>
977
+ <div className="relative h-32 rounded-lg border border-white/10 bg-white/5 p-4">
978
+ <button className="absolute bottom-4 left-4 flex h-12 w-12 items-center justify-center rounded-full bg-blue-500 shadow-lg transition-all hover:bg-blue-600 hover:shadow-xl">
979
+ <ArrowCornerUpLeftIcon className="h-5 w-5 text-white" />
980
+ </button>
981
+ <div className="text-center text-sm text-white/60">
982
+ Hover over the floating button
983
+ </div>
984
+ </div>
985
+ </div>
986
+ </div>
987
+ ),
988
+ }
989
+
990
+ export const Playground: Story = {
991
+ parameters: {
992
+ ...storyParameters,
993
+ docs: {
994
+ description: {
995
+ story:
996
+ "Interactive playground to experiment with different ArrowCornerUpLeftIcon configurations.",
997
+ },
998
+ },
999
+ },
1000
+ args: {
1001
+ width: 32,
1002
+ height: 32,
1003
+ className: "text-blue-400",
1004
+ strokeWidth: 1.5,
1005
+ },
1006
+ render: (args) => (
1007
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1008
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1009
+ <ArrowCornerUpLeftIcon {...args} />
1010
+ </div>
1011
+ </div>
1012
+ ),
1013
+ }