@crewlethq/ui 0.81.2 → 0.83.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 (410) hide show
  1. package/README.md +89 -4
  2. package/dist/Accordion/index.js +3 -3
  3. package/dist/ActionCard/ActionCard.d.ts +49 -0
  4. package/dist/ActionCard/index.d.ts +4 -0
  5. package/dist/ActionCard/index.js +2 -0
  6. package/dist/ActionCard-47WSZ2O5.css +110 -0
  7. package/dist/ActivityLine/ActivityLine.d.ts +27 -0
  8. package/dist/ActivityLine/index.d.ts +4 -0
  9. package/dist/ActivityLine/index.js +4 -0
  10. package/dist/ActivityLine-AMSERTOB.css +74 -0
  11. package/dist/AgentHandoffPanel/index.js +15 -15
  12. package/dist/AppShell/AccountRow.d.ts +19 -1
  13. package/dist/AppShell/AppShell.d.ts +62 -4
  14. package/dist/AppShell/index.d.ts +1 -1
  15. package/dist/AppShell/index.js +12 -6
  16. package/dist/AppShell/railMotion.d.ts +60 -0
  17. package/dist/AppShell/railShape.d.ts +22 -0
  18. package/dist/{AppShell-2IBUS4TH.css → AppShell-U7D2MUUF.css} +291 -20
  19. package/dist/ArrangeFrame/index.js +2 -2
  20. package/dist/ArrangeGroup/index.js +2 -2
  21. package/dist/ArrangeList/index.js +8 -7
  22. package/dist/ArtifactBar/index.js +13 -11
  23. package/dist/ArtifactCard/index.js +13 -13
  24. package/dist/ArtifactCover/index.js +3 -3
  25. package/dist/ArtifactKindIllustration/index.js +1 -1
  26. package/dist/ArtifactKinds-3EH4KR3F.css +18 -0
  27. package/dist/ArtifactMakeRow/index.js +1 -1
  28. package/dist/ArtifactNameCell/index.js +1 -1
  29. package/dist/ArtifactPanel/index.js +5 -5
  30. package/dist/AttachmentChip/index.js +2 -2
  31. package/dist/AuthLayout/index.js +5 -4
  32. package/dist/Avatar/Avatar.d.ts +30 -28
  33. package/dist/Avatar/AvatarStack.d.ts +2 -2
  34. package/dist/Avatar/index.d.ts +1 -1
  35. package/dist/Avatar/index.js +2 -2
  36. package/dist/{Avatar-VJSJGFRG.css → Avatar-MNE3WBZO.css} +56 -54
  37. package/dist/AvatarPicker/index.js +13 -12
  38. package/dist/{AvatarStack-7I3P7LCK.css → AvatarStack-KEHD3GWY.css} +16 -4
  39. package/dist/BrandLockup/BrandLockup.d.ts +6 -0
  40. package/dist/BrandLockup/index.js +2 -1
  41. package/dist/BriefCard/BriefCard.d.ts +23 -1
  42. package/dist/BriefCard/index.d.ts +2 -2
  43. package/dist/BriefCard/index.js +7 -7
  44. package/dist/{BriefCard-VKTH3BSW.css → BriefCard-QCL7MVUV.css} +26 -0
  45. package/dist/Canvas/index.js +8 -6
  46. package/dist/CanvasBoard/index.js +11 -9
  47. package/dist/CanvasToolbar/index.js +10 -8
  48. package/dist/Card/index.js +2 -2
  49. package/dist/ChangeList/index.js +5 -5
  50. package/dist/ChangeMark/index.js +6 -4
  51. package/dist/CharacterPicker/index.js +2 -2
  52. package/dist/ChatDay/ChatDay.d.ts +53 -0
  53. package/dist/ChatDay/index.d.ts +5 -0
  54. package/dist/ChatDay/index.js +3 -0
  55. package/dist/ChatDay-E3FF5HWF.css +116 -0
  56. package/dist/ChatDivider/ChatDivider.d.ts +31 -0
  57. package/dist/ChatDivider/index.d.ts +4 -0
  58. package/dist/ChatDivider/index.js +2 -0
  59. package/dist/ChatDivider-7ZNDL2PZ.css +76 -0
  60. package/dist/ChatMessage/ChatMessage.d.ts +111 -0
  61. package/dist/ChatMessage/index.d.ts +4 -0
  62. package/dist/ChatMessage/index.js +5 -0
  63. package/dist/ChatMessage-FH7VRVCH.css +304 -0
  64. package/dist/ChatScale-L4SIHSKL.css +42 -0
  65. package/dist/ChatThread/ChatThread.d.ts +33 -4
  66. package/dist/ChatThread/index.d.ts +1 -1
  67. package/dist/ChatThread/index.js +2 -2
  68. package/dist/{ChatThread-2KO3FZKQ.css → ChatThread-HAECJMP6.css} +17 -0
  69. package/dist/CheckGrid/index.js +6 -6
  70. package/dist/Checkbox/index.js +5 -5
  71. package/dist/ChipField/ChipField.d.ts +82 -0
  72. package/dist/ChipField/index.d.ts +4 -0
  73. package/dist/ChipField/index.js +9 -0
  74. package/dist/ChipField-D4CW6XFA.css +108 -0
  75. package/dist/ColorField/index.js +5 -5
  76. package/dist/Combobox/index.js +7 -7
  77. package/dist/CommandPalette/index.js +12 -11
  78. package/dist/CommentThread/index.js +14 -14
  79. package/dist/CompactNav/CompactNav.d.ts +175 -0
  80. package/dist/CompactNav/index.d.ts +4 -0
  81. package/dist/CompactNav/index.js +9 -0
  82. package/dist/CompactNav-CU2AQXBC.css +322 -0
  83. package/dist/Composer/Composer.d.ts +26 -2
  84. package/dist/Composer/index.d.ts +2 -1
  85. package/dist/Composer/index.js +7 -7
  86. package/dist/{Composer-HQIMTMRC.css → Composer-ZEGHEAFE.css} +71 -0
  87. package/dist/ConfirmField/index.js +5 -5
  88. package/dist/ContrastBadge/index.js +2 -2
  89. package/dist/ContrastHelp/index.js +7 -6
  90. package/dist/Count/Count.d.ts +24 -6
  91. package/dist/Count/index.d.ts +1 -1
  92. package/dist/Count/index.js +1 -1
  93. package/dist/{Count-ZJ6ID4ZU.css → Count-2HXBBYPO.css} +19 -0
  94. package/dist/DataGrid/index.js +8 -8
  95. package/dist/DataTable/index.js +11 -10
  96. package/dist/DataView/index.js +18 -17
  97. package/dist/DatasetSource/index.js +3 -3
  98. package/dist/DateTimePicker/index.js +6 -5
  99. package/dist/DeepWorkCard/index.js +9 -9
  100. package/dist/Disclosure/index.js +3 -3
  101. package/dist/DocTabsEditor/index.js +11 -9
  102. package/dist/DockColumn/DockColumn.d.ts +68 -0
  103. package/dist/DockColumn/index.d.ts +3 -0
  104. package/dist/DockColumn/index.js +6 -0
  105. package/dist/DockColumn-SMJCXHS4.css +61 -0
  106. package/dist/Document/index.js +2 -2
  107. package/dist/EditingStatus/index.js +2 -2
  108. package/dist/{Editor-IMYESOW7.js → Editor-5D5Z3LBQ.js} +9 -8
  109. package/dist/EmojiPicker/EmojiPicker.d.ts +51 -0
  110. package/dist/EmojiPicker/emoji.d.ts +24 -0
  111. package/dist/EmojiPicker/index.d.ts +5 -0
  112. package/dist/EmojiPicker/index.js +15 -0
  113. package/dist/EmojiPicker-FMWYN2WX.css +63 -0
  114. package/dist/EntityChip/index.js +3 -3
  115. package/dist/EntityList/index.js +6 -6
  116. package/dist/FactList/index.js +6 -4
  117. package/dist/FolderTile/index.js +3 -3
  118. package/dist/FollowBanner/index.js +4 -4
  119. package/dist/HuePicker/index.js +9 -8
  120. package/dist/ImageUpload/ImageUpload.d.ts +6 -7
  121. package/dist/ImageUpload/index.js +3 -3
  122. package/dist/{ImageUpload-OWI7CCG7.css → ImageUpload-IFXZROFZ.css} +6 -37
  123. package/dist/InlineEditor/index.js +7 -7
  124. package/dist/Input/index.js +4 -4
  125. package/dist/Kbd/Kbd.d.ts +9 -0
  126. package/dist/Kbd/index.d.ts +1 -1
  127. package/dist/Kbd/index.js +1 -1
  128. package/dist/Layer/index.js +2 -2
  129. package/dist/LinkCard/LinkCard.d.ts +64 -0
  130. package/dist/LinkCard/index.d.ts +5 -0
  131. package/dist/LinkCard/index.js +5 -0
  132. package/dist/LinkCard-5I4MYU6I.css +155 -0
  133. package/dist/LinkInterstitial/index.js +7 -6
  134. package/dist/ListInput/index.js +10 -9
  135. package/dist/Listbox/index.js +3 -3
  136. package/dist/LogoSlot/index.js +3 -3
  137. package/dist/MarkdownEditor/format.d.ts +9 -1
  138. package/dist/MarkdownEditor/index.d.ts +2 -2
  139. package/dist/MarkdownEditor/index.js +10 -9
  140. package/dist/MediaMatch/index.d.ts +1 -1
  141. package/dist/MediaMatch/index.js +1 -1
  142. package/dist/MediaMatch/useMediaMatch.d.ts +14 -0
  143. package/dist/MentionChip/MentionChip.d.ts +25 -0
  144. package/dist/MentionChip/index.d.ts +3 -0
  145. package/dist/MentionChip/index.js +2 -0
  146. package/dist/MentionChip-W7MZZVRZ.css +42 -0
  147. package/dist/MentionMenu/MentionMenu.d.ts +82 -0
  148. package/dist/MentionMenu/index.d.ts +4 -0
  149. package/dist/MentionMenu/index.js +3 -0
  150. package/dist/MentionMenu-4NAQ45S4.css +65 -0
  151. package/dist/Menu/index.js +5 -4
  152. package/dist/MergeConflicts/index.js +9 -8
  153. package/dist/MessageActions/MessageActions.d.ts +58 -0
  154. package/dist/MessageActions/index.d.ts +4 -0
  155. package/dist/MessageActions/index.js +18 -0
  156. package/dist/MessageActions-Q4F5UH3S.css +73 -0
  157. package/dist/Modal/Modal.d.ts +12 -0
  158. package/dist/Modal/index.js +6 -5
  159. package/dist/{Modal-FYQYEI3N.css → Modal-GKUOO7PZ.css} +26 -1
  160. package/dist/OpenInAppCard/index.js +8 -8
  161. package/dist/OrgLabel/index.js +3 -3
  162. package/dist/OrgNode/index.js +4 -4
  163. package/dist/OrgTable/index.js +7 -7
  164. package/dist/Outline/index.js +2 -1
  165. package/dist/PeekRail/index.js +1 -1
  166. package/dist/PeopleRail/index.js +4 -4
  167. package/dist/PersonRow/PersonRow.d.ts +70 -0
  168. package/dist/PersonRow/index.d.ts +3 -0
  169. package/dist/PersonRow/index.js +2 -0
  170. package/dist/PersonRow-V5GTPNVP.css +161 -0
  171. package/dist/Popover/index.js +4 -3
  172. package/dist/Presence/index.d.ts +2 -0
  173. package/dist/Presence/index.js +4 -0
  174. package/dist/Presence/usePresence.d.ts +109 -0
  175. package/dist/PresenceStack/index.js +3 -3
  176. package/dist/{PresenceStack-ZV67BH4V.css → PresenceStack-2DTYRADY.css} +4 -6
  177. package/dist/PresenterView/index.js +5 -5
  178. package/dist/PricingCard/index.js +2 -2
  179. package/dist/Principal/index.js +3 -3
  180. package/dist/PrincipalPicker/index.js +11 -11
  181. package/dist/ProposalCard/index.js +15 -15
  182. package/dist/ReactionBar/ReactionBar.d.ts +84 -0
  183. package/dist/ReactionBar/index.d.ts +4 -0
  184. package/dist/ReactionBar/index.js +17 -0
  185. package/dist/ReactionBar-XXI4V7XG.css +93 -0
  186. package/dist/RecordChip/index.js +5 -4
  187. package/dist/RefusalCard/index.js +6 -6
  188. package/dist/RelatedRow/index.js +3 -3
  189. package/dist/Reorder/index.js +2 -1
  190. package/dist/ResultTableCard/index.js +7 -7
  191. package/dist/ReviewList/index.js +2 -2
  192. package/dist/RichEditor/index.js +2 -2
  193. package/dist/RunChip/index.js +5 -5
  194. package/dist/SandboxedFrame/index.js +2 -2
  195. package/dist/SectionFrame/index.js +2 -2
  196. package/dist/SegmentedControl/index.js +8 -7
  197. package/dist/Select/index.js +4 -4
  198. package/dist/SelectionBar/index.js +6 -6
  199. package/dist/SetupWizard/index.js +6 -6
  200. package/dist/ShareDialog/index.js +13 -12
  201. package/dist/SheetColumnEditor/index.js +17 -16
  202. package/dist/SheetGrid/index.js +14 -12
  203. package/dist/Shortcut/index.js +3 -3
  204. package/dist/SidePanel/SidePanel.d.ts +8 -1
  205. package/dist/SidePanel/SidePanelBase.d.ts +3 -1
  206. package/dist/SidePanel/index.js +5 -5
  207. package/dist/{SidePanel-VXKUKLOJ.css → SidePanel-BKWT6Q6Z.css} +36 -0
  208. package/dist/SidebarNav/SidebarNav.d.ts +52 -3
  209. package/dist/SidebarNav/index.js +1 -1
  210. package/dist/{SidebarNav-VTQ3G4AE.css → SidebarNav-E7PZGGA6.css} +132 -7
  211. package/dist/Skeleton/index.js +1 -1
  212. package/dist/{Skeleton-7ZA5ETJM.css → Skeleton-GIXV3KK5.css} +3 -1
  213. package/dist/SlideCompare/index.js +5 -5
  214. package/dist/SlideFilmstrip/index.js +11 -9
  215. package/dist/SlideGrid/index.js +4 -4
  216. package/dist/SlideStage/index.js +3 -3
  217. package/dist/SourceEditor/index.js +2 -2
  218. package/dist/StatusCard/index.js +5 -5
  219. package/dist/Switcher/index.js +13 -12
  220. package/dist/TableCells/index.js +5 -5
  221. package/dist/Tabs/index.js +7 -6
  222. package/dist/Tag/Tag.d.ts +9 -2
  223. package/dist/Tag/index.js +1 -1
  224. package/dist/{Tag-JTJVZM2D.css → Tag-WLDOROB5.css} +24 -0
  225. package/dist/TagsInput/index.js +6 -6
  226. package/dist/ThemeGallery/index.js +5 -5
  227. package/dist/ThemeSwitcher/index.js +9 -8
  228. package/dist/ThinkingIndicator/index.js +1 -1
  229. package/dist/{ThinkingIndicator-JMK2TNMZ.css → ThinkingIndicator-S7ZL2C77.css} +8 -0
  230. package/dist/ThreadSummary/ThreadSummary.d.ts +43 -0
  231. package/dist/ThreadSummary/index.d.ts +4 -0
  232. package/dist/ThreadSummary/index.js +6 -0
  233. package/dist/ThreadSummary-AGR4NDMD.css +90 -0
  234. package/dist/TimeRangePicker/index.js +13 -12
  235. package/dist/TimeWindowPicker/index.js +11 -10
  236. package/dist/Toaster/index.js +2 -2
  237. package/dist/Toolbar/index.js +3 -3
  238. package/dist/Tooltip/Tooltip.d.ts +30 -3
  239. package/dist/Tooltip/index.js +5 -3
  240. package/dist/TreeCanvas/index.js +10 -7
  241. package/dist/TreeGrid/index.js +3 -3
  242. package/dist/ValueField/index.js +9 -9
  243. package/dist/VersionCompare/index.js +10 -9
  244. package/dist/VersionTimeline/index.js +4 -4
  245. package/dist/WidgetFrame/index.js +2 -2
  246. package/dist/{chunk-LOWQK2PB.js → chunk-22CU7V4J.js} +4 -4
  247. package/dist/{chunk-WCDPFTJZ.js → chunk-25JQNHTC.js} +92 -28
  248. package/dist/{chunk-6LXS3X7A.js → chunk-2L4WHYMT.js} +1 -1
  249. package/dist/{chunk-6G6WHTC7.js → chunk-2O5CMV76.js} +1 -1
  250. package/dist/{chunk-FQI62PIZ.js → chunk-2SVQBQAD.js} +2 -2
  251. package/dist/{chunk-7PJFUQMY.js → chunk-2ZSCHQOA.js} +1 -1
  252. package/dist/chunk-3BRXEMYT.js +46 -0
  253. package/dist/{chunk-H22SR76M.js → chunk-3H6OZUZ3.js} +1 -1
  254. package/dist/{chunk-VK45YJLH.js → chunk-3IWZVEXA.js} +2 -2
  255. package/dist/{chunk-2STOSJT3.js → chunk-46FIBJCV.js} +7 -7
  256. package/dist/chunk-4DEKONVJ.js +87 -0
  257. package/dist/{chunk-NUZHC6MM.js → chunk-4ITETIGZ.js} +12 -1
  258. package/dist/{chunk-73GUXYYE.js → chunk-5AHNW5CP.js} +1 -1
  259. package/dist/{chunk-FFGEJUAP.js → chunk-5ILRWUE7.js} +2 -2
  260. package/dist/chunk-5JPOFAVN.js +58 -0
  261. package/dist/{chunk-S5QJZOPL.js → chunk-5K5SZGBI.js} +1 -1
  262. package/dist/{chunk-YB64PWIN.js → chunk-5V6GW6HK.js} +1 -1
  263. package/dist/{chunk-LM6VYJTV.js → chunk-5YXMKZUA.js} +1 -1
  264. package/dist/{chunk-5XBNJNSO.js → chunk-65RFU7LF.js} +1 -1
  265. package/dist/{chunk-7MGXHCVK.js → chunk-6M2N6ETA.js} +1 -1
  266. package/dist/{chunk-OWHETZIU.js → chunk-6SFDL4QH.js} +1 -1
  267. package/dist/{chunk-WK4FQPYW.js → chunk-77VOASOY.js} +5 -5
  268. package/dist/{chunk-UYF2B2TH.js → chunk-7ELFH3RJ.js} +1 -1
  269. package/dist/{chunk-HPI5J6AR.js → chunk-7K6LVM5I.js} +2 -2
  270. package/dist/{chunk-YQDRJZ5J.js → chunk-7M7WKYOV.js} +8 -8
  271. package/dist/{chunk-A5YKNRG6.js → chunk-7QCSISHM.js} +2 -1
  272. package/dist/{chunk-CYYBE2MM.js → chunk-7U6PK242.js} +1 -1
  273. package/dist/{chunk-I33UIUZD.js → chunk-7ZSEUO5Q.js} +51 -40
  274. package/dist/{chunk-LCZULGMB.js → chunk-ABRWL5FJ.js} +2 -2
  275. package/dist/{chunk-VG3SIJ3M.js → chunk-AFLS26AC.js} +2 -2
  276. package/dist/{chunk-4XF7ENQA.js → chunk-AOJ6ZA77.js} +2 -2
  277. package/dist/{chunk-Q2T4L6ML.js → chunk-AQNP3KQU.js} +5 -5
  278. package/dist/{chunk-6X5PGHEX.js → chunk-AUSFKGKL.js} +2 -2
  279. package/dist/{chunk-6R334YT3.js → chunk-AZYE7NR4.js} +2 -2
  280. package/dist/{chunk-WKKWF277.js → chunk-BN5FEJL5.js} +2 -2
  281. package/dist/{chunk-MPVMB2DV.js → chunk-BVML4UVB.js} +3 -2
  282. package/dist/{chunk-EAIOXW2W.js → chunk-BXGBGYKH.js} +8 -14
  283. package/dist/chunk-C4256UXE.js +21 -0
  284. package/dist/{chunk-2FMBZCFR.js → chunk-C42XW5YP.js} +1 -1
  285. package/dist/{chunk-4MRFLHJC.js → chunk-C46DDVTK.js} +1 -1
  286. package/dist/{chunk-5BOFC5OP.js → chunk-CF4M6N6A.js} +20 -4
  287. package/dist/{chunk-ANTAQAR4.js → chunk-CMAZZY2I.js} +7 -1
  288. package/dist/{chunk-3JXX5S3Z.js → chunk-CV2LU2T2.js} +2 -2
  289. package/dist/{chunk-MLDTLZAO.js → chunk-D2GT3CR4.js} +3 -3
  290. package/dist/{chunk-57AKYFML.js → chunk-DD7RBNT4.js} +3 -3
  291. package/dist/{chunk-KL6A7JGH.js → chunk-DRFOTWJE.js} +2 -2
  292. package/dist/{chunk-MUFBHVCT.js → chunk-DWQYV5AV.js} +2 -2
  293. package/dist/{chunk-CNEHFH2A.js → chunk-EAHEJNVJ.js} +1 -1
  294. package/dist/chunk-EALRMP7N.js +69 -0
  295. package/dist/{chunk-E35HYQMK.js → chunk-EBVZHVPD.js} +12 -5
  296. package/dist/{chunk-KHJIEPZV.js → chunk-EC6EUIAD.js} +9 -6
  297. package/dist/{chunk-XNNY27SC.js → chunk-ED4A6Q24.js} +1 -1
  298. package/dist/{chunk-6LN64KGG.js → chunk-F7HZYTZT.js} +6 -3
  299. package/dist/{chunk-RTMNULTL.js → chunk-FLW5U7YS.js} +2 -2
  300. package/dist/{chunk-JQEXAH7G.js → chunk-FPU7AA3X.js} +5 -16
  301. package/dist/{chunk-GHQG4VZA.js → chunk-G3CACE5L.js} +3 -3
  302. package/dist/{chunk-JMTBK55P.js → chunk-G4EHZHKM.js} +2 -2
  303. package/dist/{chunk-45M73G5A.js → chunk-GLKQHN7G.js} +5 -5
  304. package/dist/{chunk-N2BF272H.js → chunk-HF5L56YQ.js} +1 -1
  305. package/dist/chunk-HTBTAIH6.js +37 -0
  306. package/dist/chunk-HTS5RJ7S.js +6 -0
  307. package/dist/{chunk-BRLZXYPA.js → chunk-I4IUX3JF.js} +1 -1
  308. package/dist/{chunk-BXCL6P5Z.js → chunk-I4PBFJGX.js} +1 -1
  309. package/dist/{chunk-ADGNISEI.js → chunk-IAP7APOX.js} +5 -5
  310. package/dist/chunk-ICE3D63E.js +384 -0
  311. package/dist/{chunk-BT3GB7HC.js → chunk-IRONPJB4.js} +3 -3
  312. package/dist/chunk-IUBOLGHG.js +140 -0
  313. package/dist/chunk-JLOESTT2.js +10 -0
  314. package/dist/{chunk-5EFLA6BW.js → chunk-K6RWEQ6P.js} +2 -2
  315. package/dist/{chunk-ZQEJSEPS.js → chunk-K6Y6CDEZ.js} +2 -2
  316. package/dist/chunk-K774LUN3.js +20 -0
  317. package/dist/{chunk-7KBNFFM3.js → chunk-KXWJJWBD.js} +6 -3
  318. package/dist/{chunk-53J2YNQA.js → chunk-L5VU3LZT.js} +1 -1
  319. package/dist/chunk-L72URIHR.js +36 -0
  320. package/dist/{chunk-VERJCAJ4.js → chunk-LBGKLYBY.js} +1 -1
  321. package/dist/{chunk-PRN5IP2R.js → chunk-LMEMH6DO.js} +1 -1
  322. package/dist/{chunk-I22MUEG7.js → chunk-LNQSNXGJ.js} +1 -1
  323. package/dist/chunk-LT44RL62.js +50 -0
  324. package/dist/{chunk-222VILSP.js → chunk-LVJGN5II.js} +1 -1
  325. package/dist/{chunk-AYHIF6DH.js → chunk-LZNPL266.js} +1 -1
  326. package/dist/{chunk-R45VM5EX.js → chunk-MMV7NEAC.js} +1 -1
  327. package/dist/{chunk-2IIHMJMZ.js → chunk-MVKUE4FI.js} +2 -2
  328. package/dist/{chunk-37U3Z65B.js → chunk-MVMVMHYI.js} +1 -1
  329. package/dist/{chunk-JD7P2GJP.js → chunk-MYAARF4Z.js} +1 -1
  330. package/dist/{chunk-OBPINJNO.js → chunk-NCUSI4ZU.js} +3 -3
  331. package/dist/{chunk-NKBKQEKS.js → chunk-NFXCJGHG.js} +1 -1
  332. package/dist/{chunk-OZAZHM55.js → chunk-NKBKHOMU.js} +1 -1
  333. package/dist/{chunk-MGQKF7GK.js → chunk-NN475NAP.js} +1 -1
  334. package/dist/{chunk-6EWNMSS4.js → chunk-NNZRTR5M.js} +2 -2
  335. package/dist/{chunk-JT7WRPZ6.js → chunk-NTRKC2JV.js} +1 -1
  336. package/dist/{chunk-63GBSOLU.js → chunk-NXBCAXP5.js} +2 -2
  337. package/dist/{chunk-NR4CPM4T.js → chunk-NXFTCPF6.js} +1 -1
  338. package/dist/chunk-O3MYBNRO.js +80 -0
  339. package/dist/{chunk-RMEBFYL7.js → chunk-O6EV6GKI.js} +1 -1
  340. package/dist/{chunk-YL7AR6PR.js → chunk-O7KG4CXB.js} +3 -3
  341. package/dist/{chunk-FB3TCNQP.js → chunk-O7N6W52M.js} +3 -3
  342. package/dist/chunk-ONHYFU7D.js +25 -0
  343. package/dist/{chunk-T24HBEU6.js → chunk-OOOVL77Y.js} +1 -1
  344. package/dist/{chunk-BLGBD2D2.js → chunk-P7HMY3BQ.js} +4 -4
  345. package/dist/chunk-PCAT2EFB.js +104 -0
  346. package/dist/{chunk-TPIMOGOZ.js → chunk-PEBQMX5X.js} +1 -1
  347. package/dist/{chunk-UY3FWQWG.js → chunk-PGBKZSSQ.js} +201 -22
  348. package/dist/{chunk-4TMBAOXK.js → chunk-PW57R4BN.js} +1 -1
  349. package/dist/chunk-PX5BOALQ.js +13 -0
  350. package/dist/{chunk-CFTBESST.js → chunk-Q6TCUSQA.js} +2 -2
  351. package/dist/{chunk-ZWXHTXZO.js → chunk-QGEDXYLB.js} +2 -2
  352. package/dist/{chunk-ZKLEAK7M.js → chunk-QM3432PH.js} +7 -7
  353. package/dist/{chunk-WTXCK46H.js → chunk-R2QBQ6NO.js} +1 -1
  354. package/dist/{chunk-Z6JKZI4E.js → chunk-RBQRTGXX.js} +1 -1
  355. package/dist/{chunk-TJIBTHWJ.js → chunk-RDIQB5ZE.js} +3 -3
  356. package/dist/{chunk-TPCBPGSB.js → chunk-RO5JU6SN.js} +4 -4
  357. package/dist/{chunk-O222F2IX.js → chunk-SGMWLUYQ.js} +6 -6
  358. package/dist/{chunk-HEA6TERQ.js → chunk-SHH7UD5U.js} +1 -1
  359. package/dist/{chunk-CLJGFOTV.js → chunk-SKGOKLJD.js} +31 -18
  360. package/dist/{chunk-CSXJIIO4.js → chunk-SNQ7PH3D.js} +1 -1
  361. package/dist/chunk-SPNTUQBV.js +244 -0
  362. package/dist/{chunk-RIAPCEB5.js → chunk-T3S3D4FC.js} +5 -5
  363. package/dist/chunk-TDFLCUBE.js +6 -0
  364. package/dist/{chunk-OQG4P5KU.js → chunk-TGGYSQRD.js} +5 -6
  365. package/dist/{chunk-7FF6CZW5.js → chunk-TQKQRS2J.js} +36 -8
  366. package/dist/chunk-TRXTO3WC.js +114 -0
  367. package/dist/{chunk-H5XTJ7GJ.js → chunk-TUEM2XIW.js} +1 -1
  368. package/dist/{chunk-4AUTALJA.js → chunk-U2IQNDDR.js} +1 -1
  369. package/dist/{chunk-IVTQWOXV.js → chunk-ULYHDP7U.js} +1 -1
  370. package/dist/{chunk-DGSK4LLS.js → chunk-V6WDJUYK.js} +1 -1
  371. package/dist/{chunk-Z2MZTI3H.js → chunk-VB3FVKNI.js} +1 -1
  372. package/dist/{chunk-R5OATXWU.js → chunk-VONEKR3J.js} +38 -15
  373. package/dist/{chunk-CZQ7UITX.js → chunk-WANKINXG.js} +3 -3
  374. package/dist/{chunk-HQOEAUDJ.js → chunk-WMO722J2.js} +2 -2
  375. package/dist/{chunk-D7G2QGET.js → chunk-X3US25XJ.js} +1 -1
  376. package/dist/{chunk-GPFYITOF.js → chunk-X7VZQKIW.js} +1 -1
  377. package/dist/{chunk-L4HHWG4V.js → chunk-XA2QKGBJ.js} +3 -3
  378. package/dist/{chunk-DV5L2GRY.js → chunk-XJMES7AE.js} +1 -1
  379. package/dist/{chunk-5NJMSYDZ.js → chunk-XNC3M4IN.js} +1 -1
  380. package/dist/{chunk-B2YSFWUG.js → chunk-XRWHDW6F.js} +9 -9
  381. package/dist/{chunk-TKUAGWNR.js → chunk-XTJHMP3W.js} +2 -2
  382. package/dist/{chunk-KTIQSSME.js → chunk-XZY6S3UC.js} +6 -3
  383. package/dist/{chunk-7KHM2FZH.js → chunk-YGRTX67J.js} +1 -1
  384. package/dist/{chunk-RTPQDNW3.js → chunk-YJQXESOJ.js} +5 -1
  385. package/dist/chunk-YP2FS6SH.js +54 -0
  386. package/dist/{chunk-LMQG3VPG.js → chunk-YQ7Q52XU.js} +1 -1
  387. package/dist/{chunk-G4CGDUCP.js → chunk-YRNNUCQP.js} +1 -1
  388. package/dist/{chunk-5CEQ3HLH.js → chunk-YXKSUILG.js} +6 -6
  389. package/dist/{chunk-NHLNHH4J.js → chunk-ZB3E2Z4Y.js} +1 -1
  390. package/dist/{chunk-IL3XLDW7.js → chunk-ZDWAIVWL.js} +1 -1
  391. package/dist/{chunk-SNIPM6K7.js → chunk-ZJVLGYE3.js} +3 -3
  392. package/dist/{chunk-BFM5G2Z6.js → chunk-ZPTKAYJK.js} +1 -1
  393. package/dist/{chunk-2PIH6JHJ.js → chunk-ZXTDWTXS.js} +1 -1
  394. package/dist/{chunk-C667GCU7.js → chunk-ZXXZESCD.js} +9 -7
  395. package/dist/generated/index.d.ts +17 -0
  396. package/dist/generated/index.js +184 -163
  397. package/dist/index.js +184 -163
  398. package/dist/styles.css +2769 -156
  399. package/dist/utils/composedRef.d.ts +39 -0
  400. package/dist/utils/focusModality.d.ts +14 -0
  401. package/dist/utils/heldHint.d.ts +6 -0
  402. package/dist/utils/index.d.ts +3 -1
  403. package/dist/utils/index.js +4 -2
  404. package/dist/utils/tokenMs.d.ts +6 -0
  405. package/package.json +5 -5
  406. package/dist/ArtifactKinds-O3CALPVX.css +0 -16
  407. package/dist/{chunk-PLNJEDGI.js → chunk-I4IO56EY.js} +1 -1
  408. package/dist/{chunk-FEJANUZK.js → chunk-KBSD476L.js} +0 -0
  409. package/dist/{chunk-624X3RVA.js → chunk-O55JQ7BE.js} +1 -1
  410. /package/dist/{chunk-CDFQ7MQK.js → chunk-REEZQCML.js} +0 -0
@@ -6,6 +6,8 @@ import { type HTMLAttributes, type ReactNode } from 'react';
6
6
  export declare const BRIEF_CARD_MAX_NEEDS = 3;
7
7
  /** The most follow-ups a brief draws: the next questions, not a menu. The host caps them. */
8
8
  export declare const BRIEF_CARD_MAX_FOLLOW_UPS = 2;
9
+ /** The most points of what was said a brief draws: the engine writes at most five. */
10
+ export declare const BRIEF_CARD_MAX_POINTS = 5;
9
11
  /** The one thing a row lets the reader do, in one press. */
10
12
  export interface BriefCardAction {
11
13
  /** A verb and its object: "Answer", "Open GOP-11", "Ask why". */
@@ -29,6 +31,18 @@ export interface BriefCardNeed {
29
31
  action?: BriefCardAction | undefined;
30
32
  }
31
33
  /** A question the reader can ask next, in the same conversation. */
34
+ /**
35
+ * One point of what was said (a room's catch up), and the message it came
36
+ * from. `source` is the citation: the host's own press that opens the message
37
+ * (or its thread), named for it ("Open Miles's message"), so every point can
38
+ * be checked against what was actually written.
39
+ */
40
+ export interface BriefCardPoint {
41
+ key: string;
42
+ /** What was said, in a sentence. */
43
+ text: ReactNode;
44
+ source?: BriefCardAction | undefined;
45
+ }
32
46
  export interface BriefCardFollowUp {
33
47
  key: string;
34
48
  question: string;
@@ -39,6 +53,8 @@ export interface BriefCardLabels {
39
53
  heading: string;
40
54
  /** The list's accessible name. */
41
55
  needs: string;
56
+ /** Names the list of what was said. */
57
+ points: string;
42
58
  /** The mark on the first row, the one the brief recommends, where there are rows to rank. */
43
59
  first: string;
44
60
  followUps: string;
@@ -63,6 +79,12 @@ export interface BriefCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title
63
79
  * empty list is "Nothing needs you".
64
80
  */
65
81
  needs: readonly BriefCardNeed[];
82
+ /**
83
+ * What was said, for a brief of a conversation (a room's catch up), each
84
+ * point citing the message it came from, at most [BRIEF_CARD_MAX_POINTS].
85
+ * Drawn as a list under the needs, in the order given.
86
+ */
87
+ points?: readonly BriefCardPoint[] | undefined;
66
88
  /** One fact from elsewhere that bears on what to do, drawn quiet under the rows. */
67
89
  context?: ReactNode;
68
90
  /** Questions to ask next, at most [BRIEF_CARD_MAX_FOLLOW_UPS], drawn as suggestion rows at the foot. */
@@ -90,4 +112,4 @@ export interface BriefCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title
90
112
  * so where a row leads (a record opened, a question asked) is settled by the
91
113
  * code that built the brief, never by text inside it.
92
114
  */
93
- export declare function BriefCard({ scope, asOf, about, needs, context, followUps, labels: overrides, className, ...rest }: BriefCardProps): import("react").JSX.Element;
115
+ export declare function BriefCard({ scope, asOf, about, needs, points, context, followUps, labels: overrides, className, ...rest }: BriefCardProps): import("react").JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import './BriefCard.css';
2
- export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BriefCard } from './BriefCard.js';
3
- export type { BriefCardAction, BriefCardFollowUp, BriefCardLabels, BriefCardNeed, BriefCardNeedTone, BriefCardProps, } from './BriefCard.js';
2
+ export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BRIEF_CARD_MAX_POINTS, BriefCard } from './BriefCard.js';
3
+ export type { BriefCardAction, BriefCardFollowUp, BriefCardLabels, BriefCardNeed, BriefCardNeedTone, BriefCardPoint, BriefCardProps, } from './BriefCard.js';
@@ -1,13 +1,13 @@
1
- export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BriefCard } from '../chunk-5BOFC5OP.js';
1
+ export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BRIEF_CARD_MAX_POINTS, BriefCard } from '../chunk-CF4M6N6A.js';
2
2
  import '../chunk-Y7PVLEZJ.js';
3
- import '../chunk-RTMNULTL.js';
4
- import '../chunk-VERJCAJ4.js';
5
- import '../chunk-CYQBDZ6M.js';
6
- import '../chunk-4AUTALJA.js';
3
+ import '../chunk-FLW5U7YS.js';
4
+ import '../chunk-LBGKLYBY.js';
5
+ import '../chunk-U2IQNDDR.js';
7
6
  import '../chunk-AV2DXAEL.js';
8
- import '../chunk-MLDTLZAO.js';
9
- import '../chunk-PQADV6P6.js';
7
+ import '../chunk-CYQBDZ6M.js';
10
8
  import '../chunk-DGXZ635L.js';
11
9
  import '../chunk-XSPCITPN.js';
10
+ import '../chunk-D2GT3CR4.js';
11
+ import '../chunk-PQADV6P6.js';
12
12
  import '../chunk-UT6CW3C7.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -113,3 +113,29 @@
113
113
  .crewlet-brief-card__follow-ups {
114
114
  margin-inline: calc(-1 * var(--spacing-3));
115
115
  }
116
+
117
+ /*
118
+ * WHAT WAS SAID (a room's catch up): one point to a row, the sentence and its
119
+ * citation, the press that opens the message it came from, at the row's end.
120
+ * A quiet list with no markers, between the needs and the context.
121
+ */
122
+ .crewlet-brief-card__points {
123
+ display: flex;
124
+ flex-direction: column;
125
+ gap: var(--spacing-1);
126
+ margin: 0;
127
+ padding: 0;
128
+ list-style: none;
129
+ }
130
+
131
+ .crewlet-brief-card__point {
132
+ display: grid;
133
+ grid-template-columns: minmax(0, 1fr) auto;
134
+ align-items: baseline;
135
+ gap: var(--spacing-3);
136
+ padding-block: var(--spacing-1);
137
+ }
138
+
139
+ .crewlet-brief-card__point-text {
140
+ color: var(--color-text-primary);
141
+ }
@@ -1,12 +1,14 @@
1
- export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-OBPINJNO.js';
1
+ export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-NCUSI4ZU.js';
2
2
  import '../chunk-LM3ISVJA.js';
3
- import '../chunk-I33UIUZD.js';
4
- import '../chunk-ANTAQAR4.js';
3
+ import '../chunk-7ZSEUO5Q.js';
4
+ import '../chunk-HTS5RJ7S.js';
5
+ import '../chunk-L72URIHR.js';
6
+ import '../chunk-CMAZZY2I.js';
5
7
  import '../chunk-DGXZ635L.js';
6
- import '../chunk-OMV5W53A.js';
7
8
  import '../chunk-XSPCITPN.js';
8
- import '../chunk-H5XTJ7GJ.js';
9
+ import '../chunk-OMV5W53A.js';
10
+ import '../chunk-TUEM2XIW.js';
11
+ import '../chunk-4ITETIGZ.js';
9
12
  import '../chunk-UAUP6XGK.js';
10
- import '../chunk-NUZHC6MM.js';
11
13
  import '../chunk-UT6CW3C7.js';
12
14
  import '../chunk-ODEQTPFM.js';
@@ -1,16 +1,18 @@
1
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-FQI62PIZ.js';
1
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-2SVQBQAD.js';
2
2
  import '../chunk-5SZGKSGL.js';
3
- import '../chunk-KL6A7JGH.js';
4
- import '../chunk-NR4CPM4T.js';
5
- import '../chunk-OBPINJNO.js';
3
+ import '../chunk-DRFOTWJE.js';
4
+ import '../chunk-NXFTCPF6.js';
5
+ import '../chunk-NCUSI4ZU.js';
6
6
  import '../chunk-LM3ISVJA.js';
7
- import '../chunk-I33UIUZD.js';
8
- import '../chunk-ANTAQAR4.js';
7
+ import '../chunk-7ZSEUO5Q.js';
8
+ import '../chunk-HTS5RJ7S.js';
9
+ import '../chunk-L72URIHR.js';
10
+ import '../chunk-CMAZZY2I.js';
9
11
  import '../chunk-DGXZ635L.js';
10
- import '../chunk-OMV5W53A.js';
11
12
  import '../chunk-XSPCITPN.js';
12
- import '../chunk-H5XTJ7GJ.js';
13
+ import '../chunk-OMV5W53A.js';
14
+ import '../chunk-TUEM2XIW.js';
15
+ import '../chunk-4ITETIGZ.js';
13
16
  import '../chunk-UAUP6XGK.js';
14
- import '../chunk-NUZHC6MM.js';
15
17
  import '../chunk-UT6CW3C7.js';
16
18
  import '../chunk-ODEQTPFM.js';
@@ -1,14 +1,16 @@
1
- export { CanvasToolbar, toolForKey } from '../chunk-KL6A7JGH.js';
2
- import '../chunk-NR4CPM4T.js';
3
- import '../chunk-OBPINJNO.js';
1
+ export { CanvasToolbar, toolForKey } from '../chunk-DRFOTWJE.js';
2
+ import '../chunk-NXFTCPF6.js';
3
+ import '../chunk-NCUSI4ZU.js';
4
4
  import '../chunk-LM3ISVJA.js';
5
- import '../chunk-I33UIUZD.js';
6
- import '../chunk-ANTAQAR4.js';
5
+ import '../chunk-7ZSEUO5Q.js';
6
+ import '../chunk-HTS5RJ7S.js';
7
+ import '../chunk-L72URIHR.js';
8
+ import '../chunk-CMAZZY2I.js';
7
9
  import '../chunk-DGXZ635L.js';
8
- import '../chunk-OMV5W53A.js';
9
10
  import '../chunk-XSPCITPN.js';
10
- import '../chunk-H5XTJ7GJ.js';
11
+ import '../chunk-OMV5W53A.js';
12
+ import '../chunk-TUEM2XIW.js';
13
+ import '../chunk-4ITETIGZ.js';
11
14
  import '../chunk-UAUP6XGK.js';
12
- import '../chunk-NUZHC6MM.js';
13
15
  import '../chunk-UT6CW3C7.js';
14
16
  import '../chunk-ODEQTPFM.js';
@@ -1,6 +1,6 @@
1
- export { Card } from '../chunk-4AUTALJA.js';
1
+ export { Card } from '../chunk-U2IQNDDR.js';
2
2
  export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
3
- import '../chunk-MLDTLZAO.js';
3
+ import '../chunk-D2GT3CR4.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-UT6CW3C7.js';
6
6
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
- export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-4XF7ENQA.js';
1
+ export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-AOJ6ZA77.js';
2
2
  import '../chunk-LR4IWUWQ.js';
3
- import '../chunk-VERJCAJ4.js';
3
+ import '../chunk-LBGKLYBY.js';
4
4
  import '../chunk-CYQBDZ6M.js';
5
- import '../chunk-222VILSP.js';
6
- import '../chunk-IVTQWOXV.js';
7
- import '../chunk-MLDTLZAO.js';
5
+ import '../chunk-LVJGN5II.js';
6
+ import '../chunk-ULYHDP7U.js';
7
+ import '../chunk-D2GT3CR4.js';
8
8
  import '../chunk-PQADV6P6.js';
9
9
  import '../chunk-UT6CW3C7.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,9 +1,11 @@
1
- export { ChangeMark } from '../chunk-Z2MZTI3H.js';
1
+ export { ChangeMark } from '../chunk-VB3FVKNI.js';
2
2
  import '../chunk-LFSIKGRQ.js';
3
3
  import '../chunk-Z7JYG5TF.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
- import '../chunk-I33UIUZD.js';
5
+ import '../chunk-7ZSEUO5Q.js';
6
+ import '../chunk-HTS5RJ7S.js';
7
+ import '../chunk-L72URIHR.js';
6
8
  import '../chunk-OMV5W53A.js';
7
- import '../chunk-H5XTJ7GJ.js';
8
- import '../chunk-NUZHC6MM.js';
9
+ import '../chunk-TUEM2XIW.js';
10
+ import '../chunk-4ITETIGZ.js';
9
11
  import '../chunk-ODEQTPFM.js';
@@ -1,5 +1,5 @@
1
1
  import '../chunk-3L5NHASN.js';
2
- export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-I22MUEG7.js';
2
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-LNQSNXGJ.js';
3
+ import '../chunk-XZY6S3UC.js';
3
4
  import '../chunk-EGMQURBR.js';
4
- import '../chunk-KTIQSSME.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,53 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
2
+ export interface ChatDayProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'children'> {
3
+ /** The day, as the reader says it: "Today", "Yesterday", "Monday, October 27". It names the day for a screen reader too. */
4
+ label: string;
5
+ /**
6
+ * The host's own control in the pill's place, such as a Jump to menu whose
7
+ * trigger is a `ChatDayPill`. Left out, the day draws its label as a plain
8
+ * pill.
9
+ */
10
+ pill?: ReactNode;
11
+ /**
12
+ * The New line's word ("New"), for a day whose FIRST message is the first
13
+ * one the reader has not read. It is drawn on the day's own rule, as one
14
+ * line, rather than as a second line under it.
15
+ */
16
+ unread?: string | undefined;
17
+ /** The day's rows, oldest first. */
18
+ children?: ReactNode;
19
+ }
20
+ /**
21
+ * A day of a conversation under its date.
22
+ *
23
+ * - THE DAY'S RULE is a hairline across the whole list, in the flow where the
24
+ * day starts. It scrolls away with the day like any row.
25
+ * - THE DAY'S PILL sits on the rule while the rule is in view, then stays
26
+ * pinned a little under the top of the list while any of the day is in it,
27
+ * floating over the rows: only the pill covers them, never a band across
28
+ * the list. It is pinned within its own day, so the next day's pill pushes
29
+ * it out from below as that day reaches the top.
30
+ * - THE PIN IS A VARIABLE, `--crewlet-chat-day-pin`, so a host with a bar
31
+ * floating over the top of the list (an unread banner) moves the pills
32
+ * down past it while the bar shows.
33
+ *
34
+ * A GROUP TO A SCREEN READER, named by its day, so a reader moving through a
35
+ * long log by group hears where each day starts. The pill's words are the
36
+ * same name, drawn; the rule is decoration, unless it carries the New line,
37
+ * which is a separator of its own.
38
+ */
39
+ export declare function ChatDay({ label, pill, unread, className, children, ...rest }: ChatDayProps): import("react").JSX.Element;
40
+ export interface ChatDayPillProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
41
+ /** The day's words on the pill. */
42
+ label: string;
43
+ }
44
+ /**
45
+ * The day's pill as a control, for a day whose pill does something: spread
46
+ * with a menu's trigger props it opens that menu, and draws the chevron that
47
+ * says so (`<Menu renderTrigger={(props) => <ChatDayPill {...props} label="Today" />}>`).
48
+ * The same size, fill and ring as the plain pill a `ChatDay` draws on its own.
49
+ *
50
+ * Filled with the transcript's own ground and ringed with a hairline and a
51
+ * small shadow, so it reads as lifted off the messages it passes over.
52
+ */
53
+ export declare const ChatDayPill: import("react").ForwardRefExoticComponent<ChatDayPillProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,5 @@
1
+ import '../ChatMessage/ChatScale.css';
2
+ import '../ChatDivider/ChatDivider.css';
3
+ import './ChatDay.css';
4
+ export { ChatDay, ChatDayPill } from './ChatDay.js';
5
+ export type { ChatDayPillProps, ChatDayProps } from './ChatDay.js';
@@ -0,0 +1,3 @@
1
+ export { ChatDay, ChatDayPill } from '../chunk-ONHYFU7D.js';
2
+ import '../chunk-K774LUN3.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,116 @@
1
+ /*
2
+ * ChatDay: a day of a conversation under its date, set on the conversation's
3
+ * own scale (ChatScale.css).
4
+ */
5
+
6
+ /* The day is the pill's range: pinned, the pill stays inside it, so the next
7
+ day pushes it out from below. */
8
+ .crewlet-chat-day {
9
+ position: relative;
10
+ display: flex;
11
+ flex-direction: column;
12
+ }
13
+
14
+ /*
15
+ * THE PILL'S PLACE. A box as tall as the pill, first in the day, set so the
16
+ * pill's middle is on the rule. Sticky in the day, it holds the pill a little
17
+ * under the list's top edge for as long as the day is in view, and the day's
18
+ * end pushes it out, a small gap above the next day's pill.
19
+ *
20
+ * ITS OWN MARGINS STAY POSITIVE. A sticky box may travel as far as its margin
21
+ * box allows, so a negative margin here let the pill run past the end of its
22
+ * day and sit on the next day's pill. The rule under it takes the overlap
23
+ * instead, with a negative margin of its own, which moves nothing sticky.
24
+ *
25
+ * The box lets the pointer through to the rows beside the pill; the pill
26
+ * takes it. It stands under a message's hover toolbar (which stands over the
27
+ * rows and the pill alike) and over the rows and the New line.
28
+ */
29
+ .crewlet-chat-day__label {
30
+ position: sticky;
31
+ top: var(--crewlet-chat-day-pin);
32
+ z-index: var(--z-index-sticky);
33
+ display: flex;
34
+ flex: none;
35
+ justify-content: center;
36
+ height: var(--crewlet-chat-day-pill);
37
+ margin-top: calc(var(--crewlet-chat-day-gap) - var(--crewlet-chat-day-pill) / 2);
38
+ pointer-events: none;
39
+ /* A host that raises the pin (a banner arriving) moves the pinned pill
40
+ down with it rather than jumping it. */
41
+ transition: top var(--motion-duration-fast) var(--motion-easing-default);
42
+ }
43
+
44
+ /*
45
+ * THE DAY'S RULE: a hairline across the whole list with the day's gap under
46
+ * it, in the flow like any row. It rises half a pill, so it runs through the
47
+ * pill's middle.
48
+ */
49
+ .crewlet-chat-day__rule {
50
+ position: relative;
51
+ flex: none;
52
+ height: 1px;
53
+ margin: calc(var(--crewlet-chat-day-pill) / -2) 0 var(--crewlet-chat-day-gap);
54
+ background: var(--color-edge-hairline);
55
+ }
56
+
57
+ /* The New line on the day's rule covers the rule, as one line. */
58
+ .crewlet-chat-day__rule > .crewlet-chat-divider--unread {
59
+ position: absolute;
60
+ inset: 0;
61
+ }
62
+
63
+ /*
64
+ * THE PILL floats over the rows: the transcript's own ground, ringed with the
65
+ * hairline and a small shadow, so it reads as lifted off the messages it
66
+ * passes over. The ring is a shadow, which forced colors drops, so a
67
+ * transparent outline stands in for it there.
68
+ */
69
+ .crewlet-chat-day__pill {
70
+ display: inline-flex;
71
+ align-items: center;
72
+ gap: var(--spacing-1);
73
+ height: var(--crewlet-chat-day-pill);
74
+ box-sizing: border-box;
75
+ padding: 0 var(--spacing-3);
76
+ border: 0;
77
+ border-radius: var(--radius-pill);
78
+ outline: 1px solid transparent;
79
+ outline-offset: -1px;
80
+ background-color: var(--crewlet-chat-ground);
81
+ box-shadow:
82
+ 0 0 0 1px var(--color-edge-hairline),
83
+ var(--shadow-xs);
84
+ color: var(--color-text-secondary);
85
+ font: inherit;
86
+ font-size: var(--font-size-xs);
87
+ font-weight: var(--font-weight-medium);
88
+ line-height: 1;
89
+ white-space: nowrap;
90
+ pointer-events: auto;
91
+ }
92
+
93
+ /* A pill that opens a menu: its chevron sits a step closer to its edge. */
94
+ .crewlet-chat-day__pill--button {
95
+ padding-inline-end: var(--spacing-2);
96
+ cursor: pointer;
97
+ }
98
+
99
+ /* Under the pointer, and while its menu is open, the hover overlay laid on
100
+ the pill's own ground. */
101
+ .crewlet-chat-day__pill--button:hover,
102
+ .crewlet-chat-day__pill--button[aria-expanded='true'] {
103
+ background-image: linear-gradient(var(--color-surface-hover), var(--color-surface-hover));
104
+ }
105
+
106
+ /* The pill draws its own ring, so focus is drawn over it, as one edge. */
107
+ .crewlet-chat-day__pill--button:focus-visible {
108
+ outline: 2px solid var(--color-focus);
109
+ outline-offset: var(--size-focus-ring-inset-offset);
110
+ }
111
+
112
+ @media (prefers-reduced-motion: reduce) {
113
+ .crewlet-chat-day__label {
114
+ transition: none;
115
+ }
116
+ }
@@ -0,0 +1,31 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ export type ChatDividerVariant =
3
+ /**
4
+ * The New line: a hairline in the danger hue across the whole list, laid
5
+ * on the boundary between the last message the reader has read and the
6
+ * first one they have not, with its word at the line's end.
7
+ */
8
+ 'unread'
9
+ /** A quiet labelled rule, as a thread pane sets its reply count over the replies. */
10
+ | 'date';
11
+ export interface ChatDividerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'children'> {
12
+ variant: ChatDividerVariant;
13
+ /** The words on the line, and its name for a screen reader: "New", "3 replies". */
14
+ label: string;
15
+ }
16
+ /**
17
+ * A line between the rows of a conversation.
18
+ *
19
+ * THE NEW LINE TAKES NO HEIGHT. Marking where the reader left off moves no
20
+ * message: the line is drawn on the boundary between two rows, over the gap
21
+ * they already keep, so a list that gains or loses it never shifts under the
22
+ * reader's eye. Inside a `ChatDay` whose first message is the first unread
23
+ * one, the day draws it on its own rule (`unread`), as one line rather than
24
+ * a second line under the first.
25
+ *
26
+ * A SEPARATOR TO A SCREEN READER, named by its words, so a reader moving
27
+ * through the log hears "New" where the unread messages start. The host can
28
+ * find it again by `data-divider` (to bring it into view, or to tell whether
29
+ * it is on screen for an unread banner).
30
+ */
31
+ export declare function ChatDivider({ variant, label, className, ...rest }: ChatDividerProps): import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import '../ChatMessage/ChatScale.css';
2
+ import './ChatDivider.css';
3
+ export { ChatDivider } from './ChatDivider.js';
4
+ export type { ChatDividerProps, ChatDividerVariant } from './ChatDivider.js';
@@ -0,0 +1,2 @@
1
+ export { ChatDivider } from '../chunk-K774LUN3.js';
2
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,76 @@
1
+ /*
2
+ * ChatDivider: a line between the rows of a conversation, set on the
3
+ * conversation's own scale (ChatScale.css).
4
+ */
5
+
6
+ /* A quiet labelled rule: the words in the middle, a hairline either side. */
7
+ .crewlet-chat-divider--date {
8
+ display: flex;
9
+ align-items: center;
10
+ gap: var(--spacing-3);
11
+ padding: var(--spacing-2) var(--crewlet-chat-pad-x);
12
+ color: var(--color-text-tertiary);
13
+ font-size: var(--crewlet-chat-meta);
14
+ font-weight: var(--font-weight-regular);
15
+ }
16
+
17
+ .crewlet-chat-divider--date::before,
18
+ .crewlet-chat-divider--date::after {
19
+ content: '';
20
+ flex: 1;
21
+ height: 1px;
22
+ background: var(--color-border-default);
23
+ }
24
+
25
+ .crewlet-chat-divider--date .crewlet-chat-divider__label {
26
+ white-space: nowrap;
27
+ }
28
+
29
+ /*
30
+ * THE NEW LINE TAKES NO HEIGHT. A hairline across the whole list in the
31
+ * danger hue, laid on the boundary between the last read message and the
32
+ * first unread one, with "New" at its end on the transcript's ground, so it
33
+ * reads over the rows it passes. Brought to the top of the view (scrolled to
34
+ * as a target), it stops under the day's pinned pill rather than behind it.
35
+ */
36
+ .crewlet-chat-divider--unread {
37
+ position: relative;
38
+ z-index: var(--z-index-raised);
39
+ height: 0;
40
+ pointer-events: none;
41
+ scroll-margin-top: calc(var(--crewlet-chat-day-pin) + var(--crewlet-chat-day-pill) + var(--spacing-3));
42
+ }
43
+
44
+ .crewlet-chat-divider--unread::before {
45
+ content: '';
46
+ position: absolute;
47
+ inset-inline: 0;
48
+ top: 0;
49
+ height: 1px;
50
+ background: var(--color-feedback-danger);
51
+ }
52
+
53
+ .crewlet-chat-divider--unread .crewlet-chat-divider__label {
54
+ position: absolute;
55
+ top: 0;
56
+ right: var(--crewlet-chat-pad-x);
57
+ padding: 0 var(--spacing-1);
58
+ transform: translateY(-50%);
59
+ background: var(--crewlet-chat-ground);
60
+ color: var(--color-feedback-danger-ink);
61
+ font-size: var(--font-size-xs);
62
+ font-weight: var(--font-weight-medium);
63
+ line-height: var(--font-line-height-normal);
64
+ }
65
+
66
+ /*
67
+ * FORCED COLORS drops the line's background, which is the whole line. A
68
+ * border is the one edge the mode keeps, painted in its own text colour.
69
+ */
70
+ @media (forced-colors: active) {
71
+ .crewlet-chat-divider--unread::before,
72
+ .crewlet-chat-divider--date::before,
73
+ .crewlet-chat-divider--date::after {
74
+ border-top: 1px solid CanvasText;
75
+ }
76
+ }
@@ -0,0 +1,111 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ /** Why a row is drawn apart from the rest: it names the reader, or the whole room. */
3
+ export type ChatMessageHighlight = 'mention';
4
+ /** An outbox row: `sending` is drawn faint in place, `failed` carries its own line. */
5
+ export type ChatMessagePending = 'sending' | 'failed';
6
+ /**
7
+ * Where the toolbar stands. `auto` rests it on the row's first line, over the
8
+ * row above, and inside the row's own head where the scroller's edge would cut
9
+ * it. `inside` always draws it inside the row, for a row with something of the
10
+ * host's own above it that the toolbar must not cover (the head of a card).
11
+ */
12
+ export type ChatMessageActionsPlacement = 'auto' | 'inside';
13
+ /** The class every message row carries, which the row's keys walk between. */
14
+ export declare const CHAT_MESSAGE_CLASS = "crewlet-chat-message";
15
+ export interface ChatMessageProps extends Omit<HTMLAttributes<HTMLElement>, 'id' | 'children'> {
16
+ /** The message's own id, drawn as `data-message-id` so a host can find the row it opens at. */
17
+ id: string;
18
+ /** Names the row for a screen reader: "Product Manager, 11:02 AM". */
19
+ label: string;
20
+ /** The author's face, drawn in the gutter of a message that starts a run. A button that opens their profile is styled to fit. */
21
+ avatar: ReactNode;
22
+ /** The author's name, usually a button that opens their profile. */
23
+ author: ReactNode;
24
+ /** After the name: a quiet `Tag` naming the seat's kind ("Agent"), a saved flag, the room a mention came from. */
25
+ badges?: ReactNode;
26
+ /** The short time beside the name ("11:40 AM"). */
27
+ time: string;
28
+ /** The full time, shown on hover of either time. */
29
+ timeTitle: string;
30
+ /** The machine-readable time, for the `<time>` elements' `dateTime`. */
31
+ dateTime?: string | undefined;
32
+ /**
33
+ * The time a continuation shows in its gutter, which is a face wide:
34
+ * "11:40" rather than "11:40 AM". `time` by default.
35
+ */
36
+ gutterTime?: string | undefined;
37
+ /** A later message from the same author, close in time to the one before: no face and no head. */
38
+ continuation?: boolean | undefined;
39
+ /** `mention` for a message that names the reader or the whole room: a light warning wash and a bar on its edge. */
40
+ highlight?: ChatMessageHighlight | null | undefined;
41
+ /** An outbox row. See `ChatMessageFailure` for the line a failed one carries. */
42
+ pending?: ChatMessagePending | undefined;
43
+ /** Holds the row's fill and its toolbar in view while one of the toolbar's menus or pickers is open. */
44
+ active?: boolean | undefined;
45
+ /** The row a link, a mention or a search opened at: a wash of the accent that fades out. */
46
+ flash?: boolean | undefined;
47
+ /** The words are being edited in place: the toolbar steps aside. */
48
+ editing?: boolean | undefined;
49
+ /** The hover toolbar, a `MessageActions`. */
50
+ actions?: ReactNode;
51
+ /** Where the toolbar stands, `auto` by default. */
52
+ actionsPlacement?: ChatMessageActionsPlacement | undefined;
53
+ /** Under the words, one stack a step apart: previews, a `ReactionBar`, a `ThreadSummary`, a `ChatMessageFailure`. */
54
+ footer?: ReactNode;
55
+ /** The message's words. */
56
+ children: ReactNode;
57
+ }
58
+ /**
59
+ * One message in a transcript: the author's face in a gutter, the name, a
60
+ * quiet label and the time on one head line, the words, and a footer stack
61
+ * under them.
62
+ *
63
+ * A RUN OF MESSAGES IS ONE BLOCK. A `continuation` (the same author again,
64
+ * close in time) draws no face and no head: its gutter holds the time, a
65
+ * face wide, shown while the row is pointed at or focused, on the baseline
66
+ * of the words' first line.
67
+ *
68
+ * THE TOOLBAR RESTS ON THE ROW'S FIRST LINE, over the row above. Laid across
69
+ * the row's top edge, it covered the end of the row's own head, which on a
70
+ * narrow column is the time of the very message it acts on. A row with less
71
+ * room above it than the toolbar needs, at the top of its scroller, would
72
+ * have it cut by the scroller's edge, so that row draws it inside its own
73
+ * head. The room is MEASURED, when the pointer arrives or focus enters: the
74
+ * toolbar's height less the row's own top inset, against the distance to the
75
+ * scroller's top.
76
+ *
77
+ * A TOUCH SCREEN HAS NO HOVER. A tap on the row focuses it (it is focusable,
78
+ * out of the tab order), and a focused row shows its toolbar there, so
79
+ * replying, saving and the More menu are reached by touch as well.
80
+ *
81
+ * THE KEYS. ArrowUp and ArrowDown on a focused row move to the row before and
82
+ * after it in the same log. A host's own `onKeyDown` runs first, and a key it
83
+ * handles (`preventDefault`) is left alone.
84
+ *
85
+ * NO BOLD. The name is the medium weight and everything else on the head the
86
+ * regular one, in the meta step and the tertiary ink.
87
+ */
88
+ export declare const ChatMessage: import("react").ForwardRefExoticComponent<ChatMessageProps & import("react").RefAttributes<HTMLElement>>;
89
+ /** The words a failed row's line says. */
90
+ export interface ChatMessageFailureLabels {
91
+ /** Leads the line, before the reason. */
92
+ notSent: string;
93
+ retry: string;
94
+ discard: string;
95
+ }
96
+ export declare const CHAT_MESSAGE_FAILURE_LABELS: ChatMessageFailureLabels;
97
+ export interface ChatMessageFailureProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
98
+ /** Why it was not sent, in a sentence: "The engine did not answer." */
99
+ reason?: ReactNode;
100
+ /** Sends it again. */
101
+ onRetry: () => void;
102
+ /** Drops it from the outbox. */
103
+ onDiscard: () => void;
104
+ labels?: Partial<ChatMessageFailureLabels> | undefined;
105
+ }
106
+ /**
107
+ * The line under a message that was not sent (`pending="failed"`): what
108
+ * happened in the danger ink, then Retry and Discard. It is a status, so a
109
+ * screen reader hears it once when it appears.
110
+ */
111
+ export declare function ChatMessageFailure({ reason, onRetry, onDiscard, labels: overrides, className, ...rest }: ChatMessageFailureProps): import("react").JSX.Element;