@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
@@ -0,0 +1,607 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import React__default, { useMemo, useState, useRef, useEffect, useCallback, useLayoutEffect } from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import { AnimatePresence, motion } from 'motion/react';
5
+ import { mentionTheme } from './Mention.theme.js';
6
+ import { cn } from '../../../utils/cn.js';
7
+ import { Avatar } from '../../core/Avatar/Avatar.js';
8
+ import { Tag } from '../../core/Tag/Tag.js';
9
+ import { useIsClient } from '../../../hooks/useIsClient.js';
10
+ import { normalizeSegments, setCaretAtOffset, getPlainTextOffset, parseDOMToSegments, serializeSegments, serializeSegmentsMasked, insertMentionIntoSegments, MENTION_ATTR } from './Mention.utils.js';
11
+
12
+ // ---------------------------------------------------------------------------
13
+ // Helpers
14
+ // ---------------------------------------------------------------------------
15
+ const detectActiveMention = (text, caretPos, triggerChars) => {
16
+ if (caretPos === 0)
17
+ return null;
18
+ for (let i = caretPos - 1; i >= 0; i--) {
19
+ const ch = text[i];
20
+ if (ch === "\n")
21
+ return null;
22
+ if (triggerChars.includes(ch)) {
23
+ if (i === 0 || /\s/.test(text[i - 1])) {
24
+ const query = text.slice(i + 1, caretPos);
25
+ return { trigger: ch, query, startIndex: i };
26
+ }
27
+ return null;
28
+ }
29
+ }
30
+ return null;
31
+ };
32
+ const filterSuggestions = (suggestions, query, max) => {
33
+ if (!query)
34
+ return suggestions.slice(0, max);
35
+ const lower = query.toLowerCase();
36
+ return suggestions
37
+ .filter((s) => s.label.toLowerCase().includes(lower) ||
38
+ (s.description && s.description.toLowerCase().includes(lower)))
39
+ .slice(0, max);
40
+ };
41
+ /** Plain-text offset at the start of a given segment index. */
42
+ const getOffsetAtSegment = (segs, segIndex) => {
43
+ let offset = 0;
44
+ for (let i = 0; i < segIndex; i++) {
45
+ const s = segs[i];
46
+ if (s.type === "text") {
47
+ offset += s.text.length;
48
+ }
49
+ else {
50
+ offset += s.data.trigger.length + s.data.label.length;
51
+ }
52
+ }
53
+ return offset;
54
+ };
55
+ // ---------------------------------------------------------------------------
56
+ // Dropdown animation
57
+ // ---------------------------------------------------------------------------
58
+ const dropdownVariants = {
59
+ initial: { opacity: 0, y: -6, scale: 0.96 },
60
+ visible: {
61
+ opacity: 1,
62
+ y: 0,
63
+ scale: 1,
64
+ transition: { duration: 0.18, ease: "easeOut" },
65
+ },
66
+ exit: {
67
+ opacity: 0,
68
+ y: -6,
69
+ scale: 0.96,
70
+ transition: { duration: 0.12, ease: "easeIn" },
71
+ },
72
+ };
73
+ // ---------------------------------------------------------------------------
74
+ // Mention component
75
+ // ---------------------------------------------------------------------------
76
+ const Mention = React__default.forwardRef(({ triggers: triggersProp, suggestions: suggestionsProp, onSearch: onSearchProp, value: controlledValue, defaultValue = "", onChange, onMentionSelect, onMentionsChange, placeholder, size = "md", maxSuggestions = 8, className, wrapperClassName, dropdownClassName, theme: themeOverrides, disabled = false, renderSuggestion, emptyMessage = "No results found", loading = false, mentionTagSize = "sm", mentionTagClassName, rows = 3, ...props }, ref) => {
77
+ const theme = useMemo(() => ({ ...mentionTheme, ...(themeOverrides || {}) }), [themeOverrides]);
78
+ const triggers = useMemo(() => {
79
+ if (triggersProp && triggersProp.length > 0)
80
+ return triggersProp;
81
+ return [
82
+ {
83
+ trigger: "@",
84
+ suggestions: suggestionsProp || [],
85
+ onSearch: onSearchProp,
86
+ },
87
+ ];
88
+ }, [triggersProp, suggestionsProp, onSearchProp]);
89
+ const triggerChars = useMemo(() => triggers.map((t) => t.trigger), [triggers]);
90
+ // --- Segment model ---
91
+ const [segments, setSegments] = useState(() => normalizeSegments([{ type: "text", text: defaultValue }]));
92
+ const mentionMapRef = useRef(new Map());
93
+ // Controlled mode: if external value diverges, reset segments to plain text
94
+ const lastSerializedRef = useRef(defaultValue);
95
+ const isControlled = controlledValue !== undefined;
96
+ useEffect(() => {
97
+ if (isControlled && controlledValue !== lastSerializedRef.current) {
98
+ // External value changed — reset to plain text
99
+ const newSegs = normalizeSegments([
100
+ { type: "text", text: controlledValue },
101
+ ]);
102
+ setSegments(newSegs);
103
+ mentionMapRef.current.clear();
104
+ lastSerializedRef.current = controlledValue;
105
+ }
106
+ }, [isControlled, controlledValue]);
107
+ // Focus state
108
+ const [isFocused, setIsFocused] = useState(false);
109
+ // Active mention context
110
+ const [activeMention, setActiveMention] = useState(null);
111
+ const [highlightedIndex, setHighlightedIndex] = useState(-1);
112
+ // Dropdown position
113
+ const [dropdownPos, setDropdownPos] = useState({
114
+ top: -9999,
115
+ left: -9999,
116
+ width: 280,
117
+ });
118
+ // Refs
119
+ const editableRef = useRef(null);
120
+ const wrapperRef = useRef(null);
121
+ const dropdownRef = useRef(null);
122
+ const composingRef = useRef(false);
123
+ const caretRestoreRef = useRef(null);
124
+ // Track which segment index is "selected" when clicking a mention tag
125
+ const [selectedMentionIndex, setSelectedMentionIndex] = useState(null);
126
+ const isClient = useIsClient();
127
+ const setEditableRef = useCallback((el) => {
128
+ editableRef.current = el;
129
+ if (typeof ref === "function") {
130
+ ref(el);
131
+ }
132
+ else if (ref) {
133
+ ref.current = el;
134
+ }
135
+ }, [ref]);
136
+ // --- Derived ---
137
+ const activeTriggerConfig = useMemo(() => {
138
+ if (!activeMention)
139
+ return null;
140
+ return triggers.find((t) => t.trigger === activeMention.trigger) || null;
141
+ }, [activeMention, triggers]);
142
+ const filteredSuggestions = useMemo(() => {
143
+ if (!activeTriggerConfig)
144
+ return [];
145
+ return filterSuggestions(activeTriggerConfig.suggestions, (activeMention === null || activeMention === void 0 ? void 0 : activeMention.query) || "", maxSuggestions);
146
+ }, [activeTriggerConfig, activeMention === null || activeMention === void 0 ? void 0 : activeMention.query, maxSuggestions]);
147
+ const isDropdownOpen = activeMention !== null && (filteredSuggestions.length > 0 || loading);
148
+ // Fire onSearch when query changes
149
+ useEffect(() => {
150
+ if (!activeMention || !(activeTriggerConfig === null || activeTriggerConfig === void 0 ? void 0 : activeTriggerConfig.onSearch))
151
+ return;
152
+ activeTriggerConfig.onSearch(activeMention.query);
153
+ }, [activeMention === null || activeMention === void 0 ? void 0 : activeMention.query, activeMention === null || activeMention === void 0 ? void 0 : activeMention.trigger]); // eslint-disable-line react-hooks/exhaustive-deps
154
+ // Reset highlighted index when suggestions change
155
+ useEffect(() => {
156
+ setHighlightedIndex(filteredSuggestions.length > 0 ? 0 : -1);
157
+ }, [filteredSuggestions.length, activeMention === null || activeMention === void 0 ? void 0 : activeMention.query]);
158
+ // --- Notify onMentionsChange ---
159
+ const notifyMentionsChange = useCallback((segs) => {
160
+ if (!onMentionsChange)
161
+ return;
162
+ const mentions = segs
163
+ .filter((s) => s.type === "mention")
164
+ .map((s) => s.data);
165
+ onMentionsChange(mentions);
166
+ }, [onMentionsChange]);
167
+ // --- Dropdown positioning via Range API ---
168
+ const updateDropdownPosition = useCallback(() => {
169
+ const sel = window.getSelection();
170
+ if (!sel || sel.rangeCount === 0 || !editableRef.current)
171
+ return;
172
+ const range = sel.getRangeAt(0).cloneRange();
173
+ range.collapse(true);
174
+ const rect = range.getBoundingClientRect();
175
+ // Fallback if rect is zero (e.g. empty container)
176
+ if (rect.top === 0 && rect.left === 0) {
177
+ const containerRect = editableRef.current.getBoundingClientRect();
178
+ setDropdownPos({
179
+ top: containerRect.bottom + 4,
180
+ left: containerRect.left,
181
+ width: 280,
182
+ });
183
+ return;
184
+ }
185
+ setDropdownPos({
186
+ top: rect.bottom + 4,
187
+ left: rect.left,
188
+ width: 280,
189
+ });
190
+ }, []);
191
+ useLayoutEffect(() => {
192
+ if (activeMention) {
193
+ updateDropdownPosition();
194
+ }
195
+ }, [activeMention, updateDropdownPosition]);
196
+ // Reposition on scroll / resize
197
+ useEffect(() => {
198
+ if (!isDropdownOpen)
199
+ return;
200
+ const handleReposition = () => updateDropdownPosition();
201
+ window.addEventListener("scroll", handleReposition, {
202
+ passive: true,
203
+ capture: true,
204
+ });
205
+ window.addEventListener("resize", handleReposition, { passive: true });
206
+ return () => {
207
+ window.removeEventListener("scroll", handleReposition, true);
208
+ window.removeEventListener("resize", handleReposition);
209
+ };
210
+ }, [isDropdownOpen, updateDropdownPosition]);
211
+ // Click outside to close dropdown
212
+ useEffect(() => {
213
+ if (!isDropdownOpen)
214
+ return;
215
+ const handleClickOutside = (e) => {
216
+ if (dropdownRef.current &&
217
+ !dropdownRef.current.contains(e.target) &&
218
+ editableRef.current &&
219
+ !editableRef.current.contains(e.target)) {
220
+ setActiveMention(null);
221
+ }
222
+ };
223
+ document.addEventListener("mousedown", handleClickOutside);
224
+ return () => document.removeEventListener("mousedown", handleClickOutside);
225
+ }, [isDropdownOpen]);
226
+ // --- DOM cleanup & caret restore after React re-render ---
227
+ useLayoutEffect(() => {
228
+ const el = editableRef.current;
229
+ if (!el || composingRef.current)
230
+ return;
231
+ // Remove stray text nodes that are direct children of the container.
232
+ // Browser contentEditable can insert characters as direct text children
233
+ // instead of inside our React-managed <span> elements. These stray nodes
234
+ // cause text duplication when parseDOMToSegments reads them alongside
235
+ // the span content on the next input event.
236
+ for (let i = el.childNodes.length - 1; i >= 0; i--) {
237
+ const child = el.childNodes[i];
238
+ if (child.nodeType === Node.TEXT_NODE) {
239
+ el.removeChild(child);
240
+ }
241
+ }
242
+ if (caretRestoreRef.current !== null) {
243
+ setCaretAtOffset(el, caretRestoreRef.current);
244
+ caretRestoreRef.current = null;
245
+ }
246
+ });
247
+ // --- Handlers ---
248
+ const updateFromDOM = useCallback(() => {
249
+ if (!editableRef.current || composingRef.current)
250
+ return;
251
+ // Save caret position BEFORE triggering re-render
252
+ const offset = getPlainTextOffset(editableRef.current);
253
+ const newSegs = parseDOMToSegments(editableRef.current, mentionMapRef.current);
254
+ const serialized = serializeSegments(newSegs);
255
+ // Restore caret after React re-renders the contentEditable
256
+ if (offset !== null) {
257
+ caretRestoreRef.current = offset;
258
+ }
259
+ setSegments(newSegs);
260
+ lastSerializedRef.current = serialized;
261
+ if (!isControlled) {
262
+ onChange === null || onChange === void 0 ? void 0 : onChange(serialized);
263
+ }
264
+ else {
265
+ onChange === null || onChange === void 0 ? void 0 : onChange(serialized);
266
+ }
267
+ notifyMentionsChange(newSegs);
268
+ // Detect active mention using masked text (hides @ from existing mentions)
269
+ if (offset !== null) {
270
+ const maskedText = serializeSegmentsMasked(newSegs);
271
+ const mention = detectActiveMention(maskedText, offset, triggerChars);
272
+ setActiveMention(mention);
273
+ }
274
+ }, [isControlled, onChange, triggerChars, notifyMentionsChange]);
275
+ const handleInput = useCallback(() => {
276
+ setSelectedMentionIndex(null);
277
+ updateFromDOM();
278
+ }, [updateFromDOM]);
279
+ const handleSelect = useCallback(() => {
280
+ if (!editableRef.current || composingRef.current)
281
+ return;
282
+ const offset = getPlainTextOffset(editableRef.current);
283
+ if (offset !== null) {
284
+ const maskedText = serializeSegmentsMasked(segments);
285
+ const mention = detectActiveMention(maskedText, offset, triggerChars);
286
+ setActiveMention(mention);
287
+ }
288
+ }, [segments, triggerChars]);
289
+ const insertMention = useCallback((suggestion) => {
290
+ if (!activeMention || !editableRef.current)
291
+ return;
292
+ const { trigger, startIndex, query } = activeMention;
293
+ const replaceLength = 1 + query.length; // trigger + query
294
+ const mentionData = {
295
+ id: suggestion.id,
296
+ label: suggestion.label,
297
+ trigger,
298
+ avatar: suggestion.avatar,
299
+ };
300
+ // Store in mention map for DOM parsing
301
+ mentionMapRef.current.set(suggestion.id, mentionData);
302
+ const newSegs = insertMentionIntoSegments(segments, mentionData, startIndex, replaceLength);
303
+ const serialized = serializeSegments(newSegs);
304
+ lastSerializedRef.current = serialized;
305
+ // Calculate where caret should go: after trigger+label+space
306
+ const caretPos = startIndex + trigger.length + suggestion.label.length + 1;
307
+ caretRestoreRef.current = caretPos;
308
+ setSegments(newSegs);
309
+ setActiveMention(null);
310
+ setHighlightedIndex(-1);
311
+ onChange === null || onChange === void 0 ? void 0 : onChange(serialized);
312
+ notifyMentionsChange(newSegs);
313
+ onMentionSelect === null || onMentionSelect === void 0 ? void 0 : onMentionSelect(suggestion, trigger);
314
+ }, [
315
+ activeMention,
316
+ segments,
317
+ onChange,
318
+ onMentionSelect,
319
+ notifyMentionsChange,
320
+ ]);
321
+ const handleKeyDown = useCallback((e) => {
322
+ var _a, _b, _c, _d, _e;
323
+ // --- Selected mention: delete / replace / deselect ---
324
+ if (selectedMentionIndex !== null &&
325
+ ((_a = segments[selectedMentionIndex]) === null || _a === void 0 ? void 0 : _a.type) === "mention") {
326
+ if (e.key === "Backspace" || e.key === "Delete") {
327
+ e.preventDefault();
328
+ const newSegs = normalizeSegments([
329
+ ...segments.slice(0, selectedMentionIndex),
330
+ ...segments.slice(selectedMentionIndex + 1),
331
+ ]);
332
+ caretRestoreRef.current = getOffsetAtSegment(segments, selectedMentionIndex);
333
+ const serialized = serializeSegments(newSegs);
334
+ lastSerializedRef.current = serialized;
335
+ setSegments(newSegs);
336
+ setSelectedMentionIndex(null);
337
+ onChange === null || onChange === void 0 ? void 0 : onChange(serialized);
338
+ notifyMentionsChange(newSegs);
339
+ return;
340
+ }
341
+ // Printable character → remove mention and insert the character
342
+ if (e.key.length === 1 && !e.ctrlKey && !e.metaKey) {
343
+ e.preventDefault();
344
+ const newSegs = normalizeSegments([
345
+ ...segments.slice(0, selectedMentionIndex),
346
+ { type: "text", text: e.key },
347
+ ...segments.slice(selectedMentionIndex + 1),
348
+ ]);
349
+ caretRestoreRef.current =
350
+ getOffsetAtSegment(segments, selectedMentionIndex) + 1;
351
+ const serialized = serializeSegments(newSegs);
352
+ lastSerializedRef.current = serialized;
353
+ setSegments(newSegs);
354
+ setSelectedMentionIndex(null);
355
+ onChange === null || onChange === void 0 ? void 0 : onChange(serialized);
356
+ notifyMentionsChange(newSegs);
357
+ return;
358
+ }
359
+ // Arrow keys / Escape → just deselect
360
+ if (e.key.startsWith("Arrow") || e.key === "Escape") {
361
+ setSelectedMentionIndex(null);
362
+ return;
363
+ }
364
+ }
365
+ // --- Dropdown navigation ---
366
+ if (isDropdownOpen) {
367
+ switch (e.key) {
368
+ case "ArrowDown":
369
+ e.preventDefault();
370
+ setHighlightedIndex((prev) => prev >= filteredSuggestions.length - 1 ? 0 : prev + 1);
371
+ return;
372
+ case "ArrowUp":
373
+ e.preventDefault();
374
+ setHighlightedIndex((prev) => prev <= 0 ? filteredSuggestions.length - 1 : prev - 1);
375
+ return;
376
+ case "Enter":
377
+ if (highlightedIndex >= 0 &&
378
+ highlightedIndex < filteredSuggestions.length) {
379
+ e.preventDefault();
380
+ insertMention(filteredSuggestions[highlightedIndex]);
381
+ }
382
+ return;
383
+ case "Escape":
384
+ e.preventDefault();
385
+ setActiveMention(null);
386
+ return;
387
+ case "Tab":
388
+ setActiveMention(null);
389
+ return;
390
+ }
391
+ }
392
+ // --- Backspace into mention (atomic delete) ---
393
+ if (e.key === "Backspace" && editableRef.current) {
394
+ const sel = window.getSelection();
395
+ if (!sel || sel.rangeCount === 0)
396
+ return;
397
+ const range = sel.getRangeAt(0);
398
+ if (!range.collapsed)
399
+ return; // Let browser handle selection delete
400
+ const { startContainer, startOffset } = range;
401
+ // Case 1: Caret in a text node at offset 0, previous sibling is a mention
402
+ if (startContainer.nodeType === Node.TEXT_NODE && startOffset === 0) {
403
+ const prevSibling = startContainer.previousSibling;
404
+ if (prevSibling &&
405
+ prevSibling.nodeType === Node.ELEMENT_NODE &&
406
+ prevSibling.hasAttribute(MENTION_ATTR)) {
407
+ e.preventDefault();
408
+ (_b = prevSibling.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(prevSibling);
409
+ updateFromDOM();
410
+ return;
411
+ }
412
+ }
413
+ // Case 2: Caret in parent element, child before offset is a mention
414
+ if (startContainer.nodeType === Node.ELEMENT_NODE &&
415
+ startOffset > 0) {
416
+ const children = Array.from(startContainer.childNodes);
417
+ const prevChild = children[startOffset - 1];
418
+ if (prevChild &&
419
+ prevChild.nodeType === Node.ELEMENT_NODE &&
420
+ prevChild.hasAttribute(MENTION_ATTR)) {
421
+ e.preventDefault();
422
+ (_c = prevChild.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(prevChild);
423
+ updateFromDOM();
424
+ return;
425
+ }
426
+ }
427
+ }
428
+ // --- Delete into mention (atomic delete) ---
429
+ if (e.key === "Delete" && editableRef.current) {
430
+ const sel = window.getSelection();
431
+ if (!sel || sel.rangeCount === 0)
432
+ return;
433
+ const range = sel.getRangeAt(0);
434
+ if (!range.collapsed)
435
+ return;
436
+ const { startContainer, startOffset } = range;
437
+ if (startContainer.nodeType === Node.TEXT_NODE) {
438
+ const textLen = (startContainer.textContent || "").length;
439
+ if (startOffset === textLen) {
440
+ const nextSibling = startContainer.nextSibling;
441
+ if (nextSibling &&
442
+ nextSibling.nodeType === Node.ELEMENT_NODE &&
443
+ nextSibling.hasAttribute(MENTION_ATTR)) {
444
+ e.preventDefault();
445
+ (_d = nextSibling.parentNode) === null || _d === void 0 ? void 0 : _d.removeChild(nextSibling);
446
+ updateFromDOM();
447
+ return;
448
+ }
449
+ }
450
+ }
451
+ if (startContainer.nodeType === Node.ELEMENT_NODE) {
452
+ const children = Array.from(startContainer.childNodes);
453
+ const nextChild = children[startOffset];
454
+ if (nextChild &&
455
+ nextChild.nodeType === Node.ELEMENT_NODE &&
456
+ nextChild.hasAttribute(MENTION_ATTR)) {
457
+ e.preventDefault();
458
+ (_e = nextChild.parentNode) === null || _e === void 0 ? void 0 : _e.removeChild(nextChild);
459
+ updateFromDOM();
460
+ return;
461
+ }
462
+ }
463
+ }
464
+ // Prevent Enter from creating <div> - insert <br> or \n instead
465
+ if (e.key === "Enter" && !e.shiftKey && !isDropdownOpen) {
466
+ e.preventDefault();
467
+ document.execCommand("insertLineBreak");
468
+ }
469
+ }, [
470
+ isDropdownOpen,
471
+ highlightedIndex,
472
+ filteredSuggestions,
473
+ insertMention,
474
+ updateFromDOM,
475
+ selectedMentionIndex,
476
+ segments,
477
+ onChange,
478
+ notifyMentionsChange,
479
+ ]);
480
+ const handlePaste = useCallback((e) => {
481
+ e.preventDefault();
482
+ const text = e.clipboardData.getData("text/plain");
483
+ document.execCommand("insertText", false, text);
484
+ }, []);
485
+ const handleFocus = useCallback((e) => {
486
+ var _a;
487
+ setIsFocused(true);
488
+ (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);
489
+ }, [props.onFocus]);
490
+ const handleBlur = useCallback((e) => {
491
+ var _a;
492
+ setSelectedMentionIndex(null);
493
+ setIsFocused(false);
494
+ (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
495
+ }, [props.onBlur]);
496
+ const handleCompositionStart = useCallback(() => {
497
+ composingRef.current = true;
498
+ }, []);
499
+ const handleCompositionEnd = useCallback(() => {
500
+ composingRef.current = false;
501
+ updateFromDOM();
502
+ }, [updateFromDOM]);
503
+ // Click on a mention tag → mark its segment index as selected
504
+ const handleClick = useCallback((e) => {
505
+ var _a;
506
+ const target = e.target;
507
+ const mentionEl = (_a = target.closest) === null || _a === void 0 ? void 0 : _a.call(target, `[${MENTION_ATTR}]`);
508
+ if (!mentionEl || !editableRef.current) {
509
+ setSelectedMentionIndex(null);
510
+ return;
511
+ }
512
+ // Find which DOM mention this is (nth occurrence)
513
+ const allMentions = editableRef.current.querySelectorAll(`[${MENTION_ATTR}]`);
514
+ const domIdx = Array.from(allMentions).indexOf(mentionEl);
515
+ if (domIdx === -1) {
516
+ setSelectedMentionIndex(null);
517
+ return;
518
+ }
519
+ // Map nth DOM mention → segment index
520
+ let count = 0;
521
+ for (let i = 0; i < segments.length; i++) {
522
+ if (segments[i].type === "mention") {
523
+ if (count === domIdx) {
524
+ setSelectedMentionIndex(i);
525
+ return;
526
+ }
527
+ count++;
528
+ }
529
+ }
530
+ setSelectedMentionIndex(null);
531
+ }, [segments]);
532
+ // Scroll highlighted suggestion into view
533
+ useEffect(() => {
534
+ if (highlightedIndex >= 0 && dropdownRef.current) {
535
+ const item = dropdownRef.current.querySelector(`[data-suggestion-index="${highlightedIndex}"]`);
536
+ if (item) {
537
+ item.scrollIntoView({ block: "nearest" });
538
+ }
539
+ }
540
+ }, [highlightedIndex]);
541
+ // --- Check if content is empty for placeholder ---
542
+ const isContentEmpty = useMemo(() => {
543
+ return segments.every((s) => s.type === "text" && s.text === "");
544
+ }, [segments]);
545
+ // -----------------------------------------------------------------------
546
+ // Render segments as React children
547
+ // -----------------------------------------------------------------------
548
+ const renderedSegments = useMemo(() => {
549
+ return segments.map((seg, i) => {
550
+ if (seg.type === "text") {
551
+ return (jsx("span", { "data-segment": "text", children: seg.text || (i === 0 ? "" : "") }, `text-${i}`));
552
+ }
553
+ return (jsx(Tag, { size: mentionTagSize, removable: false, avatar: seg.data.avatar
554
+ ? { src: seg.data.avatar, name: seg.data.label }
555
+ : undefined, contentEditable: false, className: cn(theme.mentionTagStyle, i === selectedMentionIndex &&
556
+ "ring-2 ring-[var(--color-primary)] ring-offset-1", mentionTagClassName), [MENTION_ATTR]: seg.data.id,
557
+ "data-mention-label": seg.data.label,
558
+ "data-mention-trigger": seg.data.trigger, children: seg.data.label }, `mention-${seg.data.id}-${i}`));
559
+ });
560
+ }, [
561
+ segments,
562
+ mentionTagSize,
563
+ mentionTagClassName,
564
+ theme.mentionTagStyle,
565
+ selectedMentionIndex,
566
+ ]);
567
+ // -----------------------------------------------------------------------
568
+ // Render suggestion item
569
+ // -----------------------------------------------------------------------
570
+ const renderSuggestionItem = (suggestion, index) => {
571
+ const isHighlighted = index === highlightedIndex;
572
+ const triggerChar = (activeMention === null || activeMention === void 0 ? void 0 : activeMention.trigger) || "@";
573
+ if (renderSuggestion) {
574
+ return (jsx("div", { role: "option", "aria-selected": isHighlighted, "data-suggestion-index": index, className: cn(theme.suggestionStyle, isHighlighted && theme.suggestionHighlightedStyle), onMouseEnter: () => setHighlightedIndex(index), onMouseDown: (e) => {
575
+ e.preventDefault();
576
+ insertMention(suggestion);
577
+ }, children: renderSuggestion(suggestion, isHighlighted, triggerChar) }, suggestion.id));
578
+ }
579
+ return (jsxs("div", { role: "option", "aria-selected": isHighlighted, "data-suggestion-index": index, className: cn(theme.suggestionStyle, isHighlighted && theme.suggestionHighlightedStyle), onMouseEnter: () => setHighlightedIndex(index), onMouseDown: (e) => {
580
+ e.preventDefault();
581
+ insertMention(suggestion);
582
+ }, children: [jsx(Avatar, { src: suggestion.avatar, name: suggestion.label, size: "xs", className: "ring-0 border-0" }), jsxs("div", { className: "flex flex-col min-w-0", children: [jsx("span", { className: theme.suggestionLabelStyle, children: suggestion.label }), suggestion.description && (jsx("span", { className: theme.suggestionDescriptionStyle, children: suggestion.description }))] })] }, suggestion.id));
583
+ };
584
+ // -----------------------------------------------------------------------
585
+ // Dropdown portal content
586
+ // -----------------------------------------------------------------------
587
+ const dropdownContent = (jsx(AnimatePresence, { mode: "wait", children: isDropdownOpen && (jsx(motion.div, { ref: dropdownRef, role: "listbox", "aria-label": "Suggestions", className: cn(theme.dropdownStyle, dropdownClassName), style: {
588
+ position: "fixed",
589
+ top: `${dropdownPos.top}px`,
590
+ left: `${dropdownPos.left}px`,
591
+ minWidth: `${dropdownPos.width}px`,
592
+ maxWidth: "360px",
593
+ zIndex: 1000,
594
+ overscrollBehavior: "contain",
595
+ }, variants: dropdownVariants, initial: "initial", animate: "visible", exit: "exit", children: loading ? (jsx("div", { className: theme.loadingStyle, children: "Searching..." })) : filteredSuggestions.length === 0 ? (jsx("div", { className: theme.emptyMessageStyle, children: emptyMessage })) : (filteredSuggestions.map((suggestion, index) => renderSuggestionItem(suggestion, index))) })) }));
596
+ // -----------------------------------------------------------------------
597
+ // Render
598
+ // -----------------------------------------------------------------------
599
+ return (jsxs("div", { className: cn(theme.wrapperStyle, wrapperClassName), children: [jsx("div", { ref: wrapperRef, className: cn(theme.inputGroupStyle, isFocused && theme.inputGroupFocusStyle), children: jsx("div", { ref: setEditableRef, contentEditable: !disabled, suppressContentEditableWarning: true, onInput: handleInput, onKeyDown: handleKeyDown, onClick: handleClick, onFocus: handleFocus, onBlur: handleBlur, onPaste: handlePaste, onSelect: handleSelect, onCompositionStart: handleCompositionStart, onCompositionEnd: handleCompositionEnd, role: "textbox", "aria-multiline": "true", "aria-autocomplete": "list", "aria-expanded": isDropdownOpen, "aria-haspopup": "listbox", "aria-placeholder": placeholder, "data-placeholder": placeholder, "aria-disabled": disabled || undefined, className: cn(theme.editableStyle, theme.sizes[size], isContentEmpty &&
600
+ "before:content-[attr(data-placeholder)] before:text-[var(--color-text-placeholder)] before:pointer-events-none before:absolute dark:before:text-[var(--color-neutral-500)]", disabled && "cursor-not-allowed opacity-60", className), style: {
601
+ minHeight: rows ? `${rows * 1.5}em` : undefined,
602
+ position: "relative",
603
+ }, ...props, children: renderedSegments }) }), isClient && createPortal(dropdownContent, document.body)] }));
604
+ });
605
+ Mention.displayName = "Mention";
606
+
607
+ export { Mention };
@@ -0,0 +1,6 @@
1
+ import type { MentionTheme } from "./Mention.types";
2
+ /**
3
+ * Default theme for the Mention component.
4
+ * Uses the shared forms base theme for consistency with Input/Textarea.
5
+ */
6
+ export declare const mentionTheme: MentionTheme;
@@ -0,0 +1,55 @@
1
+ import { formsBaseTheme } from '../forms.theme.js';
2
+
3
+ /**
4
+ * Default theme for the Mention component.
5
+ * Uses the shared forms base theme for consistency with Input/Textarea.
6
+ */
7
+ const mentionTheme = {
8
+ // Outermost wrapper
9
+ wrapperStyle: formsBaseTheme.wrapperStyle,
10
+ // Input group container with outline and focus ring
11
+ inputGroupStyle: formsBaseTheme.inputGroupBaseStyle,
12
+ // JS-driven focus ring (applied when editable div is focused)
13
+ inputGroupFocusStyle: "outline-2 outline-[var(--color-primary-600)] -outline-offset-1 " +
14
+ "ring-4 ring-[var(--color-primary)]/10 " +
15
+ "dark:outline-[var(--color-primary-500)] dark:ring-[var(--color-primary-500)]/20",
16
+ // Base editable div styles
17
+ editableStyle: `${formsBaseTheme.controlBaseStyle} whitespace-pre-wrap break-words overflow-y-auto cursor-text`,
18
+ // Size variants
19
+ sizes: {
20
+ sm: `${formsBaseTheme.sizes.sm.text} ${formsBaseTheme.sizes.sm.padding} ${formsBaseTheme.sizes.sm.textareaHeight}`,
21
+ md: `${formsBaseTheme.sizes.md.text} ${formsBaseTheme.sizes.md.padding} ${formsBaseTheme.sizes.md.textareaHeight}`,
22
+ lg: `${formsBaseTheme.sizes.lg.text} ${formsBaseTheme.sizes.lg.padding} ${formsBaseTheme.sizes.lg.textareaHeight}`,
23
+ },
24
+ // Inline mention Tag chip styles
25
+ mentionTagStyle: "mx-0.5 align-baseline cursor-default select-none",
26
+ // Dropdown container - reuses the shared dropdown styles
27
+ dropdownStyle: formsBaseTheme.dropdownStyles.container + " py-1",
28
+ // Individual suggestion item
29
+ suggestionStyle: "relative flex items-center gap-2.5 cursor-pointer select-none py-2 px-3 " +
30
+ "text-[var(--color-text-primary)] " +
31
+ "hover:text-[var(--color-primary)] hover:bg-[var(--color-primary-50)]/50 " +
32
+ "dark:hover:text-[var(--color-primary-400)] dark:hover:bg-[var(--color-primary-400)]/10",
33
+ // Highlighted suggestion (keyboard navigation)
34
+ suggestionHighlightedStyle: "text-[var(--color-primary)] bg-[var(--color-primary-50)]/50 " +
35
+ "dark:text-[var(--color-primary-400)] dark:bg-[var(--color-primary-400)]/10",
36
+ // Avatar image
37
+ suggestionAvatarStyle: "size-7 rounded-full object-cover shrink-0 " +
38
+ "bg-[var(--color-background-tertiary)] dark:bg-[var(--color-neutral-700)]",
39
+ // Avatar fallback (initials circle)
40
+ suggestionAvatarFallbackStyle: "size-7 rounded-full shrink-0 flex items-center justify-center text-sm font-medium " +
41
+ "bg-[var(--color-primary-100)] text-[var(--color-primary-700)] " +
42
+ "dark:bg-[var(--color-primary-900)] dark:text-[var(--color-primary-300)]",
43
+ // Suggestion label text
44
+ suggestionLabelStyle: "text-base font-medium truncate",
45
+ // Suggestion description text
46
+ suggestionDescriptionStyle: "text-sm text-[var(--color-text-muted)] truncate " +
47
+ "dark:text-[var(--color-neutral-500)]",
48
+ // Empty state
49
+ emptyMessageStyle: formsBaseTheme.dropdownStyles.emptyMessage,
50
+ // Loading state
51
+ loadingStyle: "py-3 px-3 text-center text-[var(--color-text-muted)] " +
52
+ "dark:text-[var(--color-neutral-500)]",
53
+ };
54
+
55
+ export { mentionTheme };