@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
@@ -0,0 +1,161 @@
1
+ /*
2
+ * PersonRow: a person or an agent as one row of a list, as a button or as a
3
+ * listbox option. One design for every list of people.
4
+ */
5
+ .crewlet-person-row {
6
+ /* The row's corner. A list inside a rounded panel sets it to the panel's
7
+ corner less the panel's inset, so the two curves run parallel. */
8
+ --crewlet-person-row-radius: var(--radius-md);
9
+ display: flex;
10
+ align-items: center;
11
+ gap: var(--spacing-3);
12
+ width: 100%;
13
+ box-sizing: border-box;
14
+ margin: 0;
15
+ padding: var(--spacing-2);
16
+ border: 0;
17
+ border-radius: var(--crewlet-person-row-radius);
18
+ background: transparent;
19
+ color: var(--color-text-primary);
20
+ font: inherit;
21
+ font-size: var(--font-size-sm);
22
+ line-height: var(--font-line-height-normal);
23
+ text-align: left;
24
+ list-style: none;
25
+ cursor: pointer;
26
+ }
27
+
28
+ /* One line, for a list that opens under a caret: the name, its detail after
29
+ it, and the trailing words at the end. */
30
+ .crewlet-person-row--compact {
31
+ gap: var(--spacing-2);
32
+ min-height: var(--size-row-md);
33
+ padding-block: 0;
34
+ }
35
+
36
+ /*
37
+ * A ROW SHOWS THE HOVER OVERLAY OR THE CHOSEN TINT, NEVER BOTH: they are the
38
+ * same property on the same element, and the chosen row keeps its tint under
39
+ * the pointer.
40
+ */
41
+ .crewlet-person-row:hover,
42
+ .crewlet-person-row.is-highlighted {
43
+ background: var(--color-surface-hover);
44
+ }
45
+
46
+ .crewlet-person-row.is-selected,
47
+ .crewlet-person-row.is-selected:hover {
48
+ background: var(--color-brand-accent-soft);
49
+ }
50
+
51
+ /* The row the arrows are on, in a list a field owns: a bar on its start
52
+ edge, so it is found in a list whose chosen rows are tinted too. */
53
+ .crewlet-person-row.is-highlighted {
54
+ box-shadow: inset 2px 0 0 var(--color-brand-accent);
55
+ }
56
+
57
+ .crewlet-person-row:focus-visible {
58
+ outline: 2px solid var(--color-focus);
59
+ outline-offset: var(--size-focus-ring-inset-offset);
60
+ }
61
+
62
+ .crewlet-person-row:disabled,
63
+ .crewlet-person-row.is-disabled {
64
+ color: var(--color-text-tertiary);
65
+ cursor: not-allowed;
66
+ }
67
+
68
+ /*
69
+ * One column for every face or glyph, so every name starts on one edge: a
70
+ * room's 16px glyph started its name a step left of the faces beside it.
71
+ */
72
+ .crewlet-person-row__face {
73
+ display: inline-flex;
74
+ flex: none;
75
+ align-items: center;
76
+ justify-content: center;
77
+ min-width: var(--size-control-md);
78
+ color: var(--color-text-secondary);
79
+ }
80
+
81
+ .crewlet-person-row--compact .crewlet-person-row__face {
82
+ min-width: var(--size-control-sm);
83
+ }
84
+
85
+ .crewlet-person-row__text {
86
+ display: flex;
87
+ flex: 1;
88
+ flex-direction: column;
89
+ min-width: 0;
90
+ }
91
+
92
+ .crewlet-person-row__name {
93
+ display: inline-flex;
94
+ align-items: center;
95
+ gap: var(--spacing-2);
96
+ min-width: 0;
97
+ font-weight: var(--font-weight-regular);
98
+ white-space: nowrap;
99
+ }
100
+
101
+ .crewlet-person-row__detail {
102
+ min-width: 0;
103
+ overflow: hidden;
104
+ color: var(--color-text-secondary);
105
+ font-size: var(--font-size-xs);
106
+ text-overflow: ellipsis;
107
+ white-space: nowrap;
108
+ }
109
+
110
+ .crewlet-person-row--compact .crewlet-person-row__detail {
111
+ color: var(--color-text-tertiary);
112
+ }
113
+
114
+ .crewlet-person-row__meta {
115
+ flex: none;
116
+ margin-left: auto;
117
+ color: var(--color-text-tertiary);
118
+ font-size: var(--font-size-xs);
119
+ white-space: nowrap;
120
+ }
121
+
122
+ /* The toggle's mark: a plus that is quiet until the row is pointed at, and a
123
+ check on the accent once the row is chosen. */
124
+ .crewlet-person-row__mark {
125
+ display: inline-flex;
126
+ flex: none;
127
+ align-items: center;
128
+ justify-content: center;
129
+ width: var(--size-control-sm);
130
+ height: var(--size-control-sm);
131
+ margin-left: auto;
132
+ border-radius: var(--radius-md);
133
+ color: var(--color-text-secondary);
134
+ }
135
+
136
+ .crewlet-person-row__meta + .crewlet-person-row__mark {
137
+ margin-left: 0;
138
+ }
139
+
140
+ .crewlet-person-row:hover .crewlet-person-row__mark {
141
+ background: var(--color-surface-elevated);
142
+ color: var(--color-text-primary);
143
+ }
144
+
145
+ .crewlet-person-row.is-selected .crewlet-person-row__mark {
146
+ background: var(--color-brand-accent);
147
+ color: var(--color-text-on-accent);
148
+ }
149
+
150
+ /*
151
+ * FORCED COLORS repaints every background to Canvas, which took the chosen
152
+ * tint and the arrows' row with it. An outline is the one mark the mode
153
+ * keeps, in the system's own colour for exactly this.
154
+ */
155
+ @media (forced-colors: active) {
156
+ .crewlet-person-row.is-selected,
157
+ .crewlet-person-row.is-highlighted {
158
+ outline: 2px solid Highlight;
159
+ outline-offset: -2px;
160
+ }
161
+ }
@@ -1,5 +1,6 @@
1
- export { Popover } from '../chunk-KHJIEPZV.js';
1
+ export { Popover } from '../chunk-EC6EUIAD.js';
2
+ import '../chunk-L72URIHR.js';
2
3
  import '../chunk-OMV5W53A.js';
3
- import '../chunk-H5XTJ7GJ.js';
4
- import '../chunk-NUZHC6MM.js';
4
+ import '../chunk-TUEM2XIW.js';
5
+ import '../chunk-4ITETIGZ.js';
5
6
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,2 @@
1
+ export { afterMotion, releaseFocus, runningMotion, usePresence } from './usePresence.js';
2
+ export type { MotionOwnership, Presence, PresenceOptions } from './usePresence.js';
@@ -0,0 +1,4 @@
1
+ export { afterMotion, releaseFocus, runningMotion, usePresence } from '../chunk-PCAT2EFB.js';
2
+ import '../chunk-YJQXESOJ.js';
3
+ import '../chunk-HTS5RJ7S.js';
4
+ import '../chunk-4ITETIGZ.js';
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Keeps something drawn while it leaves, and says when it has arrived.
3
+ *
4
+ * A SURFACE THAT EASES SHUT HAS TO STAY DRAWN UNTIL IT IS SHUT. Unmounted the
5
+ * moment it is closed, a column that eases its width to nothing eases an
6
+ * empty box, and the reader sees its content vanish before the motion they
7
+ * asked for has begun. So the content is kept for as long as the motion runs,
8
+ * and INERT all the while: it is on its way out, and nothing in it may take
9
+ * focus, a press or a screen reader's attention.
10
+ *
11
+ * THE STYLESHEET SAYS HOW LONG. The wait is for the motion actually running
12
+ * (`getAnimations()`), whatever the stylesheet set it to, rather than for a
13
+ * duration written again here: a copy of the duration is a second number that
14
+ * drifts from the first. A motion replaced mid way (a transition retargeted,
15
+ * or reversed by a reopen) is waited out in its turn.
16
+ *
17
+ * AND IT WAITS ONLY FOR ITS OWN MOTION (`MotionOwnership`): the transitions on
18
+ * the element ITSELF, and the keyframes the surface names, wherever they run
19
+ * under it. Never a motion something else inside it happens to run (a meter
20
+ * filling, a badge arriving), which would hold a rail inert for as long as
21
+ * the meter took; never a paused one, which would hold it for ever; never an
22
+ * endless one (a pulse). And never longer than the motion's own remaining
23
+ * time and a margin, so a tab hidden mid motion, where a browser may not
24
+ * report the end until it is seen again, still settles.
25
+ *
26
+ * NOTHING WAITS WHERE NOTHING MOVES. Under `prefers-reduced-motion: reduce`,
27
+ * where no motion of its own runs, and where the Web Animations API is
28
+ * missing, the change goes straight through in the same commit, before any
29
+ * paint.
30
+ */
31
+ import { type RefObject } from 'react';
32
+ /** Which motions are a surface's own: the ones its presence waits for. */
33
+ export interface MotionOwnership {
34
+ /**
35
+ * The transitions on the element ITSELF, by property: `width`, for a
36
+ * column that eases its width. Left out, any transition on the element
37
+ * itself. A transition on an element inside it is never its own.
38
+ */
39
+ transitions?: readonly string[] | undefined;
40
+ /**
41
+ * The keyframes that are part of the motion, by name, wherever they run
42
+ * under the element: a rail's words fading in while its edge moves. Left
43
+ * out, none.
44
+ */
45
+ animations?: readonly string[] | undefined;
46
+ }
47
+ /**
48
+ * The motions of its own running on an element that will end (see
49
+ * `MotionOwnership`): playing, not paused, not endless, and its own.
50
+ */
51
+ export declare function runningMotion(element: Element, owned?: MotionOwnership): Animation[];
52
+ /**
53
+ * Calls `done` once the element's own motion has ended: AT ONCE,
54
+ * synchronously, where none runs, so a caller in a layout effect draws the
55
+ * outcome before the first paint, and never later than that motion's
56
+ * remaining time and a margin. Returns the cancel, which a caller runs when
57
+ * the wait no longer matters (the thing was opened again).
58
+ *
59
+ * A motion cancelled rather than finished (retargeted, reversed) counts as
60
+ * ended, and whatever of its own runs in its place is waited for in turn.
61
+ */
62
+ export declare function afterMotion(element: Element | null, done: () => void, owned?: MotionOwnership): () => void;
63
+ /**
64
+ * Takes focus out of something that is about to turn inert, as it starts to
65
+ * leave: to `target` where the host names one (the control that brings it
66
+ * back), and otherwise off the element that held it.
67
+ *
68
+ * FOCUS IS NEVER LEFT INSIDE WHAT IS LEAVING. An inert element cannot hold
69
+ * focus, and a browser that blurs it hands the reader to the top of the
70
+ * document, with no telling where Tab goes next; one that does not leaves a
71
+ * keyboard reader typing into a panel that takes nothing. Does nothing when
72
+ * focus is elsewhere: a reader who has moved on is not pulled back.
73
+ */
74
+ export declare function releaseFocus(container: Element | null, target?: HTMLElement | null): void;
75
+ export interface PresenceOptions extends MotionOwnership {
76
+ /**
77
+ * Makes this change instant: the host knows it is not one the reader made
78
+ * (a window resized across a breakpoint), so nothing waits for it.
79
+ */
80
+ instant?: boolean | undefined;
81
+ }
82
+ export interface Presence {
83
+ /** Whether to draw it: while it is shown, and while it leaves. */
84
+ present: boolean;
85
+ /** Drawn only to finish leaving: make it `inert`. */
86
+ leaving: boolean;
87
+ /**
88
+ * Shown again (never on the first draw) and its motion still running: the
89
+ * window a stylesheet scopes an entrance to, so the first paint of a page
90
+ * plays none.
91
+ */
92
+ entering: boolean;
93
+ /**
94
+ * Shown again BEFORE IT HAD LEFT: entering, from wherever its exit had
95
+ * reached rather than from nothing, so a stylesheet turns the exit back
96
+ * instead of playing an entrance over it.
97
+ */
98
+ returning: boolean;
99
+ }
100
+ /**
101
+ * Whether to draw something that is `shown`, and whether it is on its way in
102
+ * or out, waiting on the motion running on `motion`'s element.
103
+ *
104
+ * The element to wait on is the one the stylesheet moves: a column easing its
105
+ * width, or a rail. It can be the same element the content stands in or an
106
+ * ancestor of it; it is never the content itself, which is gone once it has
107
+ * left.
108
+ */
109
+ export declare function usePresence(shown: boolean, motion: RefObject<Element | null>, { transitions, animations, instant }?: PresenceOptions): Presence;
@@ -1,9 +1,9 @@
1
- export { PresenceStack } from '../chunk-6LN64KGG.js';
1
+ export { PresenceStack } from '../chunk-F7HZYTZT.js';
2
2
  import '../chunk-CENOOTAV.js';
3
3
  import '../chunk-EFX2YC5T.js';
4
4
  import '../chunk-Z7JYG5TF.js';
5
5
  import '../chunk-AYKXMIOR.js';
6
- import '../chunk-BT3GB7HC.js';
7
- import '../chunk-KTIQSSME.js';
6
+ import '../chunk-IRONPJB4.js';
7
+ import '../chunk-XZY6S3UC.js';
8
8
  import '../chunk-UT6CW3C7.js';
9
9
  import '../chunk-ODEQTPFM.js';
@@ -27,12 +27,10 @@
27
27
  font: inherit;
28
28
  }
29
29
 
30
- .crewlet-presence-stack > .crewlet-presence-stack__member--human {
31
- border-radius: var(--radius-circle);
32
- }
33
-
34
- .crewlet-presence-stack > .crewlet-presence-stack__member--agent {
35
- border-radius: var(--radius-sm);
30
+ /* The face's own corner, which the component sets from Avatar's ladder: one
31
+ shape for people and agents. */
32
+ .crewlet-presence-stack > .crewlet-presence-stack__member {
33
+ border-radius: var(--crewlet-presence-stack-corner);
36
34
  }
37
35
 
38
36
  button.crewlet-presence-stack__member {
@@ -1,12 +1,12 @@
1
- export { PresenterView, formatStopwatch } from '../chunk-PRN5IP2R.js';
1
+ export { PresenterView, formatStopwatch } from '../chunk-LMEMH6DO.js';
2
2
  import '../chunk-5AJR6X75.js';
3
- import '../chunk-RMEBFYL7.js';
3
+ import '../chunk-O6EV6GKI.js';
4
4
  import '../chunk-RK4XPHVG.js';
5
5
  import '../chunk-DGXZ635L.js';
6
- import '../chunk-OMV5W53A.js';
7
6
  import '../chunk-XSPCITPN.js';
8
- import '../chunk-H5XTJ7GJ.js';
7
+ import '../chunk-OMV5W53A.js';
8
+ import '../chunk-TUEM2XIW.js';
9
+ import '../chunk-4ITETIGZ.js';
9
10
  import '../chunk-UAUP6XGK.js';
10
- import '../chunk-NUZHC6MM.js';
11
11
  import '../chunk-UT6CW3C7.js';
12
12
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { PricingCard } from '../chunk-D7G2QGET.js';
2
- import '../chunk-VERJCAJ4.js';
1
+ export { PricingCard } from '../chunk-X3US25XJ.js';
2
+ import '../chunk-LBGKLYBY.js';
3
3
  import '../chunk-CYQBDZ6M.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { PRINCIPAL_KINDS, PrincipalAvatar } from '../chunk-N2BF272H.js';
2
- import '../chunk-BT3GB7HC.js';
3
- import '../chunk-KTIQSSME.js';
1
+ export { PRINCIPAL_KINDS, PrincipalAvatar } from '../chunk-HF5L56YQ.js';
2
+ import '../chunk-IRONPJB4.js';
3
+ import '../chunk-XZY6S3UC.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,16 +1,16 @@
1
- export { PrincipalPicker } from '../chunk-CFTBESST.js';
2
- import '../chunk-6EWNMSS4.js';
3
- import '../chunk-7KHM2FZH.js';
4
- import '../chunk-N2BF272H.js';
5
- import '../chunk-BT3GB7HC.js';
6
- import '../chunk-KTIQSSME.js';
7
- import '../chunk-FB3TCNQP.js';
1
+ export { PrincipalPicker } from '../chunk-Q6TCUSQA.js';
2
+ import '../chunk-NNZRTR5M.js';
3
+ import '../chunk-YGRTX67J.js';
4
+ import '../chunk-HF5L56YQ.js';
5
+ import '../chunk-IRONPJB4.js';
6
+ import '../chunk-XZY6S3UC.js';
7
+ import '../chunk-O7N6W52M.js';
8
8
  import '../chunk-PGCLHYVP.js';
9
- import '../chunk-PQADV6P6.js';
10
- import '../chunk-2G355KDJ.js';
11
9
  import '../chunk-2YTOOH3A.js';
12
- import '../chunk-H5XTJ7GJ.js';
10
+ import '../chunk-TUEM2XIW.js';
11
+ import '../chunk-4ITETIGZ.js';
13
12
  import '../chunk-UAUP6XGK.js';
14
- import '../chunk-NUZHC6MM.js';
13
+ import '../chunk-PQADV6P6.js';
14
+ import '../chunk-2G355KDJ.js';
15
15
  import '../chunk-UT6CW3C7.js';
16
16
  import '../chunk-ODEQTPFM.js';
@@ -1,24 +1,24 @@
1
- export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-BLGBD2D2.js';
1
+ export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-P7HMY3BQ.js';
2
2
  import '../chunk-ZWCK4N4L.js';
3
- import '../chunk-4XF7ENQA.js';
3
+ import '../chunk-AOJ6ZA77.js';
4
4
  import '../chunk-LR4IWUWQ.js';
5
- import '../chunk-RTMNULTL.js';
6
- import '../chunk-VERJCAJ4.js';
7
- import '../chunk-CYQBDZ6M.js';
8
- import '../chunk-4AUTALJA.js';
5
+ import '../chunk-FLW5U7YS.js';
6
+ import '../chunk-LBGKLYBY.js';
7
+ import '../chunk-U2IQNDDR.js';
9
8
  import '../chunk-AV2DXAEL.js';
10
- import '../chunk-LMQG3VPG.js';
11
- import '../chunk-222VILSP.js';
12
- import '../chunk-FB3TCNQP.js';
9
+ import '../chunk-YQ7Q52XU.js';
10
+ import '../chunk-CYQBDZ6M.js';
11
+ import '../chunk-LVJGN5II.js';
12
+ import '../chunk-O7N6W52M.js';
13
13
  import '../chunk-PGCLHYVP.js';
14
- import '../chunk-IVTQWOXV.js';
15
- import '../chunk-MLDTLZAO.js';
16
- import '../chunk-PQADV6P6.js';
17
- import '../chunk-2G355KDJ.js';
18
14
  import '../chunk-DGXZ635L.js';
19
15
  import '../chunk-XSPCITPN.js';
20
- import '../chunk-H5XTJ7GJ.js';
16
+ import '../chunk-TUEM2XIW.js';
17
+ import '../chunk-4ITETIGZ.js';
21
18
  import '../chunk-UAUP6XGK.js';
22
- import '../chunk-NUZHC6MM.js';
19
+ import '../chunk-ULYHDP7U.js';
20
+ import '../chunk-D2GT3CR4.js';
21
+ import '../chunk-PQADV6P6.js';
22
+ import '../chunk-2G355KDJ.js';
23
23
  import '../chunk-UT6CW3C7.js';
24
24
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,84 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type EmojiPickerProps } from '../EmojiPicker/index.js';
3
+ /** One emoji's reactions on a message. */
4
+ export interface ReactionSummary {
5
+ emoji: string;
6
+ /** How many reacted with it, the reader included. */
7
+ count: number;
8
+ /** Whether the reader is one of them. */
9
+ mine: boolean;
10
+ /**
11
+ * Who else reacted, by name, in the order they did; the reader is left out
12
+ * (`mine` says whether they reacted). Optional: without it the pill says
13
+ * how many reacted rather than who.
14
+ */
15
+ people?: readonly string[] | undefined;
16
+ /** The emoji's name, for its pill's accessible name. Read from the picker's names by default. */
17
+ name?: string | undefined;
18
+ }
19
+ export interface ReactionBarLabels {
20
+ /** Names the row of pills. */
21
+ group: string;
22
+ /** The reader, who always leads the list of who reacted. */
23
+ you: string;
24
+ /** Those not named: "1 other", "2 others". */
25
+ others: (count: number) => string;
26
+ /** Everyone, where no names are known: "1 member", "3 members". */
27
+ members: (count: number) => string;
28
+ /** A pill's hint: "You and Product Manager reacted with 👀". */
29
+ reacted: (who: string, emoji: string) => string;
30
+ /** A pill's accessible name: "eyes: You and Product Manager reacted". */
31
+ pill: (name: string, who: string) => string;
32
+ }
33
+ export declare const REACTION_BAR_LABELS: ReactionBarLabels;
34
+ /**
35
+ * Who reacted, in words, with the reader first: "You, Product Manager and 1
36
+ * other". In the order the data held them the reader fell mid sentence
37
+ * ("Product Manager and You"). Without names it counts: "You and 2 others",
38
+ * "3 members".
39
+ */
40
+ export declare function reactionWho(reaction: ReactionSummary, labels?: ReactionBarLabels): string;
41
+ export interface ReactionBarProps {
42
+ reactions: readonly ReactionSummary[];
43
+ /** Adds the reader's reaction with that emoji, or takes it back. */
44
+ onToggle: (emoji: string) => void;
45
+ /** After the pills: an `AddReaction`. */
46
+ add?: ReactNode;
47
+ /**
48
+ * Why the reader cannot react here ("Join the room to react."): the pills
49
+ * still say who reacted, are marked unavailable, and add the reason to
50
+ * their hint rather than toggling.
51
+ */
52
+ disabledReason?: string | undefined;
53
+ labels?: Partial<ReactionBarLabels> | undefined;
54
+ className?: string | undefined;
55
+ }
56
+ /**
57
+ * The reactions under a message, one pill to an emoji with its count, then
58
+ * the control that adds one.
59
+ *
60
+ * AT REST A PILL IS A FILL, NOT A FRAME: the soft fill and no edge, so a row
61
+ * of reactions reads as a quiet strip. Under the pointer the pill drops its
62
+ * fill for the strong edge. The reader's own is the accent's soft fill inside
63
+ * an accent ring with its count at the medium weight, so it differs from the
64
+ * others by more than its hue. Each pill is a toggle (`aria-pressed`), and its
65
+ * hint says who reacted, the reader first.
66
+ */
67
+ export declare function ReactionBar({ reactions, onToggle, add, disabledReason, labels: overrides, className }: ReactionBarProps): import("react").JSX.Element | null;
68
+ export interface AddReactionProps extends Pick<EmojiPickerProps, 'onPick' | 'onOpenChange' | 'side' | 'groups'> {
69
+ /** The pill's name and hint, and the picker's: "Add a reaction" by default. */
70
+ label?: string | undefined;
71
+ /** Which edge of the pill the picker lines up with, `start` by default. */
72
+ align?: EmojiPickerProps['align'];
73
+ /**
74
+ * Why the reader cannot react here, as `ReactionBar` takes it: the pill is
75
+ * marked unavailable, does not open the picker, and adds the reason to its
76
+ * hint.
77
+ */
78
+ disabledReason?: string | undefined;
79
+ }
80
+ /**
81
+ * The pill after a message's reactions that opens the emoji picker. Inside a
82
+ * `ChatMessage` it is quiet until the row is pointed at, focused or tapped.
83
+ */
84
+ export declare function AddReaction({ label, align, disabledReason, ...picker }: AddReactionProps): import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import '../ChatMessage/ChatScale.css';
2
+ import './ReactionBar.css';
3
+ export { AddReaction, REACTION_BAR_LABELS, ReactionBar, reactionWho } from './ReactionBar.js';
4
+ export type { AddReactionProps, ReactionBarLabels, ReactionBarProps, ReactionSummary } from './ReactionBar.js';
@@ -0,0 +1,17 @@
1
+ export { AddReaction, REACTION_BAR_LABELS, ReactionBar, reactionWho } from '../chunk-4DEKONVJ.js';
2
+ import '../chunk-TDFLCUBE.js';
3
+ import '../chunk-SPNTUQBV.js';
4
+ import '../chunk-EC6EUIAD.js';
5
+ import '../chunk-7ZSEUO5Q.js';
6
+ import '../chunk-HTS5RJ7S.js';
7
+ import '../chunk-L72URIHR.js';
8
+ import '../chunk-O7N6W52M.js';
9
+ import '../chunk-PGCLHYVP.js';
10
+ import '../chunk-OMV5W53A.js';
11
+ import '../chunk-TUEM2XIW.js';
12
+ import '../chunk-4ITETIGZ.js';
13
+ import '../chunk-UAUP6XGK.js';
14
+ import '../chunk-PQADV6P6.js';
15
+ import '../chunk-2G355KDJ.js';
16
+ import '../chunk-UT6CW3C7.js';
17
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,93 @@
1
+ /*
2
+ * A message's reactions: one pill to an emoji, then the add pill. A pill at
3
+ * rest is a fill and no frame; the edge arrives under the pointer.
4
+ */
5
+
6
+ .crewlet-reaction-bar {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ align-items: center;
10
+ gap: var(--spacing-1);
11
+ }
12
+
13
+ .crewlet-reaction {
14
+ display: inline-flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ gap: var(--spacing-1);
18
+ min-width: 44px;
19
+ height: 24px;
20
+ box-sizing: border-box;
21
+ padding: 0 var(--spacing-2);
22
+ border: 1px solid transparent;
23
+ border-radius: var(--radius-pill);
24
+ background: var(--color-fill-soft);
25
+ color: var(--color-text-primary);
26
+ font: inherit;
27
+ font-size: var(--crewlet-chat-meta);
28
+ line-height: 1;
29
+ cursor: pointer;
30
+ transition:
31
+ border-color var(--motion-duration-fast) var(--motion-easing-default),
32
+ background var(--motion-duration-fast) var(--motion-easing-default);
33
+ }
34
+
35
+ /* The emoji is the pill's picture and the count its caption: at the count's
36
+ size the emoji read smaller than the number beside it. */
37
+ .crewlet-reaction__emoji {
38
+ font-size: var(--font-size-md);
39
+ }
40
+
41
+ .crewlet-reaction__count {
42
+ font-variant-numeric: tabular-nums;
43
+ font-weight: var(--font-weight-regular);
44
+ }
45
+
46
+ /* The pointed pill drops its fill and takes the strong edge. */
47
+ .crewlet-reaction:hover {
48
+ border-color: var(--color-edge-strong);
49
+ background: transparent;
50
+ }
51
+
52
+ /* Yours: the accent's soft fill, its ink and a heavier count, ringed in the
53
+ accent, so it differs from the others by more than its hue. */
54
+ .crewlet-reaction.is-mine {
55
+ border-color: var(--color-brand-accent);
56
+ background: var(--color-brand-accent-soft);
57
+ color: var(--color-brand-accent-ink);
58
+ }
59
+
60
+ .crewlet-reaction.is-mine:hover {
61
+ background: var(--color-brand-accent-soft-strong);
62
+ }
63
+
64
+ .crewlet-reaction.is-mine .crewlet-reaction__count {
65
+ font-weight: var(--font-weight-medium);
66
+ }
67
+
68
+ .crewlet-reaction[aria-disabled='true'] {
69
+ cursor: not-allowed;
70
+ }
71
+
72
+ .crewlet-reaction:focus-visible {
73
+ outline: 2px solid var(--color-focus);
74
+ outline-offset: var(--size-focus-ring-inset-offset);
75
+ }
76
+
77
+ /* The add pill: the glyph alone, in the quiet ink. */
78
+ .crewlet-reaction.crewlet-reaction--add {
79
+ min-width: 32px;
80
+ padding: 0;
81
+ color: var(--color-text-tertiary);
82
+ }
83
+
84
+ .crewlet-reaction.crewlet-reaction--add[aria-expanded='true'] {
85
+ background: var(--color-surface-pressed);
86
+ color: var(--color-text-primary);
87
+ }
88
+
89
+ @media (prefers-reduced-motion: reduce) {
90
+ .crewlet-reaction {
91
+ transition: none;
92
+ }
93
+ }
@@ -1,6 +1,7 @@
1
- export { RecordChip, RecordChipList } from '../chunk-BFM5G2Z6.js';
2
- import '../chunk-KHJIEPZV.js';
1
+ export { RecordChip, RecordChipList } from '../chunk-ZPTKAYJK.js';
2
+ import '../chunk-EC6EUIAD.js';
3
+ import '../chunk-L72URIHR.js';
3
4
  import '../chunk-OMV5W53A.js';
4
- import '../chunk-H5XTJ7GJ.js';
5
- import '../chunk-NUZHC6MM.js';
5
+ import '../chunk-TUEM2XIW.js';
6
+ import '../chunk-4ITETIGZ.js';
6
7
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
- export { REFUSAL_CARD_LABELS, RefusalCard } from '../chunk-UYF2B2TH.js';
2
- import '../chunk-RTMNULTL.js';
3
- import '../chunk-VERJCAJ4.js';
4
- import '../chunk-CYQBDZ6M.js';
5
- import '../chunk-4AUTALJA.js';
1
+ export { REFUSAL_CARD_LABELS, RefusalCard } from '../chunk-7ELFH3RJ.js';
2
+ import '../chunk-FLW5U7YS.js';
3
+ import '../chunk-LBGKLYBY.js';
4
+ import '../chunk-U2IQNDDR.js';
6
5
  import '../chunk-AV2DXAEL.js';
7
- import '../chunk-MLDTLZAO.js';
6
+ import '../chunk-CYQBDZ6M.js';
7
+ import '../chunk-D2GT3CR4.js';
8
8
  import '../chunk-PQADV6P6.js';
9
9
  import '../chunk-UT6CW3C7.js';
10
10
  import '../chunk-ODEQTPFM.js';