@xyd-js/storybook 0.0.0-build

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 (63) hide show
  1. package/.storybook/main.ts +40 -0
  2. package/.storybook/manager-head.html +6 -0
  3. package/.storybook/manager.ts +18 -0
  4. package/.storybook/preview.ts +40 -0
  5. package/.storybook/styles.css +5 -0
  6. package/.storybook/theme.ts +34 -0
  7. package/CHANGELOG.md +16 -0
  8. package/LICENSE +21 -0
  9. package/README.md +50 -0
  10. package/eslint.config.js +28 -0
  11. package/package.json +61 -0
  12. package/public/logo.svg +10 -0
  13. package/src/__fixtures__/Icons.tsx +83 -0
  14. package/src/__fixtures__/atlas-index/package-index.mdx +194 -0
  15. package/src/__fixtures__/atlas-index/wip1.mdx +131 -0
  16. package/src/__fixtures__/atlas-index.mdx +53 -0
  17. package/src/__fixtures__/code-sample.mdx +15 -0
  18. package/src/__fixtures__/example-source-uniform.ts +41 -0
  19. package/src/__fixtures__/hello-world.mdx +116 -0
  20. package/src/components/DemoDocs.tsx +235 -0
  21. package/src/components/logo.tsx +37 -0
  22. package/src/decorators/DocsTemplate.tsx +101 -0
  23. package/src/docs/atlas/Atlas.stories.tsx +51 -0
  24. package/src/docs/atlas/todo-app.uniform.json +625 -0
  25. package/src/docs/atlas/uniform-to-references.ts +101 -0
  26. package/src/docs/components/coder/CodeSample.stories.tsx +29 -0
  27. package/src/docs/components/pages/PageBlogHome.stories.tsx +52 -0
  28. package/src/docs/components/pages/PageFirstSlide.stories.tsx +124 -0
  29. package/src/docs/components/pages/PageHome.stories.tsx +127 -0
  30. package/src/docs/components/system/Baseline.stories.tsx +126 -0
  31. package/src/docs/components/writer/Badge.stories.tsx +132 -0
  32. package/src/docs/components/writer/Banner.stories.tsx +394 -0
  33. package/src/docs/components/writer/Blockquote.stories.tsx +415 -0
  34. package/src/docs/components/writer/Breadcrumbs.stories.tsx +282 -0
  35. package/src/docs/components/writer/Button.stories.tsx +405 -0
  36. package/src/docs/components/writer/Callout.stories.tsx +183 -0
  37. package/src/docs/components/writer/Card.stories.tsx +457 -0
  38. package/src/docs/components/writer/ColorSchemeButton.stories.tsx +322 -0
  39. package/src/docs/components/writer/Details.stories.tsx +333 -0
  40. package/src/docs/components/writer/GuideCard.stories.tsx +384 -0
  41. package/src/docs/components/writer/Heading.stories.tsx +379 -0
  42. package/src/docs/components/writer/Hr.stories.tsx +325 -0
  43. package/src/docs/components/writer/IconSocial.stories.tsx +591 -0
  44. package/src/docs/components/writer/Image.stories.tsx +430 -0
  45. package/src/docs/components/writer/List.stories.tsx +479 -0
  46. package/src/docs/components/writer/NavLinks.stories.tsx +380 -0
  47. package/src/docs/components/writer/Pre.stories.tsx +23 -0
  48. package/src/docs/components/writer/Steps.stories.tsx +914 -0
  49. package/src/docs/components/writer/Table.stories.tsx +608 -0
  50. package/src/docs/components/writer/Tabs.stories.tsx +760 -0
  51. package/src/docs/components/writer/TocCard.stories.tsx +407 -0
  52. package/src/docs/components/writer/Update.stories.tsx +457 -0
  53. package/src/docs/components/writer/VideoGuide.stories.tsx +17 -0
  54. package/src/docs/templates/CodeSample.stories.tsx +15 -0
  55. package/src/docs/themes/TODO.md +1 -0
  56. package/src/docs/themes/logo.tsx +37 -0
  57. package/src/docs/themes/themes.stories.tsx +269 -0
  58. package/src/docs/ui/Nav.stories.tsx +58 -0
  59. package/src/docs/ui/Sidebar.stories.tsx +167 -0
  60. package/src/docs/ui/SubNav.stories.tsx +29 -0
  61. package/src/utils/mdx.ts +31 -0
  62. package/tsconfig.json +39 -0
  63. package/vite.config.ts +8 -0
@@ -0,0 +1,591 @@
1
+ import React from 'react';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+
4
+ import { IconSocial } from '@xyd-js/components/writer';
5
+
6
+ const meta: Meta<typeof IconSocial> = {
7
+ title: 'Components/Writer/IconSocial',
8
+ component: IconSocial,
9
+ parameters: {
10
+ docs: {
11
+ description: {
12
+ component: 'IconSocial component provides social media icons for various platforms. Each icon is optimized for consistent styling and accessibility.',
13
+ },
14
+ },
15
+ },
16
+ argTypes: {
17
+ kind: {
18
+ description: 'The social media platform for the icon',
19
+ control: { type: 'select' },
20
+ options: [
21
+ 'x', 'facebook', 'youtube', 'discord', 'slack', 'github',
22
+ 'linkedin', 'instagram', 'hackernews', 'medium', 'telegram',
23
+ 'bluesky', 'reddit'
24
+ ],
25
+ },
26
+ width: {
27
+ description: 'Width of the icon',
28
+ control: 'number',
29
+ },
30
+ height: {
31
+ description: 'Height of the icon',
32
+ control: 'number',
33
+ },
34
+ style: {
35
+ description: 'Additional CSS styles',
36
+ control: 'object',
37
+ },
38
+ },
39
+ };
40
+
41
+ export default meta;
42
+ type Story = StoryObj<typeof IconSocial>;
43
+
44
+ // Individual social icons
45
+ export const Twitter: Story = {
46
+ args: {
47
+ kind: 'x',
48
+ },
49
+ render: (args) => (
50
+ <div style={{ padding: '20px' }}>
51
+ <IconSocial {...args} />
52
+ </div>
53
+ ),
54
+ };
55
+
56
+ export const Facebook: Story = {
57
+ args: {
58
+ kind: 'facebook',
59
+ },
60
+ render: (args) => (
61
+ <div style={{ padding: '20px' }}>
62
+ <IconSocial {...args} />
63
+ </div>
64
+ ),
65
+ };
66
+
67
+ export const YouTube: Story = {
68
+ args: {
69
+ kind: 'youtube',
70
+ },
71
+ render: (args) => (
72
+ <div style={{ padding: '20px' }}>
73
+ <IconSocial {...args} />
74
+ </div>
75
+ ),
76
+ };
77
+
78
+ export const Discord: Story = {
79
+ args: {
80
+ kind: 'discord',
81
+ },
82
+ render: (args) => (
83
+ <div style={{ padding: '20px' }}>
84
+ <IconSocial {...args} />
85
+ </div>
86
+ ),
87
+ };
88
+
89
+ export const Slack: Story = {
90
+ args: {
91
+ kind: 'slack',
92
+ },
93
+ render: (args) => (
94
+ <div style={{ padding: '20px' }}>
95
+ <IconSocial {...args} />
96
+ </div>
97
+ ),
98
+ };
99
+
100
+ export const GitHub: Story = {
101
+ args: {
102
+ kind: 'github',
103
+ },
104
+ render: (args) => (
105
+ <div style={{ padding: '20px' }}>
106
+ <IconSocial {...args} />
107
+ </div>
108
+ ),
109
+ };
110
+
111
+ export const LinkedIn: Story = {
112
+ args: {
113
+ kind: 'linkedin',
114
+ },
115
+ render: (args) => (
116
+ <div style={{ padding: '20px' }}>
117
+ <IconSocial {...args} />
118
+ </div>
119
+ ),
120
+ };
121
+
122
+ export const Instagram: Story = {
123
+ args: {
124
+ kind: 'instagram',
125
+ },
126
+ render: (args) => (
127
+ <div style={{ padding: '20px' }}>
128
+ <IconSocial {...args} />
129
+ </div>
130
+ ),
131
+ };
132
+
133
+ export const HackerNews: Story = {
134
+ args: {
135
+ kind: 'hackernews',
136
+ },
137
+ render: (args) => (
138
+ <div style={{ padding: '20px' }}>
139
+ <IconSocial {...args} />
140
+ </div>
141
+ ),
142
+ };
143
+
144
+ export const Medium: Story = {
145
+ args: {
146
+ kind: 'medium',
147
+ },
148
+ render: (args) => (
149
+ <div style={{ padding: '20px' }}>
150
+ <IconSocial {...args} />
151
+ </div>
152
+ ),
153
+ };
154
+
155
+ export const Telegram: Story = {
156
+ args: {
157
+ kind: 'telegram',
158
+ },
159
+ render: (args) => (
160
+ <div style={{ padding: '20px' }}>
161
+ <IconSocial {...args} />
162
+ </div>
163
+ ),
164
+ };
165
+
166
+ export const Bluesky: Story = {
167
+ args: {
168
+ kind: 'bluesky',
169
+ },
170
+ render: (args) => (
171
+ <div style={{ padding: '20px' }}>
172
+ <IconSocial {...args} />
173
+ </div>
174
+ ),
175
+ };
176
+
177
+ export const Reddit: Story = {
178
+ args: {
179
+ kind: 'reddit',
180
+ },
181
+ render: (args) => (
182
+ <div style={{ padding: '20px' }}>
183
+ <IconSocial {...args} />
184
+ </div>
185
+ ),
186
+ };
187
+
188
+ // All social icons
189
+ export const AllSocialIcons: Story = {
190
+ render: () => (
191
+ <div style={{ padding: '20px' }}>
192
+ <div style={{
193
+ display: 'grid',
194
+ gridTemplateColumns: 'repeat(auto-fit, minmax(120px, 1fr))',
195
+ gap: '20px',
196
+ maxWidth: '800px'
197
+ }}>
198
+ <div style={{ textAlign: 'center' }}>
199
+ <IconSocial kind="x" />
200
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Twitter/X</div>
201
+ </div>
202
+ <div style={{ textAlign: 'center' }}>
203
+ <IconSocial kind="facebook" />
204
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Facebook</div>
205
+ </div>
206
+ <div style={{ textAlign: 'center' }}>
207
+ <IconSocial kind="youtube" />
208
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>YouTube</div>
209
+ </div>
210
+ <div style={{ textAlign: 'center' }}>
211
+ <IconSocial kind="discord" />
212
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Discord</div>
213
+ </div>
214
+ <div style={{ textAlign: 'center' }}>
215
+ <IconSocial kind="slack" />
216
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Slack</div>
217
+ </div>
218
+ <div style={{ textAlign: 'center' }}>
219
+ <IconSocial kind="github" />
220
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>GitHub</div>
221
+ </div>
222
+ <div style={{ textAlign: 'center' }}>
223
+ <IconSocial kind="linkedin" />
224
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>LinkedIn</div>
225
+ </div>
226
+ <div style={{ textAlign: 'center' }}>
227
+ <IconSocial kind="instagram" />
228
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Instagram</div>
229
+ </div>
230
+ <div style={{ textAlign: 'center' }}>
231
+ <IconSocial kind="hackernews" />
232
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Hacker News</div>
233
+ </div>
234
+ <div style={{ textAlign: 'center' }}>
235
+ <IconSocial kind="medium" />
236
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Medium</div>
237
+ </div>
238
+ <div style={{ textAlign: 'center' }}>
239
+ <IconSocial kind="telegram" />
240
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Telegram</div>
241
+ </div>
242
+ <div style={{ textAlign: 'center' }}>
243
+ <IconSocial kind="bluesky" />
244
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Bluesky</div>
245
+ </div>
246
+ <div style={{ textAlign: 'center' }}>
247
+ <IconSocial kind="reddit" />
248
+ <div style={{ marginTop: '8px', fontSize: '12px' }}>Reddit</div>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ ),
253
+ };
254
+
255
+ // Different sizes
256
+ export const DifferentSizes: Story = {
257
+ render: () => (
258
+ <div style={{ padding: '20px' }}>
259
+ <div style={{ marginBottom: '30px' }}>
260
+ <h3 style={{ marginBottom: '10px', color: '#666' }}>Small Icons (16px)</h3>
261
+ <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
262
+ <IconSocial kind="github" width={16} height={16} />
263
+ <IconSocial kind="x" width={16} height={16} />
264
+ <IconSocial kind="linkedin" width={16} height={16} />
265
+ <IconSocial kind="discord" width={16} height={16} />
266
+ </div>
267
+ </div>
268
+
269
+ <div style={{ marginBottom: '30px' }}>
270
+ <h3 style={{ marginBottom: '10px', color: '#666' }}>Medium Icons (24px)</h3>
271
+ <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
272
+ <IconSocial kind="github" width={24} height={24} />
273
+ <IconSocial kind="x" width={24} height={24} />
274
+ <IconSocial kind="linkedin" width={24} height={24} />
275
+ <IconSocial kind="discord" width={24} height={24} />
276
+ </div>
277
+ </div>
278
+
279
+ <div style={{ marginBottom: '30px' }}>
280
+ <h3 style={{ marginBottom: '10px', color: '#666' }}>Large Icons (32px)</h3>
281
+ <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
282
+ <IconSocial kind="github" width={32} height={32} />
283
+ <IconSocial kind="x" width={32} height={32} />
284
+ <IconSocial kind="linkedin" width={32} height={32} />
285
+ <IconSocial kind="discord" width={32} height={32} />
286
+ </div>
287
+ </div>
288
+
289
+ <div style={{ marginBottom: '30px' }}>
290
+ <h3 style={{ marginBottom: '10px', color: '#666' }}>Extra Large Icons (48px)</h3>
291
+ <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
292
+ <IconSocial kind="github" width={48} height={48} />
293
+ <IconSocial kind="x" width={48} height={48} />
294
+ <IconSocial kind="linkedin" width={48} height={48} />
295
+ <IconSocial kind="discord" width={48} height={48} />
296
+ </div>
297
+ </div>
298
+ </div>
299
+ ),
300
+ };
301
+
302
+ // Social media links
303
+ export const SocialMediaLinks: Story = {
304
+ render: () => (
305
+ <div style={{ padding: '20px' }}>
306
+ <div style={{ marginBottom: '30px' }}>
307
+ <h3 style={{ marginBottom: '10px', color: '#666' }}>Footer Social Links</h3>
308
+ <div style={{
309
+ background: 'var(--xyd-bgcolor)',
310
+ border: '1px solid var(--xyd-border-color)',
311
+ borderRadius: '8px',
312
+ padding: '20px'
313
+ }}>
314
+ <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
315
+ <span>© 2024 Documentation</span>
316
+ <div style={{ display: 'flex', gap: '12px' }}>
317
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
318
+ <IconSocial kind="github" />
319
+ </a>
320
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
321
+ <IconSocial kind="x" />
322
+ </a>
323
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
324
+ <IconSocial kind="discord" />
325
+ </a>
326
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
327
+ <IconSocial kind="linkedin" />
328
+ </a>
329
+ </div>
330
+ </div>
331
+ </div>
332
+ </div>
333
+
334
+ <div style={{ marginBottom: '30px' }}>
335
+ <h3 style={{ marginBottom: '10px', color: '#666' }}>Share Buttons</h3>
336
+ <div style={{
337
+ background: 'var(--xyd-bgcolor)',
338
+ border: '1px solid var(--xyd-border-color)',
339
+ borderRadius: '8px',
340
+ padding: '20px'
341
+ }}>
342
+ <h4 style={{ marginBottom: '16px' }}>Share this page</h4>
343
+ <div style={{ display: 'flex', gap: '12px' }}>
344
+ <button style={{
345
+ background: 'none',
346
+ border: 'none',
347
+ cursor: 'pointer',
348
+ padding: '8px',
349
+ borderRadius: '4px',
350
+ color: 'var(--xyd-text-color)'
351
+ }}>
352
+ <IconSocial kind="x" />
353
+ </button>
354
+ <button style={{
355
+ background: 'none',
356
+ border: 'none',
357
+ cursor: 'pointer',
358
+ padding: '8px',
359
+ borderRadius: '4px',
360
+ color: 'var(--xyd-text-color)'
361
+ }}>
362
+ <IconSocial kind="facebook" />
363
+ </button>
364
+ <button style={{
365
+ background: 'none',
366
+ border: 'none',
367
+ cursor: 'pointer',
368
+ padding: '8px',
369
+ borderRadius: '4px',
370
+ color: 'var(--xyd-text-color)'
371
+ }}>
372
+ <IconSocial kind="linkedin" />
373
+ </button>
374
+ <button style={{
375
+ background: 'none',
376
+ border: 'none',
377
+ cursor: 'pointer',
378
+ padding: '8px',
379
+ borderRadius: '4px',
380
+ color: 'var(--xyd-text-color)'
381
+ }}>
382
+ <IconSocial kind="reddit" />
383
+ </button>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ </div>
388
+ ),
389
+ };
390
+
391
+ // Real-world examples
392
+ export const RealWorldExamples: Story = {
393
+ render: () => (
394
+ <div style={{ padding: '20px', maxWidth: '800px' }}>
395
+ <div style={{ marginBottom: '40px' }}>
396
+ <h2>Documentation Footer</h2>
397
+ <p>Social media icons are commonly used in documentation site footers.</p>
398
+ <div style={{
399
+ background: 'var(--xyd-bgcolor)',
400
+ border: '1px solid var(--xyd-border-color)',
401
+ borderRadius: '8px',
402
+ padding: '20px'
403
+ }}>
404
+ <div style={{
405
+ display: 'flex',
406
+ justifyContent: 'space-between',
407
+ alignItems: 'center',
408
+ flexWrap: 'wrap',
409
+ gap: '16px'
410
+ }}>
411
+ <div>
412
+ <div style={{ fontWeight: 'bold', marginBottom: '4px' }}>Documentation</div>
413
+ <div style={{ fontSize: '14px', color: 'var(--xyd-text-color-secondary)' }}>
414
+ Built with ❤️ by the community
415
+ </div>
416
+ </div>
417
+ <div style={{ display: 'flex', gap: '12px' }}>
418
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
419
+ <IconSocial kind="github" />
420
+ </a>
421
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
422
+ <IconSocial kind="discord" />
423
+ </a>
424
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
425
+ <IconSocial kind="x" />
426
+ </a>
427
+ <a href="#" style={{ color: 'var(--xyd-text-color)' }}>
428
+ <IconSocial kind="youtube" />
429
+ </a>
430
+ </div>
431
+ </div>
432
+ </div>
433
+ </div>
434
+
435
+ <div style={{ marginBottom: '40px' }}>
436
+ <h2>Community Links</h2>
437
+ <p>Social icons for community engagement and support.</p>
438
+ <div style={{
439
+ background: 'var(--xyd-bgcolor)',
440
+ border: '1px solid var(--xyd-border-color)',
441
+ borderRadius: '8px',
442
+ padding: '20px'
443
+ }}>
444
+ <h3 style={{ marginBottom: '16px' }}>Join Our Community</h3>
445
+ <div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }}>
446
+ <a href="#" style={{
447
+ display: 'flex',
448
+ alignItems: 'center',
449
+ gap: '8px',
450
+ color: 'var(--xyd-text-color)',
451
+ textDecoration: 'none',
452
+ padding: '8px',
453
+ borderRadius: '4px',
454
+ border: '1px solid var(--xyd-border-color)'
455
+ }}>
456
+ <IconSocial kind="discord" />
457
+ <span>Discord</span>
458
+ </a>
459
+ <a href="#" style={{
460
+ display: 'flex',
461
+ alignItems: 'center',
462
+ gap: '8px',
463
+ color: 'var(--xyd-text-color)',
464
+ textDecoration: 'none',
465
+ padding: '8px',
466
+ borderRadius: '4px',
467
+ border: '1px solid var(--xyd-border-color)'
468
+ }}>
469
+ <IconSocial kind="slack" />
470
+ <span>Slack</span>
471
+ </a>
472
+ <a href="#" style={{
473
+ display: 'flex',
474
+ alignItems: 'center',
475
+ gap: '8px',
476
+ color: 'var(--xyd-text-color)',
477
+ textDecoration: 'none',
478
+ padding: '8px',
479
+ borderRadius: '4px',
480
+ border: '1px solid var(--xyd-border-color)'
481
+ }}>
482
+ <IconSocial kind="github" />
483
+ <span>GitHub</span>
484
+ </a>
485
+ </div>
486
+ </div>
487
+ </div>
488
+
489
+ <div style={{ marginBottom: '40px' }}>
490
+ <h2>Social Media Feed</h2>
491
+ <p>Social icons in a content feed or news section.</p>
492
+ <div style={{
493
+ background: 'var(--xyd-bgcolor)',
494
+ border: '1px solid var(--xyd-border-color)',
495
+ borderRadius: '8px',
496
+ padding: '20px'
497
+ }}>
498
+ <h3 style={{ marginBottom: '16px' }}>Latest Updates</h3>
499
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>
500
+ <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
501
+ <IconSocial kind="x" />
502
+ <div>
503
+ <div style={{ fontWeight: 'bold' }}>New feature released!</div>
504
+ <div style={{ fontSize: '14px', color: 'var(--xyd-text-color-secondary)' }}>
505
+ Check out our latest updates on Twitter
506
+ </div>
507
+ </div>
508
+ </div>
509
+ <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
510
+ <IconSocial kind="youtube" />
511
+ <div>
512
+ <div style={{ fontWeight: 'bold' }}>Video tutorial available</div>
513
+ <div style={{ fontSize: '14px', color: 'var(--xyd-text-color-secondary)' }}>
514
+ Watch our latest tutorial on YouTube
515
+ </div>
516
+ </div>
517
+ </div>
518
+ <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
519
+ <IconSocial kind="medium" />
520
+ <div>
521
+ <div style={{ fontWeight: 'bold' }}>Blog post published</div>
522
+ <div style={{ fontSize: '14px', color: 'var(--xyd-text-color-secondary)' }}>
523
+ Read our latest insights on Medium
524
+ </div>
525
+ </div>
526
+ </div>
527
+ </div>
528
+ </div>
529
+ </div>
530
+ </div>
531
+ ),
532
+ parameters: {
533
+ docs: {
534
+ description: {
535
+ story: 'This example shows how social media icons are typically used in real applications.',
536
+ },
537
+ },
538
+ },
539
+ };
540
+
541
+ // Interactive example
542
+ export const Interactive: Story = {
543
+ args: {
544
+ kind: 'github',
545
+ },
546
+ render: (args) => (
547
+ <div style={{ padding: '20px' }}>
548
+ <div style={{
549
+ background: 'var(--xyd-bgcolor)',
550
+ border: '1px solid var(--xyd-border-color)',
551
+ borderRadius: '8px',
552
+ padding: '20px',
553
+ marginBottom: '20px'
554
+ }}>
555
+ <h3 style={{ marginBottom: '16px' }}>Social Icon Demo</h3>
556
+ <p style={{ marginBottom: '16px', color: 'var(--xyd-text-color)' }}>
557
+ This example demonstrates the IconSocial component with different platforms and sizes.
558
+ </p>
559
+ <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
560
+ <IconSocial {...args} />
561
+ <IconSocial kind="x" />
562
+ <IconSocial kind="linkedin" />
563
+ <IconSocial kind="discord" />
564
+ </div>
565
+ </div>
566
+
567
+ <div style={{
568
+ background: 'var(--xyd-bgcolor)',
569
+ border: '1px solid var(--xyd-border-color)',
570
+ borderRadius: '8px',
571
+ padding: '20px'
572
+ }}>
573
+ <h4 style={{ marginBottom: '12px' }}>Features</h4>
574
+ <ul style={{ color: 'var(--xyd-text-color)' }}>
575
+ <li>Consistent styling across all platforms</li>
576
+ <li>Scalable vector graphics</li>
577
+ <li>Accessible design</li>
578
+ <li>Theme-aware colors</li>
579
+ <li>Customizable size and styling</li>
580
+ </ul>
581
+ </div>
582
+ </div>
583
+ ),
584
+ parameters: {
585
+ docs: {
586
+ description: {
587
+ story: 'This interactive example demonstrates the IconSocial component functionality and styling.',
588
+ },
589
+ },
590
+ },
591
+ };