haze-ui 1.24.1 → 1.26.0

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 (422) hide show
  1. package/README.md +237 -0
  2. package/dist/components/Accordion/Accordion.js +1 -0
  3. package/dist/components/Accordion/AccordionItem.js +1 -0
  4. package/dist/components/Accordion/index.js +1 -0
  5. package/dist/components/Affix/Affix.js +1 -0
  6. package/dist/components/Affix/index.js +1 -0
  7. package/dist/components/Alert/Alert.js +20 -18
  8. package/dist/components/Alert/index.js +1 -0
  9. package/dist/components/ApprovalCard/ApprovalCard.js +28 -25
  10. package/dist/components/ApprovalCard/index.js +1 -0
  11. package/dist/components/AspectRatio/AspectRatio.js +1 -0
  12. package/dist/components/AspectRatio/index.js +1 -0
  13. package/dist/components/AsyncSection/AsyncSection.js +33 -30
  14. package/dist/components/AsyncSection/index.js +1 -0
  15. package/dist/components/Avatar/Avatar.js +1 -0
  16. package/dist/components/Avatar/index.js +1 -0
  17. package/dist/components/AvatarGroup/AvatarGroup.js +30 -0
  18. package/dist/components/AvatarGroup/index.js +3 -0
  19. package/dist/components/BackToTop/BackToTop.js +16 -14
  20. package/dist/components/BackToTop/index.js +1 -0
  21. package/dist/components/Badge/Badge.js +1 -0
  22. package/dist/components/Badge/index.js +1 -0
  23. package/dist/components/Banner/Banner.js +20 -18
  24. package/dist/components/Banner/index.js +1 -0
  25. package/dist/components/BottomSheet/BottomSheet.js +1 -0
  26. package/dist/components/BottomSheet/index.js +1 -0
  27. package/dist/components/Breadcrumb/Breadcrumb.js +19 -17
  28. package/dist/components/Breadcrumb/BreadcrumbItem.js +1 -0
  29. package/dist/components/Breadcrumb/index.js +1 -0
  30. package/dist/components/Button/Button.js +1 -0
  31. package/dist/components/Button/ButtonLink.js +1 -0
  32. package/dist/components/Button/index.js +1 -0
  33. package/dist/components/Button/styles.js +1 -0
  34. package/dist/components/Calendar/Calendar.js +124 -0
  35. package/dist/components/Calendar/date.js +54 -0
  36. package/dist/components/Calendar/index.js +3 -0
  37. package/dist/components/Card/Card.js +1 -0
  38. package/dist/components/Card/index.js +1 -0
  39. package/dist/components/Carousel/Carousel.js +43 -40
  40. package/dist/components/Carousel/CarouselSlide.js +1 -0
  41. package/dist/components/Carousel/index.js +1 -0
  42. package/dist/components/Cascader/Cascader.js +228 -0
  43. package/dist/components/Cascader/index.js +3 -0
  44. package/dist/components/ChatContainer/ChatContainer.js +1 -0
  45. package/dist/components/ChatContainer/index.js +1 -0
  46. package/dist/components/ChatInput/ChatInput.js +31 -29
  47. package/dist/components/ChatInput/index.js +1 -0
  48. package/dist/components/ChatMessage/ChatMessage.js +29 -27
  49. package/dist/components/ChatMessage/index.js +1 -0
  50. package/dist/components/Checkbox/Checkbox.js +1 -0
  51. package/dist/components/Checkbox/CheckboxCore.js +1 -0
  52. package/dist/components/Checkbox/index.js +1 -0
  53. package/dist/components/Chip/Chip.js +21 -19
  54. package/dist/components/Chip/index.js +1 -0
  55. package/dist/components/CodeBlock/CodeBlock.js +1 -0
  56. package/dist/components/CodeBlock/index.js +1 -0
  57. package/dist/components/Collapsible/Collapsible.js +1 -0
  58. package/dist/components/Collapsible/index.js +1 -0
  59. package/dist/components/ColorPicker/ColorPicker.js +1 -0
  60. package/dist/components/ColorPicker/ColorPickerCore.js +29 -26
  61. package/dist/components/ColorPicker/index.js +1 -0
  62. package/dist/components/Combobox/Combobox.js +70 -41
  63. package/dist/components/Combobox/ComboboxOption.js +9 -5
  64. package/dist/components/Combobox/index.js +1 -0
  65. package/dist/components/Command/Command.js +1 -0
  66. package/dist/components/Command/index.js +1 -0
  67. package/dist/components/ConfirmDialog/ConfirmDialog.js +41 -39
  68. package/dist/components/ConfirmDialog/index.js +1 -0
  69. package/dist/components/Container/Container.js +1 -0
  70. package/dist/components/Container/index.js +1 -0
  71. package/dist/components/ContextMenu/ContextMenu.js +1 -0
  72. package/dist/components/ContextMenu/ContextMenuContent.js +1 -0
  73. package/dist/components/ContextMenu/ContextMenuContext.js +1 -0
  74. package/dist/components/ContextMenu/ContextMenuItem.js +1 -0
  75. package/dist/components/ContextMenu/ContextMenuSeparator.js +1 -0
  76. package/dist/components/ContextMenu/ContextMenuTrigger.js +1 -0
  77. package/dist/components/ContextMenu/index.js +1 -0
  78. package/dist/components/ConversationList/ConversationItem.js +1 -0
  79. package/dist/components/ConversationList/ConversationList.js +1 -0
  80. package/dist/components/ConversationList/index.js +1 -0
  81. package/dist/components/DataTable/DataTable.js +193 -0
  82. package/dist/components/DataTable/index.js +3 -0
  83. package/dist/components/DateRangePicker/DateRangePicker.js +1 -0
  84. package/dist/components/DateRangePicker/DateRangePickerCore.js +22 -19
  85. package/dist/components/DateRangePicker/index.js +1 -0
  86. package/dist/components/Datepicker/Datepicker.js +11 -8
  87. package/dist/components/Datepicker/DatepickerCore.js +19 -16
  88. package/dist/components/Datepicker/index.js +1 -0
  89. package/dist/components/Dialog/Dialog.js +1 -0
  90. package/dist/components/Dialog/index.js +1 -0
  91. package/dist/components/DiffViewer/DiffViewer.js +1 -0
  92. package/dist/components/DiffViewer/index.js +1 -0
  93. package/dist/components/Disclosure/Disclosure.js +1 -0
  94. package/dist/components/Disclosure/index.js +1 -0
  95. package/dist/components/Divider/Divider.js +1 -0
  96. package/dist/components/Divider/index.js +1 -0
  97. package/dist/components/Drawer/Drawer.js +1 -0
  98. package/dist/components/Drawer/index.js +1 -0
  99. package/dist/components/DropdownMenu/DropdownMenu.js +1 -0
  100. package/dist/components/DropdownMenu/DropdownMenuContent.js +1 -0
  101. package/dist/components/DropdownMenu/DropdownMenuContext.js +1 -0
  102. package/dist/components/DropdownMenu/DropdownMenuItem.js +1 -0
  103. package/dist/components/DropdownMenu/DropdownMenuSeparator.js +1 -0
  104. package/dist/components/DropdownMenu/DropdownMenuTrigger.js +1 -0
  105. package/dist/components/DropdownMenu/index.js +1 -0
  106. package/dist/components/Empty/Empty.js +22 -19
  107. package/dist/components/Empty/index.js +1 -0
  108. package/dist/components/FileInput/FileInput.js +15 -13
  109. package/dist/components/FileInput/index.js +1 -0
  110. package/dist/components/Flex/Flex.js +1 -0
  111. package/dist/components/Flex/index.js +1 -0
  112. package/dist/components/Grid/Grid.js +1 -0
  113. package/dist/components/Grid/GridItem.js +1 -0
  114. package/dist/components/Grid/index.js +1 -0
  115. package/dist/components/HoverCard/HoverCard.js +54 -0
  116. package/dist/components/HoverCard/index.js +3 -0
  117. package/dist/components/Icon/Icon.js +1 -0
  118. package/dist/components/Icon/index.js +1 -0
  119. package/dist/components/Image/Image.js +1 -0
  120. package/dist/components/Image/index.js +1 -0
  121. package/dist/components/InlineEdit/InlineEdit.js +33 -31
  122. package/dist/components/InlineEdit/index.js +1 -0
  123. package/dist/components/Input/Input.js +1 -0
  124. package/dist/components/Input/InputCore.js +1 -0
  125. package/dist/components/Input/index.js +1 -0
  126. package/dist/components/Kbd/Kbd.js +22 -0
  127. package/dist/components/Kbd/index.js +3 -0
  128. package/dist/components/List/List.js +1 -0
  129. package/dist/components/List/ListItem.js +1 -0
  130. package/dist/components/List/index.js +1 -0
  131. package/dist/components/LocaleProvider/LocaleContext.js +6 -0
  132. package/dist/components/LocaleProvider/LocaleProvider.js +22 -0
  133. package/dist/components/LocaleProvider/index.js +6 -0
  134. package/dist/components/LocaleProvider/locale.js +132 -0
  135. package/dist/components/LocaleProvider/useStrings.js +27 -0
  136. package/dist/components/LocaleProvider/zh-cn.js +128 -0
  137. package/dist/components/LogViewer/LogViewer.js +45 -43
  138. package/dist/components/LogViewer/index.js +1 -0
  139. package/dist/components/MarkdownRenderer/MarkdownRenderer.js +20 -19
  140. package/dist/components/MarkdownRenderer/index.js +1 -0
  141. package/dist/components/MarkdownRenderer/markdown-blocks.js +42 -0
  142. package/dist/components/Mentions/Mentions.js +17 -0
  143. package/dist/components/Mentions/MentionsCore.js +116 -0
  144. package/dist/components/Mentions/index.js +4 -0
  145. package/dist/components/Menu/Menu.js +1 -0
  146. package/dist/components/Menu/MenuDivider.js +1 -0
  147. package/dist/components/Menu/MenuItem.js +1 -0
  148. package/dist/components/Menu/index.js +1 -0
  149. package/dist/components/ModelPicker/ModelPicker.js +17 -15
  150. package/dist/components/ModelPicker/index.js +1 -0
  151. package/dist/components/NavigationBar/NavLink.js +1 -0
  152. package/dist/components/NavigationBar/NavigationBar.js +1 -0
  153. package/dist/components/NavigationBar/index.js +1 -0
  154. package/dist/components/NumberInput/NumberInput.js +1 -0
  155. package/dist/components/NumberInput/NumberInputCore.js +35 -33
  156. package/dist/components/NumberInput/index.js +1 -0
  157. package/dist/components/OTPInput/OTPInput.js +1 -0
  158. package/dist/components/OTPInput/OTPInputCore.js +36 -30
  159. package/dist/components/OTPInput/index.js +1 -0
  160. package/dist/components/Pagination/Pagination.js +32 -30
  161. package/dist/components/Pagination/index.js +1 -0
  162. package/dist/components/PasswordInput/PasswordInput.js +1 -0
  163. package/dist/components/PasswordInput/PasswordInputCore.js +23 -21
  164. package/dist/components/PasswordInput/index.js +1 -0
  165. package/dist/components/Popover/Popover.js +1 -0
  166. package/dist/components/Popover/index.js +1 -0
  167. package/dist/components/Progress/Progress.js +41 -39
  168. package/dist/components/Progress/index.js +1 -0
  169. package/dist/components/Radio/Radio.js +1 -0
  170. package/dist/components/Radio/RadioContext.js +1 -0
  171. package/dist/components/Radio/RadioGroup.js +1 -0
  172. package/dist/components/Radio/RadioGroupCore.js +1 -0
  173. package/dist/components/Radio/index.js +1 -0
  174. package/dist/components/Rating/Rating.js +1 -0
  175. package/dist/components/Rating/RatingCore.js +29 -26
  176. package/dist/components/Rating/index.js +1 -0
  177. package/dist/components/Resizable/Resizable.js +1 -0
  178. package/dist/components/Resizable/index.js +1 -0
  179. package/dist/components/ScrollArea/ScrollArea.js +1 -0
  180. package/dist/components/ScrollArea/index.js +1 -0
  181. package/dist/components/Segmented/Segmented.js +1 -0
  182. package/dist/components/Segmented/SegmentedCore.js +1 -0
  183. package/dist/components/Segmented/index.js +1 -0
  184. package/dist/components/Select/Option.js +1 -0
  185. package/dist/components/Select/Select.js +1 -0
  186. package/dist/components/Select/SelectCore.js +1 -0
  187. package/dist/components/Select/index.js +1 -0
  188. package/dist/components/Sidebar/Sidebar.js +113 -0
  189. package/dist/components/Sidebar/index.js +3 -0
  190. package/dist/components/Skeleton/Skeleton.js +1 -0
  191. package/dist/components/Skeleton/index.js +1 -0
  192. package/dist/components/Slider/Slider.js +1 -0
  193. package/dist/components/Slider/SliderCore.js +1 -0
  194. package/dist/components/Slider/index.js +1 -0
  195. package/dist/components/Spinner/Spinner.js +15 -12
  196. package/dist/components/Spinner/index.js +1 -0
  197. package/dist/components/Stat/Stat.js +1 -0
  198. package/dist/components/Stat/index.js +1 -0
  199. package/dist/components/StepTimeline/StepTimeline.js +1 -0
  200. package/dist/components/StepTimeline/index.js +1 -0
  201. package/dist/components/Stepper/Step.js +1 -0
  202. package/dist/components/Stepper/Stepper.js +1 -0
  203. package/dist/components/Stepper/StepperContext.js +1 -0
  204. package/dist/components/Stepper/index.js +1 -0
  205. package/dist/components/StreamingText/StreamingText.js +39 -18
  206. package/dist/components/StreamingText/index.js +1 -0
  207. package/dist/components/SwipeAction/SwipeAction.js +1 -0
  208. package/dist/components/SwipeAction/index.js +1 -0
  209. package/dist/components/Switch/Switch.js +1 -0
  210. package/dist/components/Switch/SwitchCore.js +1 -0
  211. package/dist/components/Switch/index.js +1 -0
  212. package/dist/components/Table/Table.js +1 -0
  213. package/dist/components/Table/TableBody.js +1 -0
  214. package/dist/components/Table/TableCell.js +1 -0
  215. package/dist/components/Table/TableHead.js +1 -0
  216. package/dist/components/Table/TableRow.js +1 -0
  217. package/dist/components/Table/index.js +1 -0
  218. package/dist/components/Tabs/Tab.js +1 -0
  219. package/dist/components/Tabs/TabList.js +1 -0
  220. package/dist/components/Tabs/TabPanel.js +1 -0
  221. package/dist/components/Tabs/Tabs.js +1 -0
  222. package/dist/components/Tabs/TabsContext.js +1 -0
  223. package/dist/components/Tabs/index.js +1 -0
  224. package/dist/components/Tag/Tag.js +17 -14
  225. package/dist/components/Tag/index.js +1 -0
  226. package/dist/components/TagGroup/TagGroup.js +1 -0
  227. package/dist/components/TagGroup/TagGroupItem.js +13 -10
  228. package/dist/components/TagGroup/index.js +1 -0
  229. package/dist/components/TagInput/TagInput.js +1 -0
  230. package/dist/components/TagInput/TagInputCore.js +53 -50
  231. package/dist/components/TagInput/index.js +1 -0
  232. package/dist/components/Textarea/Textarea.js +1 -0
  233. package/dist/components/Textarea/TextareaCore.js +1 -0
  234. package/dist/components/Textarea/index.js +1 -0
  235. package/dist/components/ThinkingIndicator/ThinkingIndicator.js +14 -11
  236. package/dist/components/ThinkingIndicator/index.js +1 -0
  237. package/dist/components/TimePicker/TimePicker.js +1 -0
  238. package/dist/components/TimePicker/TimePickerCore.js +1 -0
  239. package/dist/components/TimePicker/index.js +1 -0
  240. package/dist/components/Timeline/Timeline.js +1 -0
  241. package/dist/components/Timeline/index.js +1 -0
  242. package/dist/components/Toast/Toast.js +36 -30
  243. package/dist/components/Toast/ToastContainer.js +45 -28
  244. package/dist/components/Toast/ToastContext.js +1 -0
  245. package/dist/components/Toast/index.js +5 -3
  246. package/dist/components/Toast/toast2.js +45 -0
  247. package/dist/components/Toast/useToast.js +1 -0
  248. package/dist/components/TokenCounter/TokenCounter.js +20 -18
  249. package/dist/components/TokenCounter/index.js +1 -0
  250. package/dist/components/ToolCallCard/ToolCallCard.js +40 -37
  251. package/dist/components/ToolCallCard/index.js +1 -0
  252. package/dist/components/Toolbar/Toolbar.js +60 -0
  253. package/dist/components/Toolbar/ToolbarButton.js +26 -0
  254. package/dist/components/Toolbar/ToolbarContext.js +9 -0
  255. package/dist/components/Toolbar/ToolbarSeparator.js +23 -0
  256. package/dist/components/Toolbar/index.js +5 -0
  257. package/dist/components/Tooltip/Tooltip.js +1 -0
  258. package/dist/components/Tooltip/index.js +1 -0
  259. package/dist/components/Tour/Tour.js +198 -0
  260. package/dist/components/Tour/index.js +3 -0
  261. package/dist/components/Transfer/Transfer.js +1 -0
  262. package/dist/components/Transfer/TransferCore.js +62 -67
  263. package/dist/components/Transfer/index.js +1 -0
  264. package/dist/components/Tree/Tree.js +1 -0
  265. package/dist/components/Tree/TreeItem.js +57 -55
  266. package/dist/components/Tree/index.js +1 -0
  267. package/dist/components/Tree/utils.js +1 -0
  268. package/dist/components/Typography/Typography.js +1 -0
  269. package/dist/components/Typography/index.js +1 -0
  270. package/dist/components/Upload/Upload.js +1 -0
  271. package/dist/components/Upload/UploadCore.js +37 -35
  272. package/dist/components/Upload/index.js +1 -0
  273. package/dist/components/VirtualList/VirtualList.js +141 -26
  274. package/dist/components/VirtualList/index.js +1 -0
  275. package/dist/css/accordion.css +1 -1
  276. package/dist/css/affix.css +1 -1
  277. package/dist/css/alert.css +1 -1
  278. package/dist/css/approval-card.css +1 -1
  279. package/dist/css/async-section.css +1 -1
  280. package/dist/css/avatar-group.css +2 -0
  281. package/dist/css/back-to-top.css +1 -1
  282. package/dist/css/breadcrumb.css +1 -1
  283. package/dist/css/button.css +1 -1
  284. package/dist/css/calendar.css +2 -0
  285. package/dist/css/carousel.css +1 -1
  286. package/dist/css/cascader.css +2 -0
  287. package/dist/css/chat-input.css +1 -1
  288. package/dist/css/chat-message.css +1 -1
  289. package/dist/css/checkbox.css +1 -1
  290. package/dist/css/chip.css +1 -1
  291. package/dist/css/code-block.css +1 -1
  292. package/dist/css/color-picker.css +1 -1
  293. package/dist/css/combobox.css +1 -1
  294. package/dist/css/command.css +1 -1
  295. package/dist/css/container.css +1 -1
  296. package/dist/css/context-menu.css +1 -1
  297. package/dist/css/conversation-list.css +1 -1
  298. package/dist/css/data-table.css +2 -0
  299. package/dist/css/date-range-picker.css +1 -1
  300. package/dist/css/datepicker.css +1 -2
  301. package/dist/css/diff-viewer.css +1 -1
  302. package/dist/css/disclosure.css +1 -1
  303. package/dist/css/dropdown-menu.css +1 -1
  304. package/dist/css/file-input.css +1 -1
  305. package/dist/css/hover-card.css +2 -0
  306. package/dist/css/inline-edit.css +1 -1
  307. package/dist/css/input.css +1 -1
  308. package/dist/css/kbd.css +2 -0
  309. package/dist/css/list.css +1 -1
  310. package/dist/css/log-viewer.css +1 -1
  311. package/dist/css/markdown-renderer.css +1 -1
  312. package/dist/css/mentions.css +2 -0
  313. package/dist/css/menu.css +1 -1
  314. package/dist/css/model-picker.css +1 -1
  315. package/dist/css/navigation-bar.css +2 -2
  316. package/dist/css/number-input.css +1 -1
  317. package/dist/css/otp-input.css +1 -1
  318. package/dist/css/pagination.css +1 -1
  319. package/dist/css/password-input.css +1 -1
  320. package/dist/css/progress.css +1 -1
  321. package/dist/css/radio.css +1 -1
  322. package/dist/css/rating.css +1 -1
  323. package/dist/css/resizable.css +1 -1
  324. package/dist/css/segmented.css +1 -1
  325. package/dist/css/select.css +1 -1
  326. package/dist/css/sidebar.css +2 -0
  327. package/dist/css/slider.css +1 -1
  328. package/dist/css/step-timeline.css +1 -1
  329. package/dist/css/stepper.css +1 -1
  330. package/dist/css/streaming-text.css +1 -1
  331. package/dist/css/swipe-action.css +1 -1
  332. package/dist/css/switch.css +1 -1
  333. package/dist/css/table.css +1 -1
  334. package/dist/css/tabs.css +1 -1
  335. package/dist/css/tag-input.css +1 -1
  336. package/dist/css/tag.css +1 -1
  337. package/dist/css/textarea.css +1 -1
  338. package/dist/css/time-picker.css +1 -1
  339. package/dist/css/token-counter.css +1 -1
  340. package/dist/css/tokens.css +1 -1
  341. package/dist/css/toolbar.css +4 -0
  342. package/dist/css/tour.css +2 -0
  343. package/dist/css/tree.css +1 -1
  344. package/dist/css/upload.css +1 -1
  345. package/dist/css/virtual-list.css +1 -1
  346. package/dist/css-manifest.json +29 -1
  347. package/dist/form/FormItem.js +1 -0
  348. package/dist/form/index.js +1 -0
  349. package/dist/haze-ui.css +74 -63
  350. package/dist/hooks/useClipboard.js +30 -0
  351. package/dist/hooks/useDebouncedCallback.js +17 -0
  352. package/dist/hooks/useDebouncedValue.js +12 -0
  353. package/dist/hooks/useMediaQuery.js +13 -0
  354. package/dist/hooks/usePrefersReducedMotion.js +9 -0
  355. package/dist/hooks/useTitle.js +1 -0
  356. package/dist/index.js +139 -115
  357. package/dist/registry.json +247 -0
  358. package/dist/tokens/colors.js +1 -0
  359. package/dist/tokens/index.js +1 -0
  360. package/dist/tokens/motion.js +1 -0
  361. package/dist/tokens/oklch.js +1 -0
  362. package/dist/tokens/palette.js +1 -0
  363. package/dist/tokens/registry.js +1 -0
  364. package/dist/tokens/spacing.js +1 -0
  365. package/dist/tokens/typography.js +1 -0
  366. package/dist/types/components/AvatarGroup/AvatarGroup.d.ts +9 -0
  367. package/dist/types/components/AvatarGroup/index.d.ts +2 -0
  368. package/dist/types/components/Calendar/Calendar.d.ts +21 -0
  369. package/dist/types/components/Calendar/date.d.ts +79 -0
  370. package/dist/types/components/Calendar/index.d.ts +2 -0
  371. package/dist/types/components/Cascader/Cascader.d.ts +26 -0
  372. package/dist/types/components/Cascader/index.d.ts +2 -0
  373. package/dist/types/components/Combobox/Combobox.d.ts +7 -1
  374. package/dist/types/components/Combobox/ComboboxOption.d.ts +13 -1
  375. package/dist/types/components/DataTable/DataTable.d.ts +102 -0
  376. package/dist/types/components/DataTable/index.d.ts +2 -0
  377. package/dist/types/components/Datepicker/Datepicker.d.ts +3 -1
  378. package/dist/types/components/Datepicker/DatepickerCore.d.ts +3 -1
  379. package/dist/types/components/HoverCard/HoverCard.d.ts +49 -0
  380. package/dist/types/components/HoverCard/index.d.ts +2 -0
  381. package/dist/types/components/Kbd/Kbd.d.ts +6 -0
  382. package/dist/types/components/Kbd/index.d.ts +2 -0
  383. package/dist/types/components/LocaleProvider/LocaleContext.d.ts +19 -0
  384. package/dist/types/components/LocaleProvider/LocaleProvider.d.ts +16 -0
  385. package/dist/types/components/LocaleProvider/index.d.ts +7 -0
  386. package/dist/types/components/LocaleProvider/locale.d.ts +182 -0
  387. package/dist/types/components/LocaleProvider/useStrings.d.ts +10 -0
  388. package/dist/types/components/LocaleProvider/zh-cn.d.ts +13 -0
  389. package/dist/types/components/MarkdownRenderer/markdown-blocks.d.ts +6 -0
  390. package/dist/types/components/Mentions/Mentions.d.ts +17 -0
  391. package/dist/types/components/Mentions/MentionsCore.d.ts +21 -0
  392. package/dist/types/components/Mentions/index.d.ts +4 -0
  393. package/dist/types/components/Sidebar/Sidebar.d.ts +64 -0
  394. package/dist/types/components/Sidebar/index.d.ts +4 -0
  395. package/dist/types/components/Toast/index.d.ts +2 -0
  396. package/dist/types/components/Toast/toast.d.ts +46 -0
  397. package/dist/types/components/Toolbar/Toolbar.d.ts +16 -0
  398. package/dist/types/components/Toolbar/ToolbarButton.d.ts +20 -0
  399. package/dist/types/components/Toolbar/ToolbarContext.d.ts +5 -0
  400. package/dist/types/components/Toolbar/ToolbarSeparator.d.ts +14 -0
  401. package/dist/types/components/Toolbar/index.d.ts +6 -0
  402. package/dist/types/components/Tour/Tour.d.ts +46 -0
  403. package/dist/types/components/Tour/index.d.ts +2 -0
  404. package/dist/types/components/VirtualList/VirtualList.d.ts +58 -4
  405. package/dist/types/components/VirtualList/index.d.ts +1 -1
  406. package/dist/types/hooks/index.d.ts +6 -0
  407. package/dist/types/hooks/useClipboard.d.ts +31 -0
  408. package/dist/types/hooks/useDebouncedCallback.d.ts +21 -0
  409. package/dist/types/hooks/useDebouncedValue.d.ts +20 -0
  410. package/dist/types/hooks/useMediaQuery.d.ts +17 -0
  411. package/dist/types/hooks/usePrefersReducedMotion.d.ts +14 -0
  412. package/dist/types/index.d.ts +28 -4
  413. package/dist/utils/classnames.js +1 -0
  414. package/dist/utils/collision.js +1 -0
  415. package/dist/utils/floating.js +1 -0
  416. package/dist/utils/focus-scope.js +1 -0
  417. package/dist/utils/focus.js +1 -0
  418. package/dist/utils/menuKeyboard.js +1 -0
  419. package/dist/utils/presence.js +1 -0
  420. package/package.json +34 -18
  421. package/dist/components/Datepicker/Calendar.js +0 -120
  422. package/dist/types/components/Datepicker/Calendar.d.ts +0 -8
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { LocaleContext as e } from "./LocaleContext.js";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useContext as n, useMemo as r } from "react";
5
+ //#region src/lib/components/LocaleProvider/LocaleProvider.tsx
6
+ function i({ locale: i, strings: a, children: o }) {
7
+ let s = n(e), c = r(() => ({
8
+ locale: i ?? s?.locale,
9
+ strings: a,
10
+ parent: s
11
+ }), [
12
+ i,
13
+ a,
14
+ s
15
+ ]);
16
+ return /* @__PURE__ */ t(e.Provider, {
17
+ value: c,
18
+ children: o
19
+ });
20
+ }
21
+ //#endregion
22
+ export { i as default };
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import e from "./LocaleProvider.js";
3
+ import { defaultStrings as t, enUS as n } from "./locale.js";
4
+ import { zhCN as r } from "./zh-cn.js";
5
+ import { useStrings as i } from "./useStrings.js";
6
+ export { e as default, t as defaultStrings, n as enUS, i as useStrings, r as zhCN };
@@ -0,0 +1,132 @@
1
+ "use client";
2
+ //#region src/lib/components/LocaleProvider/locale.ts
3
+ var e = {
4
+ alert: { close: "Close" },
5
+ approvalCard: {
6
+ title: "Approval Required",
7
+ approve: "Approve",
8
+ deny: "Deny"
9
+ },
10
+ asyncSection: {
11
+ loading: "Loading…",
12
+ error: "Something went wrong",
13
+ retry: "Retry"
14
+ },
15
+ avatarGroup: { more: "+{count}" },
16
+ calendar: {
17
+ previousMonth: "Previous month",
18
+ nextMonth: "Next month",
19
+ today: "Today"
20
+ },
21
+ cascader: { expand: "Expand" },
22
+ sidebar: {
23
+ toggle: "Toggle sidebar",
24
+ expand: "Expand sidebar",
25
+ collapse: "Collapse sidebar"
26
+ },
27
+ tour: {
28
+ next: "Next",
29
+ back: "Back",
30
+ done: "Done",
31
+ skip: "Skip",
32
+ stepOf: "Step {current} of {total}"
33
+ },
34
+ backToTop: { label: "Back to top" },
35
+ banner: { close: "Close" },
36
+ breadcrumb: { label: "Breadcrumb" },
37
+ carousel: {
38
+ label: "Carousel",
39
+ previousSlide: "Previous slide",
40
+ nextSlide: "Next slide",
41
+ goToSlide: "Go to slide {index}"
42
+ },
43
+ chatInput: {
44
+ placeholder: "Type a message...",
45
+ send: "Send"
46
+ },
47
+ chatMessage: {
48
+ sending: "Sending...",
49
+ sent: "Sent",
50
+ failedToSend: "Failed to send"
51
+ },
52
+ chip: { remove: "Remove" },
53
+ colorPicker: {
54
+ pickColor: "Pick color",
55
+ hexColor: "Hex color"
56
+ },
57
+ confirmDialog: {
58
+ confirm: "Confirm",
59
+ cancel: "Cancel"
60
+ },
61
+ dateRangePicker: {
62
+ startDate: "Start date",
63
+ endDate: "End date"
64
+ },
65
+ empty: { description: "No data" },
66
+ fileInput: { label: "Choose file" },
67
+ inlineEdit: { placeholder: "Click to edit" },
68
+ logViewer: {
69
+ all: "All",
70
+ noLogs: "No logs"
71
+ },
72
+ mentions: {
73
+ label: "Suggestions",
74
+ noMatch: "No matches"
75
+ },
76
+ modelPicker: { label: "Model" },
77
+ numberInput: {
78
+ decrease: "Decrease",
79
+ increase: "Increase"
80
+ },
81
+ otpInput: { digitLabel: "Digit {index} of {total}" },
82
+ pagination: {
83
+ previous: "Previous",
84
+ next: "Next"
85
+ },
86
+ passwordInput: {
87
+ label: "Password",
88
+ show: "Show password",
89
+ hide: "Hide password"
90
+ },
91
+ progress: { label: "Progress" },
92
+ rating: {
93
+ star: "{count} star",
94
+ stars: "{count} stars"
95
+ },
96
+ spinner: { loading: "Loading" },
97
+ tag: { remove: "Remove" },
98
+ tagGroup: { remove: "Remove" },
99
+ tagInput: {
100
+ placeholder: "Add tag",
101
+ removeTag: "Remove {tag}",
102
+ tagCount: "{count} tags",
103
+ tagCountSingular: "{count} tag"
104
+ },
105
+ thinkingIndicator: { text: "Thinking" },
106
+ tokenCounter: { label: "Tokens" },
107
+ toolCallCard: {
108
+ pending: "Pending",
109
+ running: "Running...",
110
+ done: "Done",
111
+ error: "Error",
112
+ inputLabel: "Input",
113
+ outputLabel: "Output"
114
+ },
115
+ transfer: {
116
+ source: "Source ({count})",
117
+ target: "Target ({count})",
118
+ moveToTarget: ">",
119
+ moveToSource: "<"
120
+ },
121
+ tree: {
122
+ expand: "Expand",
123
+ collapse: "Collapse"
124
+ },
125
+ upload: { hint: "Drag & drop files here, or click to upload" }
126
+ };
127
+ function t(e, t) {
128
+ return e.replace(/\{(\w+)\}/g, (e, n) => Object.prototype.hasOwnProperty.call(t, n) ? String(t[n]) : e);
129
+ }
130
+ var n = e;
131
+ //#endregion
132
+ export { e as defaultStrings, n as enUS, t as formatString };
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { LocaleContext as e } from "./LocaleContext.js";
3
+ import { enUS as t } from "./locale.js";
4
+ import { zhCN as n } from "./zh-cn.js";
5
+ import { useContext as r } from "react";
6
+ //#region src/lib/components/LocaleProvider/useStrings.ts
7
+ function i(e) {
8
+ if (!e) return [];
9
+ let t = i(e.parent);
10
+ return e.strings ? [...t, e.strings] : t;
11
+ }
12
+ function a(e) {
13
+ if (e) {
14
+ let t = e.toLowerCase();
15
+ if (t === "zh" || t.startsWith("zh-") || t.startsWith("zh_")) return n;
16
+ }
17
+ return t;
18
+ }
19
+ function o(t) {
20
+ let n = r(e);
21
+ return i(n).map((e) => e[t]).filter((e) => e !== void 0).reduce((e, t) => ({
22
+ ...e,
23
+ ...t
24
+ }), a(n?.locale)[t]);
25
+ }
26
+ //#endregion
27
+ export { o as useStrings };
@@ -0,0 +1,128 @@
1
+ "use client";
2
+ //#region src/lib/components/LocaleProvider/zh-cn.ts
3
+ var e = {
4
+ alert: { close: "关闭" },
5
+ approvalCard: {
6
+ title: "需要审批",
7
+ approve: "通过",
8
+ deny: "拒绝"
9
+ },
10
+ asyncSection: {
11
+ loading: "加载中…",
12
+ error: "出错了",
13
+ retry: "重试"
14
+ },
15
+ avatarGroup: { more: "+{count}" },
16
+ calendar: {
17
+ previousMonth: "上个月",
18
+ nextMonth: "下个月",
19
+ today: "今天"
20
+ },
21
+ cascader: { expand: "展开" },
22
+ sidebar: {
23
+ toggle: "切换侧边栏",
24
+ expand: "展开侧边栏",
25
+ collapse: "折叠侧边栏"
26
+ },
27
+ tour: {
28
+ next: "下一步",
29
+ back: "上一步",
30
+ done: "完成",
31
+ skip: "跳过",
32
+ stepOf: "第 {current} / {total} 步"
33
+ },
34
+ backToTop: { label: "回到顶部" },
35
+ banner: { close: "关闭" },
36
+ breadcrumb: { label: "面包屑" },
37
+ carousel: {
38
+ label: "轮播图",
39
+ previousSlide: "上一张幻灯片",
40
+ nextSlide: "下一张幻灯片",
41
+ goToSlide: "跳转到第 {index} 张幻灯片"
42
+ },
43
+ chatInput: {
44
+ placeholder: "输入消息…",
45
+ send: "发送"
46
+ },
47
+ chatMessage: {
48
+ sending: "发送中…",
49
+ sent: "已发送",
50
+ failedToSend: "发送失败"
51
+ },
52
+ chip: { remove: "移除" },
53
+ colorPicker: {
54
+ pickColor: "选择颜色",
55
+ hexColor: "十六进制颜色"
56
+ },
57
+ confirmDialog: {
58
+ confirm: "确认",
59
+ cancel: "取消"
60
+ },
61
+ dateRangePicker: {
62
+ startDate: "开始日期",
63
+ endDate: "结束日期"
64
+ },
65
+ empty: { description: "暂无数据" },
66
+ fileInput: { label: "选择文件" },
67
+ inlineEdit: { placeholder: "点击编辑" },
68
+ logViewer: {
69
+ all: "全部",
70
+ noLogs: "暂无日志"
71
+ },
72
+ mentions: {
73
+ label: "提及建议",
74
+ noMatch: "无匹配项"
75
+ },
76
+ modelPicker: { label: "模型" },
77
+ numberInput: {
78
+ decrease: "减少",
79
+ increase: "增加"
80
+ },
81
+ otpInput: { digitLabel: "第 {index} 位,共 {total} 位" },
82
+ pagination: {
83
+ previous: "上一页",
84
+ next: "下一页"
85
+ },
86
+ passwordInput: {
87
+ label: "密码",
88
+ show: "显示密码",
89
+ hide: "隐藏密码"
90
+ },
91
+ progress: { label: "进度" },
92
+ rating: {
93
+ star: "{count} 颗星",
94
+ stars: "{count} 颗星"
95
+ },
96
+ spinner: { loading: "加载中" },
97
+ tag: { remove: "移除" },
98
+ tagGroup: { remove: "移除" },
99
+ tagInput: {
100
+ placeholder: "添加标签",
101
+ removeTag: "移除 {tag}",
102
+ tagCount: "{count} 个标签",
103
+ tagCountSingular: "{count} 个标签"
104
+ },
105
+ thinkingIndicator: { text: "思考中" },
106
+ tokenCounter: { label: "Token 数" },
107
+ toolCallCard: {
108
+ pending: "等待中",
109
+ running: "运行中…",
110
+ done: "完成",
111
+ error: "错误",
112
+ inputLabel: "输入",
113
+ outputLabel: "输出"
114
+ },
115
+ transfer: {
116
+ source: "源列表({count})",
117
+ target: "目标列表({count})",
118
+ moveToTarget: ">",
119
+ moveToSource: "<"
120
+ },
121
+ tree: {
122
+ expand: "展开",
123
+ collapse: "折叠"
124
+ },
125
+ upload: { hint: "将文件拖拽到此处,或点击上传" }
126
+ };
127
+ //#endregion
128
+ export { e as zhCN };
@@ -1,66 +1,68 @@
1
1
 
2
+ "use client";
2
3
  import { classnames as e } from "../../utils/classnames.js";
4
+ import { useStrings as t } from "../LocaleProvider/useStrings.js";
3
5
  /* empty css */
4
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
5
- import { useMemo as r } from "react";
6
- import { useControl as i } from "react-use-control";
6
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
7
+ import { useMemo as i } from "react";
8
+ import { useControl as a } from "react-use-control";
7
9
  //#region src/lib/components/LogViewer/LogViewer.tsx
8
- var a = "haze-LogViewer__wrapper", o = "haze-LogViewer__toolbar", s = "haze-LogViewer__filterBtn", c = "haze-LogViewer__filterActive", l = "haze-LogViewer__body", u = "haze-LogViewer__entry", d = "haze-LogViewer__timestamp", f = "haze-LogViewer__levelBadge", p = "haze-LogViewer__levelDebug", m = "haze-LogViewer__levelInfo", h = "haze-LogViewer__levelWarn", g = "haze-LogViewer__levelError", _ = "haze-LogViewer__messageStyle", v = {
9
- debug: p,
10
- info: m,
11
- warn: h,
12
- error: g
13
- }, y = [
10
+ var o = "haze-LogViewer__wrapper", s = "haze-LogViewer__toolbar", c = "haze-LogViewer__filterBtn", l = "haze-LogViewer__filterActive", u = "haze-LogViewer__body", d = "haze-LogViewer__entry", f = "haze-LogViewer__timestamp", p = "haze-LogViewer__levelBadge", m = "haze-LogViewer__levelDebug", h = "haze-LogViewer__levelInfo", g = "haze-LogViewer__levelWarn", _ = "haze-LogViewer__levelError", v = "haze-LogViewer__messageStyle", y = {
11
+ debug: m,
12
+ info: h,
13
+ warn: g,
14
+ error: _
15
+ }, b = [
14
16
  "debug",
15
17
  "info",
16
18
  "warn",
17
19
  "error"
18
20
  ];
19
- function b({ logs: p, filter: m, className: h }) {
20
- let [g, b] = i(m, null), x = r(() => g ? p.filter((e) => e.level === g) : p, [p, g]);
21
- return /* @__PURE__ */ n("div", {
22
- className: e([a, h]),
23
- children: [/* @__PURE__ */ n("div", {
24
- className: e([o]),
25
- children: [/* @__PURE__ */ t("button", {
21
+ function x({ logs: m, filter: h, className: g }) {
22
+ let [_, x] = a(h, null), S = t("logViewer"), C = i(() => _ ? m.filter((e) => e.level === _) : m, [m, _]);
23
+ return /* @__PURE__ */ r("div", {
24
+ className: e([o, g]),
25
+ children: [/* @__PURE__ */ r("div", {
26
+ className: e([s]),
27
+ children: [/* @__PURE__ */ n("button", {
26
28
  type: "button",
27
- onClick: () => b(null),
28
- className: e([s, !g && c]),
29
- children: "All"
30
- }), y.map((n) => /* @__PURE__ */ t("button", {
29
+ onClick: () => x(null),
30
+ className: e([c, !_ && l]),
31
+ children: S.all
32
+ }), b.map((t) => /* @__PURE__ */ n("button", {
31
33
  type: "button",
32
- onClick: () => b(n),
33
- className: e([s, g === n && c]),
34
- children: n
35
- }, n))]
36
- }), /* @__PURE__ */ n("div", {
37
- className: e([l]),
38
- children: [x.map((r, i) => /* @__PURE__ */ n("div", {
39
- className: e([u]),
34
+ onClick: () => x(t),
35
+ className: e([c, _ === t && l]),
36
+ children: t
37
+ }, t))]
38
+ }), /* @__PURE__ */ r("div", {
39
+ className: e([u]),
40
+ children: [C.map((t, i) => /* @__PURE__ */ r("div", {
41
+ className: e([d]),
40
42
  children: [
41
- r.timestamp && /* @__PURE__ */ t("span", {
42
- className: e([d]),
43
- children: r.timestamp
43
+ t.timestamp && /* @__PURE__ */ n("span", {
44
+ className: e([f]),
45
+ children: t.timestamp
44
46
  }),
45
- /* @__PURE__ */ t("span", {
46
- className: e([f, v[r.level]]),
47
- children: r.level
47
+ /* @__PURE__ */ n("span", {
48
+ className: e([p, y[t.level]]),
49
+ children: t.level
48
50
  }),
49
- /* @__PURE__ */ t("span", {
50
- className: e([_]),
51
- children: r.message
51
+ /* @__PURE__ */ n("span", {
52
+ className: e([v]),
53
+ children: t.message
52
54
  })
53
55
  ]
54
- }, i)), x.length === 0 && /* @__PURE__ */ t("div", {
55
- className: e([u]),
56
- children: /* @__PURE__ */ t("span", {
56
+ }, i)), C.length === 0 && /* @__PURE__ */ n("div", {
57
+ className: e([d]),
58
+ children: /* @__PURE__ */ n("span", {
57
59
  style: { color: "var(--haze-color-text-muted)" },
58
- className: e([_]),
59
- children: "No logs"
60
+ className: e([v]),
61
+ children: S.noLogs
60
62
  })
61
63
  })]
62
64
  })]
63
65
  });
64
66
  }
65
67
  //#endregion
66
- export { b as default };
68
+ export { x as default };
@@ -1,2 +1,3 @@
1
+ "use client";
1
2
  import e from "./LogViewer.js";
2
3
  export { e as LogViewer };
@@ -1,26 +1,27 @@
1
1
 
2
+ "use client";
2
3
  import { classnames as e } from "../../utils/classnames.js";
4
+ import { parseMarkdown as t, splitBlocks as n } from "./markdown-blocks.js";
3
5
  /* empty css */
4
- import { jsx as t } from "react/jsx-runtime";
5
- import { useMemo as n } from "react";
6
+ import { jsx as r } from "react/jsx-runtime";
7
+ import { useMemo as i, useRef as a } from "react";
6
8
  //#region src/lib/components/MarkdownRenderer/MarkdownRenderer.tsx
7
- var r = "haze-MarkdownRenderer__wrapper";
8
- function i(e) {
9
- let t = e;
10
- return t = t.replace(/```(\w*)\n([\s\S]*?)```/g, (e, t, n) => `<pre><code class="lang-${t}">${a(n.trim())}</code></pre>`), t = t.replace(/`([^`]+)`/g, "<code>$1</code>"), t = t.replace(/^######\s+(.+)$/gm, "<h6>$1</h6>"), t = t.replace(/^#####\s+(.+)$/gm, "<h5>$1</h5>"), t = t.replace(/^####\s+(.+)$/gm, "<h4>$1</h4>"), t = t.replace(/^###\s+(.+)$/gm, "<h3>$1</h3>"), t = t.replace(/^##\s+(.+)$/gm, "<h2>$1</h2>"), t = t.replace(/^#\s+(.+)$/gm, "<h1>$1</h1>"), t = t.replace(/\*\*\*(.+?)\*\*\*/g, "<strong><em>$1</em></strong>"), t = t.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>"), t = t.replace(/\*(.+?)\*/g, "<em>$1</em>"), t = t.replace(/^>\s+(.+)$/gm, "<blockquote>$1</blockquote>"), t = t.replace(/^[-*]\s+(.+)$/gm, "<li>$1</li>"), t = t.replace(/((?:<li>.*<\/li>\n?)+)/g, "<ul>$1</ul>"), t = t.replace(/^\d+\.\s+(.+)$/gm, "<oli>$1</oli>"), t = t.replace(/((?:<oli>.*<\/oli>\n?)+)/g, (e) => "<ol>" + e.replace(/<\/?oli>/g, (e) => e.replace("oli", "li")) + "</ol>"), t = t.replace(/^---$/gm, "<hr />"), t = t.replace(/\[([^\]]+)\]\(([^)]+)\)/g, "<a href=\"$2\" target=\"_blank\" rel=\"noopener\">$1</a>"), t = t.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, "<img alt=\"$1\" src=\"$2\" />"), t = t.replace(/^(?!<[a-z])((?!<\/).+)$/gm, (e) => {
11
- let t = e.trim();
12
- return t ? `<p>${t}</p>` : "";
13
- }), t = t.replace(/\n{2,}/g, "\n"), t;
14
- }
15
- function a(e) {
16
- return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
17
- }
18
- function o({ content: a, className: o }) {
19
- let s = n(() => i(a), [a]);
20
- return /* @__PURE__ */ t("div", {
21
- dangerouslySetInnerHTML: { __html: s },
22
- className: e([r, o])
9
+ var o = "haze-MarkdownRenderer__wrapper";
10
+ function s({ content: s, className: c }) {
11
+ let l = i(() => n(s), [s]), u = a({
12
+ source: [],
13
+ parsed: []
14
+ }), d = i(() => {
15
+ let e = u.current, n = l.map((n, r) => e.source[r] === n ? e.parsed[r] : t(n));
16
+ return u.current = {
17
+ source: l,
18
+ parsed: n
19
+ }, n.join("\n");
20
+ }, [l]);
21
+ return /* @__PURE__ */ r("div", {
22
+ dangerouslySetInnerHTML: { __html: d },
23
+ className: e([o, c])
23
24
  });
24
25
  }
25
26
  //#endregion
26
- export { o as default };
27
+ export { s as default };
@@ -1,2 +1,3 @@
1
+ "use client";
1
2
  import e from "./MarkdownRenderer.js";
2
3
  export { e as MarkdownRenderer };
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ //#region src/lib/components/MarkdownRenderer/markdown-blocks.ts
3
+ var e = {
4
+ calls: 0,
5
+ chars: 0
6
+ };
7
+ function t(t) {
8
+ e.calls += 1, e.chars += t.length;
9
+ let r = t;
10
+ return r = r.replace(/```(\w*)\n([\s\S]*?)```/g, (e, t, r) => `<pre><code class="lang-${t}">${n(r.trim())}</code></pre>`), r = r.replace(/`([^`]+)`/g, "<code>$1</code>"), r = r.replace(/^######\s+(.+)$/gm, "<h6>$1</h6>"), r = r.replace(/^#####\s+(.+)$/gm, "<h5>$1</h5>"), r = r.replace(/^####\s+(.+)$/gm, "<h4>$1</h4>"), r = r.replace(/^###\s+(.+)$/gm, "<h3>$1</h3>"), r = r.replace(/^##\s+(.+)$/gm, "<h2>$1</h2>"), r = r.replace(/^#\s+(.+)$/gm, "<h1>$1</h1>"), r = r.replace(/\*\*\*(.+?)\*\*\*/g, "<strong><em>$1</em></strong>"), r = r.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>"), r = r.replace(/\*(.+?)\*/g, "<em>$1</em>"), r = r.replace(/^>\s+(.+)$/gm, "<blockquote>$1</blockquote>"), r = r.replace(/^[-*]\s+(.+)$/gm, "<li>$1</li>"), r = r.replace(/((?:<li>.*<\/li>\n?)+)/g, "<ul>$1</ul>"), r = r.replace(/^\d+\.\s+(.+)$/gm, "<oli>$1</oli>"), r = r.replace(/((?:<oli>.*<\/oli>\n?)+)/g, (e) => "<ol>" + e.replace(/<\/?oli>/g, (e) => e.replace("oli", "li")) + "</ol>"), r = r.replace(/^---$/gm, "<hr />"), r = r.replace(/\[([^\]]+)\]\(([^)]+)\)/g, "<a href=\"$2\" target=\"_blank\" rel=\"noopener\">$1</a>"), r = r.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, "<img alt=\"$1\" src=\"$2\" />"), r = r.replace(/^(?!<[a-z])((?!<\/).+)$/gm, (e) => {
11
+ let t = e.trim();
12
+ return t ? `<p>${t}</p>` : "";
13
+ }), r = r.replace(/\n{2,}/g, "\n"), r;
14
+ }
15
+ function n(e) {
16
+ return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
17
+ }
18
+ var r = /```(\w*)\n([\s\S]*?)```/g;
19
+ function i(e) {
20
+ let t = Array.from(e.matchAll(r), (e) => {
21
+ let t = e.index;
22
+ return {
23
+ start: t,
24
+ codeStart: t + (e[1] ?? "").length + 4,
25
+ end: t + e[0].length
26
+ };
27
+ }), n = [], i = 0, a = 0, o = -1, s = 0, c = 0;
28
+ for (; c < e.length;) {
29
+ let r = t[s];
30
+ if (r && r.start <= c) {
31
+ o >= 0 && (c - o >= 2 && i % 2 == 0 && (n.push(e.slice(a, o)), a = c), o = -1);
32
+ for (let t = r.codeStart; t < r.end - 3; t++) e[t] === "`" && (i += 1);
33
+ c = r.end, s += 1;
34
+ continue;
35
+ }
36
+ let l = e[c];
37
+ l === "\n" ? o < 0 && (o = c) : (o >= 0 && c - o >= 2 && i % 2 == 0 && (n.push(e.slice(a, o)), a = c), o = -1, l === "`" && (i += 1)), c += 1;
38
+ }
39
+ return o >= 0 && e.length - o >= 2 && i % 2 == 0 && (n.push(e.slice(a, o)), a = e.length), [...n, e.slice(a)];
40
+ }
41
+ //#endregion
42
+ export { t as parseMarkdown, e as parseStats, i as splitBlocks };
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import e from "./MentionsCore.js";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Mentions/Mentions.tsx
6
+ function r({ value: r, onChange: i, ...a }) {
7
+ let [o, s] = n(r, "");
8
+ return /* @__PURE__ */ t(e, {
9
+ value: o,
10
+ onChange: (e) => {
11
+ s(e), i?.(e);
12
+ },
13
+ ...a
14
+ });
15
+ }
16
+ //#endregion
17
+ export { r as default };
@@ -0,0 +1,116 @@
1
+
2
+ "use client";
3
+ import { classnames as e } from "../../utils/classnames.js";
4
+ import { FloatingPanel as t, useFloating as n } from "../../utils/floating.js";
5
+ import { useStrings as r } from "../LocaleProvider/useStrings.js";
6
+ /* empty css */
7
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
8
+ import { useEffect as o, useId as s, useRef as c, useState as l } from "react";
9
+ //#region src/lib/components/Mentions/MentionsCore.tsx
10
+ var u = "haze-MentionsCore__wrapper", d = "haze-MentionsCore__textareaClass", f = "haze-MentionsCore__listbox", p = "haze-MentionsCore__option", m = "haze-MentionsCore__highlightedStyle", h = "haze-MentionsCore__noMatch";
11
+ function g(e, t, n) {
12
+ let r = Math.min(t, e.length);
13
+ for (let t = r - 1; t >= 0; --t) {
14
+ let i = e[t];
15
+ if (i === void 0 || /\s/.test(i)) return null;
16
+ let a = t > 0 ? e[t - 1] : void 0;
17
+ if (i === n && (a === void 0 || /\s/.test(a))) return {
18
+ start: t,
19
+ end: r,
20
+ query: e.slice(t + 1, r)
21
+ };
22
+ }
23
+ return null;
24
+ }
25
+ function _({ value: _, onChange: v, options: y, trigger: b = "@", placeholder: x, className: S, "aria-label": C, ...w }) {
26
+ let T = r("mentions"), [E, D] = l(!1), [O, k] = l(null), [A, j] = l(-1), M = s(), N = c(null), P = c(null), F = n({
27
+ open: E,
28
+ setOpen: D,
29
+ triggerRef: N,
30
+ panelRef: P,
31
+ animated: !0
32
+ }), I = O ? y.filter((e) => {
33
+ let t = O.query.toLowerCase();
34
+ return e.value.toLowerCase().startsWith(t) || (e.label?.toLowerCase().startsWith(t) ?? !1);
35
+ }) : [], L = (e) => `${M}-option-${e}`, R = E && I[A] ? L(A) : void 0, z = O ? `${O.start}:${O.query}` : "", [B, V] = l(z);
36
+ z !== B && (V(z), j(-1));
37
+ let H = c(null);
38
+ o(() => {
39
+ let e = H.current;
40
+ if (e === null) return;
41
+ H.current = null;
42
+ let t = N.current;
43
+ t && (t.focus(), t.setSelectionRange(e, e));
44
+ }, [_]);
45
+ let U = (e, t) => {
46
+ let n = g(e, t, b);
47
+ k(n), D(n !== null);
48
+ }, W = (e) => {
49
+ if (!O) return;
50
+ let t = N.current?.value ?? _, n = Math.min(O.end, t.length), r = `${b}${e.value} `;
51
+ v(t.slice(0, O.start) + r + t.slice(n)), H.current = O.start + r.length, k(null), D(!1);
52
+ };
53
+ return /* @__PURE__ */ a("div", {
54
+ role: "combobox",
55
+ "aria-expanded": E,
56
+ "aria-haspopup": "listbox",
57
+ "aria-controls": M,
58
+ "aria-label": C ?? x ?? T.label,
59
+ className: e([u, S]),
60
+ children: [/* @__PURE__ */ i("textarea", {
61
+ ref: N,
62
+ style: F.triggerStyle,
63
+ "aria-label": C ?? x ?? T.label,
64
+ "aria-autocomplete": "list",
65
+ "aria-controls": M,
66
+ "aria-activedescendant": R,
67
+ className: d,
68
+ value: _,
69
+ placeholder: x,
70
+ onChange: (e) => {
71
+ v(e.target.value), U(e.target.value, e.target.selectionStart);
72
+ },
73
+ onSelect: (e) => {
74
+ let t = e.currentTarget;
75
+ U(t.value, t.selectionStart);
76
+ },
77
+ onPointerDown: F.onTriggerPointerDown,
78
+ onKeyDown: (e) => {
79
+ if (E) {
80
+ if (e.key === "ArrowDown") e.preventDefault(), j((e) => Math.min(e + 1, I.length - 1));
81
+ else if (e.key === "ArrowUp") e.preventDefault(), j((e) => Math.max(e - 1, 0));
82
+ else if (e.key === "Enter" || e.key === "Tab") {
83
+ let t = I[A] ?? I[0];
84
+ t && (e.preventDefault(), W(t));
85
+ } else e.key === "Escape" && D(!1);
86
+ }
87
+ },
88
+ ...w
89
+ }), /* @__PURE__ */ i(t, {
90
+ ref: P,
91
+ behavior: F,
92
+ placement: "bottom-span",
93
+ id: M,
94
+ role: "listbox",
95
+ visualClass: f,
96
+ children: I.length === 0 ? /* @__PURE__ */ i("div", {
97
+ role: "option",
98
+ "aria-selected": "false",
99
+ "aria-disabled": "true",
100
+ className: h,
101
+ children: T.noMatch
102
+ }) : I.map((t, n) => /* @__PURE__ */ i("div", {
103
+ role: "option",
104
+ id: L(n),
105
+ "aria-selected": n === A,
106
+ "aria-setsize": I.length,
107
+ "aria-posinset": n + 1,
108
+ onClick: () => W(t),
109
+ className: e([p, n === A && m]),
110
+ children: t.label ?? t.value
111
+ }, t.value))
112
+ })]
113
+ });
114
+ }
115
+ //#endregion
116
+ export { _ as default };