@botiverse/raft-ui 0.51.0 → 0.52.1

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 (585) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/components/activity-inbox/activity-inbox-shell.d.mts +12 -0
  3. package/dist/components/activity-inbox/activity-inbox-shell.mjs +39 -0
  4. package/dist/components/activity-inbox/activity-inbox-shell.recipe.mjs +14 -0
  5. package/dist/components/activity-inbox/activity-inbox-sidebar.d.mts +6 -0
  6. package/dist/components/activity-inbox/activity-inbox-sidebar.mjs +22 -0
  7. package/dist/components/activity-inbox/activity-inbox-sidebar.recipe.mjs +22 -0
  8. package/dist/components/activity-inbox/activity-inbox-toolbar.d.mts +9 -0
  9. package/dist/components/activity-inbox/activity-inbox-toolbar.mjs +29 -0
  10. package/dist/components/activity-inbox/activity-inbox-toolbar.recipe.mjs +14 -0
  11. package/dist/components/activity-inbox/index.d.mts +4 -0
  12. package/dist/components/alert-dialog/alert-dialog.d.mts +41 -0
  13. package/dist/components/alert-dialog/alert-dialog.mjs +163 -0
  14. package/dist/components/alert-dialog/index.d.mts +2 -0
  15. package/dist/components/announcement-dialog/announcement-dialog.d.mts +18 -0
  16. package/dist/components/announcement-dialog/announcement-dialog.mjs +121 -0
  17. package/dist/components/announcement-dialog/index.d.mts +3 -0
  18. package/dist/components/app-rail/app-rail.d.mts +31 -0
  19. package/dist/components/app-rail/app-rail.mjs +126 -0
  20. package/dist/components/app-rail/app-rail.recipe.mjs +47 -0
  21. package/dist/components/app-rail/index.d.mts +2 -0
  22. package/dist/components/app-shell/app-shell.d.mts +27 -0
  23. package/dist/components/app-shell/app-shell.mjs +217 -0
  24. package/dist/components/app-shell/index.d.mts +2 -0
  25. package/dist/components/avatar/avatar.d.mts +169 -0
  26. package/dist/components/avatar/avatar.mjs +298 -0
  27. package/dist/components/avatar/index.d.mts +2 -0
  28. package/dist/components/badge/badge.d.mts +89 -0
  29. package/dist/components/badge/badge.mjs +203 -0
  30. package/dist/components/badge/index.d.mts +2 -0
  31. package/dist/components/banner/banner.d.mts +141 -0
  32. package/dist/components/banner/banner.mjs +228 -0
  33. package/dist/components/banner/index.d.mts +2 -0
  34. package/dist/components/button/button.d.mts +257 -0
  35. package/dist/components/button/button.mjs +177 -0
  36. package/dist/components/button/index.d.mts +2 -0
  37. package/dist/components/card/card.d.mts +21 -0
  38. package/dist/components/card/card.mjs +114 -0
  39. package/dist/components/card/card.recipe.d.mts +105 -0
  40. package/dist/components/card/card.recipe.mjs +67 -0
  41. package/dist/components/card/index.d.mts +2 -0
  42. package/dist/components/checkbox/checkbox-indicator.d.mts +92 -0
  43. package/dist/components/checkbox/checkbox-indicator.mjs +61 -0
  44. package/dist/components/checkbox/checkbox.d.mts +9 -0
  45. package/dist/components/checkbox/checkbox.mjs +40 -0
  46. package/dist/components/checkbox/index.d.mts +3 -0
  47. package/dist/components/choice-list/choice-list.d.mts +103 -0
  48. package/dist/components/choice-list/choice-list.mjs +301 -0
  49. package/dist/components/choice-list/choice-list.recipe.mjs +44 -0
  50. package/dist/components/choice-list/index.d.mts +2 -0
  51. package/dist/components/code-block/code-block.d.mts +30 -0
  52. package/dist/components/code-block/code-block.mjs +151 -0
  53. package/dist/components/code-block/code-block.recipe.mjs +47 -0
  54. package/dist/components/code-block/index.d.mts +2 -0
  55. package/dist/components/combobox/combobox.d.mts +69 -0
  56. package/dist/components/combobox/combobox.mjs +438 -0
  57. package/dist/components/combobox/index.d.mts +2 -0
  58. package/dist/components/combobox-select/combobox-select.d.mts +4 -0
  59. package/dist/components/combobox-select/combobox-select.list-side.mjs +16 -0
  60. package/dist/components/combobox-select/combobox-select.mjs +473 -0
  61. package/dist/components/combobox-select/combobox-select.options.mjs +21 -0
  62. package/dist/components/combobox-select/combobox-select.types.d.mts +83 -0
  63. package/dist/components/combobox-select/index.d.mts +3 -0
  64. package/dist/components/comment/comment-card.d.mts +40 -0
  65. package/dist/components/comment/comment-card.mjs +83 -0
  66. package/dist/components/comment/comment-entry.d.mts +24 -0
  67. package/dist/components/comment/comment-entry.mjs +75 -0
  68. package/dist/components/comment/comment-highlight.d.mts +18 -0
  69. package/dist/components/comment/comment-highlight.mjs +33 -0
  70. package/dist/components/comment/comment-margin-layout.d.mts +32 -0
  71. package/dist/components/comment/comment-margin-layout.mjs +44 -0
  72. package/dist/components/comment/comment-margin.d.mts +29 -0
  73. package/dist/components/comment/comment-margin.mjs +164 -0
  74. package/dist/components/comment/comment-marker.d.mts +16 -0
  75. package/dist/components/comment/comment-marker.mjs +24 -0
  76. package/dist/components/comment/comment.recipe.mjs +58 -0
  77. package/dist/components/comment/index.d.mts +8 -0
  78. package/dist/components/comment/use-comment-margin-fits.d.mts +16 -0
  79. package/dist/components/comment/use-comment-margin-fits.mjs +34 -0
  80. package/dist/components/composer/composer-attachment.recipe.mjs +85 -0
  81. package/dist/components/composer/composer-attachments-scroll-area.d.mts +5 -0
  82. package/dist/components/composer/composer-attachments-scroll-area.mjs +93 -0
  83. package/dist/components/composer/composer-attachments.d.mts +27 -0
  84. package/dist/components/composer/composer-attachments.mjs +147 -0
  85. package/dist/components/composer/composer-drop-overlay.d.mts +9 -0
  86. package/dist/components/composer/composer-drop-overlay.mjs +60 -0
  87. package/dist/components/composer/composer-drop-overlay.recipe.mjs +23 -0
  88. package/dist/components/composer/composer-root.d.mts +5 -0
  89. package/dist/components/composer/composer-root.mjs +18 -0
  90. package/dist/components/composer/composer-suggestion-list.d.mts +139 -0
  91. package/dist/components/composer/composer-suggestion-list.mjs +160 -0
  92. package/dist/components/composer/composer-toolbar-label.d.mts +5 -0
  93. package/dist/components/composer/composer-toolbar-label.mjs +24 -0
  94. package/dist/components/composer/composer.d.mts +20 -0
  95. package/dist/components/composer/composer.mjs +88 -0
  96. package/dist/components/composer/composer.recipe.mjs +29 -0
  97. package/dist/components/composer/index.d.mts +10 -0
  98. package/dist/components/composer/sortable-composer-attachments.d.mts +37 -0
  99. package/dist/components/composer/sortable-composer-attachments.mjs +247 -0
  100. package/dist/components/composer/use-composer-suggestions.d.mts +83 -0
  101. package/dist/components/composer/use-composer-suggestions.mjs +207 -0
  102. package/dist/components/context-menu/context-menu.d.mts +53 -0
  103. package/dist/components/context-menu/context-menu.mjs +275 -0
  104. package/dist/components/context-menu/index.d.mts +2 -0
  105. package/dist/components/conversation-panel/conversation-panel-empty-state.d.mts +9 -0
  106. package/dist/components/conversation-panel/conversation-panel-empty-state.mjs +57 -0
  107. package/dist/components/conversation-panel/conversation-panel.d.mts +20 -0
  108. package/dist/components/conversation-panel/conversation-panel.mjs +63 -0
  109. package/dist/components/conversation-panel/conversation-panel.recipe.mjs +15 -0
  110. package/dist/components/conversation-panel/index.d.mts +3 -0
  111. package/dist/components/copyable-code/copyable-code.d.mts +72 -0
  112. package/dist/components/copyable-code/copyable-code.mjs +153 -0
  113. package/dist/components/copyable-code/index.d.mts +2 -0
  114. package/dist/components/description-list/description-list.d.mts +59 -0
  115. package/dist/components/description-list/description-list.mjs +96 -0
  116. package/dist/components/description-list/index.d.mts +2 -0
  117. package/dist/components/dialog/dialog-sheet-context.mjs +58 -0
  118. package/dist/components/dialog/dialog-sheet.d.mts +31 -0
  119. package/dist/components/dialog/dialog-sheet.mjs +194 -0
  120. package/dist/components/dialog/dialog.d.mts +85 -0
  121. package/dist/components/dialog/dialog.mjs +371 -0
  122. package/dist/components/dialog/index.d.mts +3 -0
  123. package/dist/components/drag/drag-announcements.d.mts +72 -0
  124. package/dist/components/drag/drag-announcements.mjs +115 -0
  125. package/dist/components/drag/drag-lift.d.mts +100 -0
  126. package/dist/components/drag/drag-lift.mjs +276 -0
  127. package/dist/components/drag/drag-lists.d.mts +98 -0
  128. package/dist/components/drag/drag-lists.mjs +258 -0
  129. package/dist/components/drag/drag-sensors.d.mts +87 -0
  130. package/dist/components/drag/drag-sensors.mjs +169 -0
  131. package/dist/components/drag/drag.recipe.d.mts +7 -0
  132. package/dist/components/drag/drag.recipe.mjs +30 -0
  133. package/dist/components/drag/drop-placeholder.d.mts +41 -0
  134. package/dist/components/drag/drop-placeholder.mjs +161 -0
  135. package/dist/components/drag/index.d.mts +8 -0
  136. package/dist/components/drawer/drawer.d.mts +34 -0
  137. package/dist/components/drawer/drawer.mjs +202 -0
  138. package/dist/components/drawer/drawer.recipe.mjs +175 -0
  139. package/dist/components/drawer/index.d.mts +2 -0
  140. package/dist/components/dropdown-menu/dropdown-menu.d.mts +62 -0
  141. package/dist/components/dropdown-menu/dropdown-menu.mjs +319 -0
  142. package/dist/components/dropdown-menu/index.d.mts +2 -0
  143. package/dist/components/ellipsis/ellipsis.d.mts +55 -0
  144. package/dist/components/ellipsis/ellipsis.mjs +320 -0
  145. package/dist/components/ellipsis/index.d.mts +3 -0
  146. package/dist/components/empty-state/empty-state.d.mts +15 -0
  147. package/dist/components/empty-state/empty-state.mjs +102 -0
  148. package/dist/components/empty-state/index.d.mts +2 -0
  149. package/dist/components/field/field.d.mts +79 -0
  150. package/dist/components/field/field.mjs +100 -0
  151. package/dist/components/field/index.d.mts +2 -0
  152. package/dist/components/file-preview/file-preview.d.mts +17 -0
  153. package/dist/components/file-preview/file-preview.mjs +210 -0
  154. package/dist/components/file-preview/file-preview.recipe.d.mts +99 -0
  155. package/dist/components/file-preview/file-preview.recipe.mjs +39 -0
  156. package/dist/components/file-preview/index.d.mts +2 -0
  157. package/dist/components/files/files.d.mts +35 -0
  158. package/dist/components/files/files.mjs +69 -0
  159. package/dist/components/files/files.recipe.mjs +40 -0
  160. package/dist/components/files/index.d.mts +2 -0
  161. package/dist/components/filter-chip/filter-chip.d.mts +25 -0
  162. package/dist/components/filter-chip/filter-chip.mjs +59 -0
  163. package/dist/components/filter-chip/index.d.mts +2 -0
  164. package/dist/components/float-button/float-button.d.mts +36 -0
  165. package/dist/components/float-button/float-button.mjs +116 -0
  166. package/dist/components/float-button/float-button.position.d.mts +6 -0
  167. package/dist/components/float-button/float-button.position.mjs +41 -0
  168. package/dist/components/float-button/index.d.mts +3 -0
  169. package/dist/components/form-section/form-section.d.mts +16 -0
  170. package/dist/components/form-section/form-section.mjs +53 -0
  171. package/dist/components/form-section/index.d.mts +2 -0
  172. package/dist/components/icon-tile/icon-tile.d.mts +97 -0
  173. package/dist/components/icon-tile/icon-tile.mjs +49 -0
  174. package/dist/components/icon-tile/index.d.mts +2 -0
  175. package/dist/components/icons/action-icons.d.mts +34 -0
  176. package/dist/components/icons/action-icons.mjs +383 -0
  177. package/dist/components/icons/conversation-icons.d.mts +12 -0
  178. package/dist/components/icons/conversation-icons.mjs +147 -0
  179. package/dist/components/icons/index.d.mts +4 -0
  180. package/dist/components/icons/object-icons.d.mts +6 -0
  181. package/dist/components/icons/object-icons.mjs +27 -0
  182. package/dist/components/inbox-item/inbox-item-leading-badge.d.mts +13 -0
  183. package/dist/components/inbox-item/inbox-item-leading-badge.mjs +27 -0
  184. package/dist/components/inbox-item/inbox-item-skeleton.d.mts +46 -0
  185. package/dist/components/inbox-item/inbox-item-skeleton.mjs +89 -0
  186. package/dist/components/inbox-item/inbox-item-skeleton.recipe.mjs +20 -0
  187. package/dist/components/inbox-item/inbox-item.d.mts +71 -0
  188. package/dist/components/inbox-item/inbox-item.mjs +276 -0
  189. package/dist/components/inbox-item/inbox-item.recipe.mjs +137 -0
  190. package/dist/components/inbox-item/index.d.mts +2 -0
  191. package/dist/components/inline-code/index.d.mts +2 -0
  192. package/dist/components/inline-code/inline-code.d.mts +8 -0
  193. package/dist/components/inline-code/inline-code.mjs +30 -0
  194. package/dist/components/input/index.d.mts +2 -0
  195. package/dist/components/input/input.d.mts +16 -0
  196. package/dist/components/input/input.mjs +20 -0
  197. package/dist/components/input/input.recipe.mjs +12 -0
  198. package/dist/components/input-group/index.d.mts +2 -0
  199. package/dist/components/input-group/input-group.d.mts +93 -0
  200. package/dist/components/input-group/input-group.mjs +178 -0
  201. package/dist/components/kbd/index.d.mts +2 -0
  202. package/dist/components/kbd/kbd.d.mts +7 -0
  203. package/dist/components/kbd/kbd.mjs +34 -0
  204. package/dist/components/label/index.d.mts +2 -0
  205. package/dist/components/label/label.d.mts +60 -0
  206. package/dist/components/label/label.mjs +75 -0
  207. package/dist/components/legacy-task-panel/index.d.mts +2 -0
  208. package/dist/components/legacy-task-panel/legacy-task-panel.d.mts +57 -0
  209. package/dist/components/legacy-task-panel/legacy-task-panel.mjs +234 -0
  210. package/dist/components/legacy-task-panel/legacy-task-panel.recipe.mjs +30 -0
  211. package/dist/components/lightbox/index.d.mts +2 -0
  212. package/dist/components/lightbox/lightbox.d.mts +55 -0
  213. package/dist/components/lightbox/lightbox.mjs +336 -0
  214. package/dist/components/list-row/index.d.mts +2 -0
  215. package/dist/components/list-row/list-row-skeleton.d.mts +21 -0
  216. package/dist/components/list-row/list-row-skeleton.mjs +43 -0
  217. package/dist/components/list-row/list-row.d.mts +66 -0
  218. package/dist/components/list-row/list-row.mjs +167 -0
  219. package/dist/components/list-row/list-row.recipe.d.mts +126 -0
  220. package/dist/components/list-row/list-row.recipe.mjs +94 -0
  221. package/dist/components/live-agent-activity-bar/index.d.mts +2 -0
  222. package/dist/components/live-agent-activity-bar/live-agent-activity-bar.d.mts +25 -0
  223. package/dist/components/live-agent-activity-bar/live-agent-activity-bar.mjs +107 -0
  224. package/dist/components/logo/index.d.mts +2 -0
  225. package/dist/components/logo/raft-logo.d.mts +9 -0
  226. package/dist/components/logo/raft-logo.mjs +63 -0
  227. package/dist/components/markdown/index.d.mts +2 -0
  228. package/dist/components/markdown/markdown-parts.d.mts +54 -0
  229. package/dist/components/markdown/markdown-parts.mjs +153 -0
  230. package/dist/components/markdown/markdown.recipe.mjs +77 -0
  231. package/dist/components/message-action-card/index.d.mts +2 -0
  232. package/dist/components/message-action-card/message-action-card-content.recipe.mjs +50 -0
  233. package/dist/components/message-action-card/message-action-card.d.mts +95 -0
  234. package/dist/components/message-action-card/message-action-card.mjs +298 -0
  235. package/dist/components/message-action-card/message-action-card.recipe.mjs +47 -0
  236. package/dist/components/message-attachment/index.d.mts +5 -0
  237. package/dist/components/message-attachment/message-attachment.d.mts +27 -0
  238. package/dist/components/message-attachment/message-attachment.mjs +129 -0
  239. package/dist/components/message-attachment/message-attachment.recipe.mjs +36 -0
  240. package/dist/components/message-attachment/message-image-gallery-rows.d.mts +47 -0
  241. package/dist/components/message-attachment/message-image-gallery-rows.mjs +55 -0
  242. package/dist/components/message-attachment/message-image-gallery.d.mts +32 -0
  243. package/dist/components/message-attachment/message-image-gallery.mjs +105 -0
  244. package/dist/components/message-attachment/message-image-gallery.recipe.mjs +61 -0
  245. package/dist/components/message-attachment/message-video-preview.d.mts +19 -0
  246. package/dist/components/message-attachment/message-video-preview.mjs +92 -0
  247. package/dist/components/message-attachment/message-video-preview.recipe.mjs +33 -0
  248. package/dist/components/message-embed/index.d.mts +2 -0
  249. package/dist/components/message-embed/message-embed.d.mts +12 -0
  250. package/dist/components/message-embed/message-embed.mjs +42 -0
  251. package/dist/components/message-embed/message-embed.recipe.mjs +14 -0
  252. package/dist/components/message-forwarded-bundle/index.d.mts +2 -0
  253. package/dist/components/message-forwarded-bundle/message-forwarded-bundle.d.mts +92 -0
  254. package/dist/components/message-forwarded-bundle/message-forwarded-bundle.mjs +324 -0
  255. package/dist/components/message-forwarded-bundle/message-forwarded-bundle.recipe.mjs +81 -0
  256. package/dist/components/message-item/index.d.mts +13 -0
  257. package/dist/components/message-item/message-footer.d.mts +20 -0
  258. package/dist/components/message-item/message-footer.mjs +54 -0
  259. package/dist/components/message-item/message-footer.recipe.mjs +46 -0
  260. package/dist/components/message-item/message-item-content.d.mts +22 -0
  261. package/dist/components/message-item/message-item-content.mjs +81 -0
  262. package/dist/components/message-item/message-item-delegated.d.mts +38 -0
  263. package/dist/components/message-item/message-item-delegated.mjs +72 -0
  264. package/dist/components/message-item/message-item-gutter.d.mts +10 -0
  265. package/dist/components/message-item/message-item-gutter.mjs +41 -0
  266. package/dist/components/message-item/message-item-header.d.mts +29 -0
  267. package/dist/components/message-item/message-item-header.mjs +107 -0
  268. package/dist/components/message-item/message-item-label.mjs +113 -0
  269. package/dist/components/message-item/message-item-root.d.mts +25 -0
  270. package/dist/components/message-item/message-item-root.mjs +39 -0
  271. package/dist/components/message-item/message-item-toolbar.d.mts +9 -0
  272. package/dist/components/message-item/message-item-toolbar.mjs +131 -0
  273. package/dist/components/message-item/message-item.recipe.d.mts +101 -0
  274. package/dist/components/message-item/message-item.recipe.mjs +114 -0
  275. package/dist/components/message-item/message-multi-select.d.mts +15 -0
  276. package/dist/components/message-item/message-multi-select.mjs +49 -0
  277. package/dist/components/message-item/message-multi-select.recipe.mjs +23 -0
  278. package/dist/components/message-item/message-reaction.d.mts +39 -0
  279. package/dist/components/message-item/message-reaction.mjs +188 -0
  280. package/dist/components/message-item/message-reaction.recipe.mjs +76 -0
  281. package/dist/components/message-item/message-reference.d.mts +50 -0
  282. package/dist/components/message-item/message-reference.mjs +111 -0
  283. package/dist/components/message-item/message-reference.recipe.d.mts +6 -0
  284. package/dist/components/message-item/message-reference.recipe.mjs +63 -0
  285. package/dist/components/message-item/message-text-selection-toolbar.d.mts +24 -0
  286. package/dist/components/message-item/message-text-selection-toolbar.mjs +13 -0
  287. package/dist/components/message-list/index.d.mts +4 -0
  288. package/dist/components/message-list/message-list-jump.d.mts +21 -0
  289. package/dist/components/message-list/message-list-jump.mjs +73 -0
  290. package/dist/components/message-list/message-list-markers.d.mts +13 -0
  291. package/dist/components/message-list/message-list-markers.mjs +70 -0
  292. package/dist/components/message-list/message-list.d.mts +7 -0
  293. package/dist/components/message-list/message-list.mjs +52 -0
  294. package/dist/components/message-list/message-list.recipe.mjs +54 -0
  295. package/dist/components/message-quoted-preview/index.d.mts +2 -0
  296. package/dist/components/message-quoted-preview/message-quoted-preview.d.mts +40 -0
  297. package/dist/components/message-quoted-preview/message-quoted-preview.mjs +144 -0
  298. package/dist/components/message-quoted-preview/message-quoted-preview.recipe.mjs +38 -0
  299. package/dist/components/message-replies/index.d.mts +2 -0
  300. package/dist/components/message-replies/message-replies.d.mts +17 -0
  301. package/dist/components/message-replies/message-replies.mjs +79 -0
  302. package/dist/components/message-replies/message-replies.recipe.mjs +25 -0
  303. package/dist/components/message-translation/index.d.mts +2 -0
  304. package/dist/components/message-translation/message-translation.d.mts +20 -0
  305. package/dist/components/message-translation/message-translation.mjs +64 -0
  306. package/dist/components/message-translation/message-translation.recipe.mjs +27 -0
  307. package/dist/components/meter/index.d.mts +2 -0
  308. package/dist/components/meter/meter.d.mts +107 -0
  309. package/dist/components/meter/meter.mjs +118 -0
  310. package/dist/components/mobile-nav/index.d.mts +3 -0
  311. package/dist/components/mobile-nav/mobile-nav-server.d.mts +71 -0
  312. package/dist/components/mobile-nav/mobile-nav-server.mjs +287 -0
  313. package/dist/components/mobile-nav/mobile-nav.d.mts +12 -0
  314. package/dist/components/mobile-nav/mobile-nav.mjs +73 -0
  315. package/dist/components/mode-bar/index.d.mts +2 -0
  316. package/dist/components/mode-bar/mode-bar.d.mts +33 -0
  317. package/dist/components/mode-bar/mode-bar.mjs +115 -0
  318. package/dist/components/notification-center/index.d.mts +2 -0
  319. package/dist/components/notification-center/notification-center.d.mts +225 -0
  320. package/dist/components/notification-center/notification-center.mjs +340 -0
  321. package/dist/components/panel/index.d.mts +7 -0
  322. package/dist/components/panel/panel-action.d.mts +15 -0
  323. package/dist/components/panel/panel-action.mjs +23 -0
  324. package/dist/components/panel/panel-action.recipe.mjs +40 -0
  325. package/dist/components/panel/panel-header.d.mts +34 -0
  326. package/dist/components/panel/panel-header.mjs +135 -0
  327. package/dist/components/panel/panel-header.recipe.mjs +78 -0
  328. package/dist/components/panel/panel-notice.d.mts +16 -0
  329. package/dist/components/panel/panel-notice.mjs +77 -0
  330. package/dist/components/panel/panel-split-action.d.mts +34 -0
  331. package/dist/components/panel/panel-split-action.mjs +69 -0
  332. package/dist/components/panel/panel-split-action.recipe.mjs +53 -0
  333. package/dist/components/panel/panel-toggle-action.d.mts +6 -0
  334. package/dist/components/panel/panel-toggle-action.mjs +15 -0
  335. package/dist/components/panel/panel.d.mts +25 -0
  336. package/dist/components/panel/panel.mjs +96 -0
  337. package/dist/components/panel/panel.recipe.mjs +24 -0
  338. package/dist/components/picker-trigger-button/index.d.mts +2 -0
  339. package/dist/components/picker-trigger-button/picker-trigger-button.d.mts +7 -0
  340. package/dist/components/picker-trigger-button/picker-trigger-button.mjs +36 -0
  341. package/dist/components/popover/index.d.mts +2 -0
  342. package/dist/components/popover/popover.d.mts +41 -0
  343. package/dist/components/popover/popover.mjs +184 -0
  344. package/dist/components/preview-card/index.d.mts +2 -0
  345. package/dist/components/preview-card/preview-card.d.mts +43 -0
  346. package/dist/components/preview-card/preview-card.mjs +197 -0
  347. package/dist/components/profile-panel/index.d.mts +2 -0
  348. package/dist/components/profile-panel/profile-panel.d.mts +14 -0
  349. package/dist/components/profile-panel/profile-panel.mjs +46 -0
  350. package/dist/components/profile-panel/profile-panel.recipe.mjs +14 -0
  351. package/dist/components/progress/index.d.mts +2 -0
  352. package/dist/components/progress/progress.d.mts +119 -0
  353. package/dist/components/progress/progress.mjs +139 -0
  354. package/dist/components/pull-to-refresh/index.d.mts +4 -0
  355. package/dist/components/pull-to-refresh/pull-to-refresh-gesture.d.mts +30 -0
  356. package/dist/components/pull-to-refresh/pull-to-refresh-gesture.mjs +134 -0
  357. package/dist/components/pull-to-refresh/pull-to-refresh-indicator.d.mts +21 -0
  358. package/dist/components/pull-to-refresh/pull-to-refresh-indicator.mjs +153 -0
  359. package/dist/components/pull-to-refresh/pull-to-refresh-material-progress.mjs +150 -0
  360. package/dist/components/pull-to-refresh/use-pull-to-refresh.d.mts +55 -0
  361. package/dist/components/pull-to-refresh/use-pull-to-refresh.mjs +156 -0
  362. package/dist/components/radio-group/index.d.mts +2 -0
  363. package/dist/components/radio-group/radio-group.d.mts +14 -0
  364. package/dist/components/radio-group/radio-group.mjs +59 -0
  365. package/dist/components/resizable/index.d.mts +2 -0
  366. package/dist/components/resizable/resizable.d.mts +15 -0
  367. package/dist/components/resizable/resizable.mjs +39 -0
  368. package/dist/components/resizable/resizable.recipe.mjs +24 -0
  369. package/dist/components/scroll-area/index.d.mts +2 -0
  370. package/dist/components/scroll-area/scroll-area.d.mts +17 -0
  371. package/dist/components/scroll-area/scroll-area.mjs +55 -0
  372. package/dist/components/scroll-area/scroll-area.recipe.mjs +23 -0
  373. package/dist/components/search/index.d.mts +6 -0
  374. package/dist/components/search/search-entity.d.mts +24 -0
  375. package/dist/components/search/search-entity.mjs +106 -0
  376. package/dist/components/search/search-entity.recipe.mjs +41 -0
  377. package/dist/components/search/search-message.d.mts +25 -0
  378. package/dist/components/search/search-message.mjs +115 -0
  379. package/dist/components/search/search-message.recipe.mjs +32 -0
  380. package/dist/components/search/search-thread.d.mts +17 -0
  381. package/dist/components/search/search-thread.mjs +79 -0
  382. package/dist/components/search/search-thread.recipe.mjs +16 -0
  383. package/dist/components/search/search-trigger.d.mts +15 -0
  384. package/dist/components/search/search-trigger.mjs +59 -0
  385. package/dist/components/search/search.d.mts +23 -0
  386. package/dist/components/search/search.mjs +88 -0
  387. package/dist/components/search/search.recipe.mjs +22 -0
  388. package/dist/components/segmented-control/index.d.mts +2 -0
  389. package/dist/components/segmented-control/segmented-control.d.mts +38 -0
  390. package/dist/components/segmented-control/segmented-control.mjs +306 -0
  391. package/dist/components/select/index.d.mts +2 -0
  392. package/dist/components/select/select.d.mts +95 -0
  393. package/dist/components/select/select.mjs +483 -0
  394. package/dist/components/separator/index.d.mts +2 -0
  395. package/dist/components/separator/separator.d.mts +10 -0
  396. package/dist/components/separator/separator.mjs +49 -0
  397. package/dist/components/sidebar/index.d.mts +5 -0
  398. package/dist/components/sidebar/sidebar-item.d.mts +64 -0
  399. package/dist/components/sidebar/sidebar-item.mjs +201 -0
  400. package/dist/components/sidebar/sidebar-item.recipe.mjs +100 -0
  401. package/dist/components/sidebar/sidebar-menu.d.mts +13 -0
  402. package/dist/components/sidebar/sidebar-menu.mjs +67 -0
  403. package/dist/components/sidebar/sidebar-menu.recipe.mjs +22 -0
  404. package/dist/components/sidebar/sidebar-section.d.mts +41 -0
  405. package/dist/components/sidebar/sidebar-section.mjs +164 -0
  406. package/dist/components/sidebar/sidebar-section.recipe.mjs +45 -0
  407. package/dist/components/sidebar/sidebar.d.mts +17 -0
  408. package/dist/components/sidebar/sidebar.mjs +149 -0
  409. package/dist/components/sidebar/sidebar.recipe.mjs +37 -0
  410. package/dist/components/skeleton/index.d.mts +2 -0
  411. package/dist/components/skeleton/skeleton.d.mts +50 -0
  412. package/dist/components/skeleton/skeleton.mjs +29 -0
  413. package/dist/components/spinner/index.d.mts +2 -0
  414. package/dist/components/spinner/spinner.d.mts +77 -0
  415. package/dist/components/spinner/spinner.mjs +118 -0
  416. package/dist/components/status/index.d.mts +2 -0
  417. package/dist/components/status/status.d.mts +143 -0
  418. package/dist/components/status/status.mjs +56 -0
  419. package/dist/components/steps/index.d.mts +3 -0
  420. package/dist/components/steps/otter-indicator.d.mts +17 -0
  421. package/dist/components/steps/otter-indicator.mjs +331 -0
  422. package/dist/components/steps/steps.d.mts +50 -0
  423. package/dist/components/steps/steps.mjs +174 -0
  424. package/dist/components/switch/index.d.mts +2 -0
  425. package/dist/components/switch/switch.d.mts +9 -0
  426. package/dist/components/switch/switch.mjs +50 -0
  427. package/dist/components/system-message/index.d.mts +2 -0
  428. package/dist/components/system-message/system-message.d.mts +27 -0
  429. package/dist/components/system-message/system-message.mjs +113 -0
  430. package/dist/components/system-message/system-message.recipe.mjs +34 -0
  431. package/dist/components/table/index.d.mts +2 -0
  432. package/dist/components/table/table.d.mts +35 -0
  433. package/dist/components/table/table.mjs +102 -0
  434. package/dist/components/table/table.recipe.mjs +31 -0
  435. package/dist/components/tabs/index.d.mts +2 -0
  436. package/dist/components/tabs/tabs.d.mts +185 -0
  437. package/dist/components/tabs/tabs.mjs +528 -0
  438. package/dist/components/task-board/index.d.mts +2 -0
  439. package/dist/components/task-board/task-board-column.recipe.mjs +46 -0
  440. package/dist/components/task-board/task-board.d.mts +40 -0
  441. package/dist/components/task-board/task-board.mjs +155 -0
  442. package/dist/components/task-card/index.d.mts +2 -0
  443. package/dist/components/task-card/task-card-status.recipe.mjs +17 -0
  444. package/dist/components/task-card/task-card.d.mts +30 -0
  445. package/dist/components/task-card/task-card.mjs +141 -0
  446. package/dist/components/task-card/task-card.recipe.mjs +39 -0
  447. package/dist/components/task-dnd/index.d.mts +2 -0
  448. package/dist/components/task-dnd/task-dnd.d.mts +75 -0
  449. package/dist/components/task-dnd/task-dnd.mjs +341 -0
  450. package/dist/components/task-dnd/task-dnd.recipe.mjs +20 -0
  451. package/dist/components/task-list/index.d.mts +2 -0
  452. package/dist/components/task-list/task-list-section.recipe.mjs +37 -0
  453. package/dist/components/task-list/task-list.d.mts +34 -0
  454. package/dist/components/task-list/task-list.mjs +119 -0
  455. package/dist/components/tasks/index.d.mts +7 -0
  456. package/dist/components/tasks/task-chip.d.mts +14 -0
  457. package/dist/components/tasks/task-chip.mjs +81 -0
  458. package/dist/components/tasks/task-loading.d.mts +7 -0
  459. package/dist/components/tasks/task-loading.mjs +32 -0
  460. package/dist/components/tasks/task-loading.recipe.mjs +8 -0
  461. package/dist/components/tasks/task-status-badge.d.mts +24 -0
  462. package/dist/components/tasks/task-status-badge.mjs +24 -0
  463. package/dist/components/tasks/task-status-icon.d.mts +13 -0
  464. package/dist/components/tasks/task-status-icon.mjs +90 -0
  465. package/dist/components/tasks/task-status.recipe.d.mts +62 -0
  466. package/dist/components/tasks/task-status.recipe.mjs +33 -0
  467. package/dist/components/tasks/tasks-panel.d.mts +22 -0
  468. package/dist/components/tasks/tasks-panel.mjs +114 -0
  469. package/dist/components/tasks/tasks-panel.recipe.mjs +36 -0
  470. package/dist/components/text/index.d.mts +2 -0
  471. package/dist/components/text/text.d.mts +186 -0
  472. package/dist/components/text/text.mjs +114 -0
  473. package/dist/components/text-link/index.d.mts +2 -0
  474. package/dist/components/text-link/text-link.d.mts +36 -0
  475. package/dist/components/text-link/text-link.mjs +60 -0
  476. package/dist/components/text-selection-toolbar/index.d.mts +3 -0
  477. package/dist/components/text-selection-toolbar/text-selection-anchor.d.mts +22 -0
  478. package/dist/components/text-selection-toolbar/text-selection-anchor.mjs +106 -0
  479. package/dist/components/text-selection-toolbar/text-selection-toolbar.d.mts +20 -0
  480. package/dist/components/text-selection-toolbar/text-selection-toolbar.mjs +41 -0
  481. package/dist/components/text-selection-toolbar/text-selection-toolbar.recipe.mjs +19 -0
  482. package/dist/components/textarea/index.d.mts +2 -0
  483. package/dist/components/textarea/textarea.d.mts +16 -0
  484. package/dist/components/textarea/textarea.mjs +62 -0
  485. package/dist/components/thread-panel/index.d.mts +2 -0
  486. package/dist/components/thread-panel/thread-panel.d.mts +31 -0
  487. package/dist/components/thread-panel/thread-panel.mjs +162 -0
  488. package/dist/components/thread-panel/thread-panel.recipe.mjs +36 -0
  489. package/dist/components/timeline/index.d.mts +2 -0
  490. package/dist/components/timeline/timeline.d.mts +44 -0
  491. package/dist/components/timeline/timeline.mjs +81 -0
  492. package/dist/components/toast/index.d.mts +2 -0
  493. package/dist/components/toast/toast.d.mts +263 -0
  494. package/dist/components/toast/toast.mjs +556 -0
  495. package/dist/components/toggle-group/index.d.mts +2 -0
  496. package/dist/components/toggle-group/toggle-group.d.mts +15 -0
  497. package/dist/components/toggle-group/toggle-group.mjs +64 -0
  498. package/dist/components/tooltip/index.d.mts +2 -0
  499. package/dist/components/tooltip/tooltip.d.mts +18 -0
  500. package/dist/components/tooltip/tooltip.mjs +197 -0
  501. package/dist/components/virtual-list/ItemColumns.mjs +37 -0
  502. package/dist/components/virtual-list/VirtualList.d.mts +4 -0
  503. package/dist/components/virtual-list/VirtualList.mjs +1401 -0
  504. package/dist/components/virtual-list/VirtualListContext.mjs +5 -0
  505. package/dist/components/virtual-list/hooks/use-event-callback.mjs +10 -0
  506. package/dist/components/virtual-list/hooks/use-ios-momentum-compensation.mjs +148 -0
  507. package/dist/components/virtual-list/hooks/use-keyboard-scroll.mjs +42 -0
  508. package/dist/components/virtual-list/hooks/use-latest-ref.mjs +10 -0
  509. package/dist/components/virtual-list/hooks/use-layout-effect-with-previous.mjs +16 -0
  510. package/dist/components/virtual-list/hooks/use-memo-with-previous.mjs +22 -0
  511. package/dist/components/virtual-list/hooks/use-non-passive-wheel.mjs +23 -0
  512. package/dist/components/virtual-list/hooks/use-non-virtual-content-resize.mjs +28 -0
  513. package/dist/components/virtual-list/hooks/use-scroll-anchor.mjs +55 -0
  514. package/dist/components/virtual-list/index.d.mts +5 -0
  515. package/dist/components/virtual-list/public-types.d.mts +341 -0
  516. package/dist/components/virtual-list/resize-observer/ResizeObserverWrapper.d.mts +5 -0
  517. package/dist/components/virtual-list/resize-observer/ResizeObserverWrapper.mjs +70 -0
  518. package/dist/components/virtual-list/resize-observer/resize-observer-delegate.d.mts +6 -0
  519. package/dist/components/virtual-list/resize-observer/resize-observer-delegate.mjs +54 -0
  520. package/dist/components/virtual-list/utils/align.mjs +19 -0
  521. package/dist/components/virtual-list/utils/constants.mjs +30 -0
  522. package/dist/components/virtual-list/utils/fenwick-tree.mjs +66 -0
  523. package/dist/components/virtual-list/utils/items-anchor.mjs +49 -0
  524. package/dist/components/virtual-list/utils/measure.mjs +77 -0
  525. package/dist/components/virtual-list/utils/platform.mjs +39 -0
  526. package/dist/components/virtual-list/utils/range.mjs +103 -0
  527. package/dist/components/virtual-list/utils/size-cache.mjs +35 -0
  528. package/dist/components/workspace-button/index.d.mts +2 -0
  529. package/dist/components/workspace-button/workspace-button.d.mts +9 -0
  530. package/dist/components/workspace-button/workspace-button.mjs +28 -0
  531. package/dist/index.d.mts +239 -4864
  532. package/dist/index.mjs +142 -17054
  533. package/dist/lib/chip-remove.mjs +17 -0
  534. package/dist/lib/data-attributes.d.mts +5 -0
  535. package/dist/lib/decision-width.mjs +9 -0
  536. package/dist/lib/default-native-button.mjs +8 -0
  537. package/dist/lib/desktop-media.mjs +10 -0
  538. package/dist/lib/drag-escape.mjs +37 -0
  539. package/dist/lib/frame-insets.mjs +127 -0
  540. package/dist/lib/head-edges.mjs +44 -0
  541. package/dist/lib/hud-text-action.mjs +10 -0
  542. package/dist/lib/inline-chip.mjs +30 -0
  543. package/dist/lib/input-modality.d.mts +36 -0
  544. package/dist/lib/input-modality.mjs +186 -0
  545. package/dist/lib/list-cell.mjs +21 -0
  546. package/dist/lib/located.d.mts +25 -0
  547. package/dist/lib/located.mjs +28 -0
  548. package/dist/lib/overlay-depth.d.mts +42 -0
  549. package/dist/lib/overlay-depth.mjs +59 -0
  550. package/dist/lib/phone-media.mjs +24 -0
  551. package/dist/lib/presence.d.mts +16 -0
  552. package/dist/lib/presence.mjs +16 -0
  553. package/dist/lib/row-tone.d.mts +8 -0
  554. package/dist/lib/search-hit.mjs +18 -0
  555. package/dist/lib/stacked-actions.mjs +112 -0
  556. package/dist/lib/styled-props.d.mts +15 -0
  557. package/dist/lib/tap-activation.mjs +133 -0
  558. package/dist/lib/theme/theme-context.d.mts +10 -0
  559. package/dist/lib/theme/theme-context.mjs +9 -0
  560. package/dist/lib/theme/theme-provider.d.mts +23 -0
  561. package/dist/lib/theme/theme-provider.mjs +61 -0
  562. package/dist/lib/theme/theme-scope.mjs +19 -0
  563. package/dist/lib/theme/use-theme.d.mts +5 -0
  564. package/dist/lib/theme/use-theme.mjs +9 -0
  565. package/dist/lib/touch-drag.d.mts +55 -0
  566. package/dist/lib/touch-drag.mjs +151 -0
  567. package/dist/lib/truncation.d.mts +26 -0
  568. package/dist/lib/truncation.mjs +153 -0
  569. package/dist/lib/tv.d.mts +2 -0
  570. package/dist/lib/tv.mjs +14 -0
  571. package/dist/lib/use-copy-to-clipboard.mjs +58 -0
  572. package/dist/lib/use-merged-ref.mjs +60 -0
  573. package/dist/lib/use-mobile-viewport.mjs +17 -0
  574. package/dist/lib/use-overflow-title.mjs +49 -0
  575. package/dist/lib/use-scrollbar-size.d.mts +16 -0
  576. package/dist/lib/use-scrollbar-size.mjs +46 -0
  577. package/dist/lib/use-truncated.d.mts +20 -0
  578. package/dist/lib/use-truncated.mjs +34 -0
  579. package/dist/lib/without-children.d.mts +8 -0
  580. package/dist/wip.d.mts +61 -1190
  581. package/dist/wip.mjs +43 -2970
  582. package/package.json +8 -1
  583. package/dist/index-C3ymUW98.d.mts +0 -1816
  584. package/dist/mode-bar-tGnYByXp.mjs +0 -7564
  585. package/dist/style.css +0 -1395
@@ -0,0 +1,38 @@
1
+ import { AvatarBadgeProps } from "../avatar/avatar.mjs";
2
+ import "../avatar/index.mjs";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/components/message-item/message-item-delegated.d.ts
5
+ export type MessageItemDelegatedByProps = useRender.ComponentProps<"span">;
6
+ /**
7
+ * Says an assistant sent the message for its owner, the sender: "sent by
8
+ * Friday". Put it in `MessageItemHeader` after `MessageItemSenderGroup`, and
9
+ * the assistant's name in `MessageItemDelegatedByName` or
10
+ * `MessageItemDelegatedByButton`. The words, and the spaces around the name,
11
+ * come from the product. It takes at most 45% of the line: past that only
12
+ * the name truncates, never the words.
13
+ */
14
+ export declare function MessageItemDelegatedBy({ className, render, ...props }: MessageItemDelegatedByProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
15
+ export type MessageItemDelegatedByNameProps = useRender.ComponentProps<"span">;
16
+ /** The assistant's name in `MessageItemDelegatedBy`, the part that truncates. */
17
+ export declare function MessageItemDelegatedByName({ className, render, ...props }: MessageItemDelegatedByNameProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
18
+ export type MessageItemDelegatedByButtonProps = useRender.ComponentProps<"button">;
19
+ /**
20
+ * The assistant's name when it opens the assistant's profile: a `<button>`
21
+ * (or a link through `render`) that underlines on hover and truncates like
22
+ * `MessageItemDelegatedByName`.
23
+ */
24
+ export declare function MessageItemDelegatedByButton({ className, render, ...props }: MessageItemDelegatedByButtonProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
25
+ export type MessageItemDelegatedAvatarProps = Omit<AvatarBadgeProps, "presence" | "offset"> & {
26
+ /** The assistant was deleted: its face is grayed and faded, over the
27
+ * row's surface, never the owner's avatar. */
28
+ deleted?: boolean;
29
+ };
30
+ /**
31
+ * The assistant's face on its owner's avatar, in the corner a presence light
32
+ * takes: put it inside the owner's `md` `Avatar` with a `2xs` agent `Avatar`
33
+ * as its child. It is hidden from assistive technology, because
34
+ * `MessageItemDelegatedBy` already says who sent the message. Only on a
35
+ * person's avatar: an agent's corner is its presence light.
36
+ */
37
+ export declare function MessageItemDelegatedAvatar({ className, deleted, ...props }: MessageItemDelegatedAvatarProps): import("react").JSX.Element;
38
+ //#endregion
@@ -0,0 +1,72 @@
1
+ import { AvatarBadge } from "../avatar/avatar.mjs";
2
+ import { messageItem } from "./message-item.recipe.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { mergeProps } from "@base-ui/react/merge-props";
5
+ import { useRender } from "@base-ui/react/use-render";
6
+ //#region src/components/message-item/message-item-delegated.tsx
7
+ /**
8
+ * Says an assistant sent the message for its owner, the sender: "sent by
9
+ * Friday". Put it in `MessageItemHeader` after `MessageItemSenderGroup`, and
10
+ * the assistant's name in `MessageItemDelegatedByName` or
11
+ * `MessageItemDelegatedByButton`. The words, and the spaces around the name,
12
+ * come from the product. It takes at most 45% of the line: past that only
13
+ * the name truncates, never the words.
14
+ */
15
+ function MessageItemDelegatedBy({ className, render, ...props }) {
16
+ const { delegatedBy } = messageItem();
17
+ const defaultProps = { className: delegatedBy({ className }) };
18
+ return useRender({
19
+ defaultTagName: "span",
20
+ render,
21
+ props: mergeProps(defaultProps, props),
22
+ state: { slot: "message-item-delegated-by" }
23
+ });
24
+ }
25
+ /** The assistant's name in `MessageItemDelegatedBy`, the part that truncates. */
26
+ function MessageItemDelegatedByName({ className, render, ...props }) {
27
+ const { delegatedByName } = messageItem();
28
+ const defaultProps = { className: delegatedByName({ className }) };
29
+ return useRender({
30
+ defaultTagName: "span",
31
+ render,
32
+ props: mergeProps(defaultProps, props),
33
+ state: { slot: "message-item-delegated-by-name" }
34
+ });
35
+ }
36
+ /**
37
+ * The assistant's name when it opens the assistant's profile: a `<button>`
38
+ * (or a link through `render`) that underlines on hover and truncates like
39
+ * `MessageItemDelegatedByName`.
40
+ */
41
+ function MessageItemDelegatedByButton({ className, render, ...props }) {
42
+ const { delegatedByButton } = messageItem();
43
+ const defaultProps = {
44
+ type: "button",
45
+ className: delegatedByButton({ className })
46
+ };
47
+ return useRender({
48
+ defaultTagName: "button",
49
+ render,
50
+ props: mergeProps(defaultProps, props),
51
+ state: { slot: "message-item-delegated-by-button" }
52
+ });
53
+ }
54
+ /**
55
+ * The assistant's face on its owner's avatar, in the corner a presence light
56
+ * takes: put it inside the owner's `md` `Avatar` with a `2xs` agent `Avatar`
57
+ * as its child. It is hidden from assistive technology, because
58
+ * `MessageItemDelegatedBy` already says who sent the message. Only on a
59
+ * person's avatar: an agent's corner is its presence light.
60
+ */
61
+ function MessageItemDelegatedAvatar({ className, deleted, ...props }) {
62
+ const { delegatedAvatar } = messageItem();
63
+ return /* @__PURE__ */ jsx(AvatarBadge, {
64
+ "aria-hidden": true,
65
+ "data-deleted": deleted ? "" : void 0,
66
+ className: delegatedAvatar({ className }),
67
+ render: /* @__PURE__ */ jsx("span", {}),
68
+ ...props
69
+ });
70
+ }
71
+ //#endregion
72
+ export { MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName };
@@ -0,0 +1,10 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/message-item/message-item-gutter.d.ts
3
+ export type MessageItemGutterProps = useRender.ComponentProps<"div">;
4
+ export declare function MessageItemGutter({ className, render, ...props }: MessageItemGutterProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
5
+ export type MessageItemAvatarSlotProps = useRender.ComponentProps<"div">;
6
+ export declare function MessageItemAvatarSlot({ className, render, ...props }: MessageItemAvatarSlotProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
7
+ export type MessageItemContinuationTimeProps = useRender.ComponentProps<"time">;
8
+ /** Left-gutter hover clock for continuation rows, a `<time>`: pass the moment in `dateTime`. Show the hour and minute only, in the person's 12h/24h format, with no AM/PM (`6:35`, `18:35`). */
9
+ export declare function MessageItemContinuationTime({ className, id, render, ...props }: MessageItemContinuationTimeProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
10
+ //#endregion
@@ -0,0 +1,41 @@
1
+ import { useMessageItemLabelId } from "./message-item-label.mjs";
2
+ import { messageItem } from "./message-item.recipe.mjs";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ //#region src/components/message-item/message-item-gutter.tsx
6
+ function MessageItemGutter({ className, render, ...props }) {
7
+ const { gutter } = messageItem();
8
+ const defaultProps = { className: gutter({ className }) };
9
+ return useRender({
10
+ defaultTagName: "div",
11
+ render,
12
+ props: mergeProps(defaultProps, props),
13
+ state: { slot: "message-item-gutter" }
14
+ });
15
+ }
16
+ function MessageItemAvatarSlot({ className, render, ...props }) {
17
+ const { avatarSlot } = messageItem();
18
+ const defaultProps = { className: avatarSlot({ className }) };
19
+ return useRender({
20
+ defaultTagName: "div",
21
+ render,
22
+ props: mergeProps(defaultProps, props),
23
+ state: { slot: "message-item-avatar-slot" }
24
+ });
25
+ }
26
+ /** Left-gutter hover clock for continuation rows, a `<time>`: pass the moment in `dateTime`. Show the hour and minute only, in the person's 12h/24h format, with no AM/PM (`6:35`, `18:35`). */
27
+ function MessageItemContinuationTime({ className, id, render, ...props }) {
28
+ const { continuationTime } = messageItem();
29
+ const defaultProps = {
30
+ id: useMessageItemLabelId("time", id),
31
+ className: continuationTime({ className })
32
+ };
33
+ return useRender({
34
+ defaultTagName: "time",
35
+ render,
36
+ props: mergeProps(defaultProps, props),
37
+ state: { slot: "message-item-continuation-time" }
38
+ });
39
+ }
40
+ //#endregion
41
+ export { MessageItemAvatarSlot, MessageItemContinuationTime, MessageItemGutter };
@@ -0,0 +1,29 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/message-item/message-item-header.d.ts
3
+ export type MessageItemHeaderProps = useRender.ComponentProps<"div">;
4
+ export declare function MessageItemHeader({ className, render, ...props }: MessageItemHeaderProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
5
+ export type MessageItemSenderGroupProps = useRender.ComponentProps<"span">;
6
+ /**
7
+ * Holds the sender, its badges and its role, and decides who gives way when
8
+ * the header runs out of room: the role truncates first, then the name. The
9
+ * badges stay whole beside the name, and the time, outside the group, never
10
+ * truncates.
11
+ */
12
+ export declare function MessageItemSenderGroup({ className, render, ...props }: MessageItemSenderGroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
13
+ export type MessageItemSenderProps = useRender.ComponentProps<"span">;
14
+ export declare function MessageItemSender({ className, id, render, ...props }: MessageItemSenderProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
15
+ export type MessageItemSenderButtonProps = useRender.ComponentProps<"button">;
16
+ export declare function MessageItemSenderButton({ className, id, render, ...props }: MessageItemSenderButtonProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
17
+ export type MessageItemSenderBadgesProps = useRender.ComponentProps<"span">;
18
+ export declare function MessageItemSenderBadges({ className, render, ...props }: MessageItemSenderBadgesProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
19
+ export type MessageItemMetaProps = useRender.ComponentProps<"span">;
20
+ export declare function MessageItemMeta({ className, render, ...props }: MessageItemMetaProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
21
+ export type MessageItemTimeProps = useRender.ComponentProps<"time">;
22
+ /**
23
+ * The message's time, right after the sender. A `<time>`: pass the moment in
24
+ * `dateTime` (ISO 8601) and the full date and time as its tooltip.
25
+ */
26
+ export declare function MessageItemTime({ className, id, render, ...props }: MessageItemTimeProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
27
+ export type MessageItemInlineStatusProps = useRender.ComponentProps<"span">;
28
+ export declare function MessageItemInlineStatus({ className, render, ...props }: MessageItemInlineStatusProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
29
+ //#endregion
@@ -0,0 +1,107 @@
1
+ import { useMessageItemLabelId } from "./message-item-label.mjs";
2
+ import { messageItem } from "./message-item.recipe.mjs";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ //#region src/components/message-item/message-item-header.tsx
6
+ function MessageItemHeader({ className, render, ...props }) {
7
+ const { header } = messageItem();
8
+ const defaultProps = { className: header({ className }) };
9
+ return useRender({
10
+ defaultTagName: "div",
11
+ render,
12
+ props: mergeProps(defaultProps, props),
13
+ state: { slot: "message-item-header" }
14
+ });
15
+ }
16
+ /**
17
+ * Holds the sender, its badges and its role, and decides who gives way when
18
+ * the header runs out of room: the role truncates first, then the name. The
19
+ * badges stay whole beside the name, and the time, outside the group, never
20
+ * truncates.
21
+ */
22
+ function MessageItemSenderGroup({ className, render, ...props }) {
23
+ const { senderGroup } = messageItem();
24
+ const defaultProps = { className: senderGroup({ className }) };
25
+ return useRender({
26
+ defaultTagName: "span",
27
+ render,
28
+ props: mergeProps(defaultProps, props),
29
+ state: { slot: "message-item-sender-group" }
30
+ });
31
+ }
32
+ function MessageItemSender({ className, id, render, ...props }) {
33
+ const { sender } = messageItem();
34
+ const defaultProps = {
35
+ id: useMessageItemLabelId("sender", id),
36
+ className: sender({ className })
37
+ };
38
+ return useRender({
39
+ defaultTagName: "span",
40
+ render,
41
+ props: mergeProps(defaultProps, props),
42
+ state: { slot: "message-item-sender" }
43
+ });
44
+ }
45
+ function MessageItemSenderButton({ className, id, render, ...props }) {
46
+ const { senderButton } = messageItem();
47
+ const defaultProps = {
48
+ type: "button",
49
+ id: useMessageItemLabelId("sender", id),
50
+ className: senderButton({ className })
51
+ };
52
+ return useRender({
53
+ defaultTagName: "button",
54
+ render,
55
+ props: mergeProps(defaultProps, props),
56
+ state: { slot: "message-item-sender-button" }
57
+ });
58
+ }
59
+ function MessageItemSenderBadges({ className, render, ...props }) {
60
+ const { senderBadges } = messageItem();
61
+ const defaultProps = { className: senderBadges({ className }) };
62
+ return useRender({
63
+ defaultTagName: "span",
64
+ render,
65
+ props: mergeProps(defaultProps, props),
66
+ state: { slot: "message-item-sender-badges" }
67
+ });
68
+ }
69
+ function MessageItemMeta({ className, render, ...props }) {
70
+ const { meta } = messageItem();
71
+ const defaultProps = { className: meta({ className }) };
72
+ return useRender({
73
+ defaultTagName: "span",
74
+ render,
75
+ props: mergeProps(defaultProps, props),
76
+ state: { slot: "message-item-meta" }
77
+ });
78
+ }
79
+ /**
80
+ * The message's time, right after the sender. A `<time>`: pass the moment in
81
+ * `dateTime` (ISO 8601) and the full date and time as its tooltip.
82
+ */
83
+ function MessageItemTime({ className, id, render, ...props }) {
84
+ const { time } = messageItem();
85
+ const defaultProps = {
86
+ id: useMessageItemLabelId("time", id),
87
+ className: time({ className })
88
+ };
89
+ return useRender({
90
+ defaultTagName: "time",
91
+ render,
92
+ props: mergeProps(defaultProps, props),
93
+ state: { slot: "message-item-time" }
94
+ });
95
+ }
96
+ function MessageItemInlineStatus({ className, render, ...props }) {
97
+ const { inlineStatus } = messageItem();
98
+ const defaultProps = { className: inlineStatus({ className }) };
99
+ return useRender({
100
+ defaultTagName: "span",
101
+ render,
102
+ props: mergeProps(defaultProps, props),
103
+ state: { slot: "message-item-inline-status" }
104
+ });
105
+ }
106
+ //#endregion
107
+ export { MessageItemHeader, MessageItemInlineStatus, MessageItemMeta, MessageItemSender, MessageItemSenderBadges, MessageItemSenderButton, MessageItemSenderGroup, MessageItemTime };
@@ -0,0 +1,113 @@
1
+ import { createContext, isValidElement, useContext, useId, useLayoutEffect, useRef, useState } from "react";
2
+ //#region src/components/message-item/message-item-label.ts
3
+ const MessageItemLabelContext = createContext(null);
4
+ const MessageItemLabelProvider = MessageItemLabelContext.Provider;
5
+ /**
6
+ * The id of a sender or time part, registered with the MessageItem around it.
7
+ * A consumer's own `id` wins and is the one registered. Outside a MessageItem
8
+ * the part gets no id.
9
+ */
10
+ function useMessageItemLabelId(part, id) {
11
+ const registry = useContext(MessageItemLabelContext);
12
+ const generatedId = useId();
13
+ const resolvedId = id ?? (registry ? generatedId : void 0);
14
+ useLayoutEffect(() => {
15
+ if (!registry || !resolvedId) return void 0;
16
+ return registry.register(part, resolvedId);
17
+ }, [
18
+ registry,
19
+ part,
20
+ resolvedId
21
+ ]);
22
+ return resolvedId;
23
+ }
24
+ /** Roles that can't be named: on them the row writes no `aria-labelledby`. */
25
+ const NAMELESS_ROLES = /* @__PURE__ */ new Set([
26
+ "none",
27
+ "presentation",
28
+ "generic"
29
+ ]);
30
+ /**
31
+ * The row's side: a stable registry for its parts and a ref for its element.
32
+ * The row writes `role="article"` and `aria-labelledby` itself, and only once
33
+ * something names it: a sender or time part, or the consumer's `aria-label` or
34
+ * `aria-labelledby`. A row with none of them (a receipt card in the text
35
+ * column, say) stays a plain `div`, not an article with no name.
36
+ *
37
+ * A consumer's `role` or `aria-labelledby` is rendered by React and left
38
+ * alone. A consumer's `aria-label`, or a role that takes no name, turns the
39
+ * parts' `aria-labelledby` off, since it would win over the label.
40
+ */
41
+ function useMessageItemLabel(consumer) {
42
+ const consumerRef = useRef(consumer);
43
+ const [label] = useState(() => {
44
+ const parts = {
45
+ sender: [],
46
+ time: []
47
+ };
48
+ let element = null;
49
+ const write = (name, value) => {
50
+ if (!element) return;
51
+ if (!value) element.removeAttribute(name);
52
+ else if (element.getAttribute(name) !== value) element.setAttribute(name, value);
53
+ };
54
+ const sync = () => {
55
+ const { role, ariaLabel, ariaLabelledBy } = consumerRef.current;
56
+ const ids = [...parts.sender, ...parts.time].join(" ");
57
+ if (role === void 0) write("role", ids !== "" || ariaLabel !== void 0 || ariaLabelledBy !== void 0 ? "article" : "");
58
+ if (ariaLabelledBy === void 0) {
59
+ const nameable = role === void 0 || !NAMELESS_ROLES.has(role);
60
+ write("aria-labelledby", ariaLabel === void 0 && nameable ? ids : "");
61
+ }
62
+ };
63
+ const registry = { register(part, id) {
64
+ parts[part].push(id);
65
+ sync();
66
+ return () => {
67
+ const index = parts[part].indexOf(id);
68
+ if (index !== -1) parts[part].splice(index, 1);
69
+ sync();
70
+ };
71
+ } };
72
+ const ref = (node) => {
73
+ element = node;
74
+ sync();
75
+ };
76
+ return {
77
+ registry,
78
+ ref,
79
+ sync
80
+ };
81
+ });
82
+ const { role, ariaLabel, ariaLabelledBy } = consumer;
83
+ useLayoutEffect(() => {
84
+ consumerRef.current = {
85
+ role,
86
+ ariaLabel,
87
+ ariaLabelledBy
88
+ };
89
+ label.sync();
90
+ }, [
91
+ role,
92
+ ariaLabel,
93
+ ariaLabelledBy,
94
+ label
95
+ ]);
96
+ return label;
97
+ }
98
+ /**
99
+ * The consumer's role and name, from MessageItem's props and, where `render`
100
+ * is an element, from that element's props, which Base UI merges over them.
101
+ * A `render` function's props can't be read: pass them to MessageItem.
102
+ */
103
+ function readConsumerLabel(props, render) {
104
+ const own = isValidElement(render) ? render.props : {};
105
+ const pick = (key) => key in own ? own[key] : props[key];
106
+ return {
107
+ role: pick("role"),
108
+ ariaLabel: pick("aria-label"),
109
+ ariaLabelledBy: pick("aria-labelledby")
110
+ };
111
+ }
112
+ //#endregion
113
+ export { MessageItemLabelProvider, readConsumerLabel, useMessageItemLabel, useMessageItemLabelId };
@@ -0,0 +1,25 @@
1
+ import { MessageItemVariantProps } from "./message-item.recipe.mjs";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ //#region src/components/message-item/message-item-root.d.ts
4
+ export type MessageItemProps = useRender.ComponentProps<"div"> & Pick<MessageItemVariantProps, "compact"> & {
5
+ /**
6
+ * The message someone just jumped to: the row shows `info-soft` at once
7
+ * and fades it out by `LOCATED_MS` (design/foundations/states.md#located).
8
+ * Pass `useLocated(request)`, which turns it off after `LOCATED_MS` and
9
+ * restarts it on the next jump; a search match, a checked row or an open
10
+ * popup keeps its own fill instead.
11
+ */
12
+ located?: boolean;
13
+ };
14
+ /**
15
+ * One message: an `article` named by its sender and its time
16
+ * (`aria-labelledby` pointing at `MessageItemSender` or
17
+ * `MessageItemSenderButton`, then `MessageItemTime` or
18
+ * `MessageItemContinuationTime`). A row with neither, and no `aria-label` or
19
+ * `aria-labelledby`, is a plain `div`. Pass `role`, `aria-label` or
20
+ * `aria-labelledby` on MessageItem or on a `render` element to override
21
+ * either; a `render` function's props can't be read, so pass them on
22
+ * MessageItem then.
23
+ */
24
+ export declare function MessageItem({ className, compact, located, render, ...props }: MessageItemProps): import("react").JSX.Element;
25
+ //#endregion
@@ -0,0 +1,39 @@
1
+ import { MessageItemLabelProvider, readConsumerLabel, useMessageItemLabel } from "./message-item-label.mjs";
2
+ import { messageItem } from "./message-item.recipe.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { mergeProps } from "@base-ui/react/merge-props";
5
+ import { useRender } from "@base-ui/react/use-render";
6
+ //#region src/components/message-item/message-item-root.tsx
7
+ /**
8
+ * One message: an `article` named by its sender and its time
9
+ * (`aria-labelledby` pointing at `MessageItemSender` or
10
+ * `MessageItemSenderButton`, then `MessageItemTime` or
11
+ * `MessageItemContinuationTime`). A row with neither, and no `aria-label` or
12
+ * `aria-labelledby`, is a plain `div`. Pass `role`, `aria-label` or
13
+ * `aria-labelledby` on MessageItem or on a `render` element to override
14
+ * either; a `render` function's props can't be read, so pass them on
15
+ * MessageItem then.
16
+ */
17
+ function MessageItem({ className, compact, located = false, render, ...props }) {
18
+ const { root } = messageItem({ compact });
19
+ const label = useMessageItemLabel(readConsumerLabel(props, render));
20
+ const defaultProps = {
21
+ "data-message-item": "",
22
+ "data-compact": compact ? "true" : void 0,
23
+ "data-located": located ? "" : void 0,
24
+ className: root({ className })
25
+ };
26
+ const element = useRender({
27
+ defaultTagName: "div",
28
+ render,
29
+ ref: label.ref,
30
+ props: mergeProps(defaultProps, props),
31
+ state: { slot: "message-item" }
32
+ });
33
+ return /* @__PURE__ */ jsx(MessageItemLabelProvider, {
34
+ value: label.registry,
35
+ children: element
36
+ });
37
+ }
38
+ //#endregion
39
+ export { MessageItem };
@@ -0,0 +1,9 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/message-item/message-item-toolbar.d.ts
3
+ export type MessageItemToolbarProps = useRender.ComponentProps<"div">;
4
+ export declare function MessageItemToolbar({ className, render, ref, ...props }: MessageItemToolbarProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
5
+ export type MessageItemToolbarButtonProps = useRender.ComponentProps<"button"> & {
6
+ active?: boolean;
7
+ };
8
+ export declare function MessageItemToolbarButton({ active, className, render, ...props }: MessageItemToolbarButtonProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
9
+ //#endregion
@@ -0,0 +1,131 @@
1
+ import { messageItem } from "./message-item.recipe.mjs";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/components/message-item/message-item-toolbar.tsx
5
+ const TOOLBAR_WIDTH = "--mi-toolbar-width";
6
+ /**
7
+ * Five buttons' width (5 × 28px, 4 × 4px apart, 4px from the frame each
8
+ * side): what the row fades until the toolbar has measured itself.
9
+ */
10
+ const FALLBACK_WIDTH = "164px";
11
+ /**
12
+ * Toolbars watched while their row shows them, each with its row, and the one
13
+ * ResizeObserver that watches them: it exists only while a toolbar shows.
14
+ */
15
+ const watched = /* @__PURE__ */ new Map();
16
+ let resizeObserver = null;
17
+ function writeWidth(toolbar, row) {
18
+ row.style.setProperty(TOOLBAR_WIDTH, `${toolbar.offsetWidth}px`);
19
+ }
20
+ /** The recipe's has-data-popup-open / data-popup-open on the row. */
21
+ function hasOpenPopup(row) {
22
+ return row.hasAttribute("data-popup-open") || row.querySelector("[data-popup-open]") !== null;
23
+ }
24
+ function resized(entries) {
25
+ for (const entry of entries) {
26
+ const target = entry.target;
27
+ const row = watched.get(target);
28
+ if (row) writeWidth(target, row);
29
+ }
30
+ }
31
+ function unwatch(toolbar) {
32
+ if (!watched.delete(toolbar)) return;
33
+ resizeObserver?.unobserve(toolbar);
34
+ if (watched.size > 0) return;
35
+ resizeObserver?.disconnect();
36
+ resizeObserver = null;
37
+ }
38
+ function watch(toolbar, row) {
39
+ if (watched.has(toolbar)) return;
40
+ writeWidth(toolbar, row);
41
+ if (typeof ResizeObserver === "undefined") return;
42
+ for (const [other, otherRow] of watched) if (!otherRow.matches(":hover, :focus-within") && !hasOpenPopup(otherRow)) unwatch(other);
43
+ resizeObserver ??= new ResizeObserver(resized);
44
+ watched.set(toolbar, row);
45
+ resizeObserver.observe(toolbar);
46
+ }
47
+ /**
48
+ * Tells the row how wide the toolbar is (`--mi-toolbar-width` on the row), so
49
+ * the header can fade out its end under the toolbar while it shows: the
50
+ * header keeps no room for the toolbar (message-item.md, "The hover
51
+ * toolbar"), and the toolbar's card only reaches part of the sender line.
52
+ * A toolbar with more or fewer actions covers exactly its own width; nothing
53
+ * on the row moves.
54
+ *
55
+ * Measured when the toolbar is about to show, not when it mounts: every row
56
+ * of a timeline renders a toolbar, and the width matters only on the row the
57
+ * pointer or focus is on. So mounting costs no React state (one commit per
58
+ * row) and no ResizeObserver per row. The row's `pointerenter` and `focusin`
59
+ * write the width in the input event's own task, before the frame that
60
+ * applies the row's :hover / :focus-within styles, so the first frame that
61
+ * shows the toolbar already masks its width; the toolbar is laid out at rest
62
+ * (only its opacity is 0), so its `offsetWidth` is right then. A popup opens
63
+ * from the toolbar only after a hover or a focus, so it finds the width
64
+ * written. While the row shows the toolbar, one ResizeObserver shared by all
65
+ * rows watches it, so a button added while it shows re-measures; it lets go
66
+ * when the pointer and focus have left the row and no popup is open, and is
67
+ * disconnected once no toolbar shows.
68
+ *
69
+ * On attach the row gets five buttons' width (164px) as a fallback: a plain
70
+ * DOM write, no commit and no read, so a show that ever came without a
71
+ * pointerenter or focusin (a row that appears under a resting pointer) fades
72
+ * too much rather than leaving letters beside the card. Rows without a
73
+ * toolbar never get the property, so their header's gradient stays invalid
74
+ * and masks nothing.
75
+ *
76
+ * A stable callback ref with a cleanup (React 19), merged with the caller's
77
+ * ref by `useRender`.
78
+ */
79
+ function measureWidthOnShow(toolbar) {
80
+ const row = toolbar?.closest("[data-message-item]");
81
+ if (!toolbar || !row) return void 0;
82
+ const show = () => watch(toolbar, row);
83
+ const pointerLeft = () => {
84
+ if (!row.matches(":focus-within") && !hasOpenPopup(row)) unwatch(toolbar);
85
+ };
86
+ const focusLeft = (event) => {
87
+ const next = event.relatedTarget instanceof Node ? event.relatedTarget : null;
88
+ if (row.contains(next) || row.matches(":hover") || hasOpenPopup(row)) return;
89
+ unwatch(toolbar);
90
+ };
91
+ row.style.setProperty(TOOLBAR_WIDTH, FALLBACK_WIDTH);
92
+ row.addEventListener("pointerenter", show);
93
+ row.addEventListener("focusin", show);
94
+ row.addEventListener("pointerleave", pointerLeft);
95
+ row.addEventListener("focusout", focusLeft);
96
+ return () => {
97
+ row.removeEventListener("pointerenter", show);
98
+ row.removeEventListener("focusin", show);
99
+ row.removeEventListener("pointerleave", pointerLeft);
100
+ row.removeEventListener("focusout", focusLeft);
101
+ unwatch(toolbar);
102
+ row.style.removeProperty(TOOLBAR_WIDTH);
103
+ };
104
+ }
105
+ function MessageItemToolbar({ className, render, ref, ...props }) {
106
+ const { toolbar } = messageItem();
107
+ const defaultProps = { className: toolbar({ className }) };
108
+ return useRender({
109
+ defaultTagName: "div",
110
+ render,
111
+ ref: ref ? [ref, measureWidthOnShow] : measureWidthOnShow,
112
+ props: mergeProps(defaultProps, props),
113
+ state: { slot: "message-item-toolbar" }
114
+ });
115
+ }
116
+ function MessageItemToolbarButton({ active = false, className, render, ...props }) {
117
+ const { toolbarButton } = messageItem();
118
+ const defaultProps = {
119
+ type: "button",
120
+ "data-active": active ? "true" : void 0,
121
+ className: toolbarButton({ className })
122
+ };
123
+ return useRender({
124
+ defaultTagName: "button",
125
+ render,
126
+ props: mergeProps(defaultProps, props),
127
+ state: { slot: "message-item-toolbar-button" }
128
+ });
129
+ }
130
+ //#endregion
131
+ export { MessageItemToolbar, MessageItemToolbarButton };