@crewlethq/ui 0.54.1 → 0.56.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 (320) hide show
  1. package/README.md +90 -7
  2. package/dist/Accordion/index.js +2 -2
  3. package/dist/AgentHandoffPanel/index.js +13 -8
  4. package/dist/AppShell/AppShell.d.ts +74 -1
  5. package/dist/AppShell/ResizeHandle.d.ts +74 -0
  6. package/dist/AppShell/index.d.ts +7 -2
  7. package/dist/AppShell/index.js +6 -4
  8. package/dist/AppShell/regions.d.ts +34 -0
  9. package/dist/AppShell/storedWidth.d.ts +47 -0
  10. package/dist/{AppShell-5LPXYUV3.css → AppShell-ZVCJRGXH.css} +172 -1
  11. package/dist/ArrangeFrame/index.js +2 -2
  12. package/dist/ArrangeList/index.js +4 -4
  13. package/dist/ArtifactBar/ArtifactBar.d.ts +13 -2
  14. package/dist/ArtifactBar/index.js +7 -6
  15. package/dist/{ArtifactBar-UMZCTARR.css → ArtifactBar-LEBMR35Y.css} +19 -1
  16. package/dist/ArtifactCard/index.js +5 -5
  17. package/dist/ArtifactNameCell/ArtifactNameCell.d.ts +7 -1
  18. package/dist/ArtifactNameCell/index.js +1 -1
  19. package/dist/ArtifactPanel/ArtifactPanel.d.ts +11 -17
  20. package/dist/ArtifactPanel/index.d.ts +3 -0
  21. package/dist/ArtifactPanel/index.js +8 -2
  22. package/dist/ArtifactPanel-TN4FFK2F.css +43 -0
  23. package/dist/AvatarPicker/index.js +8 -7
  24. package/dist/Breadcrumb/index.js +1 -1
  25. package/dist/Button/index.js +2 -1
  26. package/dist/{Button-UWKBTKYD.css → Button-VXJ7M5XF.css} +9 -32
  27. package/dist/Canvas/index.js +4 -3
  28. package/dist/CanvasBoard/index.js +6 -5
  29. package/dist/CanvasToolbar/index.js +5 -4
  30. package/dist/ChangeList/ChangeList.d.ts +114 -0
  31. package/dist/ChangeList/index.d.ts +3 -0
  32. package/dist/ChangeList/index.js +10 -0
  33. package/dist/ChangeList-CB2DLR5S.css +151 -0
  34. package/dist/ChatThread/ChatThread.d.ts +53 -0
  35. package/dist/ChatThread/index.d.ts +3 -0
  36. package/dist/ChatThread/index.js +6 -0
  37. package/dist/ChatThread-52KMDXHB.css +58 -0
  38. package/dist/Checkbox/index.js +3 -3
  39. package/dist/CodeBlock/index.js +5 -4
  40. package/dist/ColorField/index.js +3 -3
  41. package/dist/ColorSwatch/index.js +5 -4
  42. package/dist/Combobox/index.js +3 -3
  43. package/dist/CommandPalette/index.js +6 -5
  44. package/dist/CommentThread/index.js +8 -6
  45. package/dist/Composer/Composer.d.ts +39 -2
  46. package/dist/Composer/index.js +4 -3
  47. package/dist/Composer-JSGTOW3F.css +192 -0
  48. package/dist/ConfirmField/index.js +3 -3
  49. package/dist/ConflictNote/index.js +3 -2
  50. package/dist/ContrastHelp/index.js +2 -2
  51. package/dist/Copyable/index.js +4 -3
  52. package/dist/DataGrid/driving.d.ts +48 -0
  53. package/dist/DataGrid/index.d.ts +2 -0
  54. package/dist/DataGrid/index.js +6 -5
  55. package/dist/DataTable/index.js +8 -7
  56. package/dist/DataView/index.js +12 -11
  57. package/dist/DatasetSource/index.js +2 -2
  58. package/dist/DateTimePicker/index.js +4 -3
  59. package/dist/DiffList/DiffList.d.ts +12 -3
  60. package/dist/DiffList/index.d.ts +1 -1
  61. package/dist/DiffList/index.js +1 -1
  62. package/dist/{DiffList-3EX64AAE.css → DiffList-GE6YBRLJ.css} +53 -0
  63. package/dist/Disclosure/anatomy.d.ts +14 -1
  64. package/dist/Disclosure/index.js +2 -2
  65. package/dist/{Disclosure-P4FH3C35.css → Disclosure-FVMA4RW2.css} +36 -0
  66. package/dist/DocTabsEditor/index.js +6 -5
  67. package/dist/DownloadButton/DownloadButton.d.ts +21 -4
  68. package/dist/DownloadButton/index.d.ts +1 -1
  69. package/dist/DownloadButton/index.js +4 -3
  70. package/dist/EditingStatus/index.js +2 -2
  71. package/dist/{Editor-FEKMRFBK.js → Editor-X2J47LPD.js} +5 -4
  72. package/dist/EntityList/EntityList.d.ts +37 -0
  73. package/dist/EntityList/index.d.ts +3 -0
  74. package/dist/EntityList/index.js +10 -0
  75. package/dist/EntityList-XIICECVC.css +55 -0
  76. package/dist/ErrorBoundary/index.js +3 -2
  77. package/dist/FileDrop/index.js +3 -2
  78. package/dist/FollowBanner/index.js +3 -2
  79. package/dist/HuePicker/index.js +7 -6
  80. package/dist/IconButton/IconButton.d.ts +6 -1
  81. package/dist/IconButton/index.js +1 -1
  82. package/dist/{IconButton-K24JQHLF.css → IconButton-6WA7UEBJ.css} +44 -21
  83. package/dist/IconTile/IconTile.d.ts +8 -2
  84. package/dist/IconTile/index.js +1 -1
  85. package/dist/{IconTile-4GNWTLAW.css → IconTile-G52XZVR4.css} +3 -0
  86. package/dist/InlineEditor/index.js +5 -4
  87. package/dist/Input/index.js +2 -2
  88. package/dist/LinkInterstitial/index.js +5 -4
  89. package/dist/ListInput/index.js +5 -4
  90. package/dist/LogoSlot/index.js +4 -3
  91. package/dist/Markdown/grammar.d.ts +1 -1
  92. package/dist/MarkdownEditor/index.js +7 -6
  93. package/dist/Menu/index.js +4 -3
  94. package/dist/MergeConflicts/index.js +7 -6
  95. package/dist/MessageBubble/MessageBubble.d.ts +34 -0
  96. package/dist/MessageBubble/index.d.ts +3 -0
  97. package/dist/MessageBubble/index.js +2 -0
  98. package/dist/MessageBubble-GKO6X3QG.css +71 -0
  99. package/dist/Modal/index.js +4 -3
  100. package/dist/OpenInAppCard/OpenInAppCard.d.ts +44 -0
  101. package/dist/OpenInAppCard/index.d.ts +3 -0
  102. package/dist/OpenInAppCard/index.js +15 -0
  103. package/dist/OpenInAppCard-CKHCK7DO.css +24 -0
  104. package/dist/OrgTable/index.js +3 -3
  105. package/dist/PeekRail/PeekHost.d.ts +90 -0
  106. package/dist/PeekRail/PeekRail.d.ts +83 -0
  107. package/dist/PeekRail/activation.d.ts +30 -0
  108. package/dist/PeekRail/index.d.ts +8 -0
  109. package/dist/PeekRail/index.js +8 -0
  110. package/dist/PeekRail-4L5YUQMW.css +95 -0
  111. package/dist/PeopleRail/index.js +4 -3
  112. package/dist/PinTile/index.js +2 -2
  113. package/dist/PresenterView/index.js +5 -4
  114. package/dist/PrincipalPicker/index.js +4 -4
  115. package/dist/ProposalCard/ProposalCard.d.ts +134 -0
  116. package/dist/ProposalCard/index.d.ts +3 -0
  117. package/dist/ProposalCard/index.js +17 -0
  118. package/dist/ProposalCard-HLB3FNLA.css +19 -0
  119. package/dist/ReceiptStrip/ReceiptStrip.d.ts +66 -0
  120. package/dist/ReceiptStrip/index.d.ts +3 -0
  121. package/dist/ReceiptStrip/index.js +5 -0
  122. package/dist/ReceiptStrip-IIRKRTBG.css +93 -0
  123. package/dist/RefusalCard/RefusalCard.d.ts +34 -0
  124. package/dist/RefusalCard/index.d.ts +3 -0
  125. package/dist/RefusalCard/index.js +10 -0
  126. package/dist/RefusalCard-UM67F5HB.css +8 -0
  127. package/dist/RelativeTime/clock.d.ts +0 -6
  128. package/dist/RelativeTime/index.js +1 -1
  129. package/dist/ResizeHandle-2UNSZ4ZQ.css +59 -0
  130. package/dist/ResultTableCard/ResultTableCard.d.ts +64 -0
  131. package/dist/ResultTableCard/index.d.ts +3 -0
  132. package/dist/ResultTableCard/index.js +16 -0
  133. package/dist/ResultTableCard-HZRUDNTX.css +40 -0
  134. package/dist/ReviewList/index.js +2 -2
  135. package/dist/RichEditor/codec.d.ts +1 -1
  136. package/dist/RichEditor/index.js +3 -2
  137. package/dist/RichEditor/roundtrip.d.ts +1 -1
  138. package/dist/RunChip/RunChip.d.ts +53 -0
  139. package/dist/RunChip/index.d.ts +3 -0
  140. package/dist/RunChip/index.js +10 -0
  141. package/dist/RunChip-I2S4VZ3R.css +43 -0
  142. package/dist/SandboxedFrame/index.js +3 -2
  143. package/dist/SegmentedControl/index.js +6 -5
  144. package/dist/SelectionBar/index.js +3 -2
  145. package/dist/SendButton/SendButton.d.ts +38 -0
  146. package/dist/SendButton/index.d.ts +2 -0
  147. package/dist/SendButton/index.js +4 -0
  148. package/dist/SetupWizard/index.js +5 -4
  149. package/dist/ShareDialog/index.js +7 -6
  150. package/dist/SheetColumnEditor/index.js +10 -9
  151. package/dist/SheetGrid/index.js +6 -5
  152. package/dist/SidePanel/SidePanel.d.ts +137 -0
  153. package/dist/SidePanel/SidePanelBase.d.ts +59 -0
  154. package/dist/SidePanel/index.d.ts +5 -0
  155. package/dist/SidePanel/index.js +11 -0
  156. package/dist/SidePanel-ERBUIELD.css +235 -0
  157. package/dist/SlideCompare/index.js +3 -2
  158. package/dist/SlideFilmstrip/index.js +5 -4
  159. package/dist/SlideNav/index.js +2 -2
  160. package/dist/Spinner/Spinner.d.ts +35 -0
  161. package/dist/Spinner/index.d.ts +3 -0
  162. package/dist/Spinner/index.js +2 -0
  163. package/dist/Spinner-XZ2TVYE5.css +46 -0
  164. package/dist/StatusCard/StatusCard.d.ts +59 -0
  165. package/dist/StatusCard/index.d.ts +3 -0
  166. package/dist/StatusCard/index.js +9 -0
  167. package/dist/StatusCard-6RPEE6UU.css +62 -0
  168. package/dist/StepList-A4YVU4JI.css +119 -0
  169. package/dist/Stepper/StepList.d.ts +72 -0
  170. package/dist/Stepper/index.d.ts +3 -0
  171. package/dist/Stepper/index.js +2 -1
  172. package/dist/SuggestionRow/SuggestionRow.d.ts +45 -0
  173. package/dist/SuggestionRow/index.d.ts +3 -0
  174. package/dist/SuggestionRow/index.js +3 -0
  175. package/dist/SuggestionRow-OKBGNHSS.css +102 -0
  176. package/dist/Switcher/index.js +6 -5
  177. package/dist/Table/Table.d.ts +23 -2
  178. package/dist/Table/index.d.ts +1 -1
  179. package/dist/Table/index.js +1 -1
  180. package/dist/{Table-TGCS4C3F.css → Table-RUYMMWXT.css} +49 -0
  181. package/dist/TableCells/index.js +2 -2
  182. package/dist/Tabs/index.js +5 -4
  183. package/dist/TagsInput/index.js +3 -3
  184. package/dist/ThemeGallery/index.js +2 -2
  185. package/dist/ThemeSwitcher/index.js +7 -6
  186. package/dist/ThemeToggle/index.js +2 -2
  187. package/dist/TimeRangePicker/TimeRangePicker.d.ts +121 -0
  188. package/dist/TimeRangePicker/index.d.ts +2 -0
  189. package/dist/TimeRangePicker/index.js +23 -0
  190. package/dist/TimeWindowPicker/index.js +5 -4
  191. package/dist/Toaster/Toaster.d.ts +27 -3
  192. package/dist/Toaster/index.d.ts +2 -2
  193. package/dist/Toaster/index.js +1 -1
  194. package/dist/{Toaster-C6BQ7L6I.css → Toaster-MX7TBMC3.css} +32 -11
  195. package/dist/TreeCanvas/index.js +5 -4
  196. package/dist/TreeGrid/index.js +2 -2
  197. package/dist/VersionCompare/index.js +7 -6
  198. package/dist/VersionTimeline/index.js +4 -3
  199. package/dist/WidgetFrame/index.js +2 -2
  200. package/dist/{chunk-SS4XCUUJ.js → chunk-272Y3YMV.js} +3 -3
  201. package/dist/{chunk-LACA4JGC.js → chunk-2BQYODY3.js} +1 -1
  202. package/dist/{chunk-XS2FJVMT.js → chunk-2TTFDRR3.js} +2 -2
  203. package/dist/{chunk-4BJK7FE5.js → chunk-3EYSYEXP.js} +1 -1
  204. package/dist/chunk-3LI4TRUR.js +22 -0
  205. package/dist/{chunk-5WYPSVRX.js → chunk-3NQS6KYG.js} +1 -1
  206. package/dist/{chunk-V2N3BMOT.js → chunk-45KMH3E3.js} +11 -4
  207. package/dist/{chunk-2GIWL7IS.js → chunk-4CBGIRVU.js} +1 -1
  208. package/dist/{chunk-3QSKDZR5.js → chunk-4OINEWR4.js} +1 -1
  209. package/dist/{chunk-EZ43L6T7.js → chunk-56P72ZBE.js} +4 -4
  210. package/dist/{chunk-J24Q4HTD.js → chunk-5NT6OIPP.js} +13 -3
  211. package/dist/{chunk-FNPZ3LLQ.js → chunk-5OMV75GE.js} +3 -3
  212. package/dist/{chunk-6RMZH7P7.js → chunk-672GLRBU.js} +2 -2
  213. package/dist/{chunk-GPZXBJFU.js → chunk-67F2AM4R.js} +2 -2
  214. package/dist/{chunk-NQCY44B3.js → chunk-67MW366X.js} +2 -2
  215. package/dist/{chunk-SSHDQBHR.js → chunk-6KLK7E76.js} +2 -2
  216. package/dist/{chunk-ZFM5L7M4.js → chunk-6NJW5KSX.js} +2 -2
  217. package/dist/{chunk-A4GFEMVI.js → chunk-6T6V5565.js} +1 -1
  218. package/dist/{chunk-THDGBD6Y.js → chunk-AKFHMLEX.js} +1 -1
  219. package/dist/{chunk-6FVGSWLS.js → chunk-AWSFK2IK.js} +1 -1
  220. package/dist/{chunk-HQJ24WPM.js → chunk-AZ5BKSGV.js} +1 -1
  221. package/dist/chunk-BLPT6GHV.js +31 -0
  222. package/dist/chunk-C3FX7ZSU.js +30 -0
  223. package/dist/{chunk-LDGQIDIZ.js → chunk-CGT4R7LW.js} +64 -2
  224. package/dist/{chunk-WXWMHYKW.js → chunk-D5OSP3KI.js} +2 -2
  225. package/dist/{chunk-CQEYF3UW.js → chunk-DOPPU6TZ.js} +3 -3
  226. package/dist/{chunk-AC22RZKC.js → chunk-DRT4L4WC.js} +17 -5
  227. package/dist/chunk-E4DZOE55.js +162 -0
  228. package/dist/chunk-EA23JG6R.js +9 -0
  229. package/dist/{chunk-J53T2QAH.js → chunk-EBG3V4MK.js} +6 -6
  230. package/dist/{chunk-7PE56HHD.js → chunk-EDNZHW4K.js} +57 -7
  231. package/dist/{chunk-E6HXFFWO.js → chunk-EGL24VY5.js} +2 -2
  232. package/dist/{chunk-7SHAFLEX.js → chunk-ES4HR34Y.js} +2 -2
  233. package/dist/chunk-EVWTLFKI.js +102 -0
  234. package/dist/chunk-FA44M2YT.js +25 -0
  235. package/dist/{chunk-VWYT3GVV.js → chunk-FLTMDSC3.js} +1 -1
  236. package/dist/{chunk-LJHH4WWB.js → chunk-FXQLNETQ.js} +1 -1
  237. package/dist/{chunk-3NXWH5NC.js → chunk-GCASX3FD.js} +4 -4
  238. package/dist/{chunk-OGXHZHRX.js → chunk-GG4QZWMQ.js} +2 -2
  239. package/dist/{chunk-XP7EXNKF.js → chunk-GPW4M4OI.js} +2 -2
  240. package/dist/chunk-GZMEWWXW.js +78 -0
  241. package/dist/{chunk-OG6CL3EB.js → chunk-HD4QJ2SI.js} +3 -2
  242. package/dist/{chunk-SYY26XBX.js → chunk-HGCDJOEF.js} +2 -2
  243. package/dist/chunk-HGYHWWA5.js +54 -0
  244. package/dist/{chunk-GRKGLZFM.js → chunk-HL4CPLEK.js} +7 -7
  245. package/dist/{chunk-BEHFTRMZ.js → chunk-HNK43Z3P.js} +23 -5
  246. package/dist/{chunk-UO7JZVCO.js → chunk-HVEDVKXL.js} +1 -1
  247. package/dist/{chunk-ILFEWRLG.js → chunk-I7VG6RQE.js} +1 -1
  248. package/dist/{chunk-3RCHEFIL.js → chunk-ICJRP6QW.js} +2 -2
  249. package/dist/{chunk-CUL5XV6O.js → chunk-IDQBSMMZ.js} +2 -2
  250. package/dist/chunk-JILNCBBS.js +27 -0
  251. package/dist/{chunk-5O72FSOK.js → chunk-JJ3NOBJ6.js} +5 -5
  252. package/dist/chunk-JLRXCKTS.js +97 -0
  253. package/dist/{chunk-OJCVVCAZ.js → chunk-JMMS2PQU.js} +1 -1
  254. package/dist/{chunk-SXBJMBSV.js → chunk-JS2TRHBF.js} +2 -2
  255. package/dist/{chunk-3CZ7XAVY.js → chunk-KS7YIJ4S.js} +10 -6
  256. package/dist/{chunk-VWNC2L6W.js → chunk-KW6KCVM7.js} +1 -1
  257. package/dist/{chunk-X4NIE7CI.js → chunk-LQ6AGUDL.js} +2 -2
  258. package/dist/chunk-LXYSWQNE.js +214 -0
  259. package/dist/{chunk-6VQA2LZC.js → chunk-MYX4XABB.js} +3 -3
  260. package/dist/{chunk-PM3JVNRY.js → chunk-N3ISZVLK.js} +1 -1
  261. package/dist/chunk-NEHSV55H.js +119 -0
  262. package/dist/{chunk-RQI43UJ7.js → chunk-NHJQXDHA.js} +1 -1
  263. package/dist/{chunk-VVOPDWLX.js → chunk-NI7WUPH3.js} +2 -2
  264. package/dist/{chunk-OCRVY42T.js → chunk-NK3D66PB.js} +1 -1
  265. package/dist/{chunk-RHPBTE3F.js → chunk-NQGZRMUG.js} +1 -1
  266. package/dist/chunk-NVZCANJ5.js +3 -0
  267. package/dist/{chunk-RRO7UEYU.js → chunk-OHBXOEP3.js} +1 -1
  268. package/dist/{chunk-RFPCHMSX.js → chunk-OHG7762N.js} +1 -1
  269. package/dist/{chunk-OBUQVGEG.js → chunk-OJ2QULVH.js} +1 -1
  270. package/dist/{chunk-PGYIDNGG.js → chunk-OOZ5AGPS.js} +4 -4
  271. package/dist/{chunk-34RMTXDZ.js → chunk-OYAXKHVW.js} +1 -1
  272. package/dist/{chunk-WQQ5T5SA.js → chunk-OZIBNFLO.js} +1 -1
  273. package/dist/{chunk-DFK5EQTU.js → chunk-PDTEPN4D.js} +1 -1
  274. package/dist/chunk-PIYJNCN7.js +124 -0
  275. package/dist/{chunk-VP2ODUCC.js → chunk-Q6R6EUQ4.js} +3 -3
  276. package/dist/chunk-QYEOGGVS.js +161 -0
  277. package/dist/{chunk-YCC2S7DF.js → chunk-QZ4B72FP.js} +2 -2
  278. package/dist/chunk-RV2FGESF.js +98 -0
  279. package/dist/{chunk-SEPSXOGJ.js → chunk-S5C64PTT.js} +1 -1
  280. package/dist/chunk-SDSBVVLL.js +45 -0
  281. package/dist/{chunk-ZNOXQACX.js → chunk-T4D7RZNI.js} +2 -2
  282. package/dist/{chunk-G5SUSCWL.js → chunk-TA72CURM.js} +1 -1
  283. package/dist/{chunk-WXOYHVWG.js → chunk-TD3UHDFY.js} +4 -4
  284. package/dist/{chunk-VN47PYUF.js → chunk-TDQZ4LB5.js} +8 -6
  285. package/dist/chunk-TFGCNBWP.js +64 -0
  286. package/dist/{chunk-TMM32U7D.js → chunk-TKS7FTTO.js} +2 -2
  287. package/dist/{chunk-C6Z3MLSA.js → chunk-U5PJSGHG.js} +1 -1
  288. package/dist/{chunk-7CGPPAYR.js → chunk-UV4LOQ3E.js} +1 -1
  289. package/dist/{chunk-34ANLQW2.js → chunk-UVYGMCJ4.js} +173 -8
  290. package/dist/{chunk-ON2E46DX.js → chunk-VRNUKH2W.js} +1 -1
  291. package/dist/{chunk-XX2VQE55.js → chunk-WBRC3MNE.js} +1 -1
  292. package/dist/chunk-WDIVALLP.js +51 -0
  293. package/dist/{chunk-SQ4JFHO7.js → chunk-WOW5SCEK.js} +1 -1
  294. package/dist/chunk-XODESBSR.js +250 -0
  295. package/dist/chunk-XQI2OUV4.js +59 -0
  296. package/dist/{chunk-EJWPYEG4.js → chunk-XRZGGB6I.js} +1 -1
  297. package/dist/{chunk-34C7NYIQ.js → chunk-Y73BQL74.js} +1 -1
  298. package/dist/{chunk-KIRQZG3G.js → chunk-YCGZK2E4.js} +1 -1
  299. package/dist/{chunk-CAVWDJF4.js → chunk-YCZ2FBKA.js} +1 -1
  300. package/dist/{chunk-D7Q5MQRF.js → chunk-YEURM24I.js} +2 -2
  301. package/dist/{chunk-IW55G7XG.js → chunk-YNRKVY7X.js} +11 -1
  302. package/dist/chunk-YY445YFQ.js +55 -0
  303. package/dist/{chunk-LFHCXZO5.js → chunk-Z3GDMNMU.js} +3 -3
  304. package/dist/{chunk-NMR7AJSB.js → chunk-Z7PJF6F3.js} +2 -2
  305. package/dist/{chunk-U3LNU4B2.js → chunk-ZH4MJM73.js} +1 -1
  306. package/dist/generated/index.d.ts +17 -0
  307. package/dist/generated/index.js +138 -119
  308. package/dist/index.js +138 -119
  309. package/dist/styles.css +1877 -218
  310. package/dist/utils/index.js +1 -1
  311. package/dist/utils/useDownload.d.ts +6 -0
  312. package/package.json +3 -3
  313. package/dist/ArtifactPanel-KKUUIPEU.css +0 -159
  314. package/dist/Composer-TXULCPPV.css +0 -99
  315. package/dist/chunk-FZVJDJFN.js +0 -54
  316. package/dist/chunk-IXJHTFXG.js +0 -17
  317. package/dist/chunk-NBDN5JZV.js +0 -123
  318. package/dist/chunk-UJ4VVK7R.js +0 -48
  319. package/dist/{chunk-UTESMBPL.js → chunk-ESUZ27TS.js} +1 -1
  320. /package/dist/{chunk-55MPFB2U.js → chunk-EWTPXRRM.js} +0 -0
@@ -1,13 +1,14 @@
1
- export { CanvasToolbar, toolForKey } from '../chunk-X4NIE7CI.js';
1
+ export { CanvasToolbar, toolForKey } from '../chunk-LQ6AGUDL.js';
2
2
  import '../chunk-NR4CPM4T.js';
3
- import '../chunk-D7Q5MQRF.js';
3
+ import '../chunk-YEURM24I.js';
4
4
  import '../chunk-LM3ISVJA.js';
5
5
  import '../chunk-I33UIUZD.js';
6
6
  import '../chunk-SMBKXWML.js';
7
+ import '../chunk-HD4QJ2SI.js';
8
+ import '../chunk-EA23JG6R.js';
7
9
  import '../chunk-OMV5W53A.js';
8
- import '../chunk-OG6CL3EB.js';
9
10
  import '../chunk-H5XTJ7GJ.js';
10
- import '../chunk-LACA4JGC.js';
11
+ import '../chunk-2BQYODY3.js';
11
12
  import '../chunk-NUZHC6MM.js';
12
13
  import '../chunk-BZFWDIV6.js';
13
14
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,114 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type DiffListLabels, type DiffRow } from '../DiffList/index.js';
3
+ /** One run of a word diff: unchanged (`=`), added (`+`) or removed (`-`). */
4
+ export interface WordDiffPart {
5
+ op: '=' | '+' | '-';
6
+ text: string;
7
+ }
8
+ interface RowBase {
9
+ /** What the field is called: "Status", "Assignee". */
10
+ label: string;
11
+ /** A consequence under the value, in the smallest tertiary type: "No open task matches this title". Never the current value, which the pair shows. */
12
+ note?: ReactNode;
13
+ }
14
+ /** A fact that does not change, such as the page being edited. */
15
+ export interface ChangeListFactRow extends RowBase {
16
+ kind: 'fact';
17
+ value: ReactNode;
18
+ }
19
+ /** A value that changes from one thing to another. */
20
+ export interface ChangeListChangedRow extends RowBase {
21
+ kind: 'changed';
22
+ from: ReactNode;
23
+ to: ReactNode;
24
+ }
25
+ /** A value set where there was none. */
26
+ export interface ChangeListAddedRow extends RowBase {
27
+ kind: 'added';
28
+ to: ReactNode;
29
+ /**
30
+ * Marks the value with a small "New" tag, for a field added to a record
31
+ * that already exists. Left off on a create, where every field is new and
32
+ * the list's heading already says so.
33
+ */
34
+ isNew?: boolean | undefined;
35
+ }
36
+ /** A value taken away. */
37
+ export interface ChangeListRemovedRow extends RowBase {
38
+ kind: 'removed';
39
+ from: ReactNode;
40
+ }
41
+ /** Long text that changes (a page section, a comment), as a word diff. */
42
+ export interface ChangeListTextRow extends RowBase {
43
+ kind: 'text';
44
+ words: readonly WordDiffPart[];
45
+ /** The same change, path by path, opened under "Show the whole change" as a `DiffList`. */
46
+ whole?: readonly DiffRow[] | undefined;
47
+ /** Unchanged runs longer than this many characters are shortened with an ellipsis. 80 by default. */
48
+ collapseOver?: number | undefined;
49
+ }
50
+ export type ChangeListRow = ChangeListFactRow | ChangeListChangedRow | ChangeListAddedRow | ChangeListRemovedRow | ChangeListTextRow;
51
+ export interface ChangeListLabels {
52
+ /** Said before the old value of a change: "Changed from Any open status to Blocked". */
53
+ changedFrom: string;
54
+ /** Said where the arrow is drawn. */
55
+ to: string;
56
+ /** Said before a value set where there was none. */
57
+ added: string;
58
+ /** Said before a value taken away. */
59
+ removed: string;
60
+ /** The small tag on a field new to an existing record. */
61
+ isNew: string;
62
+ /** Said before each added run of a word diff. */
63
+ addedWords: string;
64
+ /** Said before each removed run of a word diff. */
65
+ removedWords: string;
66
+ /** The disclosure that opens the whole change. */
67
+ showWhole: string;
68
+ }
69
+ export declare const CHANGE_LIST_LABELS: ChangeListLabels;
70
+ export interface ChangeListProps {
71
+ rows: readonly ChangeListRow[];
72
+ /** The eyebrow over the rows: "What will change", "What will be created", "What changed". */
73
+ heading?: ReactNode;
74
+ /**
75
+ * The change is over (applied, declined, expired). The values step back to
76
+ * the secondary ink; the tints stay, so the record of what changed is still
77
+ * there to read.
78
+ */
79
+ settled?: boolean | undefined;
80
+ labels?: Partial<ChangeListLabels> | undefined;
81
+ /** Words for the `DiffList` behind "Show the whole change". */
82
+ diffLabels?: Partial<DiffListLabels> | undefined;
83
+ className?: string | undefined;
84
+ }
85
+ /** The longest run of unchanged words kept whole in a word diff. */
86
+ export declare const CHANGE_LIST_COLLAPSE_OVER = 80;
87
+ /**
88
+ * An unchanged run of a word diff, shortened when it is long. The run before
89
+ * the first change keeps its end, the run after the last keeps its start, and
90
+ * a run between two changes keeps both, cut at word boundaries, because what a
91
+ * reader needs from unchanged text is the words that touch the change.
92
+ */
93
+ export declare function shortenUnchanged(text: string, place: 'first' | 'middle' | 'last', max?: number): string;
94
+ /**
95
+ * What a change will do, field by field, as a before and after.
96
+ *
97
+ * THE CHANGE IS THE THING SCANNED. A changed field shows its old value struck
98
+ * through, an arrow and its new value on the added tint; an added one its new
99
+ * value on that tint; a removed one its old value struck through on the
100
+ * removed tint; long text a word diff with "Show the whole change" opening
101
+ * the path-by-path `DiffList`. These are `DiffList`'s tones and grammar, so a
102
+ * change a person approves looks like every other diff in the product.
103
+ *
104
+ * THE ARROW IS NEVER THE ONLY WORD: a pair is said "Changed from Any open
105
+ * status to Blocked", and every added or removed value says so before it. The
106
+ * old value is struck through in the tertiary ink and the new one carries the
107
+ * weight, so the eye lands on what the field will hold.
108
+ *
109
+ * A DESCRIPTION LIST on `PropertyList`'s grid: the labels in one column, the
110
+ * values in the other, rows apart by the list's spacing rather than rules,
111
+ * and no box of its own inside the card that holds it.
112
+ */
113
+ export declare function ChangeList({ rows, heading, settled, labels: overrides, diffLabels, className }: ChangeListProps): import("react").JSX.Element;
114
+ export {};
@@ -0,0 +1,3 @@
1
+ import './ChangeList.css';
2
+ export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, shortenUnchanged } from './ChangeList.js';
3
+ export type { ChangeListAddedRow, ChangeListChangedRow, ChangeListFactRow, ChangeListLabels, ChangeListProps, ChangeListRemovedRow, ChangeListRow, ChangeListTextRow, WordDiffPart, } from './ChangeList.js';
@@ -0,0 +1,10 @@
1
+ export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, shortenUnchanged } from '../chunk-NEHSV55H.js';
2
+ import '../chunk-Z3GDMNMU.js';
3
+ import '../chunk-KYIAFNU7.js';
4
+ import '../chunk-WIATRXEJ.js';
5
+ import '../chunk-GG4QZWMQ.js';
6
+ import '../chunk-TFGCNBWP.js';
7
+ import '../chunk-BHHIIK3M.js';
8
+ import '../chunk-PQADV6P6.js';
9
+ import '../chunk-BZFWDIV6.js';
10
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,151 @@
1
+ /*
2
+ * What a change will do, as a before and after on PropertyList's grid: one
3
+ * label column (as wide as the longest label, never under 92px) and one value
4
+ * column, rows a spacing step apart with no rules, and the tones of DiffList.
5
+ */
6
+ .crewlet-change-list {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--spacing-2);
10
+ min-width: 0;
11
+ }
12
+
13
+ /* The eyebrow register: a heading a reader passes over to reach the rows. */
14
+ .crewlet-change-list__heading {
15
+ font-size: var(--font-size-2xs);
16
+ font-weight: var(--font-weight-medium);
17
+ letter-spacing: var(--font-letter-spacing-wide);
18
+ text-transform: uppercase;
19
+ color: var(--color-text-tertiary);
20
+ }
21
+
22
+ .crewlet-change-list__rows {
23
+ display: grid;
24
+ grid-template-columns: var(--crewlet-description-list-term, minmax(92px, max-content)) minmax(0, 1fr);
25
+ gap: var(--spacing-2) var(--spacing-3);
26
+ align-items: baseline;
27
+ min-width: 0;
28
+ margin: 0;
29
+ font-size: var(--font-size-compact);
30
+ }
31
+
32
+ .crewlet-change-list__row {
33
+ display: grid;
34
+ grid-column: 1 / -1;
35
+ grid-template-columns: subgrid;
36
+ align-items: baseline;
37
+ min-width: 0;
38
+ }
39
+
40
+ .crewlet-change-list__label {
41
+ font-size: var(--font-size-xs);
42
+ color: var(--color-text-tertiary);
43
+ }
44
+
45
+ .crewlet-change-list__value {
46
+ min-width: 0;
47
+ margin: 0;
48
+ color: var(--color-text-primary);
49
+ overflow-wrap: anywhere;
50
+ }
51
+
52
+ /* Long text takes the row's whole width under its label. */
53
+ .crewlet-change-list__row--text > .crewlet-change-list__value {
54
+ grid-column: 1 / -1;
55
+ display: flex;
56
+ flex-direction: column;
57
+ gap: var(--spacing-1);
58
+ }
59
+
60
+ .crewlet-change-list__fact {
61
+ font-weight: var(--font-weight-medium);
62
+ }
63
+
64
+ /*
65
+ * A PAIR WRAPS AS A UNIT: the old value, then the arrow and the new value
66
+ * together, which drop under the old value on a narrow card rather than
67
+ * splitting the arrow from what it points at.
68
+ */
69
+ .crewlet-change-list__pair {
70
+ display: inline-flex;
71
+ flex-wrap: wrap;
72
+ align-items: baseline;
73
+ gap: var(--spacing-1);
74
+ max-width: 100%;
75
+ }
76
+
77
+ .crewlet-change-list__next {
78
+ display: inline-flex;
79
+ align-items: baseline;
80
+ gap: var(--spacing-1);
81
+ min-width: 0;
82
+ }
83
+
84
+ .crewlet-change-list__arrow {
85
+ flex: none;
86
+ align-self: center;
87
+ color: var(--color-text-tertiary);
88
+ }
89
+
90
+ /* The old value: struck through in the tertiary ink. */
91
+ .crewlet-change-list__from {
92
+ color: var(--color-text-tertiary);
93
+ text-decoration: line-through;
94
+ text-decoration-thickness: 1px;
95
+ }
96
+
97
+ /* The new value: the primary ink at medium weight, on the added tint. */
98
+ .crewlet-change-list__to,
99
+ .crewlet-change-list__inserted {
100
+ padding: 0 var(--spacing-1);
101
+ border-radius: var(--radius-xs);
102
+ background: var(--color-feedback-success-soft);
103
+ color: var(--color-text-primary);
104
+ font-weight: var(--font-weight-medium);
105
+ text-decoration: none;
106
+ -webkit-box-decoration-break: clone;
107
+ box-decoration-break: clone;
108
+ }
109
+
110
+ /* A value taken away: struck through on the removed tint, in its ink. */
111
+ .crewlet-change-list__removed {
112
+ padding: 0 var(--spacing-1);
113
+ border-radius: var(--radius-xs);
114
+ background: var(--color-feedback-danger-soft);
115
+ color: var(--color-feedback-danger-ink);
116
+ text-decoration: line-through;
117
+ text-decoration-thickness: 1px;
118
+ }
119
+
120
+ /* A word diff: one compact paragraph, removed words struck in the danger ink. */
121
+ .crewlet-change-list__words {
122
+ margin: 0;
123
+ line-height: var(--font-line-height-relaxed);
124
+ color: var(--color-text-secondary);
125
+ }
126
+
127
+ .crewlet-change-list__deleted {
128
+ color: var(--color-feedback-danger-ink);
129
+ text-decoration: line-through;
130
+ text-decoration-thickness: 1px;
131
+ }
132
+
133
+ /* The disclosure's padding hangs into the gutter, so its chevron sits on the text edge. */
134
+ .crewlet-change-list__whole {
135
+ margin-inline-start: calc(var(--spacing-2) * -1);
136
+ }
137
+
138
+ .crewlet-change-list__note {
139
+ display: block;
140
+ margin-top: 2px;
141
+ font-size: var(--font-size-2xs);
142
+ color: var(--color-text-tertiary);
143
+ }
144
+
145
+ /* Settled: the values step back; the tints stay, so the record is still there. */
146
+ .crewlet-change-list--settled .crewlet-change-list__fact,
147
+ .crewlet-change-list--settled .crewlet-change-list__to,
148
+ .crewlet-change-list--settled .crewlet-change-list__inserted,
149
+ .crewlet-change-list--settled .crewlet-change-list__value {
150
+ color: var(--color-text-secondary);
151
+ }
@@ -0,0 +1,53 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ /** How close to the end, in pixels, still counts as reading the latest. */
3
+ export declare const CHAT_THREAD_FOLLOW_WITHIN = 48;
4
+ export interface ChatThreadLabels {
5
+ /** The pill that returns to the end. */
6
+ jumpToLatest: string;
7
+ /** Said after it with how many items arrived since the reader scrolled away. */
8
+ newItems: (count: number) => string;
9
+ }
10
+ export declare const CHAT_THREAD_LABELS: ChatThreadLabels;
11
+ /** What a host can ask of the thread. */
12
+ export interface ChatThreadHandle {
13
+ /** Scrolls to the end and follows it again. */
14
+ scrollToLatest: () => void;
15
+ /**
16
+ * Brings an item that needs a decision into view: the whole of it when it
17
+ * fits, and otherwise its head at the top of the view, never past it, so
18
+ * its actions are reached by reading rather than skipped over.
19
+ */
20
+ reveal: (element: HTMLElement) => void;
21
+ }
22
+ export interface ChatThreadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'children'> {
23
+ /** Names the log for a screen reader: "Conversation". */
24
+ label: string;
25
+ /** A request is running: the log is `aria-busy` until it settles. */
26
+ busy?: boolean | undefined;
27
+ /**
28
+ * Keeps the end in view while the reader is at it (within 48px). `true` by
29
+ * default; `false` never moves the scroll on its own.
30
+ */
31
+ follow?: boolean | undefined;
32
+ /** The thread's blocks, one child per item, oldest first. */
33
+ children?: ReactNode;
34
+ labels?: Partial<ChatThreadLabels> | undefined;
35
+ }
36
+ /**
37
+ * A conversation as it grows: the scrolling region of messages, answers and
38
+ * cards, which keeps the latest in view while the reader is at the end and
39
+ * lets them read back without being pulled down.
40
+ *
41
+ * A LOG WITH ITS LIVE REGION OFF. It is `role="log"` so assistive technology
42
+ * knows what it is, but `aria-live="off"`, because a streaming answer read
43
+ * token by token is noise: the host announces once, through the page's
44
+ * `Announcer`, when an answer completes. It is focusable, so a keyboard
45
+ * reader can scroll it, and `aria-busy` while a request runs.
46
+ *
47
+ * IT STICKS TO THE END ONLY WHILE THE READER IS THERE. Within 48px of the end
48
+ * it follows whatever arrives; scrolled up, it stays put and a "Jump to
49
+ * latest" pill counts what arrived since. The browser's own scroll anchoring
50
+ * is turned off (it fights a last child that keeps growing), and the
51
+ * anchoring is done here instead.
52
+ */
53
+ export declare const ChatThread: import("react").ForwardRefExoticComponent<ChatThreadProps & import("react").RefAttributes<ChatThreadHandle>>;
@@ -0,0 +1,3 @@
1
+ import './ChatThread.css';
2
+ export { CHAT_THREAD_FOLLOW_WITHIN, CHAT_THREAD_LABELS, ChatThread } from './ChatThread.js';
3
+ export type { ChatThreadHandle, ChatThreadLabels, ChatThreadProps } from './ChatThread.js';
@@ -0,0 +1,6 @@
1
+ export { CHAT_THREAD_FOLLOW_WITHIN, CHAT_THREAD_LABELS, ChatThread } from '../chunk-RV2FGESF.js';
2
+ import '../chunk-RTPQDNW3.js';
3
+ import '../chunk-HD4QJ2SI.js';
4
+ import '../chunk-EA23JG6R.js';
5
+ import '../chunk-BZFWDIV6.js';
6
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,58 @@
1
+ /*
2
+ * A conversation as it grows: the scroller, the items a spacing step and a
3
+ * half apart on the panel's 16px inset, and the Jump to latest pill floating
4
+ * over its foot.
5
+ */
6
+ .crewlet-chat-thread {
7
+ position: relative;
8
+ display: flex;
9
+ flex: 1;
10
+ flex-direction: column;
11
+ min-height: 0;
12
+ }
13
+
14
+ /*
15
+ * THE BROWSER'S SCROLL ANCHORING IS OFF: it pins the content above the
16
+ * reader's view, which fights a last child that keeps growing as an answer
17
+ * streams in. ChatThread.tsx anchors to the end itself.
18
+ */
19
+ .crewlet-chat-thread__scroller {
20
+ flex: 1;
21
+ min-height: 0;
22
+ overflow: auto;
23
+ overflow-anchor: none;
24
+ overscroll-behavior: contain;
25
+ }
26
+
27
+ /* A ring inside the region, which an edge-to-edge scroller would otherwise clip. */
28
+ .crewlet-chat-thread__scroller:focus-visible {
29
+ outline: 2px solid var(--color-focus);
30
+ outline-offset: var(--size-focus-ring-inset-offset);
31
+ }
32
+
33
+ .crewlet-chat-thread__items {
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: var(--spacing-3);
37
+ min-width: 0;
38
+ padding: var(--spacing-4);
39
+ }
40
+
41
+ .crewlet-chat-thread__items > * {
42
+ flex: none;
43
+ }
44
+
45
+ /* The pill, centred a step above the thread's foot. */
46
+ .crewlet-chat-thread__jump {
47
+ position: absolute;
48
+ bottom: var(--spacing-3);
49
+ left: 50%;
50
+ transform: translateX(-50%);
51
+ box-shadow: var(--shadow-md);
52
+ border-radius: var(--radius-pill);
53
+ }
54
+
55
+ .crewlet-chat-thread__fresh {
56
+ font-variant-numeric: tabular-nums;
57
+ color: var(--color-text-secondary);
58
+ }
@@ -1,10 +1,10 @@
1
- export { Checkbox, CheckboxGroup } from '../chunk-RQI43UJ7.js';
2
- import '../chunk-LJHH4WWB.js';
1
+ export { Checkbox, CheckboxGroup } from '../chunk-NHJQXDHA.js';
2
+ import '../chunk-FXQLNETQ.js';
3
3
  import '../chunk-XCUUI7E7.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-RSAQOKH3.js';
6
6
  import '../chunk-H5XTJ7GJ.js';
7
- import '../chunk-LACA4JGC.js';
7
+ import '../chunk-2BQYODY3.js';
8
8
  import '../chunk-NUZHC6MM.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,9 @@
1
- export { CodeBlock } from '../chunk-A4GFEMVI.js';
2
- import '../chunk-7SHAFLEX.js';
1
+ export { CodeBlock } from '../chunk-6T6V5565.js';
2
+ import '../chunk-ES4HR34Y.js';
3
3
  import '../chunk-STJ7QBC3.js';
4
4
  import '../chunk-DTIW4CHZ.js';
5
- import '../chunk-OG6CL3EB.js';
6
- import '../chunk-LACA4JGC.js';
5
+ import '../chunk-HD4QJ2SI.js';
6
+ import '../chunk-EA23JG6R.js';
7
+ import '../chunk-2BQYODY3.js';
7
8
  import '../chunk-BZFWDIV6.js';
8
9
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { ColorField } from '../chunk-5WYPSVRX.js';
1
+ export { ColorField } from '../chunk-3NQS6KYG.js';
2
2
  import '../chunk-7W3LYIOC.js';
3
- import '../chunk-LJHH4WWB.js';
3
+ import '../chunk-FXQLNETQ.js';
4
4
  import '../chunk-XCUUI7E7.js';
5
5
  import '../chunk-PQADV6P6.js';
6
6
  import '../chunk-RSAQOKH3.js';
7
7
  import '../chunk-H5XTJ7GJ.js';
8
- import '../chunk-LACA4JGC.js';
8
+ import '../chunk-2BQYODY3.js';
9
9
  import '../chunk-NUZHC6MM.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,9 +1,10 @@
1
- export { ColorSwatch } from '../chunk-RHPBTE3F.js';
2
- import '../chunk-7SHAFLEX.js';
1
+ export { ColorSwatch } from '../chunk-NQGZRMUG.js';
2
+ import '../chunk-ES4HR34Y.js';
3
3
  import '../chunk-STJ7QBC3.js';
4
4
  import '../chunk-DTIW4CHZ.js';
5
5
  import '../chunk-7W3LYIOC.js';
6
- import '../chunk-OG6CL3EB.js';
7
- import '../chunk-LACA4JGC.js';
6
+ import '../chunk-HD4QJ2SI.js';
7
+ import '../chunk-EA23JG6R.js';
8
+ import '../chunk-2BQYODY3.js';
8
9
  import '../chunk-BZFWDIV6.js';
9
10
  import '../chunk-ODEQTPFM.js';
@@ -1,12 +1,12 @@
1
- export { Combobox } from '../chunk-C6Z3MLSA.js';
1
+ export { Combobox } from '../chunk-U5PJSGHG.js';
2
2
  import '../chunk-7KHM2FZH.js';
3
- import '../chunk-LJHH4WWB.js';
3
+ import '../chunk-FXQLNETQ.js';
4
4
  import '../chunk-XCUUI7E7.js';
5
5
  import '../chunk-PQADV6P6.js';
6
6
  import '../chunk-RSAQOKH3.js';
7
7
  import '../chunk-2YTOOH3A.js';
8
8
  import '../chunk-H5XTJ7GJ.js';
9
- import '../chunk-LACA4JGC.js';
9
+ import '../chunk-2BQYODY3.js';
10
10
  import '../chunk-NUZHC6MM.js';
11
11
  import '../chunk-BZFWDIV6.js';
12
12
  import '../chunk-ODEQTPFM.js';
@@ -1,17 +1,18 @@
1
- export { CommandPalette } from '../chunk-NMR7AJSB.js';
2
- import '../chunk-YCC2S7DF.js';
1
+ export { CommandPalette } from '../chunk-Z7PJF6F3.js';
2
+ import '../chunk-QZ4B72FP.js';
3
3
  import '../chunk-7KHM2FZH.js';
4
4
  import '../chunk-SMBKXWML.js';
5
- import '../chunk-LJHH4WWB.js';
5
+ import '../chunk-FXQLNETQ.js';
6
6
  import '../chunk-XCUUI7E7.js';
7
7
  import '../chunk-BHHIIK3M.js';
8
8
  import '../chunk-PQADV6P6.js';
9
9
  import '../chunk-RSAQOKH3.js';
10
+ import '../chunk-HD4QJ2SI.js';
11
+ import '../chunk-EA23JG6R.js';
10
12
  import '../chunk-OMV5W53A.js';
11
13
  import '../chunk-2YTOOH3A.js';
12
- import '../chunk-OG6CL3EB.js';
13
14
  import '../chunk-H5XTJ7GJ.js';
14
- import '../chunk-LACA4JGC.js';
15
+ import '../chunk-2BQYODY3.js';
15
16
  import '../chunk-NUZHC6MM.js';
16
17
  import '../chunk-BZFWDIV6.js';
17
18
  import '../chunk-ODEQTPFM.js';
@@ -1,20 +1,22 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-EZ43L6T7.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-56P72ZBE.js';
2
2
  import '../chunk-CI3VPIJN.js';
3
- import '../chunk-3CZ7XAVY.js';
3
+ import '../chunk-KS7YIJ4S.js';
4
4
  import '../chunk-EUCC37WY.js';
5
5
  import '../chunk-5AQBPHZD.js';
6
6
  import '../chunk-PZKHBB7D.js';
7
7
  import '../chunk-PWG3VHRQ.js';
8
- import '../chunk-UJ4VVK7R.js';
8
+ import '../chunk-JLRXCKTS.js';
9
9
  import '../chunk-SMBKXWML.js';
10
- import '../chunk-LJHH4WWB.js';
10
+ import '../chunk-FXQLNETQ.js';
11
11
  import '../chunk-XCUUI7E7.js';
12
12
  import '../chunk-BHHIIK3M.js';
13
13
  import '../chunk-PQADV6P6.js';
14
14
  import '../chunk-RSAQOKH3.js';
15
- import '../chunk-OG6CL3EB.js';
15
+ import '../chunk-HD4QJ2SI.js';
16
+ import '../chunk-EA23JG6R.js';
17
+ import '../chunk-OMV5W53A.js';
16
18
  import '../chunk-H5XTJ7GJ.js';
17
- import '../chunk-LACA4JGC.js';
19
+ import '../chunk-2BQYODY3.js';
18
20
  import '../chunk-NUZHC6MM.js';
19
21
  import '../chunk-BZFWDIV6.js';
20
22
  import '../chunk-ODEQTPFM.js';
@@ -1,18 +1,50 @@
1
1
  import { type ReactNode, type TextareaHTMLAttributes } from 'react';
2
2
  /** The share of `maxLength` at which the counter appears. */
3
3
  export declare const COMPOSER_COUNTER_AT = 0.8;
4
+ /**
5
+ * Which key sends. `mod-enter` (Command+Enter, Control+Enter elsewhere) is for
6
+ * a brief or a reply that is often several lines, where Enter writes a line;
7
+ * `enter` is for a question, which is one line far more often than not, as
8
+ * every chat surface sends it: Enter sends and Shift+Enter writes a line.
9
+ */
10
+ export type ComposerSubmitKey = 'mod-enter' | 'enter';
4
11
  export interface ComposerProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange' | 'onSubmit' | 'children'> {
5
12
  value: string;
6
13
  onChange: (value: string) => void;
7
14
  /**
8
- * Called on Command+Enter (Control+Enter elsewhere). With it, the footer
9
- * carries the shortcut's hint.
15
+ * Called on the send key (`submitOn`). Never while the composer is
16
+ * disabled, and never on an Enter that ends an input method's composition.
10
17
  */
11
18
  onSubmit?: (() => void) | undefined;
19
+ /** Which key sends. `mod-enter` by default; see `ComposerSubmitKey`. */
20
+ submitOn?: ComposerSubmitKey | undefined;
12
21
  /** Names the field for a screen reader, since it carries no visible label. */
13
22
  label: string;
14
23
  /** The footer's controls, at its end: Cancel and Submit. */
15
24
  actions?: ReactNode;
25
+ /**
26
+ * A control on the field's own row, at its end: the send button of a chat
27
+ * composer (`SendButton`). With one, the field starts at one line and grows
28
+ * to six before it scrolls, and the control stays on the last line.
29
+ */
30
+ trailing?: ReactNode;
31
+ /**
32
+ * What travels with the message, drawn above the field inside the
33
+ * composer's edge: a row of `Tag`s, such as the page a question is asked
34
+ * about. It is a group named by `attachmentsLabel`, before the field in
35
+ * reading order, so a reader meets what is attached before what they type.
36
+ */
37
+ attachments?: ReactNode;
38
+ /** Names the attachments group. "Attached to this message" by default. */
39
+ attachmentsLabel?: string | undefined;
40
+ /**
41
+ * The composer cannot send right now, and why, in a few words ("Offline",
42
+ * "You can ask again in 30 seconds"). The whole composer takes the disabled
43
+ * field's look, the reason stands as the placeholder (so it keeps one line)
44
+ * and describes the field, and a draft already in it stays. Implies
45
+ * `disabled`.
46
+ */
47
+ disabledReason?: string | undefined;
16
48
  className?: string | undefined;
17
49
  }
18
50
  /**
@@ -23,9 +55,14 @@ export interface ComposerProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaE
23
55
  * THE FOOTER IS DRAWN ONLY WITH SOMETHING IN IT. With no shortcut, counter or
24
56
  * actions there is no strip at all, and one holding only the shortcut's hint
25
57
  * goes on a phone, where the hint is not drawn, rather than stand there empty.
58
+ * A composer that sends on Enter draws no hint: Enter is what every chat field
59
+ * already does, and the send button beside the field says the rest.
26
60
  *
27
61
  * THE COUNTER IS DRAWN ONLY NEAR THE LIMIT, from [COMPOSER_COUNTER_AT] of
28
62
  * `maxLength`: a count under every short reply is noise, and a field that
29
63
  * stops taking text with no warning reads as a broken keyboard.
64
+ *
65
+ * THE BOX OWNS THE ONE FOCUS RING, by pointer and by keyboard; the field
66
+ * inside never draws its own, so a click in the field never shows two rings.
30
67
  */
31
68
  export declare const Composer: import("react").ForwardRefExoticComponent<ComposerProps & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -1,11 +1,12 @@
1
- export { COMPOSER_COUNTER_AT, Composer } from '../chunk-UJ4VVK7R.js';
1
+ export { COMPOSER_COUNTER_AT, Composer } from '../chunk-JLRXCKTS.js';
2
2
  import '../chunk-SMBKXWML.js';
3
- import '../chunk-LJHH4WWB.js';
3
+ import '../chunk-FXQLNETQ.js';
4
4
  import '../chunk-XCUUI7E7.js';
5
5
  import '../chunk-PQADV6P6.js';
6
6
  import '../chunk-RSAQOKH3.js';
7
+ import '../chunk-OMV5W53A.js';
7
8
  import '../chunk-H5XTJ7GJ.js';
8
- import '../chunk-LACA4JGC.js';
9
+ import '../chunk-2BQYODY3.js';
9
10
  import '../chunk-NUZHC6MM.js';
10
11
  import '../chunk-BZFWDIV6.js';
11
12
  import '../chunk-ODEQTPFM.js';