@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
@@ -44,34 +44,16 @@
44
44
  cursor: pointer;
45
45
  }
46
46
 
47
- /* The kind modifiers keep the trigger, the overlay and the Avatar outlines in
48
- step. A person's picture is a circle. */
49
- .crewlet-image-upload--human .crewlet-image-upload__trigger,
50
- .crewlet-image-upload--human .crewlet-image-upload__overlay {
51
- border-radius: var(--radius-circle);
52
- }
53
-
54
47
  /* THE SAME CORNER THE PICTURE INSIDE TAKES, which is why it is a variable
55
- rather than a step: Avatar moves an agent badge's corner with its box, so a
56
- trigger pinned to one step is rounder or squarer than the badge under it at
57
- every size but one, and the badge's corners show through the overlay. */
58
- .crewlet-image-upload--agent .crewlet-image-upload__trigger,
59
- .crewlet-image-upload--agent .crewlet-image-upload__overlay {
48
+ rather than a step: Avatar moves a face's corner with its box, so a trigger
49
+ pinned to one step is rounder or squarer than the face under it at every
50
+ size but one, and the face's corners show through the overlay. Every face
51
+ is one shape, a person's and an agent's alike, so one rule serves both. */
52
+ .crewlet-image-upload__trigger,
53
+ .crewlet-image-upload__overlay {
60
54
  border-radius: var(--crewlet-image-upload-corner);
61
55
  }
62
56
 
63
- /* AND THE SAME SQUIRCLE, where the browser draws one, for the same reason:
64
- Avatar.css states why its squircle is a whole one at the circle token, and
65
- this is that rule for the two frames over the picture. The suite holds the
66
- two blocks to one declaration list. */
67
- @supports (corner-shape: squircle) {
68
- .crewlet-image-upload--agent .crewlet-image-upload__trigger,
69
- .crewlet-image-upload--agent .crewlet-image-upload__overlay {
70
- corner-shape: squircle;
71
- border-radius: var(--radius-circle);
72
- }
73
- }
74
-
75
57
  .crewlet-image-upload__trigger:disabled {
76
58
  cursor: default;
77
59
  }
@@ -170,19 +152,6 @@
170
152
  transition: opacity var(--motion-duration-fast) var(--motion-easing-default);
171
153
  }
172
154
 
173
- /*
174
- * ON A PERSON'S CIRCLE THE BADGE SITS ON THE EDGE, where the circle crosses
175
- * its own diagonal: (1 - 1/sqrt(2)) / 2 of the size, 0.1464, in from each
176
- * side, less half the 24px badge. The six pixels out above are the agent
177
- * tile's, whose squircle corner reaches that far; a circle turns away sooner,
178
- * and at the default 80px the badge's middle stood 8px off the picture, so
179
- * the badge floated beside it rather than being pinned to it.
180
- */
181
- .crewlet-image-upload--human .crewlet-image-upload__remove {
182
- top: calc(var(--crewlet-image-upload-size) * 0.1464 - 12px);
183
- right: calc(var(--crewlet-image-upload-size) * 0.1464 - 12px);
184
- }
185
-
186
155
  .crewlet-image-upload:hover .crewlet-image-upload__remove,
187
156
  .crewlet-image-upload__remove:focus-visible {
188
157
  opacity: 1;
@@ -1,13 +1,13 @@
1
- export { INLINE_EDITOR_LABELS, InlineEditor } from '../chunk-YL7AR6PR.js';
2
- import '../chunk-624X3RVA.js';
3
- import '../chunk-CYQBDZ6M.js';
1
+ export { INLINE_EDITOR_LABELS, InlineEditor } from '../chunk-O7KG4CXB.js';
2
+ import '../chunk-O55JQ7BE.js';
4
3
  import '../chunk-EJNJMHQG.js';
5
4
  import '../chunk-RE3FBGQQ.js';
6
- import '../chunk-ANTAQAR4.js';
5
+ import '../chunk-CYQBDZ6M.js';
6
+ import '../chunk-CMAZZY2I.js';
7
7
  import '../chunk-DGXZ635L.js';
8
- import '../chunk-OMV5W53A.js';
9
8
  import '../chunk-XSPCITPN.js';
10
- import '../chunk-H5XTJ7GJ.js';
11
- import '../chunk-NUZHC6MM.js';
9
+ import '../chunk-OMV5W53A.js';
10
+ import '../chunk-TUEM2XIW.js';
11
+ import '../chunk-4ITETIGZ.js';
12
12
  import '../chunk-UT6CW3C7.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -1,9 +1,9 @@
1
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea, foldLineBreaks } from '../chunk-FB3TCNQP.js';
1
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea, foldLineBreaks } from '../chunk-O7N6W52M.js';
2
2
  import '../chunk-PGCLHYVP.js';
3
+ import '../chunk-TUEM2XIW.js';
4
+ import '../chunk-4ITETIGZ.js';
5
+ import '../chunk-UAUP6XGK.js';
3
6
  import '../chunk-PQADV6P6.js';
4
7
  import '../chunk-2G355KDJ.js';
5
- import '../chunk-H5XTJ7GJ.js';
6
- import '../chunk-UAUP6XGK.js';
7
- import '../chunk-NUZHC6MM.js';
8
8
  import '../chunk-UT6CW3C7.js';
9
9
  import '../chunk-ODEQTPFM.js';
package/dist/Kbd/Kbd.d.ts CHANGED
@@ -12,6 +12,15 @@ export declare function keyGlyph(key: string, apple: boolean): {
12
12
  glyph: string;
13
13
  spoken: string;
14
14
  };
15
+ /**
16
+ * A shortcut in the spelling `aria-keyshortcuts` takes: `Control+K`, `H`.
17
+ *
18
+ * ONE SPELLING FOR EVERY CONTROL THAT NAMES ITS KEYS, beside the cap that
19
+ * draws them, so what a screen reader is told and what the tooltip shows are
20
+ * read off the same list. `Mod` is the platform's command key, as it is in
21
+ * the cap.
22
+ */
23
+ export declare function ariaKeyshortcuts(keys: readonly string[], apple: boolean): string;
15
24
  export interface KbdProps extends HTMLAttributes<HTMLElement> {
16
25
  /** Draws the keycap quieter, for a hint that sits inside a field. */
17
26
  subtle?: boolean | undefined;
@@ -1,3 +1,3 @@
1
1
  import './Kbd.css';
2
- export { Kbd, isApplePlatform, keyGlyph } from './Kbd.js';
2
+ export { Kbd, ariaKeyshortcuts, isApplePlatform, keyGlyph } from './Kbd.js';
3
3
  export type { KbdProps } from './Kbd.js';
package/dist/Kbd/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Kbd, isApplePlatform, keyGlyph } from '../chunk-ANTAQAR4.js';
1
+ export { Kbd, ariaKeyshortcuts, isApplePlatform, keyGlyph } from '../chunk-CMAZZY2I.js';
2
2
  import '../chunk-UT6CW3C7.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
1
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, anchorGone, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-OMV5W53A.js';
2
- export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-H5XTJ7GJ.js';
3
- import '../chunk-NUZHC6MM.js';
2
+ export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-TUEM2XIW.js';
3
+ import '../chunk-4ITETIGZ.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,64 @@
1
+ import { type AnchorHTMLAttributes, type ReactNode } from 'react';
2
+ /** The state a linked object is in, as its bar and its status dot draw it. */
3
+ export type LinkCardTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
4
+ export interface LinkCardSource {
5
+ /** The app the object belongs to: "Worklet", "Doclet", "Artifacts", "GitHub". */
6
+ name: string;
7
+ /** The app's small mark (a 12px product mark or glyph). Decorative: the name says it. */
8
+ mark: ReactNode;
9
+ }
10
+ export interface LinkCardOwner {
11
+ /** A small face (a 16px `Avatar`). Decorative: the name says who. */
12
+ face: ReactNode;
13
+ name: string;
14
+ }
15
+ export interface LinkCardProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'title' | 'children' | 'target' | 'rel'> {
16
+ /**
17
+ * Where the preview leads. Only an address `safeHref` allows is followed
18
+ * (`http:`, `https:`, `mailto:` and the application's own `#/` routes);
19
+ * anything else, or none, draws the same preview with no link in it.
20
+ */
21
+ href?: string | undefined;
22
+ /**
23
+ * Leaves the application: opens a new tab, withholds the referrer and the
24
+ * opener, and says so to a screen reader. An in-app route opens in place.
25
+ */
26
+ external?: boolean | undefined;
27
+ /** Read after the title when `external`. */
28
+ newTabLabel?: string | undefined;
29
+ /** The full address, shown on hover over the preview. */
30
+ address?: string | undefined;
31
+ source: LinkCardSource;
32
+ /** The object's own code, before its title: "WRK-41", "#212". */
33
+ code?: string | undefined;
34
+ /** The object's title, two lines at most. */
35
+ title: string;
36
+ /** A quiet line of details under the title: "Due Friday · 3 subtasks". */
37
+ meta?: string | undefined;
38
+ /** The object's state in words: "In progress", "Merged". */
39
+ status?: string | undefined;
40
+ /** The state's tone, which colours the bar and the status dot. The words carry the meaning. */
41
+ statusTone?: LinkCardTone | undefined;
42
+ /** Who holds the object. */
43
+ owner?: LinkCardOwner | undefined;
44
+ }
45
+ /**
46
+ * What a link points at, unfurled under the message that carried it.
47
+ *
48
+ * AN UNFURL, NOT A CARD. No box and no fill: a slim bar on the left in the
49
+ * status's line colour (a quiet grey with none), then a line naming the
50
+ * source app with its mark, the title, a quiet line of details, and the
51
+ * status and owner as words, a dot and a small face. It reads as part of the
52
+ * message rather than a card laid on it, and the same unfurl serves a room's
53
+ * list of everything shared in it.
54
+ *
55
+ * NAMED BY ITS TITLE. The whole preview is one link, so a reader moving
56
+ * through the links of a room hears "WRK-41 Fix the login redirect" and then
57
+ * where it is from and what state it is in as its description, rather than
58
+ * every line run together as one name.
59
+ *
60
+ * AN ADDRESS IS FOLLOWED ONLY WHEN IT IS SAFE. The href passes `safeHref`, so
61
+ * a `javascript:` or a bare relative address in a message never becomes a
62
+ * link; the preview is still drawn, as words.
63
+ */
64
+ export declare function LinkCard({ href, external, newTabLabel, address, source, code, title, meta, status, statusTone, owner, className, ...rest }: LinkCardProps): import("react").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import '../ChatMessage/ChatScale.css';
2
+ import '../VisuallyHidden/VisuallyHidden.css';
3
+ import './LinkCard.css';
4
+ export { LinkCard } from './LinkCard.js';
5
+ export type { LinkCardOwner, LinkCardProps, LinkCardSource, LinkCardTone } from './LinkCard.js';
@@ -0,0 +1,5 @@
1
+ export { LinkCard } from '../chunk-O3MYBNRO.js';
2
+ import '../chunk-KOJPDCGQ.js';
3
+ import '../chunk-KBZO4B33.js';
4
+ import '../chunk-UT6CW3C7.js';
5
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,155 @@
1
+ /*
2
+ * LinkCard: what a link points at, unfurled under its message.
3
+ *
4
+ * AN UNFURL, NOT A CARD. No box and no fill: a slim bar on the left in the
5
+ * status's line colour (the medium edge with none), and the lines beside it
6
+ * in the dashboard's own type (the title in the primary ink, the small meta
7
+ * under it), so a preview reads as part of its message. One width for every
8
+ * preview (ChatScale.css), so a stack of them shares both edges.
9
+ */
10
+ .crewlet-link-card {
11
+ --crewlet-link-card-bar: 3px;
12
+ --crewlet-link-card-tone: var(--color-edge-medium);
13
+ --crewlet-link-card-dot: var(--color-text-tertiary);
14
+ position: relative;
15
+ display: flex;
16
+ flex-direction: column;
17
+ align-items: flex-start;
18
+ gap: 2px;
19
+ width: min(100%, var(--crewlet-chat-card));
20
+ box-sizing: border-box;
21
+ padding: 2px 0 2px calc(var(--crewlet-link-card-bar) + var(--spacing-3));
22
+ border-radius: var(--radius-xs);
23
+ color: var(--color-text-secondary);
24
+ font-size: var(--font-size-xs);
25
+ line-height: var(--font-line-height-snug);
26
+ text-decoration: none;
27
+ }
28
+
29
+ .crewlet-link-card::before {
30
+ content: '';
31
+ position: absolute;
32
+ inset-block: 0;
33
+ left: 0;
34
+ width: var(--crewlet-link-card-bar);
35
+ border-radius: var(--radius-pill);
36
+ background: var(--crewlet-link-card-tone);
37
+ }
38
+
39
+ /* The bar takes the tone's line colour; the status dot, small enough to
40
+ carry it, the tone's full colour, so the status reads in both modes. */
41
+ .crewlet-link-card--info {
42
+ --crewlet-link-card-tone: var(--color-feedback-info-line);
43
+ --crewlet-link-card-dot: var(--color-feedback-info);
44
+ }
45
+
46
+ .crewlet-link-card--success {
47
+ --crewlet-link-card-tone: var(--color-feedback-success-line);
48
+ --crewlet-link-card-dot: var(--color-feedback-success);
49
+ }
50
+
51
+ .crewlet-link-card--warning {
52
+ --crewlet-link-card-tone: var(--color-feedback-warning-line);
53
+ --crewlet-link-card-dot: var(--color-feedback-warning);
54
+ }
55
+
56
+ .crewlet-link-card--danger {
57
+ --crewlet-link-card-tone: var(--color-feedback-danger-line);
58
+ --crewlet-link-card-dot: var(--color-feedback-danger);
59
+ }
60
+
61
+ /* No box to ring over: the ring stands off the preview's words. */
62
+ .crewlet-link-card:focus-visible {
63
+ outline: 2px solid var(--color-focus);
64
+ outline-offset: 2px;
65
+ }
66
+
67
+ /* The app it comes from: its mark and its name, small and quiet. */
68
+ .crewlet-link-card__source {
69
+ display: inline-flex;
70
+ align-items: center;
71
+ gap: var(--spacing-1);
72
+ }
73
+
74
+ .crewlet-link-card__mark,
75
+ .crewlet-link-card__face {
76
+ display: inline-flex;
77
+ flex: none;
78
+ }
79
+
80
+ /* The title in the primary ink at the regular weight, two lines at most;
81
+ under the pointer it takes the accent ink and an underline. */
82
+ .crewlet-link-card__title {
83
+ display: -webkit-box;
84
+ max-width: 100%;
85
+ overflow: hidden;
86
+ -webkit-box-orient: vertical;
87
+ -webkit-line-clamp: 2;
88
+ color: var(--color-text-primary);
89
+ font-size: var(--font-size-compact);
90
+ font-weight: var(--font-weight-regular);
91
+ overflow-wrap: anywhere;
92
+ }
93
+
94
+ /* THE TITLE ALONE IS UNDERLINED. The document's base underlines every link
95
+ under the pointer, and an underline on the link runs through all of its
96
+ lines (the source, the details, the owner), which no line inside can
97
+ take off again. */
98
+ a.crewlet-link-card:hover {
99
+ text-decoration: none;
100
+ }
101
+
102
+ a.crewlet-link-card:hover .crewlet-link-card__title {
103
+ color: var(--color-brand-accent-ink);
104
+ text-decoration: underline;
105
+ text-underline-offset: 2px;
106
+ }
107
+
108
+ .crewlet-link-card__code {
109
+ color: var(--color-text-secondary);
110
+ }
111
+
112
+ .crewlet-link-card__meta {
113
+ max-width: 100%;
114
+ overflow: hidden;
115
+ text-overflow: ellipsis;
116
+ white-space: nowrap;
117
+ }
118
+
119
+ /* Status and owner as words on one line: a dot in the status's colour, and
120
+ a small face with the owner's name. */
121
+ .crewlet-link-card__fields {
122
+ display: flex;
123
+ flex-wrap: wrap;
124
+ align-items: center;
125
+ gap: var(--spacing-1) var(--spacing-3);
126
+ margin-top: 2px;
127
+ }
128
+
129
+ .crewlet-link-card__status,
130
+ .crewlet-link-card__owner {
131
+ display: inline-flex;
132
+ align-items: center;
133
+ gap: var(--spacing-1);
134
+ white-space: nowrap;
135
+ }
136
+
137
+ .crewlet-link-card__dot {
138
+ width: 6px;
139
+ height: 6px;
140
+ flex: none;
141
+ border-radius: var(--radius-circle);
142
+ background: var(--crewlet-link-card-dot);
143
+ }
144
+
145
+ /* FORCED COLORS drops the bar's and the dot's backgrounds; a border is the
146
+ one edge the mode keeps. */
147
+ @media (forced-colors: active) {
148
+ .crewlet-link-card::before {
149
+ border-left: var(--crewlet-link-card-bar) solid CanvasText;
150
+ }
151
+
152
+ .crewlet-link-card__dot {
153
+ border: 1px solid CanvasText;
154
+ }
155
+ }
@@ -1,13 +1,14 @@
1
- export { LinkInterstitial, openExternal } from '../chunk-JD7P2GJP.js';
2
- import '../chunk-C667GCU7.js';
1
+ export { LinkInterstitial, openExternal } from '../chunk-MYAARF4Z.js';
2
+ import '../chunk-ZXXZESCD.js';
3
3
  import '../chunk-PLL7ZJHY.js';
4
4
  import '../chunk-BPCY7ZID.js';
5
- import '../chunk-PQADV6P6.js';
5
+ import '../chunk-L72URIHR.js';
6
6
  import '../chunk-DGXZ635L.js';
7
- import '../chunk-OMV5W53A.js';
8
7
  import '../chunk-XSPCITPN.js';
9
- import '../chunk-H5XTJ7GJ.js';
8
+ import '../chunk-OMV5W53A.js';
9
+ import '../chunk-TUEM2XIW.js';
10
+ import '../chunk-4ITETIGZ.js';
10
11
  import '../chunk-UAUP6XGK.js';
11
- import '../chunk-NUZHC6MM.js';
12
+ import '../chunk-PQADV6P6.js';
12
13
  import '../chunk-UT6CW3C7.js';
13
14
  import '../chunk-ODEQTPFM.js';
@@ -1,15 +1,16 @@
1
- export { ListInput, withDraft } from '../chunk-45M73G5A.js';
2
- import '../chunk-MPVMB2DV.js';
3
- import '../chunk-ANTAQAR4.js';
4
- import '../chunk-FB3TCNQP.js';
1
+ export { ListInput, withDraft } from '../chunk-GLKQHN7G.js';
2
+ import '../chunk-BVML4UVB.js';
3
+ import '../chunk-YJQXESOJ.js';
4
+ import '../chunk-O7N6W52M.js';
5
5
  import '../chunk-PGCLHYVP.js';
6
- import '../chunk-PQADV6P6.js';
7
- import '../chunk-2G355KDJ.js';
6
+ import '../chunk-CMAZZY2I.js';
8
7
  import '../chunk-DGXZ635L.js';
9
- import '../chunk-OMV5W53A.js';
10
8
  import '../chunk-XSPCITPN.js';
11
- import '../chunk-H5XTJ7GJ.js';
9
+ import '../chunk-OMV5W53A.js';
10
+ import '../chunk-TUEM2XIW.js';
11
+ import '../chunk-4ITETIGZ.js';
12
12
  import '../chunk-UAUP6XGK.js';
13
- import '../chunk-NUZHC6MM.js';
13
+ import '../chunk-PQADV6P6.js';
14
+ import '../chunk-2G355KDJ.js';
14
15
  import '../chunk-UT6CW3C7.js';
15
16
  import '../chunk-ODEQTPFM.js';
@@ -1,3 +1,3 @@
1
- export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from '../chunk-7KHM2FZH.js';
2
- import '../chunk-H5XTJ7GJ.js';
3
- import '../chunk-NUZHC6MM.js';
1
+ export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from '../chunk-YGRTX67J.js';
2
+ import '../chunk-TUEM2XIW.js';
3
+ import '../chunk-4ITETIGZ.js';
@@ -1,8 +1,8 @@
1
- export { LogoSlot, LogoSlotGroup } from '../chunk-OWHETZIU.js';
1
+ export { LogoSlot, LogoSlotGroup } from '../chunk-6SFDL4QH.js';
2
2
  import '../chunk-KQWJWTED.js';
3
- import '../chunk-7PJFUQMY.js';
3
+ import '../chunk-2ZSCHQOA.js';
4
+ import '../chunk-LBGKLYBY.js';
4
5
  import '../chunk-7W3LYIOC.js';
5
- import '../chunk-VERJCAJ4.js';
6
6
  import '../chunk-CYQBDZ6M.js';
7
7
  import '../chunk-DGXZ635L.js';
8
8
  import '../chunk-XSPCITPN.js';
@@ -16,6 +16,14 @@
16
16
  /** The formats the bar offers, in the order it draws them. */
17
17
  export declare const MARKDOWN_FORMATS: readonly ["heading2", "heading3", "bold", "italic", "code", "bulletList", "numberedList", "checklist", "table"];
18
18
  export type MarkdownFormat = (typeof MARKDOWN_FORMATS)[number];
19
+ /**
20
+ * Formats `formatMarkdown` applies that the editor's own bar does not draw,
21
+ * for a bar of another surface's own (a conversation's composer): a
22
+ * strikethrough, a quote and a link. Kept apart from `MarkdownFormat` so a
23
+ * map from every format the bar draws to its label or glyph stays complete.
24
+ */
25
+ export declare const MARKDOWN_TEXT_FORMATS: readonly ["strikethrough", "quote", "link"];
26
+ export type MarkdownTextFormat = (typeof MARKDOWN_TEXT_FORMATS)[number];
19
27
  /** A selection in the source, as the textarea reports it. `start === end` is a caret. */
20
28
  export interface MarkdownSelection {
21
29
  start: number;
@@ -29,6 +37,6 @@ export interface MarkdownEdit {
29
37
  /** Replaces the selection with `text` and leaves the caret after it. */
30
38
  export declare function insertMarkdown(value: string, { start, end }: MarkdownSelection, text: string): MarkdownEdit;
31
39
  /** The format applied to the selection, or taken off it when it is already there. */
32
- export declare function formatMarkdown(value: string, selection: MarkdownSelection, format: MarkdownFormat): MarkdownEdit;
40
+ export declare function formatMarkdown(value: string, selection: MarkdownSelection, format: MarkdownFormat | MarkdownTextFormat): MarkdownEdit;
33
41
  /** How many words a body holds, counted the way a writer would. */
34
42
  export declare function markdownWords(value: string): number;
@@ -1,5 +1,5 @@
1
1
  import './MarkdownEditor.css';
2
2
  export { MarkdownEditor } from './MarkdownEditor.js';
3
3
  export type { MarkdownEditorApi, MarkdownEditorLabelOverrides, MarkdownEditorLabels, MarkdownEditorMode, MarkdownEditorProps, } from './MarkdownEditor.js';
4
- export { MARKDOWN_FORMATS, formatMarkdown, insertMarkdown, markdownWords } from './format.js';
5
- export type { MarkdownEdit, MarkdownFormat, MarkdownSelection } from './format.js';
4
+ export { MARKDOWN_FORMATS, MARKDOWN_TEXT_FORMATS, formatMarkdown, insertMarkdown, markdownWords } from './format.js';
5
+ export type { MarkdownEdit, MarkdownFormat, MarkdownSelection, MarkdownTextFormat } from './format.js';
@@ -1,18 +1,19 @@
1
- export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-7FF6CZW5.js';
2
- import '../chunk-NR4CPM4T.js';
1
+ export { MARKDOWN_FORMATS, MARKDOWN_TEXT_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-TQKQRS2J.js';
2
+ import '../chunk-NXFTCPF6.js';
3
3
  import '../chunk-36WK24AI.js';
4
- import '../chunk-6R334YT3.js';
5
- import '../chunk-2IIHMJMZ.js';
4
+ import '../chunk-AZYE7NR4.js';
5
+ import '../chunk-MVKUE4FI.js';
6
6
  import '../chunk-EGMQURBR.js';
7
7
  import '../chunk-CYQBDZ6M.js';
8
- import '../chunk-MLDTLZAO.js';
9
- import '../chunk-OQG4P5KU.js';
8
+ import '../chunk-TGGYSQRD.js';
9
+ import '../chunk-L72URIHR.js';
10
10
  import '../chunk-DGXZ635L.js';
11
+ import '../chunk-XSPCITPN.js';
11
12
  import '../chunk-OMV5W53A.js';
12
13
  import '../chunk-2YTOOH3A.js';
13
- import '../chunk-XSPCITPN.js';
14
- import '../chunk-H5XTJ7GJ.js';
14
+ import '../chunk-TUEM2XIW.js';
15
+ import '../chunk-4ITETIGZ.js';
15
16
  import '../chunk-UAUP6XGK.js';
16
- import '../chunk-NUZHC6MM.js';
17
+ import '../chunk-D2GT3CR4.js';
17
18
  import '../chunk-UT6CW3C7.js';
18
19
  import '../chunk-ODEQTPFM.js';
@@ -1 +1 @@
1
- export { useMediaMatch } from './useMediaMatch.js';
1
+ export { REDUCED_MOTION_QUERY, prefersReducedMotion, useMediaMatch } from './useMediaMatch.js';
@@ -1 +1 @@
1
- export { useMediaMatch } from '../chunk-RTPQDNW3.js';
1
+ export { REDUCED_MOTION_QUERY, prefersReducedMotion, useMediaMatch } from '../chunk-YJQXESOJ.js';
@@ -17,3 +17,17 @@
17
17
  * the wide layout is the one that needs no JavaScript to be usable.
18
18
  */
19
19
  export declare function useMediaMatch(query: string): boolean;
20
+ /**
21
+ * The reader's request for less motion: the one spelling of the query every
22
+ * component asks, through `useMediaMatch` during render and through
23
+ * `prefersReducedMotion` outside it. A copy of the string is a copy that can
24
+ * drift, and a query spelt one character off never matches.
25
+ */
26
+ export declare const REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
27
+ /**
28
+ * Whether the reader has asked for less motion, read once, for code outside a
29
+ * render: a scroll, a timer's length. `view` is the window the element lives
30
+ * in (`ownerDocument.defaultView`), the page's own by default. False on the
31
+ * server and wherever `matchMedia` is missing, as `useMediaMatch` answers.
32
+ */
33
+ export declare function prefersReducedMotion(view?: Window | null): boolean;
@@ -0,0 +1,25 @@
1
+ import type { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Who a mention names. `other`: a person, an agent or a room, in the light
4
+ * blue of the info tone, apart from a link (the accent). `self`: the reader.
5
+ * `everyone`: the whole room ("@channel"), which names the reader too. Both
6
+ * of those take the warning tone the reader looks for.
7
+ */
8
+ export type MentionChipTone = 'other' | 'self' | 'everyone';
9
+ export interface MentionChipProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'type' | 'onClick'> {
10
+ /** The words as written in the message: "@Product Manager", "#engineering", "@channel". */
11
+ children: ReactNode;
12
+ /** Who it names, `other` by default. */
13
+ tone?: MentionChipTone | undefined;
14
+ /** Opens what it names (a profile, a room). Without it the chip is text, as "@channel" is. */
15
+ onPress?: (() => void) | undefined;
16
+ }
17
+ /**
18
+ * A person, an agent or a room named in a message's words, drawn as a chip
19
+ * in the line: a soft fill and the ink of its tone, at the words' own size
20
+ * and the regular weight. With `onPress` it is a button that opens what it
21
+ * names; without, it is text.
22
+ *
23
+ * A chip that wraps keeps its fill and its corners on every line it spans.
24
+ */
25
+ export declare function MentionChip({ children, tone, onPress, className, ...rest }: MentionChipProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './MentionChip.css';
2
+ export { MentionChip } from './MentionChip.js';
3
+ export type { MentionChipProps, MentionChipTone } from './MentionChip.js';
@@ -0,0 +1,2 @@
1
+ export { MentionChip } from '../chunk-PX5BOALQ.js';
2
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,42 @@
1
+ /*
2
+ * A mention in a message's words: a chip in the line, in the info tone's
3
+ * light blue, or the warning tone where it names the reader.
4
+ */
5
+
6
+ .crewlet-mention-chip {
7
+ display: inline;
8
+ padding: 0 2px;
9
+ border: 0;
10
+ border-radius: var(--radius-xs);
11
+ background: var(--color-feedback-info-soft);
12
+ color: var(--color-feedback-info-ink);
13
+ font: inherit;
14
+ font-weight: var(--font-weight-regular);
15
+ -webkit-box-decoration-break: clone;
16
+ box-decoration-break: clone;
17
+ }
18
+
19
+ .crewlet-mention-chip--self,
20
+ .crewlet-mention-chip--everyone {
21
+ background: var(--color-feedback-warning-soft);
22
+ color: var(--color-feedback-warning-ink);
23
+ }
24
+
25
+ button.crewlet-mention-chip {
26
+ cursor: pointer;
27
+ }
28
+
29
+ /* Under the pointer the fill takes the tone's next strength, its line step. */
30
+ button.crewlet-mention-chip:hover {
31
+ background: var(--color-feedback-info-line);
32
+ }
33
+
34
+ button.crewlet-mention-chip--self:hover,
35
+ button.crewlet-mention-chip--everyone:hover {
36
+ background: var(--color-feedback-warning-line);
37
+ }
38
+
39
+ button.crewlet-mention-chip:focus-visible {
40
+ outline: 2px solid var(--color-focus);
41
+ outline-offset: 1px;
42
+ }