@devalok/shilp-sutra 0.36.1 → 0.37.0-next.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 (530) hide show
  1. package/MIGRATION.md +346 -0
  2. package/README.md +26 -29
  3. package/dist/_chunks/badge-group.js +42 -42
  4. package/dist/_chunks/badge-group.js.map +1 -1
  5. package/dist/_chunks/chat.js +324 -327
  6. package/dist/_chunks/chat.js.map +1 -1
  7. package/dist/_chunks/date-picker.js +245 -245
  8. package/dist/_chunks/date-picker.js.map +1 -1
  9. package/dist/_chunks/document-preview.js +33 -33
  10. package/dist/_chunks/document-preview.js.map +1 -1
  11. package/dist/_chunks/file-preview.js +264 -264
  12. package/dist/_chunks/file-preview.js.map +1 -1
  13. package/dist/_chunks/image-preview.js +45 -45
  14. package/dist/_chunks/image-preview.js.map +1 -1
  15. package/dist/_chunks/mention-suggestion.js +85 -85
  16. package/dist/_chunks/mention-suggestion.js.map +1 -1
  17. package/dist/_chunks/motion-provider.js +13 -13
  18. package/dist/_chunks/motion-provider.js.map +1 -1
  19. package/dist/_chunks/popover.js +36 -36
  20. package/dist/_chunks/popover.js.map +1 -1
  21. package/dist/_chunks/primitives.js +489 -489
  22. package/dist/_chunks/primitives.js.map +1 -1
  23. package/dist/_chunks/rich-chat-input.js +1065 -1065
  24. package/dist/_chunks/rich-chat-input.js.map +1 -1
  25. package/dist/_chunks/shared.js +43 -43
  26. package/dist/_chunks/shared.js.map +1 -1
  27. package/dist/_chunks/text.js +432 -0
  28. package/dist/_chunks/text.js.map +1 -0
  29. package/dist/_chunks/tiptap.js +6053 -6187
  30. package/dist/_chunks/tiptap.js.map +1 -1
  31. package/dist/_chunks/tree-view.js +97 -97
  32. package/dist/_chunks/tree-view.js.map +1 -1
  33. package/dist/_chunks/use-calendar.js.map +1 -1
  34. package/dist/ai/ai-command-provider.d.ts.map +1 -1
  35. package/dist/ai/ai-command-provider.js.map +1 -1
  36. package/dist/ai/block-renderer.d.ts.map +1 -1
  37. package/dist/ai/block-renderer.js +43 -43
  38. package/dist/ai/block-renderer.js.map +1 -1
  39. package/dist/ai/blocks/block-table.d.ts.map +1 -1
  40. package/dist/ai/blocks/confirm.d.ts.map +1 -1
  41. package/dist/ai/blocks/divider.d.ts.map +1 -1
  42. package/dist/ai/blocks/error.d.ts.map +1 -1
  43. package/dist/ai/blocks/index.d.ts +5 -5
  44. package/dist/ai/blocks/index.d.ts.map +1 -1
  45. package/dist/ai/blocks/index.js +2 -2
  46. package/dist/ai/blocks/info.d.ts.map +1 -1
  47. package/dist/ai/blocks/loading.d.ts.map +1 -1
  48. package/dist/ai/blocks/stat-row.d.ts.map +1 -1
  49. package/dist/ai/blocks/success.d.ts.map +1 -1
  50. package/dist/ai/blocks/text.d.ts.map +1 -1
  51. package/dist/ai/command-bar.d.ts +0 -11
  52. package/dist/ai/command-bar.d.ts.map +1 -1
  53. package/dist/ai/command-bar.js +128 -128
  54. package/dist/ai/command-bar.js.map +1 -1
  55. package/dist/ai/conversation.d.ts +1 -1
  56. package/dist/ai/conversation.d.ts.map +1 -1
  57. package/dist/ai/conversation.js +76 -76
  58. package/dist/ai/conversation.js.map +1 -1
  59. package/dist/ai/devadoot-icon.d.ts +0 -12
  60. package/dist/ai/devadoot-icon.d.ts.map +1 -1
  61. package/dist/ai/index.d.ts +11 -11
  62. package/dist/ai/index.d.ts.map +1 -1
  63. package/dist/ai/index.js +44 -44
  64. package/dist/ai/index.js.map +1 -1
  65. package/dist/composed/activity-feed.d.ts.map +1 -1
  66. package/dist/composed/activity-feed.js +93 -93
  67. package/dist/composed/activity-feed.js.map +1 -1
  68. package/dist/composed/avatar-group.d.ts.map +1 -1
  69. package/dist/composed/avatar-group.js +50 -50
  70. package/dist/composed/avatar-group.js.map +1 -1
  71. package/dist/composed/bulk-action-bar.d.ts.map +1 -1
  72. package/dist/composed/bulk-action-bar.js +40 -40
  73. package/dist/composed/bulk-action-bar.js.map +1 -1
  74. package/dist/composed/command-palette.d.ts +0 -6
  75. package/dist/composed/command-palette.d.ts.map +1 -1
  76. package/dist/composed/command-palette.js +131 -131
  77. package/dist/composed/command-palette.js.map +1 -1
  78. package/dist/composed/confirm-dialog.d.ts.map +1 -1
  79. package/dist/composed/confirm-dialog.js.map +1 -1
  80. package/dist/composed/content-card.d.ts.map +1 -1
  81. package/dist/composed/content-card.js.map +1 -1
  82. package/dist/composed/date-picker/calendar-grid.d.ts.map +1 -1
  83. package/dist/composed/date-picker/date-picker.d.ts.map +1 -1
  84. package/dist/composed/date-picker/date-range-picker.d.ts.map +1 -1
  85. package/dist/composed/date-picker/date-time-picker.d.ts.map +1 -1
  86. package/dist/composed/date-picker/index.d.ts +11 -11
  87. package/dist/composed/date-picker/index.d.ts.map +1 -1
  88. package/dist/composed/date-picker/index.js +1 -1
  89. package/dist/composed/date-picker/month-picker.d.ts.map +1 -1
  90. package/dist/composed/date-picker/presets.d.ts.map +1 -1
  91. package/dist/composed/date-picker/time-picker.d.ts.map +1 -1
  92. package/dist/composed/date-picker/year-picker.d.ts.map +1 -1
  93. package/dist/composed/deadline-indicator.d.ts.map +1 -1
  94. package/dist/composed/deadline-indicator.js +25 -25
  95. package/dist/composed/deadline-indicator.js.map +1 -1
  96. package/dist/composed/emoji-picker.d.ts.map +1 -1
  97. package/dist/composed/emoji-picker.js +37 -37
  98. package/dist/composed/emoji-picker.js.map +1 -1
  99. package/dist/composed/empty-state.d.ts.map +1 -1
  100. package/dist/composed/empty-state.js +21 -21
  101. package/dist/composed/empty-state.js.map +1 -1
  102. package/dist/composed/error-boundary.d.ts +1 -1
  103. package/dist/composed/error-boundary.d.ts.map +1 -1
  104. package/dist/composed/error-boundary.js.map +1 -1
  105. package/dist/composed/extensions/emoji-node.d.ts.map +1 -1
  106. package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -1
  107. package/dist/composed/extensions/file-attachment.d.ts.map +1 -1
  108. package/dist/composed/extensions/mention-suggestion.d.ts +1 -1
  109. package/dist/composed/extensions/mention-suggestion.d.ts.map +1 -1
  110. package/dist/composed/extensions/slash-command.d.ts +1 -1
  111. package/dist/composed/extensions/slash-command.d.ts.map +1 -1
  112. package/dist/composed/file-preview/audio-preview.d.ts.map +1 -1
  113. package/dist/composed/file-preview/document-preview.d.ts.map +1 -1
  114. package/dist/composed/file-preview/embed-preview.d.ts.map +1 -1
  115. package/dist/composed/file-preview/image-preview.d.ts.map +1 -1
  116. package/dist/composed/file-preview/shared.d.ts.map +1 -1
  117. package/dist/composed/file-preview/video-preview.d.ts.map +1 -1
  118. package/dist/composed/file-preview.d.ts.map +1 -1
  119. package/dist/composed/filter-bar.d.ts +1 -1
  120. package/dist/composed/filter-bar.d.ts.map +1 -1
  121. package/dist/composed/filter-bar.js +54 -54
  122. package/dist/composed/filter-bar.js.map +1 -1
  123. package/dist/composed/form-section.d.ts.map +1 -1
  124. package/dist/composed/form-section.js +26 -26
  125. package/dist/composed/form-section.js.map +1 -1
  126. package/dist/composed/global-loading.d.ts.map +1 -1
  127. package/dist/composed/global-loading.js.map +1 -1
  128. package/dist/composed/index.d.ts +55 -55
  129. package/dist/composed/index.d.ts.map +1 -1
  130. package/dist/composed/index.js +17 -17
  131. package/dist/composed/inline-edit.d.ts.map +1 -1
  132. package/dist/composed/inline-edit.js.map +1 -1
  133. package/dist/composed/loading-skeleton.d.ts +1 -1
  134. package/dist/composed/loading-skeleton.d.ts.map +1 -1
  135. package/dist/composed/loading-skeleton.js.map +1 -1
  136. package/dist/composed/markdown-viewer.d.ts.map +1 -1
  137. package/dist/composed/markdown-viewer.js +3 -3
  138. package/dist/composed/markdown-viewer.js.map +1 -1
  139. package/dist/composed/master-detail.d.ts.map +1 -1
  140. package/dist/composed/master-detail.js +42 -42
  141. package/dist/composed/master-detail.js.map +1 -1
  142. package/dist/composed/member-picker.d.ts.map +1 -1
  143. package/dist/composed/member-picker.js.map +1 -1
  144. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  145. package/dist/composed/multi-select-popover.js +55 -55
  146. package/dist/composed/multi-select-popover.js.map +1 -1
  147. package/dist/composed/page-header.d.ts.map +1 -1
  148. package/dist/composed/page-header.js.map +1 -1
  149. package/dist/composed/page-skeletons.d.ts.map +1 -1
  150. package/dist/composed/page-skeletons.js.map +1 -1
  151. package/dist/composed/priority-indicator.d.ts.map +1 -1
  152. package/dist/composed/priority-indicator.js +34 -34
  153. package/dist/composed/priority-indicator.js.map +1 -1
  154. package/dist/composed/responsive-overlay.d.ts.map +1 -1
  155. package/dist/composed/responsive-overlay.js.map +1 -1
  156. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  157. package/dist/composed/rich-chat-input/audio-player.d.ts.map +1 -1
  158. package/dist/composed/rich-chat-input/audio-waveform.d.ts.map +1 -1
  159. package/dist/composed/rich-chat-input/chat-toolbar.d.ts.map +1 -1
  160. package/dist/composed/rich-chat-input/recording-overlay.d.ts.map +1 -1
  161. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  162. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  163. package/dist/composed/rich-chat-input.d.ts +6 -6
  164. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  165. package/dist/composed/rich-chat-input.js +1 -1
  166. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  167. package/dist/composed/rich-text-editor.js +24 -24
  168. package/dist/composed/rich-text-editor.js.map +1 -1
  169. package/dist/composed/schedule-view.d.ts.map +1 -1
  170. package/dist/composed/schedule-view.js +53 -53
  171. package/dist/composed/schedule-view.js.map +1 -1
  172. package/dist/composed/simple-tooltip.d.ts.map +1 -1
  173. package/dist/composed/simple-tooltip.js.map +1 -1
  174. package/dist/composed/status-badge.d.ts +1 -1
  175. package/dist/composed/status-badge.d.ts.map +1 -1
  176. package/dist/composed/status-badge.js +30 -30
  177. package/dist/composed/status-badge.js.map +1 -1
  178. package/dist/hooks/index.d.ts +3 -3
  179. package/dist/hooks/index.d.ts.map +1 -1
  180. package/dist/hooks/index.js +1 -1
  181. package/dist/hooks/use-color-mode.js.map +1 -1
  182. package/dist/hooks/use-toast.d.ts +1 -1
  183. package/dist/hooks/use-toast.d.ts.map +1 -1
  184. package/dist/motion/index.d.ts +2 -2
  185. package/dist/motion/index.d.ts.map +1 -1
  186. package/dist/motion/index.js.map +1 -1
  187. package/dist/motion/motion-provider.d.ts +1 -1
  188. package/dist/motion/motion-provider.d.ts.map +1 -1
  189. package/dist/motion/primitives-index.d.ts +1 -1
  190. package/dist/motion/primitives-index.d.ts.map +1 -1
  191. package/dist/motion/primitives-index.js +40 -40
  192. package/dist/motion/primitives-index.js.map +1 -1
  193. package/dist/motion/primitives.d.ts +1 -1
  194. package/dist/motion/primitives.d.ts.map +1 -1
  195. package/dist/shell/app-command-palette.d.ts +0 -8
  196. package/dist/shell/app-command-palette.d.ts.map +1 -1
  197. package/dist/shell/app-command-palette.js.map +1 -1
  198. package/dist/shell/bottom-navbar.d.ts +0 -6
  199. package/dist/shell/bottom-navbar.d.ts.map +1 -1
  200. package/dist/shell/bottom-navbar.js +62 -62
  201. package/dist/shell/bottom-navbar.js.map +1 -1
  202. package/dist/shell/index.d.ts +8 -8
  203. package/dist/shell/index.d.ts.map +1 -1
  204. package/dist/shell/index.js +5 -5
  205. package/dist/shell/link-context.d.ts +1 -1
  206. package/dist/shell/link-context.d.ts.map +1 -1
  207. package/dist/shell/notification-center.d.ts +0 -6
  208. package/dist/shell/notification-center.d.ts.map +1 -1
  209. package/dist/shell/notification-center.js +54 -54
  210. package/dist/shell/notification-center.js.map +1 -1
  211. package/dist/shell/notification-preferences.d.ts +0 -6
  212. package/dist/shell/notification-preferences.d.ts.map +1 -1
  213. package/dist/shell/notification-preferences.js +22 -22
  214. package/dist/shell/notification-preferences.js.map +1 -1
  215. package/dist/shell/sidebar.d.ts.map +1 -1
  216. package/dist/shell/sidebar.js.map +1 -1
  217. package/dist/shell/top-bar.d.ts +0 -6
  218. package/dist/shell/top-bar.d.ts.map +1 -1
  219. package/dist/shell/top-bar.js.map +1 -1
  220. package/dist/tailwind/index.cjs +15 -499
  221. package/dist/tailwind/preset.d.ts +21 -0
  222. package/dist/tailwind/preset.d.ts.map +1 -1
  223. package/dist/tailwind/preset.js +14 -489
  224. package/dist/tailwind/preset.js.map +1 -1
  225. package/dist/tokens/animations.css +17 -0
  226. package/dist/tokens/base.css +26 -0
  227. package/dist/tokens/index.css +22 -0
  228. package/dist/tokens/semantic.css +436 -464
  229. package/dist/tokens/shilp-sutra.css +41 -0
  230. package/dist/tokens/typography-semantic.css +48 -41
  231. package/dist/tokens/utilities.css +276 -0
  232. package/dist/tokens/variants.css +14 -0
  233. package/dist/ui/accordion.d.ts +2 -2
  234. package/dist/ui/accordion.d.ts.map +1 -1
  235. package/dist/ui/accordion.js +23 -23
  236. package/dist/ui/accordion.js.map +1 -1
  237. package/dist/ui/alert-dialog.d.ts +2 -2
  238. package/dist/ui/alert-dialog.d.ts.map +1 -1
  239. package/dist/ui/alert-dialog.js +37 -37
  240. package/dist/ui/alert-dialog.js.map +1 -1
  241. package/dist/ui/alert.d.ts.map +1 -1
  242. package/dist/ui/alert.js +36 -36
  243. package/dist/ui/alert.js.map +1 -1
  244. package/dist/ui/aspect-ratio.d.ts +1 -1
  245. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  246. package/dist/ui/aspect-ratio.js.map +1 -1
  247. package/dist/ui/autocomplete.d.ts +1 -1
  248. package/dist/ui/autocomplete.d.ts.map +1 -1
  249. package/dist/ui/autocomplete.js +27 -27
  250. package/dist/ui/autocomplete.js.map +1 -1
  251. package/dist/ui/avatar.d.ts +2 -2
  252. package/dist/ui/avatar.d.ts.map +1 -1
  253. package/dist/ui/avatar.js +41 -41
  254. package/dist/ui/avatar.js.map +1 -1
  255. package/dist/ui/badge-group.d.ts.map +1 -1
  256. package/dist/ui/badge-indicator.d.ts.map +1 -1
  257. package/dist/ui/badge-indicator.js +10 -10
  258. package/dist/ui/badge-indicator.js.map +1 -1
  259. package/dist/ui/badge.d.ts +2 -2
  260. package/dist/ui/badge.d.ts.map +1 -1
  261. package/dist/ui/banner.d.ts.map +1 -1
  262. package/dist/ui/banner.js +28 -28
  263. package/dist/ui/banner.js.map +1 -1
  264. package/dist/ui/breadcrumb.d.ts +1 -1
  265. package/dist/ui/breadcrumb.d.ts.map +1 -1
  266. package/dist/ui/breadcrumb.js.map +1 -1
  267. package/dist/ui/button-group.d.ts.map +1 -1
  268. package/dist/ui/button-group.js.map +1 -1
  269. package/dist/ui/button-processing.d.ts.map +1 -1
  270. package/dist/ui/button-processing.js +15 -15
  271. package/dist/ui/button-processing.js.map +1 -1
  272. package/dist/ui/button.d.ts.map +1 -1
  273. package/dist/ui/button.js +84 -84
  274. package/dist/ui/button.js.map +1 -1
  275. package/dist/ui/card.d.ts +1 -1
  276. package/dist/ui/card.d.ts.map +1 -1
  277. package/dist/ui/card.js +28 -28
  278. package/dist/ui/card.js.map +1 -1
  279. package/dist/ui/charts/_internal/axes.d.ts +1 -1
  280. package/dist/ui/charts/_internal/axes.d.ts.map +1 -1
  281. package/dist/ui/charts/_internal/grid-lines.d.ts.map +1 -1
  282. package/dist/ui/charts/_internal/legend.d.ts.map +1 -1
  283. package/dist/ui/charts/_internal/tooltip.d.ts +1 -1
  284. package/dist/ui/charts/_internal/tooltip.d.ts.map +1 -1
  285. package/dist/ui/charts/area-chart.d.ts.map +1 -1
  286. package/dist/ui/charts/bar-chart.d.ts +1 -1
  287. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  288. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  289. package/dist/ui/charts/gauge-chart.d.ts.map +1 -1
  290. package/dist/ui/charts/index.d.ts +5 -5
  291. package/dist/ui/charts/index.d.ts.map +1 -1
  292. package/dist/ui/charts/index.js +616 -616
  293. package/dist/ui/charts/index.js.map +1 -1
  294. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  295. package/dist/ui/charts/pie-chart.d.ts.map +1 -1
  296. package/dist/ui/charts/radar-chart.d.ts.map +1 -1
  297. package/dist/ui/charts/sparkline.d.ts.map +1 -1
  298. package/dist/ui/chat/date-separator.d.ts.map +1 -1
  299. package/dist/ui/chat/index.d.ts +4 -4
  300. package/dist/ui/chat/index.d.ts.map +1 -1
  301. package/dist/ui/chat/index.js +1 -1
  302. package/dist/ui/chat/message-input.d.ts.map +1 -1
  303. package/dist/ui/chat/message-list.d.ts.map +1 -1
  304. package/dist/ui/chat/message.d.ts +1 -1
  305. package/dist/ui/chat/message.d.ts.map +1 -1
  306. package/dist/ui/chat/system-message.d.ts.map +1 -1
  307. package/dist/ui/chat/typing-indicator.d.ts.map +1 -1
  308. package/dist/ui/chat/unread-separator.d.ts.map +1 -1
  309. package/dist/ui/checkbox.d.ts.map +1 -1
  310. package/dist/ui/checkbox.js +18 -18
  311. package/dist/ui/checkbox.js.map +1 -1
  312. package/dist/ui/code.d.ts.map +1 -1
  313. package/dist/ui/code.js.map +1 -1
  314. package/dist/ui/collapsible.d.ts +2 -2
  315. package/dist/ui/collapsible.d.ts.map +1 -1
  316. package/dist/ui/collapsible.js +10 -10
  317. package/dist/ui/collapsible.js.map +1 -1
  318. package/dist/ui/color-input.d.ts.map +1 -1
  319. package/dist/ui/color-input.js +85 -85
  320. package/dist/ui/color-input.js.map +1 -1
  321. package/dist/ui/color-swatch.d.ts.map +1 -1
  322. package/dist/ui/color-swatch.js.map +1 -1
  323. package/dist/ui/combobox.d.ts.map +1 -1
  324. package/dist/ui/combobox.js +58 -58
  325. package/dist/ui/combobox.js.map +1 -1
  326. package/dist/ui/container.d.ts.map +1 -1
  327. package/dist/ui/container.js.map +1 -1
  328. package/dist/ui/context-menu.d.ts +2 -2
  329. package/dist/ui/context-menu.d.ts.map +1 -1
  330. package/dist/ui/context-menu.js +47 -47
  331. package/dist/ui/context-menu.js.map +1 -1
  332. package/dist/ui/data-table-body.d.ts +1 -1
  333. package/dist/ui/data-table-body.d.ts.map +1 -1
  334. package/dist/ui/data-table-body.js +43 -43
  335. package/dist/ui/data-table-body.js.map +1 -1
  336. package/dist/ui/data-table-bulk-actions.js.map +1 -1
  337. package/dist/ui/data-table-card.d.ts.map +1 -1
  338. package/dist/ui/data-table-card.js +7 -7
  339. package/dist/ui/data-table-card.js.map +1 -1
  340. package/dist/ui/data-table-context.d.ts +1 -1
  341. package/dist/ui/data-table-context.d.ts.map +1 -1
  342. package/dist/ui/data-table-context.js.map +1 -1
  343. package/dist/ui/data-table-header.js +38 -38
  344. package/dist/ui/data-table-header.js.map +1 -1
  345. package/dist/ui/data-table-pagination.js.map +1 -1
  346. package/dist/ui/data-table-toolbar.d.ts.map +1 -1
  347. package/dist/ui/data-table-toolbar.js.map +1 -1
  348. package/dist/ui/data-table.d.ts +2 -2
  349. package/dist/ui/data-table.d.ts.map +1 -1
  350. package/dist/ui/data-table.js +5 -5
  351. package/dist/ui/data-table.js.map +1 -1
  352. package/dist/ui/devalok-grain.js +8 -8
  353. package/dist/ui/devalok-grain.js.map +1 -1
  354. package/dist/ui/dialog.d.ts +2 -2
  355. package/dist/ui/dialog.d.ts.map +1 -1
  356. package/dist/ui/dialog.js +41 -41
  357. package/dist/ui/dialog.js.map +1 -1
  358. package/dist/ui/dropdown-menu.d.ts +2 -2
  359. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  360. package/dist/ui/dropdown-menu.js +46 -46
  361. package/dist/ui/dropdown-menu.js.map +1 -1
  362. package/dist/ui/file-upload.d.ts.map +1 -1
  363. package/dist/ui/file-upload.js +54 -54
  364. package/dist/ui/file-upload.js.map +1 -1
  365. package/dist/ui/form.d.ts.map +1 -1
  366. package/dist/ui/form.js +17 -17
  367. package/dist/ui/form.js.map +1 -1
  368. package/dist/ui/hover-card.d.ts +2 -2
  369. package/dist/ui/hover-card.d.ts.map +1 -1
  370. package/dist/ui/hover-card.js +19 -19
  371. package/dist/ui/hover-card.js.map +1 -1
  372. package/dist/ui/icon-button.d.ts.map +1 -1
  373. package/dist/ui/icon-button.js.map +1 -1
  374. package/dist/ui/icon-group.d.ts.map +1 -1
  375. package/dist/ui/icon-group.js +4 -4
  376. package/dist/ui/icon-group.js.map +1 -1
  377. package/dist/ui/icon.d.ts.map +1 -1
  378. package/dist/ui/icon.js +32 -32
  379. package/dist/ui/icon.js.map +1 -1
  380. package/dist/ui/index.d.ts +57 -57
  381. package/dist/ui/index.d.ts.map +1 -1
  382. package/dist/ui/index.js +27 -27
  383. package/dist/ui/index.js.map +1 -1
  384. package/dist/ui/input-otp.d.ts +1 -1
  385. package/dist/ui/input-otp.d.ts.map +1 -1
  386. package/dist/ui/input-otp.js.map +1 -1
  387. package/dist/ui/input.d.ts.map +1 -1
  388. package/dist/ui/input.js +14 -14
  389. package/dist/ui/input.js.map +1 -1
  390. package/dist/ui/label.d.ts +1 -1
  391. package/dist/ui/label.d.ts.map +1 -1
  392. package/dist/ui/label.js.map +1 -1
  393. package/dist/ui/lib/bottom-sheet.d.ts.map +1 -1
  394. package/dist/ui/lib/index.d.ts +4 -4
  395. package/dist/ui/lib/index.d.ts.map +1 -1
  396. package/dist/ui/lib/slot.d.ts +1 -1
  397. package/dist/ui/lib/slot.d.ts.map +1 -1
  398. package/dist/ui/lib/utils.d.ts.map +1 -1
  399. package/dist/ui/lib/utils.js.map +1 -1
  400. package/dist/ui/link.d.ts.map +1 -1
  401. package/dist/ui/link.js.map +1 -1
  402. package/dist/ui/menubar.d.ts +2 -2
  403. package/dist/ui/menubar.d.ts.map +1 -1
  404. package/dist/ui/menubar.js +64 -64
  405. package/dist/ui/menubar.js.map +1 -1
  406. package/dist/ui/navigation-menu.d.ts +2 -2
  407. package/dist/ui/navigation-menu.d.ts.map +1 -1
  408. package/dist/ui/navigation-menu.js +72 -72
  409. package/dist/ui/navigation-menu.js.map +1 -1
  410. package/dist/ui/number-input.d.ts.map +1 -1
  411. package/dist/ui/number-input.js.map +1 -1
  412. package/dist/ui/pagination.d.ts +1 -1
  413. package/dist/ui/pagination.d.ts.map +1 -1
  414. package/dist/ui/pagination.js.map +1 -1
  415. package/dist/ui/popover.d.ts +2 -2
  416. package/dist/ui/popover.d.ts.map +1 -1
  417. package/dist/ui/progress-ring.d.ts +1 -1
  418. package/dist/ui/progress-ring.d.ts.map +1 -1
  419. package/dist/ui/progress-ring.js +33 -33
  420. package/dist/ui/progress-ring.js.map +1 -1
  421. package/dist/ui/progress.d.ts +2 -2
  422. package/dist/ui/progress.d.ts.map +1 -1
  423. package/dist/ui/progress.js +23 -23
  424. package/dist/ui/progress.js.map +1 -1
  425. package/dist/ui/radio.d.ts.map +1 -1
  426. package/dist/ui/radio.js +19 -19
  427. package/dist/ui/radio.js.map +1 -1
  428. package/dist/ui/search-input.d.ts.map +1 -1
  429. package/dist/ui/search-input.js +17 -17
  430. package/dist/ui/search-input.js.map +1 -1
  431. package/dist/ui/segmented-control.d.ts.map +1 -1
  432. package/dist/ui/segmented-control.js +18 -18
  433. package/dist/ui/segmented-control.js.map +1 -1
  434. package/dist/ui/select.d.ts +2 -2
  435. package/dist/ui/select.d.ts.map +1 -1
  436. package/dist/ui/select.js +68 -68
  437. package/dist/ui/select.js.map +1 -1
  438. package/dist/ui/separator.d.ts +1 -1
  439. package/dist/ui/separator.d.ts.map +1 -1
  440. package/dist/ui/separator.js.map +1 -1
  441. package/dist/ui/sheet.d.ts +2 -2
  442. package/dist/ui/sheet.d.ts.map +1 -1
  443. package/dist/ui/sheet.js +44 -44
  444. package/dist/ui/sheet.js.map +1 -1
  445. package/dist/ui/sidebar.d.ts +1 -1
  446. package/dist/ui/sidebar.d.ts.map +1 -1
  447. package/dist/ui/sidebar.js +155 -155
  448. package/dist/ui/sidebar.js.map +1 -1
  449. package/dist/ui/skeleton.d.ts +1 -1
  450. package/dist/ui/skeleton.d.ts.map +1 -1
  451. package/dist/ui/skeleton.js +2 -2
  452. package/dist/ui/skeleton.js.map +1 -1
  453. package/dist/ui/slider.d.ts +2 -2
  454. package/dist/ui/slider.d.ts.map +1 -1
  455. package/dist/ui/slider.js +5 -5
  456. package/dist/ui/slider.js.map +1 -1
  457. package/dist/ui/spinner.d.ts.map +1 -1
  458. package/dist/ui/spinner.js +21 -21
  459. package/dist/ui/spinner.js.map +1 -1
  460. package/dist/ui/split-button.d.ts +1 -1
  461. package/dist/ui/split-button.d.ts.map +1 -1
  462. package/dist/ui/split-button.js +28 -28
  463. package/dist/ui/split-button.js.map +1 -1
  464. package/dist/ui/stack.d.ts +1 -1
  465. package/dist/ui/stack.d.ts.map +1 -1
  466. package/dist/ui/stack.js.map +1 -1
  467. package/dist/ui/stat-card.d.ts.map +1 -1
  468. package/dist/ui/stat-card.js +73 -73
  469. package/dist/ui/stat-card.js.map +1 -1
  470. package/dist/ui/status-dot.d.ts.map +1 -1
  471. package/dist/ui/status-dot.js.map +1 -1
  472. package/dist/ui/stepper.d.ts +1 -1
  473. package/dist/ui/stepper.d.ts.map +1 -1
  474. package/dist/ui/stepper.js +48 -48
  475. package/dist/ui/stepper.js.map +1 -1
  476. package/dist/ui/switch.d.ts +1 -1
  477. package/dist/ui/switch.d.ts.map +1 -1
  478. package/dist/ui/switch.js +15 -15
  479. package/dist/ui/switch.js.map +1 -1
  480. package/dist/ui/table.d.ts +1 -1
  481. package/dist/ui/table.d.ts.map +1 -1
  482. package/dist/ui/table.js.map +1 -1
  483. package/dist/ui/tabs.d.ts +2 -2
  484. package/dist/ui/tabs.d.ts.map +1 -1
  485. package/dist/ui/tabs.js +52 -52
  486. package/dist/ui/tabs.js.map +1 -1
  487. package/dist/ui/text.d.ts +1 -1
  488. package/dist/ui/text.d.ts.map +1 -1
  489. package/dist/ui/text.js.map +1 -1
  490. package/dist/ui/textarea.d.ts.map +1 -1
  491. package/dist/ui/textarea.js +13 -13
  492. package/dist/ui/textarea.js.map +1 -1
  493. package/dist/ui/toast-registry.js.map +1 -1
  494. package/dist/ui/toast.d.ts +3 -3
  495. package/dist/ui/toast.d.ts.map +1 -1
  496. package/dist/ui/toast.js +164 -164
  497. package/dist/ui/toast.js.map +1 -1
  498. package/dist/ui/toaster.d.ts.map +1 -1
  499. package/dist/ui/toaster.js +6 -6
  500. package/dist/ui/toaster.js.map +1 -1
  501. package/dist/ui/toggle-group.d.ts +1 -1
  502. package/dist/ui/toggle-group.d.ts.map +1 -1
  503. package/dist/ui/toggle-group.js.map +1 -1
  504. package/dist/ui/toggle.d.ts +1 -1
  505. package/dist/ui/toggle.d.ts.map +1 -1
  506. package/dist/ui/toggle.js +14 -14
  507. package/dist/ui/toggle.js.map +1 -1
  508. package/dist/ui/tooltip.d.ts +2 -2
  509. package/dist/ui/tooltip.d.ts.map +1 -1
  510. package/dist/ui/tooltip.js +26 -26
  511. package/dist/ui/tooltip.js.map +1 -1
  512. package/dist/ui/tree-view/index.d.ts +2 -2
  513. package/dist/ui/tree-view/index.d.ts.map +1 -1
  514. package/dist/ui/tree-view/index.js +1 -1
  515. package/dist/ui/tree-view/tree-view.d.ts +1 -1
  516. package/dist/ui/tree-view/tree-view.d.ts.map +1 -1
  517. package/dist/ui/visually-hidden.d.ts.map +1 -1
  518. package/dist/ui/visually-hidden.js.map +1 -1
  519. package/docs/components/_header.md +96 -0
  520. package/docs/rollback.md +179 -0
  521. package/llms-full.txt +97 -1
  522. package/llms.txt +24 -2
  523. package/package.json +296 -277
  524. package/dist/_chunks/framer.js +0 -5604
  525. package/dist/_chunks/framer.js.map +0 -1
  526. package/dist/_chunks/rolldown-runtime.js +0 -21
  527. package/dist/_chunks/sonner.js +0 -616
  528. package/dist/_chunks/sonner.js.map +0 -1
  529. package/dist/_chunks/stat-row.js +0 -432
  530. package/dist/_chunks/stat-row.js.map +0 -1
@@ -1,119 +1,62 @@
1
1
  "use client";
2
- import { a as e, c as t } from "./framer.js";
3
- import { motionProps as n, springs as r, tweens as i } from "../ui/lib/motion.js";
4
- import { cn as a } from "../ui/lib/utils.js";
5
- import { Spinner as o } from "../ui/spinner.js";
6
- import { Icon as s } from "../ui/icon.js";
7
- import { Avatar as c, AvatarFallback as l, AvatarImage as u } from "../ui/avatar.js";
8
- import { Button as d } from "../ui/button.js";
9
- import { Tooltip as f, TooltipContent as p, TooltipTrigger as m } from "../ui/tooltip.js";
10
- import * as h from "react";
11
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
12
- import { IconAlertCircle as v, IconSend as y, IconSquare as b, IconTrash as x } from "@tabler/icons-react";
13
- //#region src/ui/chat/message-list.tsx
14
- var S = h.forwardRef(({ children: n, autoScroll: r = !0, newMessageCount: s = 0, onScrollToBottom: c, onLoadMore: l, loadingMore: u = !1, emptySlot: d, scrollToBottomSlot: f, headerSlot: p, className: m, ...v }, y) => {
15
- let b = h.useRef(null), x = h.useRef(!0), [S, C] = h.useState(!0), w = h.useRef(!1), T = h.useRef(0), E = h.Children.count(n) === 0 && !u, D = h.useCallback(() => {
16
- let e = b.current;
17
- if (!e) return;
18
- let t = e.scrollHeight - e.scrollTop - e.clientHeight < 40;
19
- x.current = t, C(t), e.scrollTop < 100 && l && !w.current && (w.current = !0, T.current = e.scrollHeight, l());
20
- }, [l]);
21
- h.useLayoutEffect(() => {
22
- let e = b.current;
23
- if (e) {
24
- if (w.current) {
25
- e.scrollTop = e.scrollHeight - T.current, w.current = !1;
26
- return;
27
- }
28
- r && x.current && e.scrollTo({
29
- top: e.scrollHeight,
30
- behavior: "smooth"
31
- });
32
- }
33
- }, [n, r]), h.useEffect(() => {
34
- u || (w.current = !1);
35
- }, [u]);
36
- let O = s > 0 && !S, k = h.useCallback(() => {
37
- let e = b.current;
38
- e && e.scrollTo({
39
- top: e.scrollHeight,
40
- behavior: "smooth"
41
- }), c?.();
42
- }, [c]);
43
- return /* @__PURE__ */ _("div", {
44
- ref: y,
45
- className: a("relative flex flex-1 flex-col overflow-hidden", m),
46
- ...v,
2
+ import { motionProps as e, springs as t, tweens as n } from "../ui/lib/motion.js";
3
+ import { cn as r } from "../ui/lib/utils.js";
4
+ import { Spinner as i } from "../ui/spinner.js";
5
+ import { Icon as a } from "../ui/icon.js";
6
+ import { Avatar as o, AvatarFallback as s, AvatarImage as c } from "../ui/avatar.js";
7
+ import { Button as l } from "../ui/button.js";
8
+ import { Tooltip as u, TooltipContent as d, TooltipTrigger as f } from "../ui/tooltip.js";
9
+ import * as p from "react";
10
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
11
+ import { IconAlertCircle as g, IconSend as _, IconSquare as v, IconTrash as y } from "@tabler/icons-react";
12
+ import { AnimatePresence as b, motion as x } from "framer-motion";
13
+ //#region src/ui/chat/date-separator.tsx
14
+ function S(e) {
15
+ let t = /* @__PURE__ */ new Date(), n = new Date(t.getFullYear(), t.getMonth(), t.getDate()), r = new Date(e.getFullYear(), e.getMonth(), e.getDate()), i = n.getTime() - r.getTime(), a = Math.round(i / (1e3 * 60 * 60 * 24));
16
+ if (a === 0) return "Today";
17
+ if (a === 1) return "Yesterday";
18
+ let o = e.toLocaleString("en-US", { month: "short" }), s = e.getDate();
19
+ return e.getFullYear() === t.getFullYear() ? `${o} ${s}` : `${o} ${s}, ${e.getFullYear()}`;
20
+ }
21
+ function C({ date: e, format: t, className: n }) {
22
+ let i = typeof e == "string" ? new Date(e) : e, a = t ? t(i) : S(i);
23
+ return /* @__PURE__ */ h("div", {
24
+ className: r("flex items-center gap-ds-03 py-ds-03", n),
47
25
  children: [
48
- p,
49
- /* @__PURE__ */ _("div", {
50
- ref: b,
51
- role: "log",
52
- "aria-live": "polite",
53
- "aria-relevant": "additions",
54
- className: "flex-1 overflow-y-auto px-ds-05 py-ds-04",
55
- style: {
56
- scrollbarWidth: "thin",
57
- scrollbarColor: "var(--color-surface-border) transparent"
58
- },
59
- onScroll: D,
60
- children: [u && /* @__PURE__ */ g("div", {
61
- className: "flex justify-center py-ds-03",
62
- children: /* @__PURE__ */ g(o, { size: "sm" })
63
- }), E ? d : /* @__PURE__ */ g("div", {
64
- className: "flex flex-col gap-ds-04",
65
- children: /* @__PURE__ */ g(t, {
66
- initial: !1,
67
- children: n
68
- })
69
- })]
26
+ /* @__PURE__ */ m("div", { className: "flex-1 border-t border-surface-border-subtle" }),
27
+ /* @__PURE__ */ m("span", {
28
+ className: "text-ds-xs font-medium text-surface-fg-subtle/50 uppercase tracking-wider",
29
+ children: a
70
30
  }),
71
- /* @__PURE__ */ g(t, { children: O && /* @__PURE__ */ _(e.button, {
72
- initial: {
73
- opacity: 0,
74
- y: 10
75
- },
76
- animate: {
77
- opacity: 1,
78
- y: 0
79
- },
80
- exit: {
81
- opacity: 0,
82
- y: 10
83
- },
84
- transition: i.fade,
85
- onClick: k,
86
- className: "absolute bottom-ds-04 left-1/2 z-10 -translate-x-1/2 rounded-full bg-accent-9 px-ds-04 py-ds-02 text-ds-xs font-medium text-accent-fg shadow-raised transition-colors hover:bg-accent-10",
87
- children: [s, " new"]
88
- }) })
31
+ /* @__PURE__ */ m("div", { className: "flex-1 border-t border-surface-border-subtle" })
89
32
  ]
90
33
  });
91
- });
92
- S.displayName = "MessageList";
34
+ }
35
+ C.displayName = "DateSeparator";
93
36
  //#endregion
94
37
  //#region src/ui/chat/message.tsx
95
- var C = h.createContext({
38
+ var w = p.createContext({
96
39
  variant: "flat",
97
40
  placement: "start",
98
41
  grouped: !1
99
42
  });
100
- function w() {
101
- return h.useContext(C);
43
+ function T() {
44
+ return p.useContext(w);
102
45
  }
103
- var T = h.forwardRef(({ children: t, variant: i = "flat", placement: o = "start", highlight: c, grouped: l = !1, deleted: u = !1, deletedText: d = "This message was deleted", className: f, ...p }, m) => {
104
- let v = h.useMemo(() => ({
46
+ var E = p.forwardRef(({ children: n, variant: i = "flat", placement: o = "start", highlight: s, grouped: c = !1, deleted: l = !1, deletedText: u = "This message was deleted", className: d, ...f }, g) => {
47
+ let _ = p.useMemo(() => ({
105
48
  variant: i,
106
49
  placement: o,
107
- grouped: l,
108
- highlight: c
50
+ grouped: c,
51
+ highlight: s
109
52
  }), [
110
53
  i,
111
54
  o,
112
- l,
113
- c
55
+ c,
56
+ s
114
57
  ]);
115
- return u ? /* @__PURE__ */ _(e.div, {
116
- ref: m,
58
+ return l ? /* @__PURE__ */ h(x.div, {
59
+ ref: g,
117
60
  initial: {
118
61
  opacity: 0,
119
62
  y: 8
@@ -122,17 +65,17 @@ var T = h.forwardRef(({ children: t, variant: i = "flat", placement: o = "start"
122
65
  opacity: 1,
123
66
  y: 0
124
67
  },
125
- transition: r.snappy,
126
- className: a("flex items-center gap-ds-02 py-ds-02 text-ds-xs text-surface-fg-subtle/50 italic", f),
127
- ...n(p),
128
- children: [/* @__PURE__ */ g(s, {
129
- icon: x,
68
+ transition: t.snappy,
69
+ className: r("flex items-center gap-ds-02 py-ds-02 text-ds-xs text-surface-fg-subtle/50 italic", d),
70
+ ...e(f),
71
+ children: [/* @__PURE__ */ m(a, {
72
+ icon: y,
130
73
  size: "xs"
131
- }), d]
132
- }) : i === "bubble" ? /* @__PURE__ */ g(C.Provider, {
133
- value: v,
134
- children: /* @__PURE__ */ g(e.div, {
135
- ref: m,
74
+ }), u]
75
+ }) : i === "bubble" ? /* @__PURE__ */ m(w.Provider, {
76
+ value: _,
77
+ children: /* @__PURE__ */ m(x.div, {
78
+ ref: g,
136
79
  initial: {
137
80
  opacity: 0,
138
81
  y: 8
@@ -141,18 +84,18 @@ var T = h.forwardRef(({ children: t, variant: i = "flat", placement: o = "start"
141
84
  opacity: 1,
142
85
  y: 0
143
86
  },
144
- transition: r.snappy,
145
- className: a("group/message relative flex", o === "end" ? "justify-end" : "justify-start", c === "mention" && "border-l-2 border-l-accent-9 bg-accent-2 pl-ds-03 rounded-ds-sm", c === "internal" && "bg-warning-2/50 rounded-ds-sm", f),
146
- ...n(p),
147
- children: /* @__PURE__ */ g("div", {
148
- className: a("max-w-[85%] rounded-ds-2xl px-ds-04 py-ds-03", o === "end" ? "bg-accent-3 text-surface-fg" : "bg-surface-raised text-surface-fg"),
149
- children: t
87
+ transition: t.snappy,
88
+ className: r("group/message relative flex", o === "end" ? "justify-end" : "justify-start", s === "mention" && "border-l-2 border-l-accent-9 bg-accent-2 pl-ds-03 rounded-ds-sm", s === "internal" && "bg-warning-2/50 rounded-ds-sm", d),
89
+ ...e(f),
90
+ children: /* @__PURE__ */ m("div", {
91
+ className: r("max-w-[85%] rounded-ds-2xl px-ds-04 py-ds-03", o === "end" ? "bg-accent-3 text-surface-fg" : "bg-surface-raised text-surface-fg"),
92
+ children: n
150
93
  })
151
94
  })
152
- }) : /* @__PURE__ */ g(C.Provider, {
153
- value: v,
154
- children: /* @__PURE__ */ g(e.div, {
155
- ref: m,
95
+ }) : /* @__PURE__ */ m(w.Provider, {
96
+ value: _,
97
+ children: /* @__PURE__ */ m(x.div, {
98
+ ref: g,
156
99
  initial: {
157
100
  opacity: 0,
158
101
  y: 8
@@ -161,281 +104,194 @@ var T = h.forwardRef(({ children: t, variant: i = "flat", placement: o = "start"
161
104
  opacity: 1,
162
105
  y: 0
163
106
  },
164
- transition: r.snappy,
165
- className: a("group/message relative flex gap-ds-04", l && "-mt-ds-01", c === "mention" && "border-l-2 border-l-accent-9 bg-accent-2 pl-ds-03 rounded-ds-sm", c === "internal" && "bg-warning-2/50 rounded-ds-sm", f),
166
- ...n(p),
167
- children: t
107
+ transition: t.snappy,
108
+ className: r("group/message relative flex gap-ds-04", c && "-mt-ds-01", s === "mention" && "border-l-2 border-l-accent-9 bg-accent-2 pl-ds-03 rounded-ds-sm", s === "internal" && "bg-warning-2/50 rounded-ds-sm", d),
109
+ ...e(f),
110
+ children: n
168
111
  })
169
112
  });
170
113
  });
171
- T.displayName = "Message";
172
- function E({ src: e, fallback: t, icon: n, size: r = "md", children: i }) {
173
- let { grouped: o } = w(), s = r === "sm" ? "w-5" : "w-6";
174
- return o ? /* @__PURE__ */ g("div", { className: a(s, r === "sm" ? "h-5" : "h-6", "shrink-0") }) : i ? /* @__PURE__ */ g("div", {
175
- className: a(s, "shrink-0 flex items-start"),
176
- children: i
177
- }) : n ? /* @__PURE__ */ g("div", {
178
- className: a(s, r === "sm" ? "h-5" : "h-6", "shrink-0 flex items-center justify-center rounded-ds-full bg-surface-raised-hover"),
114
+ E.displayName = "Message";
115
+ function D({ src: e, fallback: t, icon: n, size: i = "md", children: a }) {
116
+ let { grouped: l } = T(), u = i === "sm" ? "w-5" : "w-6";
117
+ return l ? /* @__PURE__ */ m("div", { className: r(u, i === "sm" ? "h-5" : "h-6", "shrink-0") }) : a ? /* @__PURE__ */ m("div", {
118
+ className: r(u, "shrink-0 flex items-start"),
119
+ children: a
120
+ }) : n ? /* @__PURE__ */ m("div", {
121
+ className: r(u, i === "sm" ? "h-5" : "h-6", "shrink-0 flex items-center justify-center rounded-ds-full bg-surface-raised-hover"),
179
122
  children: n
180
- }) : /* @__PURE__ */ g("div", {
181
- className: a(s, "shrink-0"),
182
- children: /* @__PURE__ */ _(c, {
183
- size: r === "sm" ? "xs" : "sm",
184
- children: [e && /* @__PURE__ */ g(u, {
123
+ }) : /* @__PURE__ */ m("div", {
124
+ className: r(u, "shrink-0"),
125
+ children: /* @__PURE__ */ h(o, {
126
+ size: i === "sm" ? "xs" : "sm",
127
+ children: [e && /* @__PURE__ */ m(c, {
185
128
  src: e,
186
129
  alt: t ?? ""
187
- }), /* @__PURE__ */ g(l, { children: t ?? "" })]
130
+ }), /* @__PURE__ */ m(s, { children: t ?? "" })]
188
131
  })
189
132
  });
190
133
  }
191
- E.displayName = "Message.Avatar";
192
- function D({ children: e, className: t, ...n }) {
193
- return /* @__PURE__ */ g("div", {
194
- className: a("min-w-0 flex-1 flex flex-col gap-ds-02", t),
134
+ D.displayName = "Message.Avatar";
135
+ function O({ children: e, className: t, ...n }) {
136
+ return /* @__PURE__ */ m("div", {
137
+ className: r("min-w-0 flex-1 flex flex-col gap-ds-02", t),
195
138
  ...n,
196
139
  children: e
197
140
  });
198
141
  }
199
- D.displayName = "Message.Content";
200
- function O(e) {
142
+ O.displayName = "Message.Content";
143
+ function k(e) {
201
144
  return e.toLocaleTimeString("en-US", {
202
145
  hour: "numeric",
203
146
  minute: "2-digit"
204
147
  });
205
148
  }
206
- function k({ name: e, badge: t, timestamp: n, formattedTimestamp: r, timestampFormat: i = O }) {
207
- let { grouped: a } = w();
149
+ function A({ name: e, badge: t, timestamp: n, formattedTimestamp: r, timestampFormat: i = k }) {
150
+ let { grouped: a } = T();
208
151
  if (a) return null;
209
152
  let o = r ?? (n ? i(n) : void 0);
210
- return /* @__PURE__ */ _("div", {
153
+ return /* @__PURE__ */ h("div", {
211
154
  className: "flex items-baseline gap-ds-02",
212
155
  children: [
213
- /* @__PURE__ */ g("span", {
156
+ /* @__PURE__ */ m("span", {
214
157
  className: "font-semibold text-[13px] text-surface-fg",
215
158
  children: e
216
159
  }),
217
160
  t,
218
- o && /* @__PURE__ */ g("span", {
161
+ o && /* @__PURE__ */ m("span", {
219
162
  className: "text-[11px] text-surface-fg-subtle/50",
220
163
  children: o
221
164
  })
222
165
  ]
223
166
  });
224
167
  }
225
- k.displayName = "Message.Author";
226
- function A({ children: e, className: t, ...n }) {
227
- return /* @__PURE__ */ g("div", {
228
- className: a("text-[13px] leading-relaxed text-surface-fg whitespace-pre-wrap", t),
168
+ A.displayName = "Message.Author";
169
+ function j({ children: e, className: t, ...n }) {
170
+ return /* @__PURE__ */ m("div", {
171
+ className: r("text-[13px] leading-relaxed text-surface-fg whitespace-pre-wrap", t),
229
172
  ...n,
230
173
  children: e
231
174
  });
232
175
  }
233
- A.displayName = "Message.Body";
234
- function j({ content: e, onSave: t, onCancel: n, canEdit: r = !1, renderContent: i }) {
235
- let [o, s] = h.useState(!1), [c, l] = h.useState(e), u = h.useRef(null);
236
- h.useEffect(() => {
176
+ j.displayName = "Message.Body";
177
+ function M({ content: e, onSave: t, onCancel: n, canEdit: i = !1, renderContent: a }) {
178
+ let [o, s] = p.useState(!1), [c, l] = p.useState(e), u = p.useRef(null);
179
+ p.useEffect(() => {
237
180
  o && u.current && (u.current.focus(), u.current.select());
238
181
  }, [o]);
239
- let d = h.useCallback(() => {
240
- r && (l(e), s(!0));
241
- }, [r, e]), f = h.useCallback(() => {
182
+ let d = p.useCallback(() => {
183
+ i && (l(e), s(!0));
184
+ }, [i, e]), f = p.useCallback(() => {
242
185
  let n = c.trim();
243
186
  n && n !== e && t(n), s(!1);
244
187
  }, [
245
188
  c,
246
189
  e,
247
190
  t
248
- ]), p = h.useCallback(() => {
191
+ ]), g = p.useCallback(() => {
249
192
  s(!1), l(e), n?.();
250
- }, [e, n]), m = h.useCallback((e) => {
251
- e.key === "Enter" && !e.shiftKey ? (e.preventDefault(), f()) : e.key === "Escape" && (e.preventDefault(), p());
252
- }, [f, p]);
253
- return o ? /* @__PURE__ */ _("div", {
193
+ }, [e, n]), _ = p.useCallback((e) => {
194
+ e.key === "Enter" && !e.shiftKey ? (e.preventDefault(), f()) : e.key === "Escape" && (e.preventDefault(), g());
195
+ }, [f, g]);
196
+ return o ? /* @__PURE__ */ h("div", {
254
197
  className: "text-[13px] leading-relaxed",
255
- children: [/* @__PURE__ */ g("textarea", {
198
+ children: [/* @__PURE__ */ m("textarea", {
256
199
  ref: u,
257
200
  value: c,
258
201
  onChange: (e) => l(e.target.value),
259
- onKeyDown: m,
202
+ onKeyDown: _,
260
203
  onBlur: f,
261
204
  className: "w-full resize-none rounded-ds-sm border border-surface-border-strong bg-surface-raised-hover px-ds-02 py-ds-01 text-[13px] leading-relaxed text-surface-fg focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9",
262
205
  rows: 2
263
- }), /* @__PURE__ */ g("div", {
206
+ }), /* @__PURE__ */ m("div", {
264
207
  className: "mt-ds-01 text-ds-xs text-surface-fg-subtle/50",
265
208
  children: "Enter to save · Escape to cancel"
266
209
  })]
267
- }) : /* @__PURE__ */ g("div", {
268
- className: a("text-[13px] leading-relaxed text-surface-fg whitespace-pre-wrap", r && "cursor-pointer hover:bg-surface-raised-hover rounded-ds-sm transition-colors"),
210
+ }) : /* @__PURE__ */ m("div", {
211
+ className: r("text-[13px] leading-relaxed text-surface-fg whitespace-pre-wrap", i && "cursor-pointer hover:bg-surface-raised-hover rounded-ds-sm transition-colors"),
269
212
  onClick: d,
270
- role: r ? "button" : void 0,
271
- tabIndex: r ? 0 : void 0,
272
- onKeyDown: r ? (e) => {
213
+ role: i ? "button" : void 0,
214
+ tabIndex: i ? 0 : void 0,
215
+ onKeyDown: i ? (e) => {
273
216
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), d());
274
217
  } : void 0,
275
- children: i ? i(e) : e
218
+ children: a ? a(e) : e
276
219
  });
277
220
  }
278
- j.displayName = "Message.EditableBody";
279
- function M({ reactions: e, onReact: t }) {
280
- return e.length === 0 ? null : /* @__PURE__ */ g("div", {
221
+ M.displayName = "Message.EditableBody";
222
+ function N({ reactions: e, onReact: t }) {
223
+ return e.length === 0 ? null : /* @__PURE__ */ m("div", {
281
224
  className: "flex flex-wrap gap-ds-02 mt-ds-03",
282
- children: e.map((e) => /* @__PURE__ */ _("button", {
225
+ children: e.map((e) => /* @__PURE__ */ h("button", {
283
226
  type: "button",
284
227
  onClick: () => t(e.emoji),
285
228
  "aria-label": `${e.emoji} ${e.count} reaction${e.count === 1 ? "" : "s"}${e.reacted ? ", you reacted" : ""}`,
286
- className: a("inline-flex items-center gap-ds-01 rounded-full px-ds-02 py-ds-01 text-ds-xs transition-colors", e.reacted ? "bg-accent-3 ring-1 ring-accent-6" : "bg-surface-raised-hover hover:bg-surface-raised-active"),
287
- children: [/* @__PURE__ */ g("span", { children: e.emoji }), /* @__PURE__ */ g("span", { children: e.count })]
229
+ className: r("inline-flex items-center gap-ds-01 rounded-full px-ds-02 py-ds-01 text-ds-xs transition-colors", e.reacted ? "bg-accent-3 ring-1 ring-accent-6" : "bg-surface-raised-hover hover:bg-surface-raised-active"),
230
+ children: [/* @__PURE__ */ m("span", { children: e.emoji }), /* @__PURE__ */ m("span", { children: e.count })]
288
231
  }, e.emoji))
289
232
  });
290
233
  }
291
- M.displayName = "Message.Reactions";
292
- function N({ children: e, delay: t = 100 }) {
293
- return /* @__PURE__ */ g("div", {
294
- className: a("absolute -top-2 right-0 z-10", "flex items-center gap-ds-01 rounded-ds-md border border-surface-border bg-surface-raised px-ds-01 py-ds-01 shadow-raised", "opacity-0 group-hover/message:opacity-100 group-focus-within/message:opacity-100 transition-opacity duration-150"),
234
+ N.displayName = "Message.Reactions";
235
+ function P({ children: e, delay: t = 100 }) {
236
+ return /* @__PURE__ */ m("div", {
237
+ className: r("absolute -top-2 right-0 z-10", "flex items-center gap-ds-01 rounded-ds-md border border-surface-border bg-surface-raised px-ds-01 py-ds-01 shadow-raised", "opacity-0 group-hover/message:opacity-100 group-focus-within/message:opacity-100 transition-opacity duration-150"),
295
238
  style: { transitionDelay: `${t}ms` },
296
239
  children: e
297
240
  });
298
241
  }
299
- N.displayName = "Message.Actions";
300
- function P({ icon: e, label: t, onClick: n, variant: r = "default" }) {
301
- return /* @__PURE__ */ _(f, { children: [/* @__PURE__ */ g(m, {
242
+ P.displayName = "Message.Actions";
243
+ function F({ icon: e, label: t, onClick: n, variant: i = "default" }) {
244
+ return /* @__PURE__ */ h(u, { children: [/* @__PURE__ */ m(f, {
302
245
  asChild: !0,
303
- children: /* @__PURE__ */ g("button", {
246
+ children: /* @__PURE__ */ m("button", {
304
247
  type: "button",
305
248
  onClick: n,
306
249
  "aria-label": t,
307
- className: a("p-ds-02 rounded-ds-sm transition-colors", r === "default" && "text-surface-fg-subtle hover:text-surface-fg hover:bg-surface-raised-hover", r === "danger" && "text-surface-fg-subtle hover:text-error-11 hover:bg-surface-raised-hover"),
308
- children: /* @__PURE__ */ g(s, {
250
+ className: r("p-ds-02 rounded-ds-sm transition-colors", i === "default" && "text-surface-fg-subtle hover:text-surface-fg hover:bg-surface-raised-hover", i === "danger" && "text-surface-fg-subtle hover:text-error-11 hover:bg-surface-raised-hover"),
251
+ children: /* @__PURE__ */ m(a, {
309
252
  icon: e,
310
253
  size: "xs"
311
254
  })
312
255
  })
313
- }), /* @__PURE__ */ g(p, { children: t })] });
314
- }
315
- P.displayName = "Message.Action";
316
- var F = Object.assign(T, {
317
- Avatar: E,
318
- Content: D,
319
- Author: k,
320
- Body: A,
321
- EditableBody: j,
322
- Reactions: M,
323
- Actions: N,
324
- Action: P
325
- });
326
- //#endregion
327
- //#region src/ui/chat/system-message.tsx
328
- function I(e) {
329
- return new Date(e).toLocaleTimeString("en-US", {
330
- hour: "numeric",
331
- minute: "2-digit"
332
- });
333
- }
334
- var L = h.forwardRef(({ icon: e, timestamp: t, variant: n = "event", children: r, className: i, ...o }, c) => n === "alert" ? /* @__PURE__ */ g("div", {
335
- ref: c,
336
- role: "alert",
337
- className: a("flex justify-center", i),
338
- ...o,
339
- children: /* @__PURE__ */ _("div", {
340
- className: "flex items-center gap-ds-03 rounded-ds-lg bg-error-3 px-ds-04 py-ds-03",
341
- children: [
342
- e ?? /* @__PURE__ */ g(s, {
343
- icon: v,
344
- size: "sm"
345
- }),
346
- /* @__PURE__ */ g("span", {
347
- className: "text-ds-sm text-error-11",
348
- children: r
349
- }),
350
- t && /* @__PURE__ */ g("span", {
351
- className: "text-ds-sm text-error-11/60",
352
- children: I(t)
353
- })
354
- ]
355
- })
356
- }) : /* @__PURE__ */ _("div", {
357
- ref: c,
358
- className: a("flex items-center gap-ds-02 rounded-ds-sm bg-surface-raised-hover/30 px-ds-02 py-ds-01 -mx-ds-02 text-ds-sm text-surface-fg-subtle/60", i),
359
- ...o,
360
- children: [
361
- e,
362
- /* @__PURE__ */ g("span", {
363
- className: "flex-1",
364
- children: r
365
- }),
366
- t && /* @__PURE__ */ g("span", { children: I(t) })
367
- ]
368
- }));
369
- L.displayName = "SystemMessage";
370
- //#endregion
371
- //#region src/ui/chat/date-separator.tsx
372
- function R(e) {
373
- let t = /* @__PURE__ */ new Date(), n = new Date(t.getFullYear(), t.getMonth(), t.getDate()), r = new Date(e.getFullYear(), e.getMonth(), e.getDate()), i = n.getTime() - r.getTime(), a = Math.round(i / (1e3 * 60 * 60 * 24));
374
- if (a === 0) return "Today";
375
- if (a === 1) return "Yesterday";
376
- let o = e.toLocaleString("en-US", { month: "short" }), s = e.getDate();
377
- return e.getFullYear() === t.getFullYear() ? `${o} ${s}` : `${o} ${s}, ${e.getFullYear()}`;
378
- }
379
- function z({ date: e, format: t, className: n }) {
380
- let r = typeof e == "string" ? new Date(e) : e, i = t ? t(r) : R(r);
381
- return /* @__PURE__ */ _("div", {
382
- className: a("flex items-center gap-ds-03 py-ds-03", n),
383
- children: [
384
- /* @__PURE__ */ g("div", { className: "flex-1 border-t border-surface-border-subtle" }),
385
- /* @__PURE__ */ g("span", {
386
- className: "text-ds-xs font-medium text-surface-fg-subtle/50 uppercase tracking-wider",
387
- children: i
388
- }),
389
- /* @__PURE__ */ g("div", { className: "flex-1 border-t border-surface-border-subtle" })
390
- ]
391
- });
256
+ }), /* @__PURE__ */ m(d, { children: t })] });
392
257
  }
393
- z.displayName = "DateSeparator";
394
- //#endregion
395
- //#region src/ui/chat/unread-separator.tsx
396
- function B({ label: e = "NEW", count: t, className: n }) {
397
- return /* @__PURE__ */ _("div", {
398
- className: a("relative flex items-center py-ds-02", n),
399
- children: [
400
- /* @__PURE__ */ g("div", { className: "flex-1 border-t-2 border-accent-7" }),
401
- /* @__PURE__ */ g("span", {
402
- className: "px-ds-03 text-ds-xs font-semibold text-accent-11",
403
- children: t ? `${t} ${e}` : e
404
- }),
405
- /* @__PURE__ */ g("div", { className: "flex-1 border-t-2 border-accent-7" })
406
- ]
407
- });
408
- }
409
- B.displayName = "UnreadSeparator";
410
- //#endregion
411
- //#region src/ui/chat/message-input.tsx
412
- var V = h.forwardRef(({ onSubmit: e, placeholder: t = "Type a message...", disabled: n = !1, isStreaming: r = !1, onCancel: i, leadingSlot: o, trailingSlot: c, disclaimer: l, sendIcon: u, className: f, ...p }, m) => {
413
- let [v, x] = h.useState(""), S = h.useRef(null), C = h.useCallback(() => {
258
+ F.displayName = "Message.Action";
259
+ var I = Object.assign(E, {
260
+ Avatar: D,
261
+ Content: O,
262
+ Author: A,
263
+ Body: j,
264
+ EditableBody: M,
265
+ Reactions: N,
266
+ Actions: P,
267
+ Action: F
268
+ }), L = p.forwardRef(({ onSubmit: e, placeholder: t = "Type a message...", disabled: n = !1, isStreaming: i = !1, onCancel: o, leadingSlot: s, trailingSlot: c, disclaimer: u, sendIcon: d, className: f, ...g }, y) => {
269
+ let [b, x] = p.useState(""), S = p.useRef(null), C = p.useCallback(() => {
414
270
  let e = S.current;
415
271
  e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 160)}px`);
416
- }, []), w = h.useCallback((e) => {
272
+ }, []), w = p.useCallback((e) => {
417
273
  x(e.target.value), C();
418
- }, [C]), T = h.useCallback(() => {
419
- let t = v.trim();
420
- !t || r || (e(t), x(""), S.current && (S.current.style.height = "auto"));
274
+ }, [C]), T = p.useCallback(() => {
275
+ let t = b.trim();
276
+ !t || i || (e(t), x(""), S.current && (S.current.style.height = "auto"));
421
277
  }, [
422
- v,
423
- r,
278
+ b,
279
+ i,
424
280
  e
425
- ]), E = h.useCallback((e) => {
426
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), r || T());
427
- }, [r, T]), D = v.trim().length === 0;
428
- return /* @__PURE__ */ _("div", {
429
- ref: m,
430
- className: a("border-t border-surface-border-subtle px-ds-05 py-ds-04", f),
431
- ...p,
432
- children: [/* @__PURE__ */ _("div", {
281
+ ]), E = p.useCallback((e) => {
282
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), i || T());
283
+ }, [i, T]), D = b.trim().length === 0;
284
+ return /* @__PURE__ */ h("div", {
285
+ ref: y,
286
+ className: r("border-t border-surface-border-subtle px-ds-05 py-ds-04", f),
287
+ ...g,
288
+ children: [/* @__PURE__ */ h("div", {
433
289
  className: "flex items-end gap-ds-02 rounded-ds-xl border border-surface-border bg-surface-base p-ds-03",
434
290
  children: [
435
- o,
436
- /* @__PURE__ */ g("textarea", {
291
+ s,
292
+ /* @__PURE__ */ m("textarea", {
437
293
  ref: S,
438
- value: v,
294
+ value: b,
439
295
  onChange: w,
440
296
  onKeyDown: E,
441
297
  placeholder: t,
@@ -445,58 +301,183 @@ var V = h.forwardRef(({ onSubmit: e, placeholder: t = "Type a message...", disab
445
301
  className: "flex-1 resize-none bg-transparent px-ds-02 py-ds-01 text-ds-sm text-surface-fg placeholder:text-surface-fg-subtle/50 focus:outline-hidden disabled:opacity-50",
446
302
  style: { maxHeight: 160 }
447
303
  }),
448
- r ? /* @__PURE__ */ g(d, {
304
+ i ? /* @__PURE__ */ m(l, {
449
305
  variant: "ghost",
450
306
  size: "icon-sm",
451
307
  color: "error",
452
- onClick: i,
308
+ onClick: o,
453
309
  "aria-label": "Stop",
454
- children: /* @__PURE__ */ g(s, {
455
- icon: b,
310
+ children: /* @__PURE__ */ m(a, {
311
+ icon: v,
456
312
  size: "sm"
457
313
  })
458
- }) : /* @__PURE__ */ g(d, {
314
+ }) : /* @__PURE__ */ m(l, {
459
315
  variant: "ghost",
460
316
  size: "icon-sm",
461
317
  onClick: T,
462
318
  disabled: D || n,
463
319
  "aria-label": "Send",
464
- children: u ?? /* @__PURE__ */ g(s, {
465
- icon: y,
320
+ children: d ?? /* @__PURE__ */ m(a, {
321
+ icon: _,
466
322
  size: "sm"
467
323
  })
468
324
  }),
469
325
  c
470
326
  ]
471
- }), l && /* @__PURE__ */ g("p", {
327
+ }), u && /* @__PURE__ */ m("p", {
472
328
  className: "mt-ds-02 text-center text-ds-xs text-surface-fg-subtle/50",
473
- children: l
329
+ children: u
474
330
  })]
475
331
  });
476
332
  });
477
- V.displayName = "MessageInput";
333
+ L.displayName = "MessageInput";
334
+ //#endregion
335
+ //#region src/ui/chat/message-list.tsx
336
+ var R = p.forwardRef(({ children: e, autoScroll: t = !0, newMessageCount: a = 0, onScrollToBottom: o, onLoadMore: s, loadingMore: c = !1, emptySlot: l, scrollToBottomSlot: u, headerSlot: d, className: f, ...g }, _) => {
337
+ let v = p.useRef(null), y = p.useRef(!0), [S, C] = p.useState(!0), w = p.useRef(!1), T = p.useRef(0), E = p.Children.count(e) === 0 && !c, D = p.useCallback(() => {
338
+ let e = v.current;
339
+ if (!e) return;
340
+ let t = e.scrollHeight - e.scrollTop - e.clientHeight < 40;
341
+ y.current = t, C(t), e.scrollTop < 100 && s && !w.current && (w.current = !0, T.current = e.scrollHeight, s());
342
+ }, [s]);
343
+ p.useLayoutEffect(() => {
344
+ let e = v.current;
345
+ if (e) {
346
+ if (w.current) {
347
+ e.scrollTop = e.scrollHeight - T.current, w.current = !1;
348
+ return;
349
+ }
350
+ t && y.current && e.scrollTo({
351
+ top: e.scrollHeight,
352
+ behavior: "smooth"
353
+ });
354
+ }
355
+ }, [e, t]), p.useEffect(() => {
356
+ c || (w.current = !1);
357
+ }, [c]);
358
+ let O = a > 0 && !S, k = p.useCallback(() => {
359
+ let e = v.current;
360
+ e && e.scrollTo({
361
+ top: e.scrollHeight,
362
+ behavior: "smooth"
363
+ }), o?.();
364
+ }, [o]);
365
+ return /* @__PURE__ */ h("div", {
366
+ ref: _,
367
+ className: r("relative flex flex-1 flex-col overflow-hidden", f),
368
+ ...g,
369
+ children: [
370
+ d,
371
+ /* @__PURE__ */ h("div", {
372
+ ref: v,
373
+ role: "log",
374
+ "aria-live": "polite",
375
+ "aria-relevant": "additions",
376
+ className: "flex-1 overflow-y-auto px-ds-05 py-ds-04",
377
+ style: {
378
+ scrollbarWidth: "thin",
379
+ scrollbarColor: "var(--color-surface-border) transparent"
380
+ },
381
+ onScroll: D,
382
+ children: [c && /* @__PURE__ */ m("div", {
383
+ className: "flex justify-center py-ds-03",
384
+ children: /* @__PURE__ */ m(i, { size: "sm" })
385
+ }), E ? l : /* @__PURE__ */ m("div", {
386
+ className: "flex flex-col gap-ds-04",
387
+ children: /* @__PURE__ */ m(b, {
388
+ initial: !1,
389
+ children: e
390
+ })
391
+ })]
392
+ }),
393
+ /* @__PURE__ */ m(b, { children: O && /* @__PURE__ */ h(x.button, {
394
+ initial: {
395
+ opacity: 0,
396
+ y: 10
397
+ },
398
+ animate: {
399
+ opacity: 1,
400
+ y: 0
401
+ },
402
+ exit: {
403
+ opacity: 0,
404
+ y: 10
405
+ },
406
+ transition: n.fade,
407
+ onClick: k,
408
+ className: "absolute bottom-ds-04 left-1/2 z-10 -translate-x-1/2 rounded-full bg-accent-9 px-ds-04 py-ds-02 text-ds-xs font-medium text-accent-fg shadow-raised transition-colors hover:bg-accent-10",
409
+ children: [a, " new"]
410
+ }) })
411
+ ]
412
+ });
413
+ });
414
+ R.displayName = "MessageList";
415
+ //#endregion
416
+ //#region src/ui/chat/system-message.tsx
417
+ function z(e) {
418
+ return new Date(e).toLocaleTimeString("en-US", {
419
+ hour: "numeric",
420
+ minute: "2-digit"
421
+ });
422
+ }
423
+ var B = p.forwardRef(({ icon: e, timestamp: t, variant: n = "event", children: i, className: o, ...s }, c) => n === "alert" ? /* @__PURE__ */ m("div", {
424
+ ref: c,
425
+ role: "alert",
426
+ className: r("flex justify-center", o),
427
+ ...s,
428
+ children: /* @__PURE__ */ h("div", {
429
+ className: "flex items-center gap-ds-03 rounded-ds-lg bg-error-3 px-ds-04 py-ds-03",
430
+ children: [
431
+ e ?? /* @__PURE__ */ m(a, {
432
+ icon: g,
433
+ size: "sm"
434
+ }),
435
+ /* @__PURE__ */ m("span", {
436
+ className: "text-ds-sm text-error-11",
437
+ children: i
438
+ }),
439
+ t && /* @__PURE__ */ m("span", {
440
+ className: "text-ds-sm text-error-11/60",
441
+ children: z(t)
442
+ })
443
+ ]
444
+ })
445
+ }) : /* @__PURE__ */ h("div", {
446
+ ref: c,
447
+ className: r("flex items-center gap-ds-02 rounded-ds-sm bg-surface-raised-hover/30 px-ds-02 py-ds-01 -mx-ds-02 text-ds-sm text-surface-fg-subtle/60", o),
448
+ ...s,
449
+ children: [
450
+ e,
451
+ /* @__PURE__ */ m("span", {
452
+ className: "flex-1",
453
+ children: i
454
+ }),
455
+ t && /* @__PURE__ */ m("span", { children: z(t) })
456
+ ]
457
+ }));
458
+ B.displayName = "SystemMessage";
478
459
  //#endregion
479
460
  //#region src/ui/chat/typing-indicator.tsx
480
- function H(e) {
461
+ function V(e) {
481
462
  return e.length === 1 ? `${e[0].name} is typing...` : e.length === 2 ? `${e[0].name} and ${e[1].name} are typing...` : "Several people are typing...";
482
463
  }
483
- function U({ users: n, className: r }) {
484
- return /* @__PURE__ */ g("div", {
485
- className: a("min-h-[24px] px-ds-05", r),
464
+ function H({ users: e, className: t }) {
465
+ return /* @__PURE__ */ m("div", {
466
+ className: r("min-h-[24px] px-ds-05", t),
486
467
  role: "status",
487
468
  "aria-live": "polite",
488
- children: /* @__PURE__ */ g(t, { children: n.length > 0 && /* @__PURE__ */ _(e.div, {
469
+ children: /* @__PURE__ */ m(b, { children: e.length > 0 && /* @__PURE__ */ h(x.div, {
489
470
  initial: { opacity: 0 },
490
471
  animate: { opacity: 1 },
491
472
  exit: { opacity: 0 },
492
473
  className: "flex items-center gap-ds-02 text-ds-xs text-surface-fg-subtle",
493
- children: [/* @__PURE__ */ g("span", {
474
+ children: [/* @__PURE__ */ m("span", {
494
475
  className: "flex items-center gap-ds-01",
495
476
  children: [
496
477
  0,
497
478
  1,
498
479
  2
499
- ].map((t) => /* @__PURE__ */ g(e.span, {
480
+ ].map((e) => /* @__PURE__ */ m(x.span, {
500
481
  className: "h-1 w-1 rounded-full bg-surface-fg-subtle",
501
482
  animate: { y: [
502
483
  0,
@@ -506,13 +487,29 @@ function U({ users: n, className: r }) {
506
487
  transition: {
507
488
  duration: .5,
508
489
  repeat: Infinity,
509
- delay: t * .15
490
+ delay: e * .15
510
491
  }
511
- }, t))
512
- }), /* @__PURE__ */ g("span", { children: H(n) })]
492
+ }, e))
493
+ }), /* @__PURE__ */ m("span", { children: V(e) })]
513
494
  }) })
514
495
  });
515
496
  }
516
- U.displayName = "TypingIndicator";
497
+ H.displayName = "TypingIndicator";
498
+ //#endregion
499
+ //#region src/ui/chat/unread-separator.tsx
500
+ function U({ label: e = "NEW", count: t, className: n }) {
501
+ return /* @__PURE__ */ h("div", {
502
+ className: r("relative flex items-center py-ds-02", n),
503
+ children: [
504
+ /* @__PURE__ */ m("div", { className: "flex-1 border-t-2 border-accent-7" }),
505
+ /* @__PURE__ */ m("span", {
506
+ className: "px-ds-03 text-ds-xs font-semibold text-accent-11",
507
+ children: t ? `${t} ${e}` : e
508
+ }),
509
+ /* @__PURE__ */ m("div", { className: "flex-1 border-t-2 border-accent-7" })
510
+ ]
511
+ });
512
+ }
513
+ U.displayName = "UnreadSeparator";
517
514
  //#endregion
518
- export { L as a, S as c, z as i, V as n, F as o, B as r, w as s, U as t };
515
+ export { L as a, C as c, R as i, H as n, I as o, B as r, T as s, U as t };