@flikk/ui 1.0.0-beta.2 → 1.0.0-beta.21

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 (865) hide show
  1. package/README.md +52 -0
  2. package/dist/bg/1.jpg +0 -0
  3. package/dist/bg/10.jpg +0 -0
  4. package/dist/bg/11.jpg +0 -0
  5. package/dist/bg/14.jpg +0 -0
  6. package/dist/bg/15.jpg +0 -0
  7. package/dist/bg/16.jpg +0 -0
  8. package/dist/bg/17.jpg +0 -0
  9. package/dist/bg/18.jpg +0 -0
  10. package/dist/bg/19.jpg +0 -0
  11. package/dist/bg/2.jpg +0 -0
  12. package/dist/bg/20.jpg +0 -0
  13. package/dist/bg/21.jpg +0 -0
  14. package/dist/bg/22.jpg +0 -0
  15. package/dist/bg/23.jpg +0 -0
  16. package/dist/bg/24.jpg +0 -0
  17. package/dist/bg/3.jpg +0 -0
  18. package/dist/bg/4.jpg +0 -0
  19. package/dist/bg/5.jpg +0 -0
  20. package/dist/bg/6.jpg +0 -0
  21. package/dist/bg/7.jpg +0 -0
  22. package/dist/bg/8.jpg +0 -0
  23. package/dist/bg/9.jpg +0 -0
  24. package/dist/bg/bg/1.jpg +0 -0
  25. package/dist/bg/bg/10.jpg +0 -0
  26. package/dist/bg/bg/11.jpg +0 -0
  27. package/dist/bg/bg/14.jpg +0 -0
  28. package/dist/bg/bg/15.jpg +0 -0
  29. package/dist/bg/bg/16.jpg +0 -0
  30. package/dist/bg/bg/17.jpg +0 -0
  31. package/dist/bg/bg/18.jpg +0 -0
  32. package/dist/bg/bg/19.jpg +0 -0
  33. package/dist/bg/bg/2.jpg +0 -0
  34. package/dist/bg/bg/20.jpg +0 -0
  35. package/dist/bg/bg/21.jpg +0 -0
  36. package/dist/bg/bg/22.jpg +0 -0
  37. package/dist/bg/bg/23.jpg +0 -0
  38. package/dist/bg/bg/24.jpg +0 -0
  39. package/dist/bg/bg/3.jpg +0 -0
  40. package/dist/bg/bg/4.jpg +0 -0
  41. package/dist/bg/bg/5.jpg +0 -0
  42. package/dist/bg/bg/6.jpg +0 -0
  43. package/dist/bg/bg/7.jpg +0 -0
  44. package/dist/bg/bg/8.jpg +0 -0
  45. package/dist/bg/bg/9.jpg +0 -0
  46. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +3 -3
  47. package/dist/components/ai/PromptInput/PromptInput.animations.d.ts +25 -0
  48. package/dist/components/ai/PromptInput/PromptInput.animations.js +61 -0
  49. package/dist/components/ai/PromptInput/PromptInput.js +146 -29
  50. package/dist/components/ai/PromptInput/PromptInput.theme.js +6 -1
  51. package/dist/components/ai/PromptInput/PromptInput.types.d.ts +68 -0
  52. package/dist/components/ai/PromptInput/VoiceRecorder.d.ts +10 -0
  53. package/dist/components/ai/PromptInput/VoiceRecorder.js +181 -0
  54. package/dist/components/ai/PromptInput/VoiceRecorder.types.d.ts +17 -0
  55. package/dist/components/ai/PromptInput/index.d.ts +1 -0
  56. package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.js +4 -4
  57. package/dist/components/ai/StreamingResponse/AnimatedText.js +3 -3
  58. package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -2
  59. package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +59 -35
  60. package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +4 -5
  61. package/dist/components/ai/StreamingResponse/StreamingCursor.js +5 -12
  62. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +7 -0
  63. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +27 -8
  64. package/dist/components/ai/StreamingResponse/StreamingResponse.js +11 -4
  65. package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +4 -4
  66. package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +9 -7
  67. package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +27 -0
  68. package/dist/components/ai/StreamingResponse/WordAnimationContext.js +134 -0
  69. package/dist/components/ai/StreamingResponse/index.d.ts +3 -1
  70. package/dist/components/ai/TokenCounter/TokenCounter.theme.js +6 -6
  71. package/dist/components/ai/index.d.ts +0 -7
  72. package/dist/components/ai/index.js +10 -6
  73. package/dist/components/charts/ActivityRings/ActivityRings.js +1 -1
  74. package/dist/components/charts/ActivityRings/ActivityRings.theme.js +2 -2
  75. package/dist/components/charts/BarChart/BarChart.js +3 -3
  76. package/dist/components/charts/ChartContainer.js +1 -1
  77. package/dist/components/charts/ComboChart/ComboChart.js +2 -2
  78. package/dist/components/charts/DonutChart/DonutChart.js +1 -1
  79. package/dist/components/charts/DonutChart/DonutChart.theme.js +1 -1
  80. package/dist/components/charts/DonutChart/DonutChart.types.d.ts +1 -2
  81. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +2 -2
  82. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
  83. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.types.d.ts +1 -2
  84. package/dist/components/charts/FunnelChart/FunnelChart.js +9 -9
  85. package/dist/components/charts/Heatmap/Heatmap.theme.js +1 -1
  86. package/dist/components/charts/Heatmap/HeatmapCell.js +1 -1
  87. package/dist/components/charts/Heatmap/HeatmapLegend.js +1 -1
  88. package/dist/components/charts/RadarChart/RadarChart.theme.js +2 -2
  89. package/dist/components/charts/ScatterPlot/ScatterPlot.js +1 -1
  90. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +2 -2
  91. package/dist/components/charts/StackedBarChart/StackedBarChart.js +2 -2
  92. package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -1
  93. package/dist/components/charts/shared/ChartLegend/ChartLegend.types.d.ts +13 -1
  94. package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +1 -1
  95. package/dist/components/charts/shared/ChartText/ChartText.js +1 -1
  96. package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
  97. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +4 -4
  98. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.types.d.ts +13 -2
  99. package/dist/components/core/Accordion/Accordion.animations.d.ts +6 -1
  100. package/dist/components/core/Accordion/Accordion.animations.js +15 -1
  101. package/dist/components/core/Accordion/Accordion.d.ts +1 -1
  102. package/dist/components/core/Accordion/Accordion.js +2 -2
  103. package/dist/components/core/Accordion/Accordion.theme.d.ts +2 -2
  104. package/dist/components/core/Accordion/Accordion.theme.js +8 -8
  105. package/dist/components/core/Accordion/Accordion.types.d.ts +28 -4
  106. package/dist/components/core/Accordion/AccordionBody.d.ts +3 -0
  107. package/dist/components/core/Accordion/{AccordionContent.js → AccordionBody.js} +4 -4
  108. package/dist/components/core/Accordion/AccordionItem.js +2 -2
  109. package/dist/components/core/Accordion/AccordionTrigger.js +19 -7
  110. package/dist/components/core/Accordion/index.d.ts +2 -2
  111. package/dist/components/core/Alert/Alert.animations.d.ts +11 -0
  112. package/dist/components/core/Alert/Alert.animations.js +44 -0
  113. package/dist/components/core/Alert/Alert.js +22 -4
  114. package/dist/components/core/Alert/Alert.theme.js +4 -8
  115. package/dist/components/core/Alert/Alert.types.d.ts +7 -6
  116. package/dist/components/core/AlertDialog/AlertDialog.d.ts +1 -1
  117. package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
  118. package/dist/components/core/AlertDialog/AlertDialog.types.d.ts +2 -2
  119. package/dist/components/core/Avatar/Avatar.js +30 -21
  120. package/dist/components/core/Avatar/Avatar.theme.d.ts +4 -6
  121. package/dist/components/core/Avatar/Avatar.theme.js +23 -13
  122. package/dist/components/core/Avatar/Avatar.types.d.ts +18 -8
  123. package/dist/components/core/AvatarGroup/AvatarGroup.animations.js +2 -2
  124. package/dist/components/core/AvatarGroup/AvatarGroup.js +2 -3
  125. package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +1 -1
  126. package/dist/components/core/Badge/Badge.animations.js +1 -1
  127. package/dist/components/core/Badge/Badge.d.ts +1 -1
  128. package/dist/components/core/Badge/Badge.js +27 -47
  129. package/dist/components/core/Badge/Badge.theme.js +50 -53
  130. package/dist/components/core/Badge/Badge.types.d.ts +10 -29
  131. package/dist/components/core/Breadcrumbs/Breadcrumbs.js +7 -3
  132. package/dist/components/core/Breadcrumbs/Breadcrumbs.types.d.ts +1 -1
  133. package/dist/components/core/Button/Button.d.ts +1 -1
  134. package/dist/components/core/Button/Button.js +23 -25
  135. package/dist/components/core/Button/Button.ripple.d.ts +5 -1
  136. package/dist/components/core/Button/Button.ripple.js +28 -18
  137. package/dist/components/core/Button/Button.theme.d.ts +2 -2
  138. package/dist/components/core/Button/Button.theme.js +78 -45
  139. package/dist/components/core/Button/Button.types.d.ts +4 -4
  140. package/dist/components/core/Button/index.d.ts +2 -0
  141. package/dist/components/core/ButtonGroup/ButtonGroup.theme.js +7 -7
  142. package/dist/components/core/ButtonGroup/ButtonGroupText.js +1 -3
  143. package/dist/components/core/Calendar/Calendar.js +33 -7
  144. package/dist/components/core/Calendar/Calendar.theme.js +19 -15
  145. package/dist/components/core/Calendar/Calendar.types.d.ts +4 -1
  146. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +5 -6
  147. package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -3
  148. package/dist/components/core/Card/Card.d.ts +3 -3
  149. package/dist/components/core/Card/Card.js +8 -9
  150. package/dist/components/core/Card/Card.theme.js +5 -5
  151. package/dist/components/core/Card/Card.types.d.ts +11 -31
  152. package/dist/components/core/Card/CardBody.d.ts +3 -0
  153. package/dist/components/core/Card/CardBody.js +11 -0
  154. package/dist/components/core/Card/CardSubtitle.d.ts +3 -0
  155. package/dist/components/core/Card/CardSubtitle.js +11 -0
  156. package/dist/components/core/Card/CardTitle.d.ts +1 -1
  157. package/dist/components/core/Card/index.d.ts +2 -2
  158. package/dist/components/core/Carousel/Carousel.js +4 -4
  159. package/dist/components/core/Carousel/Carousel.types.d.ts +4 -4
  160. package/dist/components/core/Carousel/CarouselBody.d.ts +4 -0
  161. package/dist/components/core/Carousel/{CarouselContent.js → CarouselBody.js} +3 -4
  162. package/dist/components/core/Carousel/index.d.ts +2 -1
  163. package/dist/components/core/CommandPalette/CommandItem.d.ts +1 -1
  164. package/dist/components/core/CommandPalette/CommandItem.js +2 -2
  165. package/dist/components/core/CommandPalette/CommandPalette.js +8 -6
  166. package/dist/components/core/CommandPalette/CommandPalette.theme.js +7 -6
  167. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +8 -2
  168. package/dist/components/core/ContextMenu/ContextMenu.d.ts +2 -2
  169. package/dist/components/core/ContextMenu/ContextMenu.js +11 -10
  170. package/dist/components/core/ContextMenu/ContextMenu.theme.js +3 -3
  171. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +3 -3
  172. package/dist/components/core/ContextMenu/ContextMenuBody.d.ts +6 -0
  173. package/dist/components/core/ContextMenu/{ContextMenuContent.js → ContextMenuBody.js} +4 -4
  174. package/dist/components/core/ContextMenu/ContextMenuItem.js +3 -3
  175. package/dist/components/core/ContextMenu/ContextMenuSubBody.d.ts +6 -0
  176. package/dist/components/core/ContextMenu/{ContextMenuSubContent.js → ContextMenuSubBody.js} +4 -4
  177. package/dist/components/core/ContextMenu/ContextMenuTrigger.js +5 -6
  178. package/dist/components/core/ContextMenu/index.d.ts +1 -1
  179. package/dist/components/core/Drawer/Drawer.d.ts +15 -3
  180. package/dist/components/core/Drawer/Drawer.js +71 -16
  181. package/dist/components/core/Drawer/Drawer.theme.d.ts +2 -0
  182. package/dist/components/core/Drawer/Drawer.theme.js +15 -13
  183. package/dist/components/core/Drawer/Drawer.types.d.ts +34 -9
  184. package/dist/components/core/Drawer/DrawerBody.d.ts +5 -0
  185. package/dist/components/core/Drawer/{DrawerContent.js → DrawerBody.js} +3 -3
  186. package/dist/components/core/Drawer/DrawerHeader.d.ts +5 -0
  187. package/dist/components/core/Drawer/DrawerHeader.js +15 -0
  188. package/dist/components/core/Drawer/DrawerSubtitle.d.ts +5 -0
  189. package/dist/components/core/Drawer/DrawerSubtitle.js +11 -0
  190. package/dist/components/core/Drawer/DrawerTitle.d.ts +5 -0
  191. package/dist/components/core/Drawer/DrawerTitle.js +11 -0
  192. package/dist/components/core/Drawer/index.d.ts +2 -1
  193. package/dist/components/core/Dropdown/Dropdown.d.ts +1 -1
  194. package/dist/components/core/Dropdown/Dropdown.js +6 -2
  195. package/dist/components/core/Dropdown/Dropdown.theme.js +1 -1
  196. package/dist/components/core/Dropdown/Dropdown.types.d.ts +7 -6
  197. package/dist/components/core/Dropdown/DropdownItem.js +3 -3
  198. package/dist/components/core/Dropdown/DropdownMenu.js +5 -4
  199. package/dist/components/core/Dropdown/DropdownSection.js +4 -2
  200. package/dist/components/core/Dropdown/DropdownSeparator.js +1 -1
  201. package/dist/components/core/Dropdown/DropdownTrigger.d.ts +6 -1
  202. package/dist/components/core/Dropdown/DropdownTrigger.js +10 -8
  203. package/dist/components/core/Empty/Empty.js +2 -2
  204. package/dist/components/core/Empty/Empty.theme.d.ts +1 -1
  205. package/dist/components/core/Empty/Empty.theme.js +3 -3
  206. package/dist/components/core/Empty/Empty.types.d.ts +2 -2
  207. package/dist/components/core/FileTypeIcon/FileTypeIcon.d.ts +3 -0
  208. package/dist/components/core/FileTypeIcon/FileTypeIcon.js +33 -0
  209. package/dist/components/core/FileTypeIcon/FileTypeIcon.theme.d.ts +2 -0
  210. package/dist/components/core/FileTypeIcon/FileTypeIcon.theme.js +12 -0
  211. package/dist/components/core/FileTypeIcon/FileTypeIcon.types.d.ts +19 -0
  212. package/dist/components/core/FileTypeIcon/fileTypes.d.ts +7 -0
  213. package/dist/components/core/FileTypeIcon/fileTypes.js +30 -0
  214. package/dist/components/core/FileTypeIcon/index.d.ts +2 -0
  215. package/dist/components/core/Kbd/Kbd.theme.js +4 -4
  216. package/dist/components/core/Link/Link.d.ts +1 -1
  217. package/dist/components/core/Link/Link.js +4 -2
  218. package/dist/components/core/Link/Link.types.d.ts +2 -2
  219. package/dist/components/core/MenuItem/MenuItem.js +4 -2
  220. package/dist/components/core/MenuItem/MenuItem.theme.d.ts +1 -2
  221. package/dist/components/core/MenuItem/MenuItem.theme.js +9 -11
  222. package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
  223. package/dist/components/core/Message/Message.d.ts +13 -3
  224. package/dist/components/core/Message/Message.js +74 -27
  225. package/dist/components/core/Message/Message.theme.d.ts +1 -1
  226. package/dist/components/core/Message/Message.theme.js +44 -24
  227. package/dist/components/core/Message/Message.types.d.ts +122 -14
  228. package/dist/components/core/Message/MessageAudio.d.ts +8 -0
  229. package/dist/components/core/Message/MessageAudio.js +11 -0
  230. package/dist/components/core/Message/MessageAvatar.d.ts +2 -2
  231. package/dist/components/core/Message/MessageAvatar.js +3 -3
  232. package/dist/components/core/Message/MessageBody.d.ts +8 -0
  233. package/dist/components/core/Message/{MessageContent.js → MessageBody.js} +3 -3
  234. package/dist/components/core/Message/MessageContext.d.ts +3 -1
  235. package/dist/components/core/Message/MessageDateDivider.d.ts +6 -0
  236. package/dist/components/core/Message/MessageDateDivider.js +10 -0
  237. package/dist/components/core/Message/MessageFile.d.ts +9 -0
  238. package/dist/components/core/Message/MessageFile.js +15 -0
  239. package/dist/components/core/Message/MessageImage.d.ts +11 -0
  240. package/dist/components/core/Message/MessageImage.js +13 -0
  241. package/dist/components/core/Message/MessageLink.d.ts +10 -0
  242. package/dist/components/core/Message/MessageLink.js +15 -0
  243. package/dist/components/core/Message/MessageList.animations.d.ts +6 -0
  244. package/dist/components/core/Message/MessageList.animations.js +32 -0
  245. package/dist/components/core/Message/MessageList.d.ts +5 -0
  246. package/dist/components/core/Message/MessageList.js +78 -0
  247. package/dist/components/core/Message/MessageList.theme.d.ts +2 -0
  248. package/dist/components/core/Message/MessageList.theme.js +6 -0
  249. package/dist/components/core/Message/MessageList.types.d.ts +32 -0
  250. package/dist/components/core/Message/MessageReactions.d.ts +8 -0
  251. package/dist/components/core/Message/MessageReactions.js +12 -0
  252. package/dist/components/core/Message/MessageReply.d.ts +8 -0
  253. package/dist/components/core/Message/MessageReply.js +10 -0
  254. package/dist/components/core/Message/MessageSenderName.d.ts +6 -0
  255. package/dist/components/core/Message/MessageSenderName.js +10 -0
  256. package/dist/components/core/Message/MessageStatusIndicator.d.ts +9 -0
  257. package/dist/components/core/Message/MessageStatusIndicator.js +45 -0
  258. package/dist/components/core/Message/index.d.ts +23 -1
  259. package/dist/components/core/Modal/Modal.animations.d.ts +1 -0
  260. package/dist/components/core/Modal/Modal.animations.js +14 -11
  261. package/dist/components/core/Modal/Modal.d.ts +2 -2
  262. package/dist/components/core/Modal/Modal.js +9 -5
  263. package/dist/components/core/Modal/Modal.theme.js +6 -6
  264. package/dist/components/core/Modal/Modal.types.d.ts +9 -6
  265. package/dist/components/core/Modal/ModalHeader.js +2 -1
  266. package/dist/components/core/Modal/ModalSubtitle.d.ts +5 -0
  267. package/dist/components/core/Modal/ModalSubtitle.js +11 -0
  268. package/dist/components/core/ModalStack/ModalStack.animations.js +3 -3
  269. package/dist/components/core/ModalStack/ModalStackModal.js +4 -3
  270. package/dist/components/core/NavItem/NavItem.js +100 -52
  271. package/dist/components/core/NavItem/NavItem.theme.js +6 -3
  272. package/dist/components/core/NavItem/NavItem.types.d.ts +44 -30
  273. package/dist/components/core/NavItem/index.d.ts +1 -1
  274. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +3 -3
  275. package/dist/components/core/PageHeading/PageHeading.d.ts +8 -0
  276. package/dist/components/core/PageHeading/PageHeading.js +28 -0
  277. package/dist/components/core/PageHeading/PageHeading.theme.d.ts +2 -0
  278. package/dist/components/core/PageHeading/PageHeading.theme.js +11 -0
  279. package/dist/components/core/PageHeading/PageHeading.types.d.ts +55 -0
  280. package/dist/components/core/PageHeading/PageHeadingActions.d.ts +3 -0
  281. package/dist/components/core/PageHeading/PageHeadingActions.js +11 -0
  282. package/dist/components/core/PageHeading/PageHeadingBackButton.d.ts +3 -0
  283. package/dist/components/core/PageHeading/PageHeadingBackButton.js +14 -0
  284. package/dist/components/core/PageHeading/PageHeadingIcon.d.ts +3 -0
  285. package/dist/components/core/PageHeading/PageHeadingIcon.js +11 -0
  286. package/dist/components/core/PageHeading/PageHeadingSubtitle.d.ts +3 -0
  287. package/dist/components/core/PageHeading/PageHeadingSubtitle.js +11 -0
  288. package/dist/components/core/PageHeading/PageHeadingTitle.d.ts +3 -0
  289. package/dist/components/core/PageHeading/PageHeadingTitle.js +11 -0
  290. package/dist/components/core/PageHeading/index.d.ts +2 -0
  291. package/dist/components/core/Pagination/Pagination.theme.js +3 -3
  292. package/dist/components/core/Pill/Pill.theme.js +3 -3
  293. package/dist/components/core/Popover/Popover.d.ts +2 -2
  294. package/dist/components/core/Popover/Popover.js +5 -5
  295. package/dist/components/core/Popover/Popover.theme.d.ts +1 -1
  296. package/dist/components/core/Popover/Popover.theme.js +2 -2
  297. package/dist/components/core/Popover/Popover.types.d.ts +9 -3
  298. package/dist/components/core/Popover/PopoverBody.d.ts +7 -0
  299. package/dist/components/core/Popover/{PopoverContent.js → PopoverBody.js} +30 -13
  300. package/dist/components/core/Popover/PopoverTrigger.d.ts +1 -1
  301. package/dist/components/core/Popover/PopoverTrigger.js +11 -11
  302. package/dist/components/core/Popover/index.d.ts +4 -3
  303. package/dist/components/core/Progress/Progress.d.ts +9 -8
  304. package/dist/components/core/Progress/Progress.js +16 -16
  305. package/dist/components/core/Progress/Progress.theme.js +5 -13
  306. package/dist/components/core/Progress/Progress.types.d.ts +2 -19
  307. package/dist/components/core/Progress/index.d.ts +1 -1
  308. package/dist/components/core/ScrollArea/ScrollArea.js +49 -7
  309. package/dist/components/core/ScrollArea/ScrollArea.types.d.ts +12 -3
  310. package/dist/components/core/ScrollArea/index.d.ts +1 -1
  311. package/dist/components/core/Segmented/Segmented.js +7 -8
  312. package/dist/components/core/Segmented/Segmented.theme.js +6 -6
  313. package/dist/components/core/Segmented/SegmentedItem.js +1 -1
  314. package/dist/components/core/Sidebar/Sidebar.d.ts +11 -1
  315. package/dist/components/core/Sidebar/Sidebar.js +52 -17
  316. package/dist/components/core/Sidebar/Sidebar.theme.js +9 -7
  317. package/dist/components/core/Sidebar/Sidebar.types.d.ts +57 -0
  318. package/dist/components/core/Sidebar/SidebarContent.js +3 -1
  319. package/dist/components/core/Sidebar/SidebarContext.d.ts +14 -0
  320. package/dist/components/core/Sidebar/SidebarContext.js +63 -11
  321. package/dist/components/core/Sidebar/SidebarFooter.js +3 -1
  322. package/dist/components/core/Sidebar/SidebarHeader.js +6 -2
  323. package/dist/components/core/Sidebar/SidebarMobileTrigger.d.ts +3 -0
  324. package/dist/components/core/Sidebar/SidebarMobileTrigger.js +29 -0
  325. package/dist/components/core/Sidebar/SidebarNav.js +3 -2
  326. package/dist/components/core/Sidebar/SidebarNavGroup.js +4 -2
  327. package/dist/components/core/Sidebar/SidebarToggle.js +2 -1
  328. package/dist/components/core/Sidebar/SidebarUserProfile.d.ts +3 -0
  329. package/dist/components/core/Sidebar/SidebarUserProfile.js +35 -0
  330. package/dist/components/core/Sidebar/index.d.ts +3 -1
  331. package/dist/components/core/SocialIcon/SocialIcon.d.ts +3 -0
  332. package/dist/components/core/SocialIcon/SocialIcon.js +30 -0
  333. package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +2 -0
  334. package/dist/components/core/SocialIcon/SocialIcon.theme.js +12 -0
  335. package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +18 -0
  336. package/dist/components/core/SocialIcon/index.d.ts +2 -0
  337. package/dist/components/core/SocialIcon/platforms.d.ts +17 -0
  338. package/dist/components/core/SocialIcon/platforms.js +234 -0
  339. package/dist/components/core/Sortable/Sortable.js +2 -2
  340. package/dist/components/core/Sortable/Sortable.theme.js +1 -1
  341. package/dist/components/core/Sortable/Sortable.types.d.ts +7 -5
  342. package/dist/components/core/Spinner/Spinner.theme.js +3 -5
  343. package/dist/components/core/Spinner/Spinner.types.d.ts +2 -1
  344. package/dist/components/core/Tabs/Tabs.animations.d.ts +2 -2
  345. package/dist/components/core/Tabs/Tabs.animations.js +3 -3
  346. package/dist/components/core/Tabs/Tabs.d.ts +1 -1
  347. package/dist/components/core/Tabs/Tabs.js +3 -3
  348. package/dist/components/core/Tabs/Tabs.theme.d.ts +2 -2
  349. package/dist/components/core/Tabs/Tabs.theme.js +5 -5
  350. package/dist/components/core/Tabs/Tabs.types.d.ts +9 -9
  351. package/dist/components/core/Tabs/TabsBody.d.ts +6 -0
  352. package/dist/components/core/Tabs/{TabsContent.js → TabsBody.js} +9 -9
  353. package/dist/components/core/Tabs/TabsTrigger.js +1 -1
  354. package/dist/components/core/Tabs/index.d.ts +2 -2
  355. package/dist/components/core/Tag/Tag.animations.js +0 -13
  356. package/dist/components/core/Tag/Tag.d.ts +2 -2
  357. package/dist/components/core/Tag/Tag.js +21 -4
  358. package/dist/components/core/Tag/Tag.theme.js +12 -4
  359. package/dist/components/core/Tag/Tag.types.d.ts +24 -1
  360. package/dist/components/core/Toast/Toast.d.ts +2 -2
  361. package/dist/components/core/Toast/Toast.js +31 -18
  362. package/dist/components/core/Toast/Toast.theme.js +4 -9
  363. package/dist/components/core/Toast/Toast.types.d.ts +20 -37
  364. package/dist/components/core/Toast/index.d.ts +1 -1
  365. package/dist/components/core/Toast/useToast.js +6 -6
  366. package/dist/components/core/Tooltip/Tooltip.js +1 -1
  367. package/dist/components/core/Tooltip/Tooltip.theme.js +2 -2
  368. package/dist/components/core/Tree/Tree.theme.js +1 -1
  369. package/dist/components/core/index.d.ts +3 -8
  370. package/dist/components/core/index.js +28 -22
  371. package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +8 -0
  372. package/dist/components/data-display/Feed/Feed.animations.d.ts +40 -0
  373. package/dist/components/data-display/Feed/Feed.animations.js +26 -0
  374. package/dist/components/{core → data-display}/Feed/Feed.d.ts +5 -1
  375. package/dist/components/data-display/Feed/Feed.js +123 -0
  376. package/dist/components/data-display/Feed/Feed.theme.js +20 -0
  377. package/dist/components/data-display/Feed/Feed.types.d.ts +65 -0
  378. package/dist/components/data-display/Feed/index.d.ts +2 -0
  379. package/dist/components/data-display/GanttChart/GanttChart.animations.d.ts +4 -0
  380. package/dist/components/data-display/GanttChart/GanttChart.animations.js +21 -0
  381. package/dist/components/data-display/GanttChart/GanttChart.d.ts +8 -0
  382. package/dist/components/data-display/GanttChart/GanttChart.js +170 -0
  383. package/dist/components/data-display/GanttChart/GanttChart.theme.d.ts +2 -0
  384. package/dist/components/data-display/GanttChart/GanttChart.theme.js +23 -0
  385. package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +162 -0
  386. package/dist/components/data-display/GanttChart/GanttChart.types.js +9 -0
  387. package/dist/components/data-display/GanttChart/GanttChart.utils.d.ts +80 -0
  388. package/dist/components/data-display/GanttChart/GanttChart.utils.js +274 -0
  389. package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +9 -0
  390. package/dist/components/data-display/GanttChart/GanttChartPanel.js +82 -0
  391. package/dist/components/data-display/GanttChart/GanttDependencyArrows.d.ts +2 -0
  392. package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +35 -0
  393. package/dist/components/data-display/GanttChart/GanttGroupBar.d.ts +8 -0
  394. package/dist/components/data-display/GanttChart/GanttGroupBar.js +26 -0
  395. package/dist/components/data-display/GanttChart/GanttMilestone.d.ts +9 -0
  396. package/dist/components/data-display/GanttChart/GanttMilestone.js +44 -0
  397. package/dist/components/data-display/GanttChart/GanttProgressCircle.d.ts +9 -0
  398. package/dist/components/data-display/GanttChart/GanttProgressCircle.js +11 -0
  399. package/dist/components/data-display/GanttChart/GanttSplitter.d.ts +2 -0
  400. package/dist/components/data-display/GanttChart/GanttSplitter.js +39 -0
  401. package/dist/components/data-display/GanttChart/GanttTableGroupRow.d.ts +7 -0
  402. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +23 -0
  403. package/dist/components/data-display/GanttChart/GanttTableHeader.d.ts +2 -0
  404. package/dist/components/data-display/GanttChart/GanttTableHeader.js +13 -0
  405. package/dist/components/data-display/GanttChart/GanttTablePanel.d.ts +6 -0
  406. package/dist/components/data-display/GanttChart/GanttTablePanel.js +20 -0
  407. package/dist/components/data-display/GanttChart/GanttTableTaskRow.d.ts +8 -0
  408. package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +30 -0
  409. package/dist/components/data-display/GanttChart/GanttTaskBar.d.ts +9 -0
  410. package/dist/components/data-display/GanttChart/GanttTaskBar.js +208 -0
  411. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.d.ts +8 -0
  412. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +17 -0
  413. package/dist/components/data-display/GanttChart/GanttTimelineGrid.d.ts +7 -0
  414. package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +33 -0
  415. package/dist/components/data-display/GanttChart/GanttTimelineHeader.d.ts +8 -0
  416. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +43 -0
  417. package/dist/components/data-display/GanttChart/GanttToolbar.d.ts +2 -0
  418. package/dist/components/data-display/GanttChart/GanttToolbar.js +29 -0
  419. package/dist/components/data-display/GanttChart/hooks/useGanttDates.d.ts +12 -0
  420. package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +25 -0
  421. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.d.ts +25 -0
  422. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +144 -0
  423. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.d.ts +2 -0
  424. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +33 -0
  425. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.d.ts +6 -0
  426. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +32 -0
  427. package/dist/components/data-display/GanttChart/index.d.ts +3 -0
  428. package/dist/components/{core → data-display}/KPI/KPI.js +11 -9
  429. package/dist/components/{core → data-display}/KPI/KPI.theme.js +12 -12
  430. package/dist/components/{core → data-display}/KPI/KPI.types.d.ts +8 -7
  431. package/dist/components/{core → data-display}/KPI/index.d.ts +1 -0
  432. package/dist/components/data-display/Metric/Metric.js +20 -0
  433. package/dist/components/{core → data-display}/Metric/Metric.theme.js +17 -13
  434. package/dist/components/{core → data-display}/Metric/Metric.types.d.ts +10 -9
  435. package/dist/components/{core → data-display}/Table/Table.theme.js +4 -4
  436. package/dist/components/{core → data-display}/Table/Table.types.d.ts +8 -8
  437. package/dist/components/{core → data-display}/Table/TableActions.js +8 -8
  438. package/dist/components/{core → data-display}/Table/TableActionsMenu.js +1 -1
  439. package/dist/components/data-display/Table/TableColumnManager.js +25 -0
  440. package/dist/components/{core → data-display}/Table/TableFilter.js +7 -6
  441. package/dist/components/{core → data-display}/Table/TableHeader.js +1 -1
  442. package/dist/components/data-display/Table/TablePagination.js +25 -0
  443. package/dist/components/{core → data-display}/Table/TableRow.js +1 -1
  444. package/dist/components/{core → data-display}/Table/TableSelectionHeader.js +3 -3
  445. package/dist/components/{core → data-display}/Timeline/Timeline.theme.js +2 -2
  446. package/dist/components/{core → data-display}/Timeline/TimelineMarker.js +2 -2
  447. package/dist/components/data-display/index.d.ts +7 -0
  448. package/dist/components/data-display/index.js +20 -0
  449. package/dist/components/effects/3d/index.d.ts +6 -0
  450. package/dist/components/effects/3d/index.js +3 -0
  451. package/dist/components/effects/AIOrb/AIOrb.d.ts +1 -0
  452. package/dist/components/effects/AIOrb/AIOrb.js +3 -2
  453. package/dist/components/effects/AIOrb/AIOrb.types.d.ts +1 -0
  454. package/dist/components/effects/AIOrb/hooks/index.d.ts +2 -0
  455. package/dist/components/effects/AIOrb/hooks/useOrbState.d.ts +20 -0
  456. package/dist/components/effects/AIOrb/hooks/useOrbState.js +27 -0
  457. package/dist/components/effects/AIOrb/index.d.ts +2 -2
  458. package/dist/components/effects/AIOrb/variants/Aura/Aura.d.ts +3 -0
  459. package/dist/components/effects/AIOrb/variants/Aura/Aura.js +75 -0
  460. package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.d.ts +28 -0
  461. package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.js +191 -0
  462. package/dist/components/effects/AIOrb/variants/Aura/Aura.types.d.ts +53 -0
  463. package/dist/components/effects/AIOrb/variants/Aura/ShaderCanvas.d.ts +17 -0
  464. package/dist/components/effects/AIOrb/variants/Aura/ShaderCanvas.js +149 -0
  465. package/dist/components/effects/AIOrb/variants/Aura/index.d.ts +2 -0
  466. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.js +38 -7
  467. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.types.d.ts +6 -0
  468. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.js +34 -8
  469. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.types.d.ts +6 -0
  470. package/dist/components/effects/AIOrb/variants/index.d.ts +2 -0
  471. package/dist/components/effects/Animated/Animated.animations.js +29 -10
  472. package/dist/components/effects/Animated/Animated.d.ts +2 -2
  473. package/dist/components/effects/Animated/Animated.js +4 -3
  474. package/dist/components/effects/Animated/AnimatedItem.d.ts +1 -1
  475. package/dist/components/effects/Animated/AnimatedItem.js +5 -4
  476. package/dist/components/effects/Aurora/Aurora.d.ts +24 -0
  477. package/dist/components/effects/Aurora/Aurora.js +119 -0
  478. package/dist/components/effects/Aurora/Aurora.types.d.ts +15 -0
  479. package/dist/components/effects/Aurora/index.d.ts +2 -0
  480. package/dist/components/effects/CustomCursor/CustomCursor.d.ts +4 -4
  481. package/dist/components/effects/CustomCursor/CustomCursor.js +50 -47
  482. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +3 -1
  483. package/dist/components/effects/CustomCursor/CustomCursor.types.d.ts +5 -4
  484. package/dist/components/effects/DotPattern/DotPattern.d.ts +18 -0
  485. package/dist/components/effects/DotPattern/DotPattern.js +65 -0
  486. package/dist/components/effects/DotPattern/DotPattern.types.d.ts +47 -0
  487. package/dist/components/effects/DotPattern/index.d.ts +2 -0
  488. package/dist/components/effects/GlassSurface/GlassSurface.d.ts +1 -1
  489. package/dist/components/effects/GlassSurface/GlassSurface.js +38 -18
  490. package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +14 -0
  491. package/dist/components/effects/GridPattern/GridPattern.d.ts +18 -0
  492. package/dist/components/effects/GridPattern/GridPattern.js +64 -0
  493. package/dist/components/effects/GridPattern/GridPattern.types.d.ts +47 -0
  494. package/dist/components/effects/GridPattern/index.d.ts +2 -0
  495. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.animations.d.ts +39 -0
  496. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.animations.js +98 -0
  497. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.d.ts +3 -0
  498. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.js +104 -0
  499. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.types.d.ts +30 -0
  500. package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.d.ts +3 -0
  501. package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.js +36 -0
  502. package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.d.ts +3 -0
  503. package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.js +36 -0
  504. package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.d.ts +3 -0
  505. package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.js +37 -0
  506. package/dist/components/effects/InteractiveCharacters/hooks/useBlink.d.ts +14 -0
  507. package/dist/components/effects/InteractiveCharacters/hooks/useBlink.js +41 -0
  508. package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.d.ts +25 -0
  509. package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.js +84 -0
  510. package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.d.ts +18 -0
  511. package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.js +35 -0
  512. package/dist/components/effects/InteractiveCharacters/index.d.ts +2 -0
  513. package/dist/components/effects/MagneticElement/MagneticElement.d.ts +30 -0
  514. package/dist/components/effects/MagneticElement/MagneticElement.js +110 -0
  515. package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +44 -0
  516. package/dist/components/effects/MagneticElement/index.d.ts +2 -0
  517. package/dist/components/effects/MorphingText/MorphingText.d.ts +17 -0
  518. package/dist/components/effects/MorphingText/MorphingText.js +92 -0
  519. package/dist/components/effects/MorphingText/MorphingText.types.d.ts +18 -0
  520. package/dist/components/effects/MorphingText/index.d.ts +2 -0
  521. package/dist/components/effects/Neumorphic/InsetCircleButton.d.ts +10 -0
  522. package/dist/components/effects/Neumorphic/InsetCircleButton.js +10 -0
  523. package/dist/components/effects/Neumorphic/InsetPill.d.ts +8 -0
  524. package/dist/components/effects/Neumorphic/InsetPill.js +7 -0
  525. package/dist/components/effects/Neumorphic/index.d.ts +4 -0
  526. package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +28 -0
  527. package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +61 -0
  528. package/dist/components/effects/NoiseOverlay/NoiseOverlay.types.d.ts +35 -0
  529. package/dist/components/effects/NoiseOverlay/index.d.ts +2 -0
  530. package/dist/components/effects/Overlay/Overlay.js +6 -4
  531. package/dist/components/effects/PageTransition/PageTransition.animations.d.ts +8 -0
  532. package/dist/components/effects/PageTransition/PageTransition.animations.js +53 -0
  533. package/dist/components/effects/PageTransition/PageTransition.d.ts +3 -0
  534. package/dist/components/effects/PageTransition/PageTransition.js +71 -0
  535. package/dist/components/effects/PageTransition/PageTransition.types.d.ts +15 -0
  536. package/dist/components/effects/PageTransition/index.d.ts +2 -0
  537. package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +26 -0
  538. package/dist/components/effects/ParallaxSection/ParallaxSection.js +71 -0
  539. package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +11 -0
  540. package/dist/components/effects/ParallaxSection/index.d.ts +2 -0
  541. package/dist/components/effects/Particles/Particles.d.ts +22 -0
  542. package/dist/components/effects/Particles/Particles.js +33 -0
  543. package/dist/components/effects/Particles/Particles.scene.d.ts +3 -0
  544. package/dist/components/effects/Particles/Particles.scene.js +284 -0
  545. package/dist/components/effects/Particles/Particles.types.d.ts +65 -0
  546. package/dist/components/effects/Particles/index.d.ts +2 -0
  547. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.d.ts +3 -0
  548. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +75 -0
  549. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.d.ts +7 -0
  550. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.theme.js +12 -0
  551. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +47 -0
  552. package/dist/components/effects/ProgressiveBlur/index.d.ts +2 -0
  553. package/dist/components/effects/ScrollReveal/ScrollReveal.d.ts +29 -0
  554. package/dist/components/effects/ScrollReveal/ScrollReveal.js +121 -0
  555. package/dist/components/effects/ScrollReveal/ScrollReveal.types.d.ts +25 -0
  556. package/dist/components/effects/ScrollReveal/index.d.ts +2 -0
  557. package/dist/components/effects/Spotlight/Spotlight.d.ts +36 -0
  558. package/dist/components/effects/Spotlight/Spotlight.js +112 -0
  559. package/dist/components/effects/Spotlight/Spotlight.types.d.ts +29 -0
  560. package/dist/components/effects/Spotlight/index.d.ts +2 -0
  561. package/dist/components/effects/StickyScroll/StickyScroll.d.ts +30 -0
  562. package/dist/components/effects/StickyScroll/StickyScroll.js +128 -0
  563. package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +19 -0
  564. package/dist/components/effects/StickyScroll/index.d.ts +2 -0
  565. package/dist/components/effects/index.d.ts +30 -6
  566. package/dist/components/effects/index.js +16 -3
  567. package/dist/components/forms/Checkbox/Checkbox.animations.d.ts +14 -0
  568. package/dist/components/forms/Checkbox/Checkbox.animations.js +53 -0
  569. package/dist/components/forms/Checkbox/Checkbox.d.ts +3 -4
  570. package/dist/components/forms/Checkbox/Checkbox.js +39 -13
  571. package/dist/components/forms/Checkbox/Checkbox.theme.js +10 -10
  572. package/dist/components/forms/Checkbox/Checkbox.types.d.ts +30 -4
  573. package/dist/components/forms/Checkbox/CheckboxContext.d.ts +14 -0
  574. package/dist/components/forms/Checkbox/CheckboxContext.js +12 -0
  575. package/dist/components/forms/Checkbox/CheckboxGroup.d.ts +3 -0
  576. package/dist/components/forms/Checkbox/CheckboxGroup.js +40 -0
  577. package/dist/components/forms/Checkbox/index.d.ts +1 -1
  578. package/dist/components/forms/ColorPicker/ColorPicker.d.ts +1 -1
  579. package/dist/components/forms/ColorPicker/ColorPicker.js +3 -3
  580. package/dist/components/forms/ColorPicker/ColorPicker.theme.js +3 -3
  581. package/dist/components/forms/ColorPicker/ColorPicker.types.d.ts +3 -3
  582. package/dist/components/forms/ColorPicker/ColorPickerBody.d.ts +7 -0
  583. package/dist/components/forms/ColorPicker/{ColorPickerContent.js → ColorPickerBody.js} +8 -8
  584. package/dist/components/forms/ColorPicker/ColorPickerInput.js +7 -7
  585. package/dist/components/forms/ColorPicker/index.d.ts +2 -2
  586. package/dist/components/forms/Combobox/Combobox.js +5 -3
  587. package/dist/components/forms/CronInput/CronInput.d.ts +3 -0
  588. package/dist/components/forms/CronInput/CronInput.js +107 -0
  589. package/dist/components/forms/CronInput/CronInput.theme.d.ts +6 -0
  590. package/dist/components/forms/CronInput/CronInput.theme.js +84 -0
  591. package/dist/components/forms/CronInput/CronInput.types.d.ts +98 -0
  592. package/dist/components/forms/CronInput/CronInput.utils.d.ts +67 -0
  593. package/dist/components/forms/CronInput/CronInput.utils.js +505 -0
  594. package/dist/components/forms/CronInput/index.d.ts +4 -0
  595. package/dist/components/forms/DatePicker/DatePicker.d.ts +7 -3
  596. package/dist/components/forms/DatePicker/DatePicker.js +6 -5
  597. package/dist/components/forms/DatePicker/DatePicker.theme.js +5 -5
  598. package/dist/components/forms/DatePicker/DatePicker.types.d.ts +9 -4
  599. package/dist/components/forms/DatePicker/DatePickerBody.d.ts +7 -0
  600. package/dist/components/forms/DatePicker/{DatePickerContent.js → DatePickerBody.js} +10 -9
  601. package/dist/components/forms/DatePicker/index.d.ts +2 -2
  602. package/dist/components/forms/DateRangePicker/DateRangePicker.animations.d.ts +1 -0
  603. package/dist/components/forms/DateRangePicker/DateRangePicker.d.ts +37 -0
  604. package/dist/components/forms/DateRangePicker/DateRangePicker.js +110 -0
  605. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.d.ts +5 -0
  606. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +52 -0
  607. package/dist/components/forms/DateRangePicker/DateRangePicker.types.d.ts +154 -0
  608. package/dist/components/forms/DateRangePicker/DateRangePickerBody.d.ts +6 -0
  609. package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +208 -0
  610. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.d.ts +6 -0
  611. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +41 -0
  612. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.d.ts +6 -0
  613. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +32 -0
  614. package/dist/components/forms/DateRangePicker/dateRangePresets.d.ts +5 -0
  615. package/dist/components/forms/DateRangePicker/dateRangePresets.js +59 -0
  616. package/dist/components/forms/DateRangePicker/index.d.ts +4 -0
  617. package/dist/components/forms/FileUpload/FileUpload.js +2 -2
  618. package/dist/components/forms/FileUpload/FileUpload.theme.js +4 -4
  619. package/dist/components/forms/FileUpload/FileUploadProgress.animations.d.ts +36 -0
  620. package/dist/components/forms/FileUpload/FileUploadProgress.animations.js +22 -0
  621. package/dist/components/forms/FileUpload/FileUploadProgress.d.ts +3 -0
  622. package/dist/components/forms/FileUpload/FileUploadProgress.js +111 -0
  623. package/dist/components/forms/FileUpload/FileUploadProgress.theme.d.ts +19 -0
  624. package/dist/components/forms/FileUpload/FileUploadProgress.theme.js +27 -0
  625. package/dist/components/forms/FileUpload/FileUploadProgress.types.d.ts +33 -0
  626. package/dist/components/forms/FileUpload/index.d.ts +3 -0
  627. package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
  628. package/dist/components/forms/Input/Input.js +8 -13
  629. package/dist/components/forms/Input/Input.theme.js +1 -1
  630. package/dist/components/forms/Input/Input.types.d.ts +10 -4
  631. package/dist/components/forms/InputAddress/InputAddress.theme.js +1 -1
  632. package/dist/components/forms/InputCounter/InputCounter.d.ts +1 -1
  633. package/dist/components/forms/InputCounter/InputCounter.js +1 -1
  634. package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
  635. package/dist/components/forms/InputCounter/InputCounter.types.d.ts +3 -2
  636. package/dist/components/forms/InputCreditCard/InputCreditCard.theme.js +1 -1
  637. package/dist/components/forms/InputOTP/InputOTP.theme.js +2 -2
  638. package/dist/components/forms/InputTag/InputTag.js +1 -1
  639. package/dist/components/forms/Mention/Mention.d.ts +3 -0
  640. package/dist/components/forms/Mention/Mention.js +607 -0
  641. package/dist/components/forms/Mention/Mention.theme.d.ts +6 -0
  642. package/dist/components/forms/Mention/Mention.theme.js +55 -0
  643. package/dist/components/forms/Mention/Mention.types.d.ts +151 -0
  644. package/dist/components/forms/Mention/Mention.utils.d.ts +42 -0
  645. package/dist/components/forms/Mention/Mention.utils.js +285 -0
  646. package/dist/components/forms/Mention/index.d.ts +3 -0
  647. package/dist/components/forms/Radio/Radio.animations.d.ts +10 -0
  648. package/dist/components/forms/Radio/Radio.animations.js +37 -0
  649. package/dist/components/forms/Radio/Radio.d.ts +3 -4
  650. package/dist/components/forms/Radio/Radio.js +32 -10
  651. package/dist/components/forms/Radio/Radio.theme.js +35 -6
  652. package/dist/components/forms/Radio/Radio.types.d.ts +33 -6
  653. package/dist/components/forms/Radio/RadioContext.d.ts +14 -0
  654. package/dist/components/forms/Radio/RadioContext.js +12 -0
  655. package/dist/components/forms/Radio/RadioGroup.d.ts +3 -0
  656. package/dist/components/forms/Radio/RadioGroup.js +36 -0
  657. package/dist/components/forms/Radio/index.d.ts +1 -1
  658. package/dist/components/forms/RichTextEditor/RichTextEditor.js +25 -16
  659. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +3 -3
  660. package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +11 -0
  661. package/dist/components/forms/Select/Select.d.ts +1 -1
  662. package/dist/components/forms/Select/Select.js +9 -9
  663. package/dist/components/forms/Select/Select.theme.js +1 -1
  664. package/dist/components/forms/Select/Select.types.d.ts +7 -7
  665. package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +2 -0
  666. package/dist/components/forms/SelectableCard/SelectableCard.animations.js +9 -0
  667. package/dist/components/forms/SelectableCard/SelectableCard.d.ts +5 -0
  668. package/dist/components/forms/SelectableCard/SelectableCard.js +58 -0
  669. package/dist/components/forms/SelectableCard/SelectableCard.theme.d.ts +2 -0
  670. package/dist/components/forms/SelectableCard/SelectableCard.theme.js +38 -0
  671. package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +33 -0
  672. package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +3 -0
  673. package/dist/components/forms/SelectableCard/SelectableCardContext.js +12 -0
  674. package/dist/components/forms/SelectableCard/SelectableCardGroup.d.ts +3 -0
  675. package/dist/components/forms/SelectableCard/SelectableCardGroup.js +37 -0
  676. package/dist/components/forms/SelectableCard/index.d.ts +3 -0
  677. package/dist/components/forms/Signature/Signature.theme.js +1 -1
  678. package/dist/components/forms/Slider/Slider.js +10 -3
  679. package/dist/components/forms/Slider/Slider.theme.js +6 -6
  680. package/dist/components/forms/Switch/Switch.js +10 -2
  681. package/dist/components/forms/Switch/Switch.theme.js +4 -4
  682. package/dist/components/forms/Switch/Switch.types.d.ts +4 -4
  683. package/dist/components/forms/Textarea/Textarea.js +2 -2
  684. package/dist/components/forms/Textarea/Textarea.types.d.ts +4 -4
  685. package/dist/components/forms/TimePicker/TimePicker.theme.js +2 -2
  686. package/dist/components/forms/forms.theme.js +6 -6
  687. package/dist/components/forms/index.d.ts +20 -4
  688. package/dist/components/forms/index.js +17 -2
  689. package/dist/components/layout/FormLayout/FormLayout.d.ts +6 -0
  690. package/dist/components/layout/FormLayout/FormLayout.js +28 -0
  691. package/dist/components/layout/FormLayout/FormLayout.theme.d.ts +2 -0
  692. package/dist/components/layout/FormLayout/FormLayout.theme.js +13 -0
  693. package/dist/components/layout/FormLayout/FormLayout.types.d.ts +43 -0
  694. package/dist/components/layout/FormLayout/FormLayoutFooter.d.ts +3 -0
  695. package/dist/components/layout/FormLayout/FormLayoutFooter.js +12 -0
  696. package/dist/components/layout/FormLayout/FormLayoutSection.d.ts +3 -0
  697. package/dist/components/layout/FormLayout/FormLayoutSection.js +13 -0
  698. package/dist/components/layout/FormLayout/index.d.ts +3 -0
  699. package/dist/components/layout/PageLayout/PageLayout.d.ts +7 -0
  700. package/dist/components/layout/PageLayout/PageLayout.js +33 -0
  701. package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +2 -0
  702. package/dist/components/layout/PageLayout/PageLayout.theme.js +10 -0
  703. package/dist/components/layout/PageLayout/PageLayout.types.d.ts +39 -0
  704. package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +3 -0
  705. package/dist/components/layout/PageLayout/PageLayoutContent.js +12 -0
  706. package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +3 -0
  707. package/dist/components/layout/PageLayout/PageLayoutHeader.js +12 -0
  708. package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +3 -0
  709. package/dist/components/layout/PageLayout/PageLayoutSidebar.js +12 -0
  710. package/dist/components/layout/PageLayout/index.d.ts +3 -0
  711. package/dist/components/layout/index.d.ts +2 -0
  712. package/dist/hooks/index.d.ts +1 -0
  713. package/dist/hooks/useMediaQuery.d.ts +5 -0
  714. package/dist/hooks/useMediaQuery.js +21 -0
  715. package/dist/hooks/useSelectPortal.d.ts +4 -2
  716. package/dist/hooks/useSelectPortal.js +139 -51
  717. package/dist/index.d.ts +2 -0
  718. package/dist/index.js +85 -27
  719. package/dist/styles.css +1 -1
  720. package/dist/utils/colorUtils.d.ts +23 -0
  721. package/dist/utils/colorUtils.js +45 -0
  722. package/dist/utils/dateUtils.d.ts +30 -0
  723. package/dist/utils/dateUtils.js +113 -5
  724. package/dist/utils/formatUtils.d.ts +10 -0
  725. package/dist/utils/formatUtils.js +24 -0
  726. package/dist/utils/index.d.ts +4 -2
  727. package/dist/utils/paletteGenerator.d.ts +46 -0
  728. package/package.json +44 -25
  729. package/src/global.scss +954 -0
  730. package/src/styles/theme.css +463 -0
  731. package/src/theme-plugin.css +24 -0
  732. package/dist/components/ai/ApprovalCard/ApprovalCard.d.ts +0 -3
  733. package/dist/components/ai/ApprovalCard/ApprovalCard.js +0 -15
  734. package/dist/components/ai/ApprovalCard/ApprovalCard.theme.d.ts +0 -13
  735. package/dist/components/ai/ApprovalCard/ApprovalCard.theme.js +0 -15
  736. package/dist/components/ai/ApprovalCard/ApprovalCard.types.d.ts +0 -43
  737. package/dist/components/ai/ApprovalCard/index.d.ts +0 -2
  738. package/dist/components/ai/MessageHistory/MessageHistory.d.ts +0 -18
  739. package/dist/components/ai/MessageHistory/MessageHistory.js +0 -97
  740. package/dist/components/ai/MessageHistory/MessageHistory.theme.d.ts +0 -2
  741. package/dist/components/ai/MessageHistory/MessageHistory.theme.js +0 -8
  742. package/dist/components/ai/MessageHistory/MessageHistory.types.d.ts +0 -94
  743. package/dist/components/ai/MessageHistory/index.d.ts +0 -3
  744. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.animations.d.ts +0 -10
  745. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.animations.js +0 -47
  746. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.d.ts +0 -20
  747. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.js +0 -55
  748. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.d.ts +0 -2
  749. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.js +0 -20
  750. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.types.d.ts +0 -67
  751. package/dist/components/ai/ThinkingIndicator/index.d.ts +0 -3
  752. package/dist/components/core/Accordion/AccordionContent.d.ts +0 -3
  753. package/dist/components/core/Button/Button.animations.d.ts +0 -5
  754. package/dist/components/core/Card/CardContent.d.ts +0 -3
  755. package/dist/components/core/Card/CardContent.js +0 -11
  756. package/dist/components/core/Card/CardDescription.d.ts +0 -3
  757. package/dist/components/core/Card/CardDescription.js +0 -11
  758. package/dist/components/core/Carousel/CarouselContent.d.ts +0 -4
  759. package/dist/components/core/ContextMenu/ContextMenuContent.d.ts +0 -6
  760. package/dist/components/core/ContextMenu/ContextMenuSubContent.d.ts +0 -6
  761. package/dist/components/core/DescriptionList/DescriptionList.theme.js +0 -8
  762. package/dist/components/core/Drawer/DrawerContent.d.ts +0 -5
  763. package/dist/components/core/Feed/Feed.js +0 -88
  764. package/dist/components/core/Feed/Feed.theme.js +0 -22
  765. package/dist/components/core/Feed/Feed.types.d.ts +0 -64
  766. package/dist/components/core/Feed/index.d.ts +0 -2
  767. package/dist/components/core/Loader/Loader.d.ts +0 -24
  768. package/dist/components/core/Loader/Loader.js +0 -57
  769. package/dist/components/core/Loader/Loader.theme.d.ts +0 -27
  770. package/dist/components/core/Loader/Loader.theme.js +0 -60
  771. package/dist/components/core/Loader/Loader.types.d.ts +0 -71
  772. package/dist/components/core/Loader/index.d.ts +0 -2
  773. package/dist/components/core/Message/MessageContent.d.ts +0 -8
  774. package/dist/components/core/Metric/Metric.js +0 -23
  775. package/dist/components/core/Modal/ModalDescription.d.ts +0 -5
  776. package/dist/components/core/Modal/ModalDescription.js +0 -11
  777. package/dist/components/core/Popover/PopoverContent.d.ts +0 -7
  778. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.d.ts +0 -34
  779. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.js +0 -218
  780. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.theme.d.ts +0 -9
  781. package/dist/components/core/ProgressiveBlur/ProgressiveBlur.types.d.ts +0 -48
  782. package/dist/components/core/ProgressiveBlur/index.d.ts +0 -2
  783. package/dist/components/core/Table/TableColumnManager.js +0 -23
  784. package/dist/components/core/Table/TablePagination.js +0 -25
  785. package/dist/components/core/Tabs/TabsContent.d.ts +0 -6
  786. package/dist/components/forms/ColorPicker/ColorPickerContent.d.ts +0 -7
  787. package/dist/components/forms/DatePicker/DatePickerContent.d.ts +0 -7
  788. package/dist/icons/Icon.d.ts +0 -24
  789. package/dist/icons/Icon.js +0 -30
  790. package/dist/icons/Index.d.ts +0 -16
  791. package/dist/icons/core/ChevronUpDown.d.ts +0 -1
  792. package/dist/icons/core/ChevronUpDown.js +0 -7
  793. package/dist/icons/core/DollarIcon.d.ts +0 -1
  794. package/dist/icons/core/DollarIcon.js +0 -5
  795. package/dist/icons/core/LockIcon.d.ts +0 -1
  796. package/dist/icons/core/LockIcon.js +0 -5
  797. package/dist/icons/core/MinusIcon.d.ts +0 -1
  798. package/dist/icons/core/MinusIcon.js +0 -7
  799. package/dist/icons/core/PlusIcon.d.ts +0 -1
  800. package/dist/icons/core/PlusIcon.js +0 -7
  801. package/dist/icons/core/SearchIcon.d.ts +0 -1
  802. package/dist/icons/core/SearchIcon.js +0 -7
  803. package/dist/icons/core/TickIcon.d.ts +0 -1
  804. package/dist/icons/core/TickIcon.js +0 -5
  805. package/dist/icons/core/User.d.ts +0 -1
  806. package/dist/utils/useClickOutside.d.ts +0 -1
  807. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.d.ts +0 -0
  808. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.js +0 -0
  809. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.theme.d.ts +0 -0
  810. /package/dist/components/{core → data-display}/DescriptionList/DescriptionList.types.d.ts +0 -0
  811. /package/dist/components/{core → data-display}/DescriptionList/index.d.ts +0 -0
  812. /package/dist/components/{core → data-display}/Feed/Feed.theme.d.ts +0 -0
  813. /package/dist/components/{core → data-display}/KPI/KPI.d.ts +0 -0
  814. /package/dist/components/{core → data-display}/KPI/KPI.theme.d.ts +0 -0
  815. /package/dist/components/{core → data-display}/Metric/Metric.d.ts +0 -0
  816. /package/dist/components/{core → data-display}/Metric/Metric.theme.d.ts +0 -0
  817. /package/dist/components/{core → data-display}/Metric/index.d.ts +0 -0
  818. /package/dist/components/{core → data-display}/Table/Table.animations.d.ts +0 -0
  819. /package/dist/components/{core → data-display}/Table/Table.animations.js +0 -0
  820. /package/dist/components/{core → data-display}/Table/Table.d.ts +0 -0
  821. /package/dist/components/{core → data-display}/Table/Table.filterUtils.d.ts +0 -0
  822. /package/dist/components/{core → data-display}/Table/Table.filterUtils.js +0 -0
  823. /package/dist/components/{core → data-display}/Table/Table.js +0 -0
  824. /package/dist/components/{core → data-display}/Table/Table.theme.d.ts +0 -0
  825. /package/dist/components/{core → data-display}/Table/Table.utils.d.ts +0 -0
  826. /package/dist/components/{core → data-display}/Table/Table.utils.js +0 -0
  827. /package/dist/components/{core → data-display}/Table/TableActions.d.ts +0 -0
  828. /package/dist/components/{core → data-display}/Table/TableActionsMenu.d.ts +0 -0
  829. /package/dist/components/{core → data-display}/Table/TableBody.d.ts +0 -0
  830. /package/dist/components/{core → data-display}/Table/TableBody.js +0 -0
  831. /package/dist/components/{core → data-display}/Table/TableCell.d.ts +0 -0
  832. /package/dist/components/{core → data-display}/Table/TableCell.js +0 -0
  833. /package/dist/components/{core → data-display}/Table/TableColumnManager.d.ts +0 -0
  834. /package/dist/components/{core → data-display}/Table/TableDeclarative.d.ts +0 -0
  835. /package/dist/components/{core → data-display}/Table/TableDeclarative.js +0 -0
  836. /package/dist/components/{core → data-display}/Table/TableFilter.d.ts +0 -0
  837. /package/dist/components/{core → data-display}/Table/TableHeader.d.ts +0 -0
  838. /package/dist/components/{core → data-display}/Table/TablePagination.d.ts +0 -0
  839. /package/dist/components/{core → data-display}/Table/TableRow.d.ts +0 -0
  840. /package/dist/components/{core → data-display}/Table/TableSelectionHeader.d.ts +0 -0
  841. /package/dist/components/{core → data-display}/Table/hooks/index.d.ts +0 -0
  842. /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.d.ts +0 -0
  843. /package/dist/components/{core → data-display}/Table/hooks/useTableColumns.js +0 -0
  844. /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.d.ts +0 -0
  845. /package/dist/components/{core → data-display}/Table/hooks/useTableExpansion.js +0 -0
  846. /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.d.ts +0 -0
  847. /package/dist/components/{core → data-display}/Table/hooks/useTableFilter.js +0 -0
  848. /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.d.ts +0 -0
  849. /package/dist/components/{core → data-display}/Table/hooks/useTablePagination.js +0 -0
  850. /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.d.ts +0 -0
  851. /package/dist/components/{core → data-display}/Table/hooks/useTableSelection.js +0 -0
  852. /package/dist/components/{core → data-display}/Table/index.d.ts +0 -0
  853. /package/dist/components/{core → data-display}/Table/index.js +0 -0
  854. /package/dist/components/{core → data-display}/Timeline/Timeline.animations.d.ts +0 -0
  855. /package/dist/components/{core → data-display}/Timeline/Timeline.animations.js +0 -0
  856. /package/dist/components/{core → data-display}/Timeline/Timeline.d.ts +0 -0
  857. /package/dist/components/{core → data-display}/Timeline/Timeline.js +0 -0
  858. /package/dist/components/{core → data-display}/Timeline/Timeline.theme.d.ts +0 -0
  859. /package/dist/components/{core → data-display}/Timeline/Timeline.types.d.ts +0 -0
  860. /package/dist/components/{core → data-display}/Timeline/TimelineContent.d.ts +0 -0
  861. /package/dist/components/{core → data-display}/Timeline/TimelineContent.js +0 -0
  862. /package/dist/components/{core → data-display}/Timeline/TimelineItem.d.ts +0 -0
  863. /package/dist/components/{core → data-display}/Timeline/TimelineItem.js +0 -0
  864. /package/dist/components/{core → data-display}/Timeline/TimelineMarker.d.ts +0 -0
  865. /package/dist/components/{core → data-display}/Timeline/index.d.ts +0 -0
@@ -154,6 +154,59 @@ export interface PromptInputProps extends Omit<React.HTMLAttributes<HTMLDivEleme
154
154
  submitButtonIcon?: React.ReactNode;
155
155
  /** Visual indicator for keyboard shortcut (not functional) */
156
156
  submitShortcut?: string;
157
+ /**
158
+ * Callback when stop button is clicked during loading state.
159
+ * When provided AND state="loading", the submit button becomes a stop button.
160
+ */
161
+ onStop?: () => void;
162
+ /**
163
+ * Enable inline voice recording mode.
164
+ * When true, clicking the voice button starts an inline recording UI
165
+ * instead of calling onVoiceClick.
166
+ * @default false
167
+ */
168
+ enableVoiceRecording?: boolean;
169
+ /**
170
+ * Called when the user confirms a voice recording
171
+ * @param audioBlob - The recorded audio as a Blob
172
+ */
173
+ onRecordingComplete?: (audioBlob: Blob) => void;
174
+ /**
175
+ * Called when the user cancels a voice recording
176
+ */
177
+ onRecordingCancel?: () => void;
178
+ /**
179
+ * Maximum recording duration in seconds (auto-stops at limit)
180
+ * @default 120
181
+ */
182
+ maxRecordingDuration?: number;
183
+ /**
184
+ * Enable drag-and-drop file attachment
185
+ * @default true
186
+ */
187
+ enableDropzone?: boolean;
188
+ /**
189
+ * Text displayed in the dropzone overlay (legacy, used as fallback for dropzoneTitle)
190
+ * @default "Drop files here to add to chat"
191
+ */
192
+ dropzoneText?: string;
193
+ /**
194
+ * Title text for the enhanced dropzone overlay.
195
+ * Supports **bold** markdown for the "browse" action word.
196
+ * Falls back to dropzoneText if not provided.
197
+ */
198
+ dropzoneTitle?: string;
199
+ /**
200
+ * Subtitle text for the enhanced dropzone overlay
201
+ */
202
+ dropzoneSubtitle?: string;
203
+ /**
204
+ * Layout variant
205
+ * - "default": stacked layout with footer toolbar below textarea
206
+ * - "simple": inline layout with submit button next to textarea, no footer
207
+ * @default "default"
208
+ */
209
+ variant?: "default" | "simple";
157
210
  /** Additional class name for the container (highest priority) */
158
211
  className?: string;
159
212
  /** Additional class name for the textarea element */
@@ -203,6 +256,16 @@ export interface PromptInputThemeOverrides {
203
256
  actionsStyle?: string;
204
257
  /** Style for the submit button */
205
258
  submitButtonStyle?: string;
259
+ /** Style for the dropzone overlay */
260
+ dropzoneStyle?: string;
261
+ /** Style for the dropzone title text */
262
+ dropzoneTitleStyle?: string;
263
+ /** Style for the dropzone subtitle text */
264
+ dropzoneSubtitleStyle?: string;
265
+ /** Style for the dropzone action icons row */
266
+ dropzoneActionsStyle?: string;
267
+ /** Style for the voice recorder container */
268
+ voiceRecorderStyle?: string;
206
269
  /** State-specific styles */
207
270
  states?: Partial<Record<PromptInputState, string>>;
208
271
  }
@@ -215,5 +278,10 @@ export interface PromptInputTheme {
215
278
  footerStyle: string;
216
279
  actionsStyle: string;
217
280
  submitButtonStyle: string;
281
+ dropzoneStyle: string;
282
+ dropzoneTitleStyle: string;
283
+ dropzoneSubtitleStyle: string;
284
+ dropzoneActionsStyle: string;
285
+ voiceRecorderStyle: string;
218
286
  states: Record<PromptInputState, string>;
219
287
  }
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { VoiceRecorderProps } from "./VoiceRecorder.types";
3
+ /**
4
+ * Internal voice recorder sub-component.
5
+ * Handles MediaRecorder lifecycle, timer display, and recording controls.
6
+ *
7
+ * Recording starts immediately on mount.
8
+ * Not exported from the library's public API.
9
+ */
10
+ export declare const VoiceRecorder: React.FC<VoiceRecorderProps>;
@@ -0,0 +1,181 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useRef, useCallback, useEffect } from 'react';
3
+ import { motion } from 'motion/react';
4
+ import { PlayIcon, PauseIcon, CheckIcon } from '@heroicons/react/24/outline';
5
+ import { cn } from '../../../utils/cn.js';
6
+ import { Button } from '../../core/Button/Button.js';
7
+
8
+ /**
9
+ * Format seconds into MM:SS display
10
+ */
11
+ const formatTime = (seconds) => {
12
+ const mins = Math.floor(seconds / 60);
13
+ const secs = seconds % 60;
14
+ return `${mins.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
15
+ };
16
+ /**
17
+ * Internal voice recorder sub-component.
18
+ * Handles MediaRecorder lifecycle, timer display, and recording controls.
19
+ *
20
+ * Recording starts immediately on mount.
21
+ * Not exported from the library's public API.
22
+ */
23
+ const VoiceRecorder = ({ onComplete, onCancel, maxDuration, className, }) => {
24
+ const [recordingState, setRecordingState] = useState("idle");
25
+ const [elapsed, setElapsed] = useState(0);
26
+ const mediaRecorderRef = useRef(null);
27
+ const chunksRef = useRef([]);
28
+ const timerRef = useRef(null);
29
+ const streamRef = useRef(null);
30
+ /**
31
+ * Clean up timer
32
+ */
33
+ const clearTimer = useCallback(() => {
34
+ if (timerRef.current) {
35
+ clearInterval(timerRef.current);
36
+ timerRef.current = null;
37
+ }
38
+ }, []);
39
+ /**
40
+ * Stop all media tracks and clean up
41
+ */
42
+ const cleanup = useCallback(() => {
43
+ clearTimer();
44
+ if (mediaRecorderRef.current &&
45
+ mediaRecorderRef.current.state !== "inactive") {
46
+ mediaRecorderRef.current.stop();
47
+ }
48
+ if (streamRef.current) {
49
+ streamRef.current.getTracks().forEach((track) => track.stop());
50
+ streamRef.current = null;
51
+ }
52
+ mediaRecorderRef.current = null;
53
+ }, [clearTimer]);
54
+ /**
55
+ * Start the recording timer
56
+ */
57
+ const startTimer = useCallback(() => {
58
+ clearTimer();
59
+ timerRef.current = setInterval(() => {
60
+ setElapsed((prev) => prev + 1);
61
+ }, 1000);
62
+ }, [clearTimer]);
63
+ /**
64
+ * Start recording immediately on mount
65
+ */
66
+ useEffect(() => {
67
+ let cancelled = false;
68
+ const startRecording = async () => {
69
+ try {
70
+ const stream = await navigator.mediaDevices.getUserMedia({
71
+ audio: true,
72
+ });
73
+ if (cancelled) {
74
+ stream.getTracks().forEach((t) => t.stop());
75
+ return;
76
+ }
77
+ streamRef.current = stream;
78
+ // Choose supported MIME type
79
+ const mimeType = MediaRecorder.isTypeSupported("audio/webm;codecs=opus")
80
+ ? "audio/webm;codecs=opus"
81
+ : MediaRecorder.isTypeSupported("audio/webm")
82
+ ? "audio/webm"
83
+ : "";
84
+ const recorder = new MediaRecorder(stream, mimeType ? { mimeType } : undefined);
85
+ mediaRecorderRef.current = recorder;
86
+ chunksRef.current = [];
87
+ recorder.ondataavailable = (e) => {
88
+ if (e.data.size > 0) {
89
+ chunksRef.current.push(e.data);
90
+ }
91
+ };
92
+ recorder.start(100); // collect data every 100ms
93
+ setRecordingState("recording");
94
+ startTimer();
95
+ }
96
+ catch (_a) {
97
+ if (process.env.NODE_ENV !== "production") {
98
+ // eslint-disable-next-line no-console
99
+ console.warn("[VoiceRecorder] Microphone access denied or unavailable.");
100
+ }
101
+ onCancel();
102
+ }
103
+ };
104
+ startRecording();
105
+ return () => {
106
+ cancelled = true;
107
+ cleanup();
108
+ };
109
+ // Only run on mount/unmount
110
+ // eslint-disable-next-line react-hooks/exhaustive-deps
111
+ }, []);
112
+ /**
113
+ * Auto-stop at max duration
114
+ */
115
+ useEffect(() => {
116
+ if (elapsed >= maxDuration && recordingState === "recording") {
117
+ handleConfirm();
118
+ }
119
+ // eslint-disable-next-line react-hooks/exhaustive-deps
120
+ }, [elapsed, maxDuration, recordingState]);
121
+ /**
122
+ * Handle cancel — stop recording and discard
123
+ */
124
+ const handleCancel = useCallback(() => {
125
+ cleanup();
126
+ chunksRef.current = [];
127
+ setRecordingState("idle");
128
+ onCancel();
129
+ }, [cleanup, onCancel]);
130
+ /**
131
+ * Handle confirm — stop recording and return blob
132
+ */
133
+ const handleConfirm = useCallback(() => {
134
+ if (!mediaRecorderRef.current) {
135
+ onCancel();
136
+ return;
137
+ }
138
+ const recorder = mediaRecorderRef.current;
139
+ recorder.onstop = () => {
140
+ const mimeType = recorder.mimeType || "audio/webm";
141
+ const blob = new Blob(chunksRef.current, { type: mimeType });
142
+ chunksRef.current = [];
143
+ if (streamRef.current) {
144
+ streamRef.current.getTracks().forEach((t) => t.stop());
145
+ streamRef.current = null;
146
+ }
147
+ onComplete(blob);
148
+ };
149
+ clearTimer();
150
+ if (recorder.state !== "inactive") {
151
+ recorder.stop();
152
+ }
153
+ setRecordingState("idle");
154
+ }, [clearTimer, onComplete, onCancel]);
155
+ /**
156
+ * Toggle pause/resume
157
+ */
158
+ const handleTogglePause = useCallback(() => {
159
+ const recorder = mediaRecorderRef.current;
160
+ if (!recorder)
161
+ return;
162
+ if (recordingState === "recording") {
163
+ recorder.pause();
164
+ clearTimer();
165
+ setRecordingState("paused");
166
+ }
167
+ else if (recordingState === "paused") {
168
+ recorder.resume();
169
+ startTimer();
170
+ setRecordingState("recording");
171
+ }
172
+ }, [recordingState, clearTimer, startTimer]);
173
+ return (jsxs("div", { className: cn("flex items-center justify-between w-full", className), children: [jsx(Button, { variant: "soft", color: "neutral", size: "sm", className: "rounded-full", onClick: handleCancel, "aria-label": "Cancel recording", children: "Cancel" }), jsxs("div", { className: "flex items-center gap-2.5", children: [jsx(motion.div, { className: "size-2.5 rounded-full bg-[var(--color-danger)]", animate: recordingState === "recording"
174
+ ? { opacity: [1, 0.3, 1] }
175
+ : { opacity: 0.5 }, transition: recordingState === "recording"
176
+ ? { duration: 1.2, repeat: Infinity, ease: "easeInOut" }
177
+ : undefined }), jsx("span", { className: "text-lg font-medium tabular-nums text-[var(--color-text-primary)] min-w-[3.5rem] text-center", children: formatTime(elapsed) })] }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button, { iconOnly: true, variant: "outline", color: "neutral", size: "sm", className: "rounded-full", onClick: handleTogglePause, "aria-label": recordingState === "paused" ? "Resume recording" : "Pause recording", children: recordingState === "paused" ? (jsx(PlayIcon, { className: "size-4", strokeWidth: 2 })) : (jsx(PauseIcon, { className: "size-4", strokeWidth: 2 })) }), jsx(Button, { iconOnly: true, variant: "filled", color: "primary", size: "sm", className: "rounded-full", onClick: handleConfirm, "aria-label": "Confirm recording", children: jsx(CheckIcon, { className: "size-4", strokeWidth: 2.5 }) })] })] }));
178
+ };
179
+ VoiceRecorder.displayName = "VoiceRecorder";
180
+
181
+ export { VoiceRecorder };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Recording state machine states
3
+ */
4
+ export type RecordingState = "idle" | "recording" | "paused";
5
+ /**
6
+ * Props for the internal VoiceRecorder sub-component
7
+ */
8
+ export interface VoiceRecorderProps {
9
+ /** Called when user confirms the recording */
10
+ onComplete: (audioBlob: Blob) => void;
11
+ /** Called when user cancels the recording */
12
+ onCancel: () => void;
13
+ /** Maximum recording duration in seconds (auto-stops at limit) */
14
+ maxDuration: number;
15
+ /** Theme class for the recorder container */
16
+ className?: string;
17
+ }
@@ -1,3 +1,4 @@
1
1
  export { PromptInput } from "./PromptInput";
2
2
  export type { PromptInputProps, PromptInputState, PromptInputTheme, PromptInputThemeOverrides, ModelOption, AttachmentItem, AttachmentError, } from "./PromptInput.types";
3
+ export type { RecordingState } from "./VoiceRecorder.types";
3
4
  export { promptInputTheme } from "./PromptInput.theme";
@@ -1,10 +1,10 @@
1
1
  const promptSuggestionTheme = {
2
- baseStyle: "inline-flex items-center gap-2 py-2 px-3.5 rounded-full " +
3
- "bg-white dark:bg-[var(--color-background)] " +
2
+ baseStyle: "inline-flex items-center gap-2 py-1 px-3 rounded-[var(--card-radius)] " +
3
+ "bg-[var(--color-surface)] " +
4
4
  "border border-[var(--color-border)] " +
5
- "text-sm font-medium text-[var(--color-text-primary)] " +
5
+ "text-base text-[var(--color-text-primary)] " +
6
6
  "cursor-pointer transition-all duration-300 " +
7
- "hover:bg-[var(--color-background-secondary)] dark:hover:bg-[var(--color-background-secondary)] " +
7
+ "hover:bg-[var(--color-background-secondary)] " +
8
8
  "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]",
9
9
  iconStyle: "size-4 flex-shrink-0",
10
10
  };
@@ -17,7 +17,7 @@ const tokenize = (text) => {
17
17
  * For performance, only the last N tokens are animated with motion.span,
18
18
  * while older tokens are rendered as static text.
19
19
  */
20
- const AnimatedText = ({ text, isStreaming, animateLastN = 6, enabled = true, className, }) => {
20
+ const AnimatedText = ({ text, isStreaming, animateLastN = 12, enabled = true, className, }) => {
21
21
  const shouldReduceMotion = useReducedMotion();
22
22
  const animate = enabled && !shouldReduceMotion;
23
23
  // Track which tokens have already been seen/animated
@@ -37,9 +37,9 @@ const AnimatedText = ({ text, isStreaming, animateLastN = 6, enabled = true, cla
37
37
  const animatedTokens = tokens.slice(settledCount);
38
38
  if (!animate || !isStreaming) {
39
39
  // No animation: render plain text
40
- return (jsx("p", { className: className || 'whitespace-pre-wrap break-words', children: text }));
40
+ return (jsx("p", { className: className || 'whitespace-pre-wrap wrap-break-word', children: text }));
41
41
  }
42
- return (jsxs("p", { className: className || 'whitespace-pre-wrap break-words', children: [settledText, animatedTokens.map((token, i) => (jsx(motion.span, { variants: tokenFadeIn, initial: "hidden", animate: "visible", transition: tokenTransition, style: { display: 'inline' }, children: token }, `${settledCount + i}-${token}`)))] }));
42
+ return (jsxs("p", { className: className || 'whitespace-pre-wrap wrap-break-word', children: [settledText, animatedTokens.map((token, i) => (jsx(motion.span, { variants: tokenFadeIn, initial: "hidden", animate: "visible", transition: tokenTransition, style: { display: 'inline' }, children: token }, `${settledCount + i}-${token}`)))] }));
43
43
  };
44
44
  AnimatedText.displayName = 'AnimatedText';
45
45
 
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * MarkdownRenderer Component
3
3
  * Renders markdown content with syntax highlighting for code blocks
4
- * Supports optional block-level slide-in animations during streaming
4
+ * Supports word-by-word fade-in animation during streaming
5
+ * and an inline cursor that appears at the end of the last text element
5
6
  */
6
7
  import React from 'react';
7
8
  import type { MarkdownOptions } from './StreamingResponse.types';
@@ -16,10 +17,12 @@ export interface MarkdownRendererProps {
16
17
  animated?: boolean;
17
18
  /** Show a blinking cursor at end of content while streaming */
18
19
  showCursor?: boolean;
20
+ /** Number of recent words to animate (default: 6) */
21
+ animateLastN?: number;
19
22
  }
20
23
  /**
21
24
  * MarkdownRenderer component for rendering markdown with syntax highlighting
22
25
  * Supports GitHub Flavored Markdown (tables, task lists, strikethrough, etc.)
23
- * Optionally animates block-level elements during streaming with slide-in effect
26
+ * Animates individual words during streaming with a fade-in + blur effect
24
27
  */
25
28
  export declare const MarkdownRenderer: React.FC<MarkdownRendererProps>;
@@ -1,16 +1,17 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { useMemo, useRef } from 'react';
2
+ import React__default, { useMemo, useRef } from 'react';
3
3
  import ReactMarkdown from 'react-markdown';
4
4
  import { Prism } from 'react-syntax-highlighter';
5
5
  import { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';
6
6
  import remarkGfm from 'remark-gfm';
7
7
  import { useReducedMotion, motion } from 'motion/react';
8
8
  import { blockTransition, blockSlideIn } from './StreamingResponse.animations.js';
9
- import { StreamingCursor } from './StreamingCursor.js';
9
+ import { WordAnimationProvider, useWordAnimation } from './WordAnimationContext.js';
10
10
 
11
11
  /**
12
12
  * Wrapper that optionally animates block-level elements during streaming.
13
13
  * Once an element has animated in, it stays static (no re-animation on re-render).
14
+ * Used for structural elements like code blocks and tables.
14
15
  */
15
16
  const AnimatedBlock = ({ children, animate, className, as = 'div' }) => {
16
17
  const hasAnimatedRef = useRef(false);
@@ -26,15 +27,38 @@ const AnimatedBlock = ({ children, animate, className, as = 'div' }) => {
26
27
  const MotionTag = as === 'p' ? motion.p : motion.div;
27
28
  return (jsx(MotionTag, { variants: blockSlideIn, initial: "hidden", animate: "visible", transition: blockTransition, className: className, children: children }));
28
29
  };
30
+ /**
31
+ * Prose wrapper — uses word-level animation from context for text elements.
32
+ * Falls back to plain rendering when animation is disabled.
33
+ */
34
+ const AnimatedProse = ({ children, className, as: tag = 'p', }) => {
35
+ const wordAnim = useWordAnimation();
36
+ const content = wordAnim ? wordAnim.processChildren(children) : children;
37
+ return React__default.createElement(tag, { className }, content);
38
+ };
39
+ /**
40
+ * Skip counter — counts words in non-prose children to keep counter in sync.
41
+ */
42
+ const SkipWords = ({ children }) => {
43
+ const wordAnim = useWordAnimation();
44
+ if (wordAnim) {
45
+ wordAnim.skipChildren(children);
46
+ }
47
+ return null;
48
+ };
29
49
  /**
30
50
  * MarkdownRenderer component for rendering markdown with syntax highlighting
31
51
  * Supports GitHub Flavored Markdown (tables, task lists, strikethrough, etc.)
32
- * Optionally animates block-level elements during streaming with slide-in effect
52
+ * Animates individual words during streaming with a fade-in + blur effect
33
53
  */
34
- const MarkdownRenderer = ({ content, options = {}, isStreaming = false, animated = true, showCursor = true, }) => {
54
+ const MarkdownRenderer = ({ content, options = {}, isStreaming = false, animated = true, showCursor = true, animateLastN = 12, }) => {
35
55
  const { allowHtml = false, syntaxTheme = 'light', renderCodeBlock } = options;
36
56
  const shouldReduceMotion = useReducedMotion();
37
57
  const shouldAnimate = animated && isStreaming && !shouldReduceMotion;
58
+ // Append cursor character to content so it renders inline within the last element
59
+ const displayContent = isStreaming && showCursor
60
+ ? content + ' ▏'
61
+ : content;
38
62
  const markdownComponents = useMemo(() => ({
39
63
  // Code blocks with syntax highlighting
40
64
  code({ inline, className, children, ...props }) {
@@ -42,82 +66,82 @@ const MarkdownRenderer = ({ content, options = {}, isStreaming = false, animated
42
66
  const language = match ? match[1] : '';
43
67
  // Use custom code block renderer if provided
44
68
  if (!inline && renderCodeBlock && language) {
45
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: renderCodeBlock(String(children).replace(/\n$/, ''), language) }));
69
+ return (jsxs(AnimatedBlock, { animate: shouldAnimate, children: [jsx(SkipWords, { children: children }), renderCodeBlock(String(children).replace(/\n$/, ''), language)] }));
46
70
  }
47
71
  // Render syntax-highlighted code block
48
72
  if (!inline && language) {
49
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx(Prism, { style: syntaxTheme === 'dark' ? oneDark : oneLight, language: language, PreTag: "div", className: "rounded-lg my-3", ...props, children: String(children).replace(/\n$/, '') }) }));
73
+ return (jsxs(AnimatedBlock, { animate: shouldAnimate, children: [jsx(SkipWords, { children: children }), jsx(Prism, { style: syntaxTheme === 'dark' ? oneDark : oneLight, language: language, PreTag: "div", className: "rounded-lg my-3", ...props, children: String(children).replace(/\n$/, '') })] }));
50
74
  }
51
- // Inline code
52
- return (jsx("code", { className: "bg-[var(--color-background-tertiary)] text-[var(--color-primary)] px-1.5 py-0.5 rounded text-sm font-mono", ...props, children: children }));
75
+ // Inline code — skip word animation for code tokens
76
+ return (jsxs(Fragment, { children: [jsx(SkipWords, { children: children }), jsx("code", { className: "bg-(--color-background-tertiary) text-(--color-primary) px-1.5 py-0.5 rounded text-base font-mono", ...props, children: children })] }));
53
77
  },
54
- // Paragraphs
78
+ // Paragraphs — word-level animation
55
79
  p({ children }) {
56
- return (jsx(AnimatedBlock, { animate: shouldAnimate, as: "p", className: "mb-3 last:mb-0 text-[var(--color-text-primary)] leading-relaxed", children: children }));
80
+ return (jsx(AnimatedProse, { as: "p", className: "mb-3 last:mb-0 text-(--color-text-primary) leading-relaxed", children: children }));
57
81
  },
58
- // Headings
82
+ // Headings — word-level animation
59
83
  h1({ children }) {
60
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("h1", { className: "text-2xl font-bold mb-4 text-[var(--color-text-primary)] border-b border-[var(--color-border)] pb-2", children: children }) }));
84
+ return (jsx(AnimatedProse, { as: "h1", className: "text-2xl font-bold mb-4 text-(--color-text-primary) border-b border-(--color-border) pb-2", children: children }));
61
85
  },
62
86
  h2({ children }) {
63
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("h2", { className: "text-xl font-bold mb-3 text-[var(--color-text-primary)] border-b border-[var(--color-border)] pb-2", children: children }) }));
87
+ return (jsx(AnimatedProse, { as: "h2", className: "text-2xl font-bold mb-3 text-(--color-text-primary) border-b border-(--color-border) pb-2", children: children }));
64
88
  },
65
89
  h3({ children }) {
66
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("h3", { className: "text-lg font-semibold mb-2 text-[var(--color-text-primary)]", children: children }) }));
90
+ return (jsx(AnimatedProse, { as: "h3", className: "text-xl font-semibold mb-2 text-(--color-text-primary)", children: children }));
67
91
  },
68
92
  h4({ children }) {
69
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("h4", { className: "text-base font-semibold mb-2 text-[var(--color-text-primary)]", children: children }) }));
93
+ return (jsx(AnimatedProse, { as: "h4", className: "text-lg font-semibold mb-2 text-(--color-text-primary)", children: children }));
70
94
  },
71
95
  h5({ children }) {
72
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("h5", { className: "text-sm font-semibold mb-2 text-[var(--color-text-primary)]", children: children }) }));
96
+ return (jsx(AnimatedProse, { as: "h5", className: "text-base font-semibold mb-2 text-(--color-text-primary)", children: children }));
73
97
  },
74
98
  h6({ children }) {
75
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("h6", { className: "text-sm font-semibold mb-2 text-[var(--color-text-secondary)]", children: children }) }));
99
+ return (jsx(AnimatedProse, { as: "h6", className: "text-base font-semibold mb-2 text-(--color-text-secondary)", children: children }));
76
100
  },
77
- // Lists
101
+ // Lists — word-level animation on li
78
102
  ul({ children }) {
79
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("ul", { className: "list-disc list-inside mb-3 space-y-1 text-[var(--color-text-primary)]", children: children }) }));
103
+ return (jsx("ul", { className: "list-disc list-inside mb-3 space-y-1 text-(--color-text-primary)", children: children }));
80
104
  },
81
105
  ol({ children }) {
82
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("ol", { className: "list-decimal list-inside mb-3 space-y-1 text-[var(--color-text-primary)]", children: children }) }));
106
+ return (jsx("ol", { className: "list-decimal list-inside mb-3 space-y-1 text-(--color-text-primary)", children: children }));
83
107
  },
84
108
  li({ children }) {
85
- return jsx("li", { className: "ml-4", children: children });
109
+ return (jsx(AnimatedProse, { as: "li", className: "ml-4", children: children }));
86
110
  },
87
- // Blockquotes
111
+ // Blockquotes — word-level animation
88
112
  blockquote({ children }) {
89
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("blockquote", { className: "border-l-4 border-[var(--color-primary)] pl-4 py-2 my-3 bg-[var(--color-background-secondary)] italic text-[var(--color-text-secondary)]", children: children }) }));
113
+ return (jsx("blockquote", { className: "border-l-4 border-(--color-primary) pl-4 py-2 my-3 bg-(--color-background-secondary) italic text-(--color-text-secondary)", children: children }));
90
114
  },
91
115
  // Links
92
116
  a({ href, children }) {
93
- return (jsx("a", { href: href, className: "text-[var(--color-primary)] hover:text-[var(--color-primary-700)] underline transition-colors", target: "_blank", rel: "noopener noreferrer", children: children }));
117
+ return (jsx("a", { href: href, className: "text-(--color-primary) hover:text-(--color-primary-700) underline transition-colors", target: "_blank", rel: "noopener noreferrer", children: children }));
94
118
  },
95
- // Tables (from remarkGfm)
119
+ // Tables block-level slide-in, skip word animation
96
120
  table({ children }) {
97
- return (jsx(AnimatedBlock, { animate: shouldAnimate, children: jsx("div", { className: "overflow-x-auto my-3", children: jsx("table", { className: "min-w-full border-collapse border border-[var(--color-border)]", children: children }) }) }));
121
+ return (jsxs(AnimatedBlock, { animate: shouldAnimate, children: [jsx(SkipWords, { children: children }), jsx("div", { className: "overflow-x-auto my-3", children: jsx("table", { className: "min-w-full border-collapse border border-(--color-border)", children: children }) })] }));
98
122
  },
99
123
  thead({ children }) {
100
- return jsx("thead", { className: "bg-[var(--color-background-secondary)]", children: children });
124
+ return jsx("thead", { className: "bg-(--color-background-secondary)", children: children });
101
125
  },
102
126
  tbody({ children }) {
103
127
  return jsx("tbody", { children: children });
104
128
  },
105
129
  tr({ children }) {
106
- return jsx("tr", { className: "border-b border-[var(--color-border)]", children: children });
130
+ return jsx("tr", { className: "border-b border-(--color-border)", children: children });
107
131
  },
108
132
  th({ children }) {
109
- return (jsx("th", { className: "px-4 py-2 text-left font-semibold text-[var(--color-text-primary)] border border-[var(--color-border)]", children: children }));
133
+ return (jsx("th", { className: "px-4 py-2 text-left font-semibold text-(--color-text-primary) border border-(--color-border)", children: children }));
110
134
  },
111
135
  td({ children }) {
112
- return (jsx("td", { className: "px-4 py-2 text-[var(--color-text-primary)] border border-[var(--color-border)]", children: children }));
136
+ return (jsx("td", { className: "px-4 py-2 text-(--color-text-primary) border border-(--color-border)", children: children }));
113
137
  },
114
138
  // Horizontal rule
115
139
  hr() {
116
- return jsx("hr", { className: "my-4 border-t border-[var(--color-border)]" });
140
+ return jsx("hr", { className: "my-4 border-t border-(--color-border)" });
117
141
  },
118
- // Strong/Bold
142
+ // Strong/Bold — pass through (word animation handles inline elements)
119
143
  strong({ children }) {
120
- return jsx("strong", { className: "font-semibold text-[var(--color-text-primary)]", children: children });
144
+ return jsx("strong", { className: "font-semibold text-(--color-text-primary)", children: children });
121
145
  },
122
146
  // Emphasis/Italic
123
147
  em({ children }) {
@@ -125,10 +149,10 @@ const MarkdownRenderer = ({ content, options = {}, isStreaming = false, animated
125
149
  },
126
150
  // Strikethrough (from remarkGfm)
127
151
  del({ children }) {
128
- return jsx("del", { className: "line-through text-[var(--color-text-secondary)]", children: children });
152
+ return jsx("del", { className: "line-through text-(--color-text-secondary)", children: children });
129
153
  },
130
154
  }), [shouldAnimate, syntaxTheme, renderCodeBlock]);
131
- return (jsxs(Fragment, { children: [jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], skipHtml: !allowHtml, components: markdownComponents, children: content }), jsx(StreamingCursor, { visible: isStreaming && showCursor, enabled: animated })] }));
155
+ return (jsx(WordAnimationProvider, { content: displayContent, enabled: shouldAnimate, animateLastN: animateLastN, hasCursor: isStreaming && showCursor, children: jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], skipHtml: !allowHtml, components: markdownComponents, children: displayContent }) }));
132
156
  };
133
157
  MarkdownRenderer.displayName = 'MarkdownRenderer';
134
158
 
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * StreamingCursor Component
3
- * Animated blinking cursor shown at the end of streaming text
3
+ * Simple blinking cursor shown at the end of streaming text
4
4
  */
5
- import React from 'react';
5
+ import React from "react";
6
6
  export interface StreamingCursorProps {
7
7
  /** Whether the cursor is visible (typically while streaming) */
8
8
  visible: boolean;
@@ -14,8 +14,7 @@ export interface StreamingCursorProps {
14
14
  className?: string;
15
15
  }
16
16
  /**
17
- * StreamingCursor renders an animated blinking caret
18
- * that indicates active streaming. Automatically respects
19
- * reduced motion preferences.
17
+ * StreamingCursor renders a blinking caret that indicates active streaming.
18
+ * Uses a simple CSS pulse animation — no framer motion, no layout shifts.
20
19
  */
21
20
  export declare const StreamingCursor: React.FC<StreamingCursorProps>;
@@ -1,21 +1,14 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useReducedMotion, motion } from 'motion/react';
3
- import { cursorPulse } from './StreamingResponse.animations.js';
4
2
 
5
3
  /**
6
- * StreamingCursor renders an animated blinking caret
7
- * that indicates active streaming. Automatically respects
8
- * reduced motion preferences.
4
+ * StreamingCursor renders a blinking caret that indicates active streaming.
5
+ * Uses a simple CSS pulse animation — no framer motion, no layout shifts.
9
6
  */
10
- const StreamingCursor = ({ visible, enabled = true, cursor = '▍', className, }) => {
11
- const shouldReduceMotion = useReducedMotion();
7
+ const StreamingCursor = ({ visible, enabled = true, cursor = "▏", className, }) => {
12
8
  if (!visible)
13
9
  return null;
14
- if (!enabled || shouldReduceMotion) {
15
- return (jsx("span", { className: className || 'text-[var(--color-primary)] font-light ml-0.5', "aria-hidden": "true", children: cursor }));
16
- }
17
- return (jsx(motion.span, { variants: cursorPulse, animate: "pulse", className: className || 'text-[var(--color-primary)] font-light ml-0.5 inline-block', "aria-hidden": "true", children: cursor }));
10
+ return (jsx("span", { className: className || `font-extralight ml-0.5 ${enabled ? "animate-pulse" : ""}`, "aria-hidden": "true", children: cursor }));
18
11
  };
19
- StreamingCursor.displayName = 'StreamingCursor';
12
+ StreamingCursor.displayName = "StreamingCursor";
20
13
 
21
14
  export { StreamingCursor };
@@ -20,6 +20,13 @@ export declare const blockTransition: Transition;
20
20
  * Pulses while streaming is active
21
21
  */
22
22
  export declare const cursorPulse: Variants;
23
+ /**
24
+ * Inline token fade-in animation
25
+ * Used for word-by-word animation inside markdown prose elements
26
+ * No y-movement to prevent layout jitter in inline text
27
+ */
28
+ export declare const inlineTokenFadeIn: Variants;
29
+ export declare const inlineTokenTransition: Transition;
23
30
  /**
24
31
  * Container animation for staggered children
25
32
  */