@archieai/ui 0.1.0 → 0.1.2

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 (105) hide show
  1. package/README.md +552 -54
  2. package/dist/{WhiteboardView-BceDPBkS.js → Search-0-cJubJ1.js} +1701 -1669
  3. package/dist/Search-0-cJubJ1.js.map +1 -0
  4. package/dist/Search-kD7BGyJw.cjs +2 -0
  5. package/dist/Search-kD7BGyJw.cjs.map +1 -0
  6. package/dist/components/atoms/Avatar/Avatar.d.ts +19 -0
  7. package/dist/components/atoms/Avatar/Avatar.d.ts.map +1 -0
  8. package/dist/components/atoms/Avatar/Avatar.styles.d.ts +9 -0
  9. package/dist/components/atoms/Avatar/Avatar.styles.d.ts.map +1 -0
  10. package/dist/components/atoms/StatusIndicator/StatusIndicator.d.ts +8 -0
  11. package/dist/components/atoms/StatusIndicator/StatusIndicator.d.ts.map +1 -0
  12. package/dist/components/atoms/StatusIndicator/StatusIndicator.styles.d.ts +10 -0
  13. package/dist/components/atoms/StatusIndicator/StatusIndicator.styles.d.ts.map +1 -0
  14. package/dist/components/atoms/icons/Search.d.ts +7 -0
  15. package/dist/components/atoms/icons/Search.d.ts.map +1 -0
  16. package/dist/components/atoms/icons/index.d.ts +2 -1
  17. package/dist/components/atoms/icons/index.d.ts.map +1 -1
  18. package/dist/components/atoms/logos/FullLogo.d.ts +8 -0
  19. package/dist/components/atoms/logos/FullLogo.d.ts.map +1 -0
  20. package/dist/components/atoms/logos/LogoA.d.ts +8 -0
  21. package/dist/components/atoms/logos/LogoA.d.ts.map +1 -0
  22. package/dist/components/atoms/logos/SignatureA.d.ts +11 -0
  23. package/dist/components/atoms/logos/SignatureA.d.ts.map +1 -0
  24. package/dist/components/atoms/logos/index.d.ts +7 -0
  25. package/dist/components/atoms/logos/index.d.ts.map +1 -0
  26. package/dist/components/molecules/ArtifactCard/ArtifactCard.d.ts +3 -0
  27. package/dist/components/molecules/ArtifactCard/ArtifactCard.d.ts.map +1 -0
  28. package/dist/components/molecules/ArtifactCard/ArtifactCard.styles.d.ts +36 -0
  29. package/dist/components/molecules/ArtifactCard/ArtifactCard.styles.d.ts.map +1 -0
  30. package/dist/components/molecules/ArtifactCard/ArtifactCard.types.d.ts +26 -0
  31. package/dist/components/molecules/ArtifactCard/ArtifactCard.types.d.ts.map +1 -0
  32. package/dist/components/molecules/ArtifactCard/index.d.ts +3 -0
  33. package/dist/components/molecules/ArtifactCard/index.d.ts.map +1 -0
  34. package/dist/components/molecules/Button/Button.styles.d.ts +1 -1
  35. package/dist/components/molecules/ChatFile/ChatFile.styles.d.ts +4 -4
  36. package/dist/components/molecules/Dropdown/Dropdown.d.ts +41 -0
  37. package/dist/components/molecules/Dropdown/Dropdown.d.ts.map +1 -0
  38. package/dist/components/molecules/Dropdown/Dropdown.styles.d.ts +11 -0
  39. package/dist/components/molecules/Dropdown/Dropdown.styles.d.ts.map +1 -0
  40. package/dist/components/molecules/Input/Input.styles.d.ts +5 -5
  41. package/dist/components/molecules/MessageBubble/MessageBubble.d.ts +24 -0
  42. package/dist/components/molecules/MessageBubble/MessageBubble.d.ts.map +1 -0
  43. package/dist/components/molecules/MessageBubble/MessageBubble.styles.d.ts +16 -0
  44. package/dist/components/molecules/MessageBubble/MessageBubble.styles.d.ts.map +1 -0
  45. package/dist/components/molecules/ProgressBar/ProgressBar.d.ts +37 -0
  46. package/dist/components/molecules/ProgressBar/ProgressBar.d.ts.map +1 -0
  47. package/dist/components/molecules/ProgressBar/ProgressBar.styles.d.ts +10 -0
  48. package/dist/components/molecules/ProgressBar/ProgressBar.styles.d.ts.map +1 -0
  49. package/dist/components/molecules/SidebarItem/SidebarItem.d.ts +17 -0
  50. package/dist/components/molecules/SidebarItem/SidebarItem.d.ts.map +1 -0
  51. package/dist/components/molecules/SidebarItem/SidebarItem.styles.d.ts +13 -0
  52. package/dist/components/molecules/SidebarItem/SidebarItem.styles.d.ts.map +1 -0
  53. package/dist/components/molecules/StatusMessage/StatusMessage.d.ts +7 -0
  54. package/dist/components/molecules/StatusMessage/StatusMessage.d.ts.map +1 -0
  55. package/dist/components/molecules/StatusMessage/StatusMessage.styles.d.ts +8 -0
  56. package/dist/components/molecules/StatusMessage/StatusMessage.styles.d.ts.map +1 -0
  57. package/dist/components/molecules/Timestamp/Timestamp.d.ts +18 -0
  58. package/dist/components/molecules/Timestamp/Timestamp.d.ts.map +1 -0
  59. package/dist/components/molecules/Timestamp/Timestamp.styles.d.ts +8 -0
  60. package/dist/components/molecules/Timestamp/Timestamp.styles.d.ts.map +1 -0
  61. package/dist/components/molecules/Toast/Toast.styles.d.ts +3 -3
  62. package/dist/components/organisms/ChatInput/ChatInput.d.ts +2 -0
  63. package/dist/components/organisms/ChatInput/ChatInput.d.ts.map +1 -1
  64. package/dist/components/organisms/ChatInput/ChatInput.styles.d.ts +3 -1
  65. package/dist/components/organisms/ChatInput/ChatInput.styles.d.ts.map +1 -1
  66. package/dist/components/organisms/ConversationHeader/ConversationHeader.d.ts +27 -0
  67. package/dist/components/organisms/ConversationHeader/ConversationHeader.d.ts.map +1 -0
  68. package/dist/components/organisms/ConversationHeader/ConversationHeader.styles.d.ts +7 -0
  69. package/dist/components/organisms/ConversationHeader/ConversationHeader.styles.d.ts.map +1 -0
  70. package/dist/components/organisms/Modal/Modal.d.ts +6 -0
  71. package/dist/components/organisms/Modal/Modal.d.ts.map +1 -0
  72. package/dist/components/organisms/Modal/Modal.styles.d.ts +17 -0
  73. package/dist/components/organisms/Modal/Modal.styles.d.ts.map +1 -0
  74. package/dist/components/organisms/Modal/Modal.types.d.ts +56 -0
  75. package/dist/components/organisms/Modal/Modal.types.d.ts.map +1 -0
  76. package/dist/components/organisms/Modal/index.d.ts +3 -0
  77. package/dist/components/organisms/Modal/index.d.ts.map +1 -0
  78. package/dist/components/renderers/MarkdownRenderer/MarkdownRenderer.d.ts +22 -0
  79. package/dist/components/renderers/MarkdownRenderer/MarkdownRenderer.d.ts.map +1 -0
  80. package/dist/components/renderers/MarkdownRenderer/MarkdownRenderer.styles.d.ts +5 -0
  81. package/dist/components/renderers/MarkdownRenderer/MarkdownRenderer.styles.d.ts.map +1 -0
  82. package/dist/hooks/useClickOutside.d.ts +5 -0
  83. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  84. package/dist/icons.cjs +1 -1
  85. package/dist/icons.cjs.map +1 -1
  86. package/dist/icons.js +297 -303
  87. package/dist/icons.js.map +1 -1
  88. package/dist/index.cjs +334 -1
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.d.ts +27 -4
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +17265 -1928
  93. package/dist/index.js.map +1 -1
  94. package/dist/logos/Full Logo.svg +14 -0
  95. package/dist/logos/Logo A.svg +4 -0
  96. package/dist/logos/Signature A.svg +4 -0
  97. package/dist/ui.css +1 -1
  98. package/package.json +17 -11
  99. package/dist/WhiteboardView-BWupryzA.cjs +0 -2
  100. package/dist/WhiteboardView-BWupryzA.cjs.map +0 -1
  101. package/dist/WhiteboardView-BceDPBkS.js.map +0 -1
  102. package/dist/components/organisms/Navbar/Navbar.d.ts +0 -15
  103. package/dist/components/organisms/Navbar/Navbar.d.ts.map +0 -1
  104. package/dist/components/organisms/Navbar/Navbar.styles.d.ts +0 -8
  105. package/dist/components/organisms/Navbar/Navbar.styles.d.ts.map +0 -1
package/README.md CHANGED
@@ -3,12 +3,13 @@
3
3
  A comprehensive React component library built with TypeScript, featuring 287+ custom icons and production-ready components.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@archieai/ui.svg)](https://www.npmjs.com/package/@archieai/ui)
6
- [![License](https://img.shields.io/npm/l/@archieai/ui.svg)](https://github.com/archieai/archie-ui)
6
+ [![License](https://img.shields.io/npm/l/@archieai/ui.svg)](https://github.com/heyarchie-ai/Archie-UI)
7
7
 
8
8
  ## ✨ Features
9
9
 
10
10
  - 🎨 **287+ Custom Icons** - Beautiful SVG icons with customizable size and color
11
11
  - 🧩 **Production-Ready Components** - Button, Input, Checkbox, Toast, Tabs, and more
12
+ - 💬 **Chat Components** - MessageBubble, ChatInput, MarkdownRenderer for AI/chat UIs
12
13
  - 🎯 **TypeScript First** - Fully typed components with excellent IntelliSense
13
14
  - 🎨 **Modern Design System** - Built with Tailwind CSS v4 and CSS variables
14
15
  - ♿ **Accessible** - Built with Radix UI primitives following WCAG guidelines
@@ -51,27 +52,21 @@ import '@archieai/ui/styles';
51
52
  ### 2. Start Using Components
52
53
 
53
54
  ```tsx
54
- import { Button, Input, showToast, ToastContainer } from '@archieai/ui';
55
+ import { Button, Input, MessageBubble, MarkdownRenderer } from '@archieai/ui';
55
56
  import { Star, Send } from '@archieai/ui/icons';
56
57
 
57
58
  function App() {
58
- const handleSubmit = () => {
59
- showToast.success('Success!', 'Your changes have been saved.');
60
- };
61
-
62
59
  return (
63
60
  <div>
64
- <Input placeholder="Enter your name" />
61
+ <Input placeholder="Enter your message" />
65
62
 
66
- <Button
67
- variant="primary"
68
- startIcon={<Star size={16} />}
69
- onClick={handleSubmit}
70
- >
63
+ <Button variant="primary" startIcon={<Star size={16} />}>
71
64
  Save
72
65
  </Button>
73
66
 
74
- <ToastContainer />
67
+ <MessageBubble variant="assistant">
68
+ <MarkdownRenderer content="Hello! How can I **help** you today?" />
69
+ </MessageBubble>
75
70
  </div>
76
71
  );
77
72
  }
@@ -79,6 +74,134 @@ function App() {
79
74
 
80
75
  ## 📚 Available Components
81
76
 
77
+ ### Atoms
78
+
79
+ #### Avatar
80
+
81
+ User avatar component with text initials or image support.
82
+
83
+ ```tsx
84
+ import { Avatar } from '@archieai/ui';
85
+
86
+ // Text avatar with initials
87
+ <Avatar type="text" initials="JD" />
88
+
89
+ // Image avatar
90
+ <Avatar type="image" src="/path/to/image.jpg" alt="John Doe" />
91
+
92
+ // Different shapes
93
+ <Avatar type="text" initials="AR" shape="circular" />
94
+ <Avatar type="text" initials="AR" shape="square" />
95
+
96
+ // Different sizes
97
+ <Avatar type="text" initials="AR" size="small" />
98
+ <Avatar type="text" initials="AR" size="big" />
99
+
100
+ // With fallback when image fails to load
101
+ <Avatar
102
+ type="image"
103
+ src="/invalid-image.jpg"
104
+ fallbackInitials="JD"
105
+ />
106
+ ```
107
+
108
+ **Props:**
109
+
110
+ - `type`: `'text'` | `'image'`
111
+ - `shape`: `'circular'` | `'square'`
112
+ - `size`: `'small'` | `'big'`
113
+ - `initials`: String for text avatar
114
+ - `src`: Image URL for image avatar
115
+ - `alt`: Alt text for accessibility
116
+ - `fallbackInitials`: Initials to show when image fails
117
+
118
+ #### StatusIndicator
119
+
120
+ Visual status indicator dot with optional animation.
121
+
122
+ ```tsx
123
+ import { StatusIndicator } from '@archieai/ui';
124
+
125
+ <StatusIndicator variant="success" />
126
+ <StatusIndicator variant="warning" />
127
+ <StatusIndicator variant="error" />
128
+ <StatusIndicator variant="info" />
129
+ <StatusIndicator variant="neutral" />
130
+
131
+ // With animation
132
+ <StatusIndicator variant="success" animated />
133
+
134
+ // Different sizes
135
+ <StatusIndicator variant="info" size="small" />
136
+ <StatusIndicator variant="info" size="medium" />
137
+ <StatusIndicator variant="info" size="large" />
138
+ ```
139
+
140
+ **Props:**
141
+
142
+ - `variant`: `'success'` | `'warning'` | `'error'` | `'info'` | `'neutral'`
143
+ - `size`: `'small'` | `'medium'` | `'large'`
144
+ - `animated`: Boolean for pulsing animation
145
+
146
+ #### Typography
147
+
148
+ Text components with semantic HTML.
149
+
150
+ ```tsx
151
+ import { Typography } from '@archieai/ui';
152
+
153
+ <Typography variant="h1">Heading 1</Typography>
154
+ <Typography variant="h2">Heading 2</Typography>
155
+ <Typography variant="body1">Body text</Typography>
156
+ <Typography variant="caption">Caption text</Typography>
157
+ ```
158
+
159
+ #### Logos
160
+
161
+ Archie brand logos with customizable colors and animations.
162
+
163
+ ```tsx
164
+ import { LogoA, SignatureA, FullLogo } from '@archieai/ui';
165
+
166
+ // Logo A (icon mark)
167
+ <LogoA size={32} colorVariant="lightTeal" />
168
+ <LogoA size={32} colorVariant="darkTeal" />
169
+
170
+ // Animated Signature
171
+ <SignatureA size={40} colorVariant="orange" animated animationDuration={2} />
172
+
173
+ // Full Logo
174
+ <FullLogo width={120} />
175
+ ```
176
+
177
+ #### Icons (287+)
178
+
179
+ All icons are available as React components. Import from the dedicated `/icons` entry point for better tree-shaking:
180
+
181
+ ```tsx
182
+ // Recommended: Import from /icons entry point
183
+ import {
184
+ Home, Settings, User, Mail, Star, Check, X,
185
+ Plus, Minus, Search, Filter, Edit, Trash,
186
+ ArrowLeft, ArrowRight, ChevronDown, ChevronUp,
187
+ Heart, Bell, Calendar, Clock, Download, Upload,
188
+ Clipboard, ThumbsUp, ThumbsDown, FileText
189
+ } from '@archieai/ui/icons';
190
+
191
+ // All icons support size and color props
192
+ <Home size={24} color="#8C92AF" />
193
+ <Settings size={20} color="var(--color-blue-800)" />
194
+ <Star size={16} />
195
+ ```
196
+
197
+ **Icon Props:**
198
+
199
+ - `size`: Number (default: 24)
200
+ - `color`: String (CSS color value)
201
+ - `className`: String for additional styling
202
+
203
+ ---
204
+
82
205
  ### Molecules
83
206
 
84
207
  #### Button
@@ -153,6 +276,271 @@ import { Checkbox } from '@archieai/ui';
153
276
  - `id`: Required for accessibility
154
277
  - All standard checkbox HTML attributes
155
278
 
279
+ #### MessageBubble
280
+
281
+ Chat message bubble component for user, assistant, and system messages.
282
+
283
+ ```tsx
284
+ import { MessageBubble, MarkdownRenderer } from '@archieai/ui';
285
+
286
+ // User message
287
+ <MessageBubble variant="user">
288
+ What is the weather today?
289
+ </MessageBubble>
290
+
291
+ // Assistant message with avatar
292
+ <MessageBubble variant="assistant">
293
+ <MarkdownRenderer content="The weather is **sunny** with a high of 72°F." />
294
+ </MessageBubble>
295
+
296
+ // Initial prompt (centered)
297
+ <MessageBubble variant="user" isInitialPrompt>
298
+ Help me write a poem about nature
299
+ </MessageBubble>
300
+
301
+ // System message
302
+ <MessageBubble variant="system">
303
+ Connected to the assistant
304
+ </MessageBubble>
305
+
306
+ // Loading state
307
+ <MessageBubble variant="loader" />
308
+
309
+ // With action handlers
310
+ <MessageBubble
311
+ variant="assistant"
312
+ onCopy={() => console.log('Copied')}
313
+ onHelpful={() => console.log('Helpful')}
314
+ onUnhelpful={() => console.log('Not helpful')}
315
+ >
316
+ Here's my response...
317
+ </MessageBubble>
318
+
319
+ // Sticky mode (no action controls, adds shadow)
320
+ <MessageBubble variant="assistant" isSticky>
321
+ Pinned message
322
+ </MessageBubble>
323
+ ```
324
+
325
+ **Props:**
326
+
327
+ - `variant`: `'user'` | `'assistant'` | `'system'` | `'loader'`
328
+ - `heading`: Optional heading text (assistant only)
329
+ - `isLoading`: Shows loading animation
330
+ - `showAvatar`: Show Archie logo (defaults to true for assistant)
331
+ - `showTimestamp`: Show timestamp (default: false)
332
+ - `timestamp`: Date or string for timestamp
333
+ - `isSticky`: Sticky mode with shadow
334
+ - `isInitialPrompt`: Center align (user variant only)
335
+ - `alignment`: `'left'` | `'center'` | `'right'`
336
+ - `onCopy`, `onEdit`, `onHelpful`, `onUnhelpful`: Action callbacks
337
+
338
+ #### ChatFile
339
+
340
+ File attachment component with upload progress states.
341
+
342
+ ```tsx
343
+ import { ChatFile, FileStatus } from '@archieai/ui';
344
+
345
+ // Completed file
346
+ <ChatFile filename="document.pdf" status={FileStatus.Done} />
347
+
348
+ // Uploading with progress
349
+ <ChatFile
350
+ filename="report.xlsx"
351
+ status={FileStatus.Uploading}
352
+ progress={45}
353
+ />
354
+
355
+ // Processing
356
+ <ChatFile filename="image.png" status={FileStatus.Processing} progress={80} />
357
+
358
+ // Error state
359
+ <ChatFile filename="failed.doc" status={FileStatus.Error} />
360
+
361
+ // With delete handler
362
+ <ChatFile
363
+ filename="attachment.pdf"
364
+ status={FileStatus.Done}
365
+ onDelete={() => console.log('Delete file')}
366
+ />
367
+ ```
368
+
369
+ **Props:**
370
+
371
+ - `filename`: File name to display
372
+ - `status`: `FileStatus.Uploading` | `FileStatus.Processing` | `FileStatus.Done` | `FileStatus.Error`
373
+ - `progress`: Number (0-100) for upload progress
374
+ - `onDelete`: Callback when delete is clicked
375
+
376
+ #### Dropdown
377
+
378
+ Dropdown menu component with animation support.
379
+
380
+ ```tsx
381
+ import {
382
+ Dropdown,
383
+ DropdownTrigger,
384
+ DropdownContent,
385
+ DropdownItem,
386
+ } from '@archieai/ui';
387
+ import { Button } from '@archieai/ui';
388
+
389
+ <Dropdown>
390
+ <DropdownTrigger>
391
+ <Button>Open Menu</Button>
392
+ </DropdownTrigger>
393
+ <DropdownContent align="start">
394
+ <DropdownItem onClick={() => console.log('Edit')}>Edit</DropdownItem>
395
+ <DropdownItem onClick={() => console.log('Duplicate')}>
396
+ Duplicate
397
+ </DropdownItem>
398
+ <DropdownItem variant="destructive" onClick={() => console.log('Delete')}>
399
+ Delete
400
+ </DropdownItem>
401
+ </DropdownContent>
402
+ </Dropdown>;
403
+
404
+ // Controlled dropdown
405
+ const [isOpen, setIsOpen] = useState(false);
406
+ <Dropdown open={isOpen} onOpenChange={setIsOpen}>
407
+ ...
408
+ </Dropdown>;
409
+ ```
410
+
411
+ **Props:**
412
+
413
+ - `Dropdown`: `defaultOpen`, `open`, `onOpenChange`
414
+ - `DropdownContent`: `align` (`'start'` | `'end'` | `'center'`), `attached`
415
+ - `DropdownItem`: `active`, `variant` (`'default'` | `'destructive'`), `closeOnSelect`
416
+
417
+ #### ProgressBar
418
+
419
+ Progress indicator component with labels and variants.
420
+
421
+ ```tsx
422
+ import { ProgressBar } from '@archieai/ui';
423
+
424
+ // Basic progress
425
+ <ProgressBar value={60} />
426
+
427
+ // With label and value display
428
+ <ProgressBar value={75} max={100} label="Uploading..." showValueLabel />
429
+
430
+ // Different variants
431
+ <ProgressBar value={100} variant="success" />
432
+ <ProgressBar value={30} variant="warning" />
433
+ <ProgressBar value={15} variant="error" />
434
+
435
+ // Different sizes
436
+ <ProgressBar value={50} size="small" />
437
+ <ProgressBar value={50} size="medium" />
438
+ <ProgressBar value={50} size="large" />
439
+
440
+ // Custom value formatter
441
+ <ProgressBar
442
+ value={750}
443
+ max={1000}
444
+ showValueLabel
445
+ valueFormatter={(value, max) => `${value}/${max} items`}
446
+ />
447
+ ```
448
+
449
+ **Props:**
450
+
451
+ - `value`: Current progress value
452
+ - `max`: Maximum value (default: 100)
453
+ - `variant`: `'default'` | `'success'` | `'error'` | `'warning'`
454
+ - `size`: `'small'` | `'medium'` | `'large'`
455
+ - `showValueLabel`: Show percentage/value label
456
+ - `label`: Custom label text
457
+ - `valueFormatter`: Custom value formatting function
458
+
459
+ #### StatusMessage
460
+
461
+ Status message component with icon and indicator.
462
+
463
+ ```tsx
464
+ import { StatusMessage } from '@archieai/ui';
465
+
466
+ <StatusMessage status="success" message="Operation completed successfully" />
467
+ <StatusMessage status="warning" message="Please review your changes" />
468
+ <StatusMessage status="error" message="An error occurred" />
469
+ <StatusMessage status="info" message="Processing your request" />
470
+ <StatusMessage status="loading" message="Loading data..." />
471
+ <StatusMessage status="neutral" message="No updates available" />
472
+ ```
473
+
474
+ **Props:**
475
+
476
+ - `status`: `'success'` | `'warning'` | `'error'` | `'info'` | `'neutral'` | `'loading'`
477
+ - `message`: Message text to display
478
+
479
+ #### SidebarItem
480
+
481
+ Navigation sidebar item component.
482
+
483
+ ```tsx
484
+ import { SidebarItem } from '@archieai/ui';
485
+ import { Home, Settings, User } from '@archieai/ui/icons';
486
+
487
+ // Basic item
488
+ <SidebarItem icon={<Home size={20} />} label="Home" onClick={() => navigate('/')} />
489
+
490
+ // Active state
491
+ <SidebarItem icon={<Settings size={20} />} label="Settings" isActive />
492
+
493
+ // Brand variant
494
+ <SidebarItem icon={<User size={20} />} label="Profile" variant="brand" />
495
+
496
+ // Collapsed mode (icon only)
497
+ <SidebarItem icon={<Home size={20} />} label="Home" isCollapsed />
498
+ ```
499
+
500
+ **Props:**
501
+
502
+ - `icon`: React node for the icon
503
+ - `label`: Label text
504
+ - `isCollapsed`: Collapsed mode (icon only)
505
+ - `isActive`: Active/selected state
506
+ - `variant`: `'default'` | `'brand'`
507
+ - `onClick`: Click handler
508
+
509
+ #### Timestamp
510
+
511
+ Formatted timestamp component with relative time support.
512
+
513
+ ```tsx
514
+ import { Timestamp } from '@archieai/ui';
515
+
516
+ // Relative time (default)
517
+ <Timestamp date={new Date()} /> // "just now"
518
+ <Timestamp date={Date.now() - 3600000} /> // "1 hour ago"
519
+
520
+ // Different formats
521
+ <Timestamp date={new Date()} format="relative" /> // "just now"
522
+ <Timestamp date={new Date()} format="short" /> // "Nov 26, 2024"
523
+ <Timestamp date={new Date()} format="long" /> // "November 26, 2024"
524
+ <Timestamp date={new Date()} format="time" /> // "3:45 PM"
525
+ <Timestamp date={new Date()} format="datetime" /> // "Nov 26, 2024, 3:45 PM"
526
+
527
+ // With icon
528
+ <Timestamp date={new Date()} showIcon />
529
+
530
+ // Different sizes and variants
531
+ <Timestamp date={new Date()} size="small" variant="muted" />
532
+ <Timestamp date={new Date()} size="large" variant="primary" />
533
+ ```
534
+
535
+ **Props:**
536
+
537
+ - `date`: Date object, timestamp number, or ISO string
538
+ - `format`: `'relative'` | `'short'` | `'long'` | `'time'` | `'datetime'`
539
+ - `size`: `'small'` | `'medium'` | `'large'`
540
+ - `variant`: `'default'` | `'primary'` | `'muted'`
541
+ - `showIcon`: Show clock icon
542
+ - `locale`: Locale string (default: 'en-US')
543
+
156
544
  #### Toast
157
545
 
158
546
  Toast notification system with multiple variants.
@@ -271,6 +659,8 @@ import { LoadingSpinner } from '@archieai/ui';
271
659
  <LoadingSpinner size="large" />
272
660
  ```
273
661
 
662
+ ---
663
+
274
664
  ### Organisms
275
665
 
276
666
  #### ChatInput
@@ -290,62 +680,145 @@ import { ChatInput } from '@archieai/ui';
290
680
  />;
291
681
  ```
292
682
 
293
- #### Navbar
683
+ **Props:**
684
+
685
+ - `placeholder`: Input placeholder text
686
+ - `onSend`: Callback with message and files
687
+ - `onFileSelect`: Callback when files are selected
688
+ - All standard textarea HTML attributes
689
+
690
+ #### ConversationHeader
294
691
 
295
- Navigation bar component.
692
+ Header component for chat conversations with breadcrumbs, tags, and collaborators.
296
693
 
297
694
  ```tsx
298
- import { Navbar } from '@archieai/ui';
299
-
300
- <Navbar
301
- logo={<YourLogo />}
302
- items={[
303
- { label: 'Home', href: '/' },
304
- { label: 'About', href: '/about' },
305
- { label: 'Contact', href: '/contact' },
306
- ]}
695
+ import { ConversationHeader } from '@archieai/ui';
696
+ import { Home, MessageSquare } from '@archieai/ui/icons';
697
+
698
+ const breadcrumbs = [
699
+ { label: 'Conversations', icon: <Home size={16} />, onClick: () => {} },
700
+ { label: 'Project Discussion', icon: <MessageSquare size={16} /> },
701
+ ];
702
+
703
+ const tags = [
704
+ { id: '1', label: 'Design' },
705
+ { id: '2', label: 'Urgent' },
706
+ ];
707
+
708
+ const collaborators = [
709
+ { id: '1', name: 'John Doe', src: '/avatar1.jpg' },
710
+ { id: '2', name: 'Jane Smith', src: '/avatar2.jpg' },
711
+ ];
712
+
713
+ <ConversationHeader
714
+ breadcrumbs={breadcrumbs}
715
+ tags={tags}
716
+ collaborators={collaborators}
717
+ onAddTag={() => console.log('Add tag')}
718
+ onAddCollaborator={() => console.log('Add collaborator')}
719
+ tagsOverflowCount={3}
307
720
  />;
308
721
  ```
309
722
 
310
- ### Atoms
723
+ **Props:**
311
724
 
312
- #### Typography
725
+ - `breadcrumbs`: Array of breadcrumb items
726
+ - `tags`: Array of tag objects with `id` and `label`
727
+ - `collaborators`: Array of collaborator objects with `id`, `name`, and optional `src`
728
+ - `onAddTag`: Callback for adding a tag
729
+ - `onAddCollaborator`: Callback for adding a collaborator
730
+ - `tagsOverflowCount`: Number showing additional hidden tags
313
731
 
314
- Text components with semantic HTML.
732
+ ---
733
+
734
+ ### Renderers
735
+
736
+ #### MarkdownRenderer
737
+
738
+ Markdown content renderer with support for headings, lists, code blocks, tables, math (LaTeX), and more.
315
739
 
316
740
  ```tsx
317
- import { Typography } from '@archieai/ui';
741
+ import { MarkdownRenderer } from '@archieai/ui';
318
742
 
319
- <Typography variant="h1">Heading 1</Typography>
320
- <Typography variant="h2">Heading 2</Typography>
321
- <Typography variant="body1">Body text</Typography>
322
- <Typography variant="caption">Caption text</Typography>
323
- ```
743
+ // Basic markdown
744
+ <MarkdownRenderer content="# Hello World\n\nThis is **bold** and *italic* text." />
324
745
 
325
- #### Icons (287+)
746
+ // With code blocks
747
+ <MarkdownRenderer
748
+ content={`
749
+ ## Code Example
326
750
 
327
- All icons are available as React components. Import from the dedicated `/icons` entry point for better tree-shaking:
751
+ \`\`\`javascript
752
+ const greeting = 'Hello, World!';
753
+ console.log(greeting);
754
+ \`\`\`
328
755
 
329
- ```tsx
330
- // Recommended: Import from /icons entry point
331
- import {
332
- Home, Settings, User, Mail, Star, Check, X,
333
- Plus, Minus, Search, Filter, Edit, Trash,
334
- ArrowLeft, ArrowRight, ChevronDown, ChevronUp,
335
- Heart, Bell, Calendar, Clock, Download, Upload
336
- } from '@archieai/ui/icons';
756
+ Inline \`code\` also works!
757
+ `}
758
+ />
337
759
 
338
- // All icons support size and color props
339
- <Home size={24} color="#8C92AF" />
340
- <Settings size={20} color="var(--color-blue-800)" />
341
- <Star size={16} />
760
+ // With tables
761
+ <MarkdownRenderer
762
+ content={`
763
+ | Feature | Status |
764
+ |---------|--------|
765
+ | Tables | ✅ |
766
+ | Lists | ✅ |
767
+ | Code | ✅ |
768
+ `}
769
+ />
770
+
771
+ // With math (LaTeX)
772
+ <MarkdownRenderer
773
+ content={`
774
+ The quadratic formula: $x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}$
775
+
776
+ Block math:
777
+ $$
778
+ \\int_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}
779
+ $$
780
+ `}
781
+ />
782
+
783
+ // Custom renderers
784
+ <MarkdownRenderer
785
+ content="Check `this code` and [this link](https://example.com)"
786
+ renderCodeBlock={(code, language) => (
787
+ <SyntaxHighlighter language={language}>{code}</SyntaxHighlighter>
788
+ )}
789
+ renderLink={(href, text) => (
790
+ <CustomLink href={href}>{text}</CustomLink>
791
+ )}
792
+ />
793
+
794
+ // Size and variant
795
+ <MarkdownRenderer content="# Title" size="small" variant="muted" />
342
796
  ```
343
797
 
344
- **Icon Props:**
798
+ **Props:**
345
799
 
346
- - `size`: Number (default: 24)
347
- - `color`: String (CSS color value)
348
- - `className`: String for additional styling
800
+ - `content`: Markdown string to render
801
+ - `size`: `'small'` | `'medium'` | `'large'`
802
+ - `variant`: `'default'` | `'muted'` | `'primary'`
803
+ - `renderCodeBlock`: Custom code block renderer
804
+ - `renderInlineCode`: Custom inline code renderer
805
+ - `renderMathBlock`: Custom math block renderer (LaTeX)
806
+ - `renderInlineMath`: Custom inline math renderer
807
+ - `renderLink`: Custom link renderer
808
+
809
+ **Supported Markdown Features:**
810
+
811
+ - Headings (H1-H6)
812
+ - Bold, italic, strikethrough
813
+ - Links
814
+ - Inline code and code blocks with language support
815
+ - Ordered and unordered lists
816
+ - Blockquotes
817
+ - Tables with alignment
818
+ - Horizontal rules
819
+ - Math/LaTeX (inline with `$...$`, block with `$$...$$`)
820
+
821
+ ---
349
822
 
350
823
  ## 🎨 Theming
351
824
 
@@ -360,12 +833,25 @@ The library uses CSS custom properties for theming. You can customize colors by
360
833
  --color-blue-400: #6aeafd;
361
834
  --color-blue-200: #d6f4ff;
362
835
 
836
+ /* Orange Colors */
837
+ --color-orange-1000: #e15713;
838
+ --color-orange-800: #ff6f00;
839
+ --color-orange-200: #fff2e2;
840
+
363
841
  /* Neutral Colors */
364
842
  --color-gray-1000: #000626;
365
843
  --color-gray-800: #595f7a;
366
844
  --color-gray-600: #8c92af;
367
845
  --color-gray-200: #e5e7f0;
368
846
  --color-gray-100: #f5f6fa;
847
+ --color-gray-50: #fafafc;
848
+
849
+ /* System Colors */
850
+ --color-red-1000: #fb6060;
851
+ --color-red-200: #ffecec;
852
+ --color-green-1000: #71d481;
853
+ --color-green-200: #e2f7e5;
854
+ --color-amber-1000: #8f6c1a;
369
855
  }
370
856
  ```
371
857
 
@@ -381,6 +867,17 @@ import type {
381
867
  ToastProps,
382
868
  TabsProps,
383
869
  BreadcrumbsProps,
870
+ MessageBubbleProps,
871
+ ChatFileProps,
872
+ DropdownProps,
873
+ ProgressBarProps,
874
+ StatusMessageProps,
875
+ SidebarItemProps,
876
+ TimestampProps,
877
+ AvatarProps,
878
+ StatusIndicatorProps,
879
+ ConversationHeaderProps,
880
+ MarkdownRendererProps,
384
881
  } from '@archieai/ui';
385
882
 
386
883
  // Use types in your components
@@ -403,6 +900,7 @@ const MyButton: React.FC<ButtonProps> = (props) => {
403
900
  - **Tailwind CSS v4** - Utility-first styling
404
901
  - **Framer Motion** - Animations
405
902
  - **Radix UI** - Accessible primitives
903
+ - **KaTeX** - Math/LaTeX rendering
406
904
  - **Class Variance Authority** - Variant management
407
905
  - **Vite** - Build tool
408
906
 
@@ -417,7 +915,7 @@ The library is optimized for minimal bundle size:
417
915
 
418
916
  ```tsx
419
917
  // Import only what you need
420
- import { Button, Input } from '@archieai/ui'; // Main components
918
+ import { Button, Input, MessageBubble } from '@archieai/ui'; // Main components
421
919
  import { Home, Star } from '@archieai/ui/icons'; // Icons separately
422
920
  import '@archieai/ui/styles'; // Styles
423
921
  ```
@@ -456,7 +954,7 @@ pnpm build:lib
456
954
  # - dist/icons.js (Icons ESM)
457
955
  # - dist/icons.cjs (Icons CommonJS)
458
956
  # - dist/styles.js (Styles entry point)
459
- # - dist/archie-ui-components.css (Compiled CSS)
957
+ # - dist/ui.css (Compiled CSS)
460
958
  ```
461
959
 
462
960
  ## 📄 License
@@ -481,7 +979,7 @@ This package is maintained by the Archie AI team. For internal contributors:
481
979
  For issues and questions:
482
980
 
483
981
  - Internal team: Contact the Archie AI development team
484
- - GitHub Issues: [https://github.com/archieai/archie-ui/issues](https://github.com/archieai/archie-ui/issues)
982
+ - GitHub Issues: [https://github.com/heyarchie-ai/Archie-UI/issues](https://github.com/heyarchie-ai/Archie-UI/issues)
485
983
 
486
984
  ## 📚 Additional Resources
487
985