@cratis/components 4.19.1 → 4.19.2

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 (720) hide show
  1. package/compat-manifest.json +11 -11
  2. package/dist/esm/Canvas/Canvas.d.ts +1 -0
  3. package/dist/esm/Canvas/Canvas.d.ts.map +1 -0
  4. package/dist/esm/Canvas/Canvas.js.map +1 -1
  5. package/dist/esm/Canvas/CanvasControls.d.ts +1 -0
  6. package/dist/esm/Canvas/CanvasControls.d.ts.map +1 -0
  7. package/dist/esm/Canvas/CanvasControls.js.map +1 -1
  8. package/dist/esm/Canvas/CanvasItem.js.map +1 -1
  9. package/dist/esm/Canvas/CanvasMinimap.js.map +1 -1
  10. package/dist/esm/Canvas/CanvasOverlay.js.map +1 -1
  11. package/dist/esm/Canvas/canvasGesture.js.map +1 -1
  12. package/dist/esm/Canvas/canvasTransformActivity.js.map +1 -1
  13. package/dist/esm/Canvas/index.d.ts +1 -0
  14. package/dist/esm/Canvas/index.d.ts.map +1 -0
  15. package/dist/esm/Canvas/isBackgroundPointerTarget.js.map +1 -1
  16. package/dist/esm/Canvas/isWithinScrollableContent.js.map +1 -1
  17. package/dist/esm/Canvas/panMomentum.js.map +1 -1
  18. package/dist/esm/Canvas/pinchGesture.js.map +1 -1
  19. package/dist/esm/Canvas/selfSuspendingFrameLoop.js.map +1 -1
  20. package/dist/esm/Canvas/shapes/ChatBubble/index.d.ts +1 -0
  21. package/dist/esm/Canvas/shapes/ChatBubble/index.d.ts.map +1 -0
  22. package/dist/esm/Canvas/shapes/ChatBubble/index.js +1 -0
  23. package/dist/esm/Canvas/shapes/ChatBubble/index.js.map +1 -0
  24. package/dist/esm/Canvas/shapes/Note/Note.js.map +1 -1
  25. package/dist/esm/Canvas/shapes/Note/NoteTextChanged.js.map +1 -1
  26. package/dist/esm/Canvas/shapes/Note/index.d.ts +1 -0
  27. package/dist/esm/Canvas/shapes/Note/index.d.ts.map +1 -0
  28. package/dist/esm/Canvas/shapes/Note/index.js +1 -0
  29. package/dist/esm/Canvas/shapes/Note/index.js.map +1 -0
  30. package/dist/esm/Canvas/shapes/Note/noteFont.js.map +1 -1
  31. package/dist/esm/Canvas/shapes/Region/ItemAddedToRegion.js.map +1 -1
  32. package/dist/esm/Canvas/shapes/Region/ItemRemovedFromRegion.js.map +1 -1
  33. package/dist/esm/Canvas/shapes/Region/Region.js.map +1 -1
  34. package/dist/esm/Canvas/shapes/Region/index.d.ts +1 -0
  35. package/dist/esm/Canvas/shapes/Region/index.d.ts.map +1 -0
  36. package/dist/esm/Canvas/shapes/Region/index.js +1 -0
  37. package/dist/esm/Canvas/shapes/Region/index.js.map +1 -0
  38. package/dist/esm/Canvas/shapes/Region/regionContainment.js.map +1 -1
  39. package/dist/esm/Canvas/useDragSelectionGuard.js.map +1 -1
  40. package/dist/esm/Canvas/zoomMechanism.js.map +1 -1
  41. package/dist/esm/Chat/ChatAuthor.d.ts +1 -0
  42. package/dist/esm/Chat/ChatAuthor.d.ts.map +1 -0
  43. package/dist/esm/Chat/ChatAuthor.js.map +1 -1
  44. package/dist/esm/Chat/ChatConversation.d.ts +1 -0
  45. package/dist/esm/Chat/ChatConversation.d.ts.map +1 -0
  46. package/dist/esm/Chat/ChatConversation.js.map +1 -1
  47. package/dist/esm/Chat/ChatIdentifier.js.map +1 -1
  48. package/dist/esm/Chat/ChatMention.d.ts +1 -0
  49. package/dist/esm/Chat/ChatMention.d.ts.map +1 -0
  50. package/dist/esm/Chat/ChatMention.js.map +1 -1
  51. package/dist/esm/Chat/ChatMessage.d.ts +1 -0
  52. package/dist/esm/Chat/ChatMessage.d.ts.map +1 -0
  53. package/dist/esm/Chat/ChatMessage.js.map +1 -1
  54. package/dist/esm/Chat/ChatMessageAction.d.ts +1 -0
  55. package/dist/esm/Chat/ChatMessageAction.d.ts.map +1 -0
  56. package/dist/esm/Chat/ChatMessageAction.js.map +1 -1
  57. package/dist/esm/Chat/ChatMessageBody.d.ts +1 -0
  58. package/dist/esm/Chat/ChatMessageBody.d.ts.map +1 -0
  59. package/dist/esm/Chat/ChatMessageBody.js.map +1 -1
  60. package/dist/esm/Chat/ChatSidebar.d.ts +1 -0
  61. package/dist/esm/Chat/ChatSidebar.d.ts.map +1 -0
  62. package/dist/esm/Chat/ChatSidebar.js.map +1 -1
  63. package/dist/esm/Chat/ChatSidebarForObservableQueries.d.ts +1 -0
  64. package/dist/esm/Chat/ChatSidebarForObservableQueries.d.ts.map +1 -0
  65. package/dist/esm/Chat/ChatSidebarForObservableQueries.js.map +1 -1
  66. package/dist/esm/Chat/ChatStatus.js.map +1 -1
  67. package/dist/esm/Chat/ChatTopic.d.ts +1 -0
  68. package/dist/esm/Chat/ChatTopic.d.ts.map +1 -0
  69. package/dist/esm/Chat/ChatTopic.js.map +1 -1
  70. package/dist/esm/Chat/ChatTopicList.d.ts +1 -0
  71. package/dist/esm/Chat/ChatTopicList.d.ts.map +1 -0
  72. package/dist/esm/Chat/ChatTopicList.js.map +1 -1
  73. package/dist/esm/Chat/Kit/AnchoredOverlay.js.map +1 -1
  74. package/dist/esm/Chat/Kit/Avatar/PersonAvatarCircle.js.map +1 -1
  75. package/dist/esm/Chat/Kit/Avatar/getAvatarColor.js.map +1 -1
  76. package/dist/esm/Chat/Kit/Avatar/getInitials.js.map +1 -1
  77. package/dist/esm/Chat/Kit/Avatar/index.d.ts +1 -0
  78. package/dist/esm/Chat/Kit/Avatar/index.d.ts.map +1 -0
  79. package/dist/esm/Chat/Kit/Avatar/index.js +1 -0
  80. package/dist/esm/Chat/Kit/Avatar/index.js.map +1 -0
  81. package/dist/esm/Chat/Kit/Chat.d.ts +1 -0
  82. package/dist/esm/Chat/Kit/Chat.d.ts.map +1 -0
  83. package/dist/esm/Chat/Kit/Chat.js.map +1 -1
  84. package/dist/esm/Chat/Kit/ChatAuthorKind.js.map +1 -1
  85. package/dist/esm/Chat/Kit/ChatBubble.d.ts +1 -0
  86. package/dist/esm/Chat/Kit/ChatBubble.d.ts.map +1 -0
  87. package/dist/esm/Chat/Kit/ChatBubble.js.map +1 -1
  88. package/dist/esm/Chat/Kit/ChatComposer.d.ts +1 -0
  89. package/dist/esm/Chat/Kit/ChatComposer.d.ts.map +1 -0
  90. package/dist/esm/Chat/Kit/ChatComposer.js.map +1 -1
  91. package/dist/esm/Chat/Kit/ChatMessage.d.ts +1 -0
  92. package/dist/esm/Chat/Kit/ChatMessage.d.ts.map +1 -0
  93. package/dist/esm/Chat/Kit/ChatMessage.js.map +1 -1
  94. package/dist/esm/Chat/Kit/ChatMessageAdded.js.map +1 -1
  95. package/dist/esm/Chat/Kit/ChatMessageBubble.d.ts +1 -0
  96. package/dist/esm/Chat/Kit/ChatMessageBubble.d.ts.map +1 -0
  97. package/dist/esm/Chat/Kit/ChatMessageBubble.js.map +1 -1
  98. package/dist/esm/Chat/Kit/ChatMessageReaction.d.ts +1 -0
  99. package/dist/esm/Chat/Kit/ChatMessageReaction.d.ts.map +1 -0
  100. package/dist/esm/Chat/Kit/ChatMessageReaction.js.map +1 -1
  101. package/dist/esm/Chat/Kit/ChatMessageReactionUser.js.map +1 -1
  102. package/dist/esm/Chat/Kit/ChatOwnReaction.js.map +1 -1
  103. package/dist/esm/Chat/Kit/ChatTypingAuthor.d.ts +1 -0
  104. package/dist/esm/Chat/Kit/ChatTypingAuthor.d.ts.map +1 -0
  105. package/dist/esm/Chat/Kit/ChatTypingAuthor.js.map +1 -1
  106. package/dist/esm/Chat/Kit/ChatVariant.js.map +1 -1
  107. package/dist/esm/Chat/Kit/Emoji/EmojiCategory.d.ts +1 -0
  108. package/dist/esm/Chat/Kit/Emoji/EmojiCategory.d.ts.map +1 -0
  109. package/dist/esm/Chat/Kit/Emoji/EmojiCategory.js.map +1 -1
  110. package/dist/esm/Chat/Kit/Emoji/EmojiCategoryKey.js.map +1 -1
  111. package/dist/esm/Chat/Kit/Emoji/EmojiMemory.js.map +1 -1
  112. package/dist/esm/Chat/Kit/Emoji/EmojiPicker.d.ts +1 -0
  113. package/dist/esm/Chat/Kit/Emoji/EmojiPicker.d.ts.map +1 -0
  114. package/dist/esm/Chat/Kit/Emoji/EmojiPicker.js.map +1 -1
  115. package/dist/esm/Chat/Kit/Emoji/emojiCatalog.d.ts +1 -0
  116. package/dist/esm/Chat/Kit/Emoji/emojiCatalog.d.ts.map +1 -0
  117. package/dist/esm/Chat/Kit/Emoji/emojiCatalog.js.map +1 -1
  118. package/dist/esm/Chat/Kit/Emoji/index.d.ts +1 -0
  119. package/dist/esm/Chat/Kit/Emoji/index.d.ts.map +1 -0
  120. package/dist/esm/Chat/Kit/Emoji/index.js +1 -0
  121. package/dist/esm/Chat/Kit/Emoji/index.js.map +1 -0
  122. package/dist/esm/Chat/Kit/Emoji/recentEmojis.d.ts +1 -0
  123. package/dist/esm/Chat/Kit/Emoji/recentEmojis.d.ts.map +1 -0
  124. package/dist/esm/Chat/Kit/Emoji/recentEmojis.js.map +1 -1
  125. package/dist/esm/Chat/Kit/FailedReply.d.ts +1 -0
  126. package/dist/esm/Chat/Kit/FailedReply.d.ts.map +1 -0
  127. package/dist/esm/Chat/Kit/FailedReply.js.map +1 -1
  128. package/dist/esm/Chat/Kit/Mentions/MentionCandidate.d.ts +1 -0
  129. package/dist/esm/Chat/Kit/Mentions/MentionCandidate.d.ts.map +1 -0
  130. package/dist/esm/Chat/Kit/Mentions/MentionCandidate.js.map +1 -1
  131. package/dist/esm/Chat/Kit/Mentions/MentionQuery.js.map +1 -1
  132. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts +1 -0
  133. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts.map +1 -0
  134. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.js.map +1 -1
  135. package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.d.ts +1 -0
  136. package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.d.ts.map +1 -0
  137. package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.js.map +1 -1
  138. package/dist/esm/Chat/Kit/Mentions/applyMention.d.ts +1 -0
  139. package/dist/esm/Chat/Kit/Mentions/applyMention.d.ts.map +1 -0
  140. package/dist/esm/Chat/Kit/Mentions/applyMention.js.map +1 -1
  141. package/dist/esm/Chat/Kit/Mentions/extractMentions.js.map +1 -1
  142. package/dist/esm/Chat/Kit/Mentions/findMentionRanges.js.map +1 -1
  143. package/dist/esm/Chat/Kit/Mentions/index.d.ts +1 -0
  144. package/dist/esm/Chat/Kit/Mentions/index.d.ts.map +1 -0
  145. package/dist/esm/Chat/Kit/Mentions/index.js +1 -0
  146. package/dist/esm/Chat/Kit/Mentions/index.js.map +1 -0
  147. package/dist/esm/Chat/Kit/Mentions/matchCandidates.d.ts +1 -0
  148. package/dist/esm/Chat/Kit/Mentions/matchCandidates.d.ts.map +1 -0
  149. package/dist/esm/Chat/Kit/Mentions/matchCandidates.js.map +1 -1
  150. package/dist/esm/Chat/Kit/Mentions/mentionSegments.js.map +1 -1
  151. package/dist/esm/Chat/Kit/MessageReactions.d.ts +1 -0
  152. package/dist/esm/Chat/Kit/MessageReactions.d.ts.map +1 -0
  153. package/dist/esm/Chat/Kit/MessageReactions.js.map +1 -1
  154. package/dist/esm/Chat/Kit/ReactionPicker.d.ts +1 -0
  155. package/dist/esm/Chat/Kit/ReactionPicker.d.ts.map +1 -0
  156. package/dist/esm/Chat/Kit/ReactionPicker.js.map +1 -1
  157. package/dist/esm/Chat/Kit/TypingIndicator.d.ts +1 -0
  158. package/dist/esm/Chat/Kit/TypingIndicator.d.ts.map +1 -0
  159. package/dist/esm/Chat/Kit/TypingIndicator.js.map +1 -1
  160. package/dist/esm/Chat/Kit/findOwnReaction.d.ts +1 -0
  161. package/dist/esm/Chat/Kit/findOwnReaction.d.ts.map +1 -0
  162. package/dist/esm/Chat/Kit/findOwnReaction.js.map +1 -1
  163. package/dist/esm/Chat/Kit/index.d.ts +1 -0
  164. package/dist/esm/Chat/Kit/index.d.ts.map +1 -0
  165. package/dist/esm/Chat/Kit/index.js +1 -0
  166. package/dist/esm/Chat/Kit/index.js.map +1 -0
  167. package/dist/esm/Chat/Kit/reactionsExcludingUser.d.ts +1 -0
  168. package/dist/esm/Chat/Kit/reactionsExcludingUser.d.ts.map +1 -0
  169. package/dist/esm/Chat/Kit/reactionsExcludingUser.js.map +1 -1
  170. package/dist/esm/Chat/index.d.ts +1 -0
  171. package/dist/esm/Chat/index.d.ts.map +1 -0
  172. package/dist/esm/Chat/isTopicUnnamed.d.ts +1 -0
  173. package/dist/esm/Chat/isTopicUnnamed.d.ts.map +1 -0
  174. package/dist/esm/Chat/isTopicUnnamed.js.map +1 -1
  175. package/dist/esm/Chat/relativeTimestamp.js.map +1 -1
  176. package/dist/esm/Chat/shouldRequestTopicName.js.map +1 -1
  177. package/dist/esm/Chat/topicsByActivity.d.ts +1 -0
  178. package/dist/esm/Chat/topicsByActivity.d.ts.map +1 -0
  179. package/dist/esm/Chat/topicsByActivity.js.map +1 -1
  180. package/dist/esm/CommandDialog/CommandDialog.d.ts +1 -0
  181. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -0
  182. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  183. package/dist/esm/CommandDialog/CommandStepper.d.ts +1 -0
  184. package/dist/esm/CommandDialog/CommandStepper.d.ts.map +1 -0
  185. package/dist/esm/CommandDialog/CommandStepper.js.map +1 -1
  186. package/dist/esm/CommandDialog/CommandStepperContent.d.ts +1 -0
  187. package/dist/esm/CommandDialog/CommandStepperContent.d.ts.map +1 -0
  188. package/dist/esm/CommandDialog/CommandStepperContent.js.map +1 -1
  189. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts +1 -0
  190. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts.map +1 -0
  191. package/dist/esm/CommandDialog/StepperCommandDialog.js.map +1 -1
  192. package/dist/esm/CommandDialog/StepperPanel.js.map +1 -1
  193. package/dist/esm/CommandDialog/applyBeforeExecute.js.map +1 -1
  194. package/dist/esm/CommandDialog/commandValuesUnchanged.js.map +1 -1
  195. package/dist/esm/CommandDialog/confirmBeforeExecute.js.map +1 -1
  196. package/dist/esm/CommandDialog/index.d.ts +1 -0
  197. package/dist/esm/CommandDialog/index.d.ts.map +1 -0
  198. package/dist/esm/CommandDialog/stepChildren.js.map +1 -1
  199. package/dist/esm/CommandDialog/transitionStep.d.ts +1 -0
  200. package/dist/esm/CommandDialog/transitionStep.d.ts.map +1 -0
  201. package/dist/esm/CommandDialog/transitionStep.js.map +1 -1
  202. package/dist/esm/CommandDialog/useCommandExecution.d.ts +1 -0
  203. package/dist/esm/CommandDialog/useCommandExecution.d.ts.map +1 -0
  204. package/dist/esm/CommandDialog/useCommandExecution.js.map +1 -1
  205. package/dist/esm/CommandDialog/useSubmissionFlight.js.map +1 -1
  206. package/dist/esm/CommandForm/AutoCommandForm.js.map +1 -1
  207. package/dist/esm/CommandForm/FieldTypeProvider.js.map +1 -1
  208. package/dist/esm/CommandForm/commandFormMarkers.js.map +1 -1
  209. package/dist/esm/CommandForm/defaultFieldTypeProviders.js.map +1 -1
  210. package/dist/esm/CommandForm/fieldTypeProviderRegistry.d.ts +1 -0
  211. package/dist/esm/CommandForm/fieldTypeProviderRegistry.d.ts.map +1 -0
  212. package/dist/esm/CommandForm/fieldTypeProviderRegistry.js.map +1 -1
  213. package/dist/esm/CommandForm/fields/CalendarField.d.ts +1 -0
  214. package/dist/esm/CommandForm/fields/CalendarField.d.ts.map +1 -0
  215. package/dist/esm/CommandForm/fields/CalendarField.js.map +1 -1
  216. package/dist/esm/CommandForm/fields/CheckboxField.d.ts +1 -0
  217. package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -0
  218. package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
  219. package/dist/esm/CommandForm/fields/ChipsField.d.ts +1 -0
  220. package/dist/esm/CommandForm/fields/ChipsField.d.ts.map +1 -0
  221. package/dist/esm/CommandForm/fields/ChipsField.js.map +1 -1
  222. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts +1 -0
  223. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts.map +1 -0
  224. package/dist/esm/CommandForm/fields/ColorPickerField.js.map +1 -1
  225. package/dist/esm/CommandForm/fields/DropdownField.d.ts +1 -0
  226. package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -0
  227. package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
  228. package/dist/esm/CommandForm/fields/InputTextField.d.ts +1 -0
  229. package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -0
  230. package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
  231. package/dist/esm/CommandForm/fields/MultiSelectField.d.ts +1 -0
  232. package/dist/esm/CommandForm/fields/MultiSelectField.d.ts.map +1 -0
  233. package/dist/esm/CommandForm/fields/MultiSelectField.js.map +1 -1
  234. package/dist/esm/CommandForm/fields/NumberField.d.ts +1 -0
  235. package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -0
  236. package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
  237. package/dist/esm/CommandForm/fields/NumberInputField.d.ts +1 -0
  238. package/dist/esm/CommandForm/fields/NumberInputField.d.ts.map +1 -0
  239. package/dist/esm/CommandForm/fields/NumberInputField.js.map +1 -1
  240. package/dist/esm/CommandForm/fields/PasswordField.d.ts +1 -0
  241. package/dist/esm/CommandForm/fields/PasswordField.d.ts.map +1 -0
  242. package/dist/esm/CommandForm/fields/PasswordField.js.map +1 -1
  243. package/dist/esm/CommandForm/fields/RadioButtonField.d.ts +1 -0
  244. package/dist/esm/CommandForm/fields/RadioButtonField.d.ts.map +1 -0
  245. package/dist/esm/CommandForm/fields/RadioButtonField.js.map +1 -1
  246. package/dist/esm/CommandForm/fields/RadioGroupField.d.ts +1 -0
  247. package/dist/esm/CommandForm/fields/RadioGroupField.d.ts.map +1 -0
  248. package/dist/esm/CommandForm/fields/RadioGroupField.js.map +1 -1
  249. package/dist/esm/CommandForm/fields/RatingField.d.ts +1 -0
  250. package/dist/esm/CommandForm/fields/RatingField.d.ts.map +1 -0
  251. package/dist/esm/CommandForm/fields/RatingField.js.map +1 -1
  252. package/dist/esm/CommandForm/fields/SliderField.d.ts +1 -0
  253. package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -0
  254. package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
  255. package/dist/esm/CommandForm/fields/TextAreaField.d.ts +1 -0
  256. package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -0
  257. package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
  258. package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts +1 -0
  259. package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts.map +1 -0
  260. package/dist/esm/CommandForm/fields/ToggleSwitchField.js.map +1 -1
  261. package/dist/esm/CommandForm/fields/chipValues.js.map +1 -1
  262. package/dist/esm/CommandForm/fields/fieldAccessibility.js.map +1 -1
  263. package/dist/esm/CommandForm/fields/fieldValueFromEvent.js.map +1 -1
  264. package/dist/esm/CommandForm/fields/index.d.ts +1 -0
  265. package/dist/esm/CommandForm/fields/index.d.ts.map +1 -0
  266. package/dist/esm/CommandForm/fields/index.js +1 -0
  267. package/dist/esm/CommandForm/fields/index.js.map +1 -0
  268. package/dist/esm/CommandForm/index.d.ts +1 -0
  269. package/dist/esm/CommandForm/index.d.ts.map +1 -0
  270. package/dist/esm/Common/ActionMenubar.d.ts +1 -0
  271. package/dist/esm/Common/ActionMenubar.d.ts.map +1 -0
  272. package/dist/esm/Common/ActionMenubar.js.map +1 -1
  273. package/dist/esm/Common/Breadcrumbs.js.map +1 -1
  274. package/dist/esm/Common/Button.d.ts +1 -0
  275. package/dist/esm/Common/Button.d.ts.map +1 -0
  276. package/dist/esm/Common/Button.js.map +1 -1
  277. package/dist/esm/Common/ButtonImplementation.d.ts +1 -0
  278. package/dist/esm/Common/ButtonImplementation.d.ts.map +1 -0
  279. package/dist/esm/Common/ButtonImplementation.js.map +1 -1
  280. package/dist/esm/Common/Checkbox.d.ts +1 -0
  281. package/dist/esm/Common/Checkbox.d.ts.map +1 -0
  282. package/dist/esm/Common/Checkbox.js.map +1 -1
  283. package/dist/esm/Common/CheckboxImplementation.d.ts +1 -0
  284. package/dist/esm/Common/CheckboxImplementation.d.ts.map +1 -0
  285. package/dist/esm/Common/CheckboxImplementation.js.map +1 -1
  286. package/dist/esm/Common/ComboBox.js.map +1 -1
  287. package/dist/esm/Common/CratisComponentsProvider.d.ts +1 -0
  288. package/dist/esm/Common/CratisComponentsProvider.d.ts.map +1 -0
  289. package/dist/esm/Common/CratisComponentsProvider.js.map +1 -1
  290. package/dist/esm/Common/DatePickerInput.d.ts +1 -0
  291. package/dist/esm/Common/DatePickerInput.d.ts.map +1 -0
  292. package/dist/esm/Common/DatePickerInput.js.map +1 -1
  293. package/dist/esm/Common/DatePickerInputImplementation.d.ts +1 -0
  294. package/dist/esm/Common/DatePickerInputImplementation.d.ts.map +1 -0
  295. package/dist/esm/Common/DatePickerInputImplementation.js.map +1 -1
  296. package/dist/esm/Common/ErrorBoundary.js.map +1 -1
  297. package/dist/esm/Common/FormElement.js.map +1 -1
  298. package/dist/esm/Common/Icon.js.map +1 -1
  299. package/dist/esm/Common/IconButton.d.ts +1 -0
  300. package/dist/esm/Common/IconButton.d.ts.map +1 -0
  301. package/dist/esm/Common/IconButton.js.map +1 -1
  302. package/dist/esm/Common/IconButtonImplementation.d.ts +1 -0
  303. package/dist/esm/Common/IconButtonImplementation.d.ts.map +1 -0
  304. package/dist/esm/Common/IconButtonImplementation.js.map +1 -1
  305. package/dist/esm/Common/NumberInput.d.ts +1 -0
  306. package/dist/esm/Common/NumberInput.d.ts.map +1 -0
  307. package/dist/esm/Common/NumberInput.js.map +1 -1
  308. package/dist/esm/Common/NumberInputCommitReason.js.map +1 -1
  309. package/dist/esm/Common/NumberInputPartAttributes.js.map +1 -1
  310. package/dist/esm/Common/Page.js.map +1 -1
  311. package/dist/esm/Common/Radio.d.ts +1 -0
  312. package/dist/esm/Common/Radio.d.ts.map +1 -0
  313. package/dist/esm/Common/Radio.js.map +1 -1
  314. package/dist/esm/Common/RadioImplementation.d.ts +1 -0
  315. package/dist/esm/Common/RadioImplementation.d.ts.map +1 -0
  316. package/dist/esm/Common/RadioImplementation.js.map +1 -1
  317. package/dist/esm/Common/Surface.js.map +1 -1
  318. package/dist/esm/Common/SurfaceImplementation.d.ts +1 -0
  319. package/dist/esm/Common/SurfaceImplementation.d.ts.map +1 -0
  320. package/dist/esm/Common/SurfaceImplementation.js.map +1 -1
  321. package/dist/esm/Common/Switch.d.ts +1 -0
  322. package/dist/esm/Common/Switch.d.ts.map +1 -0
  323. package/dist/esm/Common/Switch.js.map +1 -1
  324. package/dist/esm/Common/SwitchImplementation.d.ts +1 -0
  325. package/dist/esm/Common/SwitchImplementation.d.ts.map +1 -0
  326. package/dist/esm/Common/SwitchImplementation.js.map +1 -1
  327. package/dist/esm/Common/Tabs.js.map +1 -1
  328. package/dist/esm/Common/TagGroup.js.map +1 -1
  329. package/dist/esm/Common/TextArea.d.ts +1 -0
  330. package/dist/esm/Common/TextArea.d.ts.map +1 -0
  331. package/dist/esm/Common/TextArea.js.map +1 -1
  332. package/dist/esm/Common/TextAreaImplementation.d.ts +1 -0
  333. package/dist/esm/Common/TextAreaImplementation.d.ts.map +1 -0
  334. package/dist/esm/Common/TextAreaImplementation.js.map +1 -1
  335. package/dist/esm/Common/TextInput.d.ts +1 -0
  336. package/dist/esm/Common/TextInput.d.ts.map +1 -0
  337. package/dist/esm/Common/TextInput.js.map +1 -1
  338. package/dist/esm/Common/TextInputImplementation.d.ts +1 -0
  339. package/dist/esm/Common/TextInputImplementation.d.ts.map +1 -0
  340. package/dist/esm/Common/TextInputImplementation.js.map +1 -1
  341. package/dist/esm/Common/ToggleGroup.js.map +1 -1
  342. package/dist/esm/Common/ToolbarFocusMode.js.map +1 -1
  343. package/dist/esm/Common/Tooltip.js.map +1 -1
  344. package/dist/esm/Common/TooltipImplementation.d.ts +1 -0
  345. package/dist/esm/Common/TooltipImplementation.d.ts.map +1 -0
  346. package/dist/esm/Common/TooltipImplementation.js.map +1 -1
  347. package/dist/esm/Common/index.d.ts +1 -0
  348. package/dist/esm/Common/index.d.ts.map +1 -0
  349. package/dist/esm/Common/messaging/useOptionalMessenger.js.map +1 -1
  350. package/dist/esm/Common/normalizeIconClass.js.map +1 -1
  351. package/dist/esm/Common/reactAriaProps.js.map +1 -1
  352. package/dist/esm/Common/useNativeCheckedState.js.map +1 -1
  353. package/dist/esm/Common/useToolbarKeyboardNavigation.d.ts +1 -0
  354. package/dist/esm/Common/useToolbarKeyboardNavigation.d.ts.map +1 -0
  355. package/dist/esm/Common/useToolbarKeyboardNavigation.js.map +1 -1
  356. package/dist/esm/DataPage/DataPage.d.ts +1 -0
  357. package/dist/esm/DataPage/DataPage.d.ts.map +1 -0
  358. package/dist/esm/DataPage/DataPage.js.map +1 -1
  359. package/dist/esm/DataPage/DataPageLayout.js.map +1 -1
  360. package/dist/esm/DataPage/index.d.ts +1 -0
  361. package/dist/esm/DataPage/index.d.ts.map +1 -0
  362. package/dist/esm/DataTables/Column.d.ts +1 -0
  363. package/dist/esm/DataTables/Column.d.ts.map +1 -0
  364. package/dist/esm/DataTables/Column.js.map +1 -1
  365. package/dist/esm/DataTables/ColumnFilterMenu.d.ts +1 -0
  366. package/dist/esm/DataTables/ColumnFilterMenu.d.ts.map +1 -0
  367. package/dist/esm/DataTables/ColumnFilterMenu.js.map +1 -1
  368. package/dist/esm/DataTables/DataTableCore.d.ts +1 -0
  369. package/dist/esm/DataTables/DataTableCore.d.ts.map +1 -0
  370. package/dist/esm/DataTables/DataTableCore.js.map +1 -1
  371. package/dist/esm/DataTables/DataTableFilterMatcherRegistry.d.ts +1 -0
  372. package/dist/esm/DataTables/DataTableFilterMatcherRegistry.d.ts.map +1 -0
  373. package/dist/esm/DataTables/DataTableFilterMatcherRegistry.js.map +1 -1
  374. package/dist/esm/DataTables/DataTableFilterMeta.js.map +1 -1
  375. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +1 -0
  376. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -0
  377. package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
  378. package/dist/esm/DataTables/DataTableForQuery.d.ts +1 -0
  379. package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -0
  380. package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
  381. package/dist/esm/DataTables/DataTableSelectionChangeEvent.js.map +1 -1
  382. package/dist/esm/DataTables/DataTableStatus.js.map +1 -1
  383. package/dist/esm/DataTables/TablePaginator.d.ts +1 -0
  384. package/dist/esm/DataTables/TablePaginator.d.ts.map +1 -0
  385. package/dist/esm/DataTables/TablePaginator.js.map +1 -1
  386. package/dist/esm/DataTables/TablePaginatorImplementation.d.ts +1 -0
  387. package/dist/esm/DataTables/TablePaginatorImplementation.d.ts.map +1 -0
  388. package/dist/esm/DataTables/TablePaginatorImplementation.js.map +1 -1
  389. package/dist/esm/DataTables/index.d.ts +1 -0
  390. package/dist/esm/DataTables/index.d.ts.map +1 -0
  391. package/dist/esm/DataTables/paginatorRange.js.map +1 -1
  392. package/dist/esm/DataTables/resolveDataTableStatus.d.ts +1 -0
  393. package/dist/esm/DataTables/resolveDataTableStatus.d.ts.map +1 -0
  394. package/dist/esm/DataTables/resolveDataTableStatus.js.map +1 -1
  395. package/dist/esm/DataTables/selectionKeys.js.map +1 -1
  396. package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
  397. package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -1
  398. package/dist/esm/Dialogs/Dialog.d.ts +1 -0
  399. package/dist/esm/Dialogs/Dialog.d.ts.map +1 -0
  400. package/dist/esm/Dialogs/Dialog.js.map +1 -1
  401. package/dist/esm/Dialogs/DialogImplementation.d.ts +1 -0
  402. package/dist/esm/Dialogs/DialogImplementation.d.ts.map +1 -0
  403. package/dist/esm/Dialogs/DialogImplementation.js.map +1 -1
  404. package/dist/esm/Dialogs/DialogInitialFocus.js.map +1 -1
  405. package/dist/esm/Dialogs/index.d.ts +1 -0
  406. package/dist/esm/Dialogs/index.d.ts.map +1 -0
  407. package/dist/esm/Display/Avatar.js.map +1 -1
  408. package/dist/esm/Display/Badge.js.map +1 -1
  409. package/dist/esm/Display/Chip.js.map +1 -1
  410. package/dist/esm/Display/Message.js.map +1 -1
  411. package/dist/esm/Display/ProgressBar.js.map +1 -1
  412. package/dist/esm/Display/ProgressBarImplementation.d.ts +1 -0
  413. package/dist/esm/Display/ProgressBarImplementation.d.ts.map +1 -0
  414. package/dist/esm/Display/ProgressBarImplementation.js.map +1 -1
  415. package/dist/esm/Display/ProgressSpinner.js.map +1 -1
  416. package/dist/esm/Display/Skeleton.js.map +1 -1
  417. package/dist/esm/Display/Tag.js.map +1 -1
  418. package/dist/esm/Display/index.d.ts +1 -0
  419. package/dist/esm/Display/index.d.ts.map +1 -0
  420. package/dist/esm/Dropdown/Dropdown.d.ts +1 -0
  421. package/dist/esm/Dropdown/Dropdown.d.ts.map +1 -0
  422. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  423. package/dist/esm/Dropdown/DropdownImplementation.d.ts +1 -0
  424. package/dist/esm/Dropdown/DropdownImplementation.d.ts.map +1 -0
  425. package/dist/esm/Dropdown/DropdownImplementation.js.map +1 -1
  426. package/dist/esm/Dropdown/index.d.ts +1 -0
  427. package/dist/esm/Dropdown/index.d.ts.map +1 -0
  428. package/dist/esm/Dropdown/observeLabelAssociations.js.map +1 -1
  429. package/dist/esm/Dropdown/useExternalLabel.js.map +1 -1
  430. package/dist/esm/Filter/CheckboxListFilter.d.ts +1 -0
  431. package/dist/esm/Filter/CheckboxListFilter.d.ts.map +1 -0
  432. package/dist/esm/Filter/CheckboxListFilter.js.map +1 -1
  433. package/dist/esm/Filter/FilterEditor.d.ts +1 -0
  434. package/dist/esm/Filter/FilterEditor.d.ts.map +1 -0
  435. package/dist/esm/Filter/FilterEditor.js.map +1 -1
  436. package/dist/esm/Filter/FilterEditorProps.d.ts +1 -0
  437. package/dist/esm/Filter/FilterEditorProps.d.ts.map +1 -0
  438. package/dist/esm/Filter/FilterEditorProps.js.map +1 -1
  439. package/dist/esm/Filter/FilterPanel.d.ts +1 -0
  440. package/dist/esm/Filter/FilterPanel.d.ts.map +1 -0
  441. package/dist/esm/Filter/FilterPanel.js.map +1 -1
  442. package/dist/esm/Filter/RangeHistogramFilter.d.ts +1 -0
  443. package/dist/esm/Filter/RangeHistogramFilter.d.ts.map +1 -0
  444. package/dist/esm/Filter/RangeHistogramFilter.js.map +1 -1
  445. package/dist/esm/Filter/index.d.ts +1 -0
  446. package/dist/esm/Filter/index.d.ts.map +1 -0
  447. package/dist/esm/Filter/types.js.map +1 -1
  448. package/dist/esm/Filter/useFilterState.d.ts +1 -0
  449. package/dist/esm/Filter/useFilterState.d.ts.map +1 -0
  450. package/dist/esm/Filter/useFilterState.js.map +1 -1
  451. package/dist/esm/Filter/useOptionListOverflow.js.map +1 -1
  452. package/dist/esm/Filter/utils.d.ts +1 -0
  453. package/dist/esm/Filter/utils.d.ts.map +1 -0
  454. package/dist/esm/Filter/utils.js.map +1 -1
  455. package/dist/esm/Notifications/Toaster.js.map +1 -1
  456. package/dist/esm/Notifications/index.d.ts +1 -0
  457. package/dist/esm/Notifications/index.d.ts.map +1 -0
  458. package/dist/esm/Notifications/toast.js.map +1 -1
  459. package/dist/esm/Notifications/toastCommandResult.js.map +1 -1
  460. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +1 -0
  461. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
  462. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  463. package/dist/esm/ObjectContentEditor/index.d.ts +1 -0
  464. package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
  465. package/dist/esm/ObjectContentEditor/objectHelpers.d.ts +1 -0
  466. package/dist/esm/ObjectContentEditor/objectHelpers.d.ts.map +1 -0
  467. package/dist/esm/ObjectContentEditor/objectHelpers.js.map +1 -1
  468. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -1
  469. package/dist/esm/ObjectNavigationalBar/breadcrumbHelpers.js.map +1 -1
  470. package/dist/esm/ObjectNavigationalBar/index.d.ts +1 -0
  471. package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
  472. package/dist/esm/PivotViewer/PivotViewer.d.ts +1 -0
  473. package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -0
  474. package/dist/esm/PivotViewer/PivotViewer.js.map +1 -1
  475. package/dist/esm/PivotViewer/PivotViewerLabels.js.map +1 -1
  476. package/dist/esm/PivotViewer/components/AxisLabels.d.ts +1 -0
  477. package/dist/esm/PivotViewer/components/AxisLabels.d.ts.map +1 -0
  478. package/dist/esm/PivotViewer/components/AxisLabels.js.map +1 -1
  479. package/dist/esm/PivotViewer/components/DetailPanel.js.map +1 -1
  480. package/dist/esm/PivotViewer/components/FilterPanel.d.ts +1 -0
  481. package/dist/esm/PivotViewer/components/FilterPanel.d.ts.map +1 -0
  482. package/dist/esm/PivotViewer/components/FilterPanel.js.map +1 -1
  483. package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts +1 -0
  484. package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts.map +1 -0
  485. package/dist/esm/PivotViewer/components/FilterPanelContainer.js.map +1 -1
  486. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts +1 -0
  487. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts.map +1 -0
  488. package/dist/esm/PivotViewer/components/PivotCanvas.js.map +1 -1
  489. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts +1 -0
  490. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts.map +1 -0
  491. package/dist/esm/PivotViewer/components/PivotViewerMain.js.map +1 -1
  492. package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts +1 -0
  493. package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts.map +1 -0
  494. package/dist/esm/PivotViewer/components/RangeHistogramFilter.js.map +1 -1
  495. package/dist/esm/PivotViewer/components/Spinner.js.map +1 -1
  496. package/dist/esm/PivotViewer/components/Toolbar.d.ts +1 -0
  497. package/dist/esm/PivotViewer/components/Toolbar.d.ts.map +1 -0
  498. package/dist/esm/PivotViewer/components/Toolbar.js.map +1 -1
  499. package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts +1 -0
  500. package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts.map +1 -0
  501. package/dist/esm/PivotViewer/components/ToolbarContainer.js.map +1 -1
  502. package/dist/esm/PivotViewer/components/index.d.ts +1 -0
  503. package/dist/esm/PivotViewer/components/index.d.ts.map +1 -0
  504. package/dist/esm/PivotViewer/components/index.js +1 -0
  505. package/dist/esm/PivotViewer/components/index.js.map +1 -0
  506. package/dist/esm/PivotViewer/components/pivot/animation.d.ts +1 -0
  507. package/dist/esm/PivotViewer/components/pivot/animation.d.ts.map +1 -0
  508. package/dist/esm/PivotViewer/components/pivot/animation.js.map +1 -1
  509. package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts +1 -0
  510. package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts.map +1 -0
  511. package/dist/esm/PivotViewer/components/pivot/colorResolver.js.map +1 -1
  512. package/dist/esm/PivotViewer/components/pivot/constants.js.map +1 -1
  513. package/dist/esm/PivotViewer/components/pivot/ellipsize.js.map +1 -1
  514. package/dist/esm/PivotViewer/components/pivot/groups.d.ts +1 -0
  515. package/dist/esm/PivotViewer/components/pivot/groups.d.ts.map +1 -0
  516. package/dist/esm/PivotViewer/components/pivot/groups.js.map +1 -1
  517. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts +1 -0
  518. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts.map +1 -0
  519. package/dist/esm/PivotViewer/components/pivot/sprites.js.map +1 -1
  520. package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.d.ts +1 -0
  521. package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.d.ts.map +1 -0
  522. package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.js.map +1 -1
  523. package/dist/esm/PivotViewer/components/pivot/visibility.d.ts +1 -0
  524. package/dist/esm/PivotViewer/components/pivot/visibility.d.ts.map +1 -0
  525. package/dist/esm/PivotViewer/components/pivot/visibility.js.map +1 -1
  526. package/dist/esm/PivotViewer/constants.js.map +1 -1
  527. package/dist/esm/PivotViewer/engine/layout.d.ts +1 -0
  528. package/dist/esm/PivotViewer/engine/layout.d.ts.map +1 -0
  529. package/dist/esm/PivotViewer/engine/layout.js.map +1 -1
  530. package/dist/esm/PivotViewer/engine/pivot.worker.js +1 -0
  531. package/dist/esm/PivotViewer/engine/pivot.worker.js.map +1 -0
  532. package/dist/esm/PivotViewer/engine/requestCorrelator.js.map +1 -1
  533. package/dist/esm/PivotViewer/engine/store.d.ts +1 -0
  534. package/dist/esm/PivotViewer/engine/store.d.ts.map +1 -0
  535. package/dist/esm/PivotViewer/engine/store.js.map +1 -1
  536. package/dist/esm/PivotViewer/engine/types.js.map +1 -1
  537. package/dist/esm/PivotViewer/hooks/index.d.ts +1 -0
  538. package/dist/esm/PivotViewer/hooks/index.d.ts.map +1 -0
  539. package/dist/esm/PivotViewer/hooks/index.js +1 -0
  540. package/dist/esm/PivotViewer/hooks/index.js.map +1 -0
  541. package/dist/esm/PivotViewer/hooks/useAnimationModeTracking.js.map +1 -1
  542. package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts +1 -0
  543. package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts.map +1 -0
  544. package/dist/esm/PivotViewer/hooks/useCardSelection.js.map +1 -1
  545. package/dist/esm/PivotViewer/hooks/useContainerDimensions.js.map +1 -1
  546. package/dist/esm/PivotViewer/hooks/useCurrentFilters.d.ts +1 -0
  547. package/dist/esm/PivotViewer/hooks/useCurrentFilters.d.ts.map +1 -0
  548. package/dist/esm/PivotViewer/hooks/useCurrentFilters.js.map +1 -1
  549. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts +1 -0
  550. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts.map +1 -0
  551. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.js.map +1 -1
  552. package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts +1 -0
  553. package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts.map +1 -0
  554. package/dist/esm/PivotViewer/hooks/useDimensionState.js.map +1 -1
  555. package/dist/esm/PivotViewer/hooks/useFieldExtractors.d.ts +1 -0
  556. package/dist/esm/PivotViewer/hooks/useFieldExtractors.d.ts.map +1 -0
  557. package/dist/esm/PivotViewer/hooks/useFieldExtractors.js.map +1 -1
  558. package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts +1 -0
  559. package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts.map +1 -0
  560. package/dist/esm/PivotViewer/hooks/useFilterOptions.js.map +1 -1
  561. package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.js.map +1 -1
  562. package/dist/esm/PivotViewer/hooks/useFilterState.d.ts +1 -0
  563. package/dist/esm/PivotViewer/hooks/useFilterState.d.ts.map +1 -0
  564. package/dist/esm/PivotViewer/hooks/useFilterState.js.map +1 -1
  565. package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts +1 -0
  566. package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts.map +1 -0
  567. package/dist/esm/PivotViewer/hooks/useFilteredData.js +1 -0
  568. package/dist/esm/PivotViewer/hooks/useFilteredData.js.map +1 -0
  569. package/dist/esm/PivotViewer/hooks/usePanning.js.map +1 -1
  570. package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts +1 -0
  571. package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts.map +1 -0
  572. package/dist/esm/PivotViewer/hooks/usePivotEngine.js.map +1 -1
  573. package/dist/esm/PivotViewer/hooks/useScrollSync.d.ts +1 -0
  574. package/dist/esm/PivotViewer/hooks/useScrollSync.d.ts.map +1 -0
  575. package/dist/esm/PivotViewer/hooks/useScrollSync.js.map +1 -1
  576. package/dist/esm/PivotViewer/hooks/useSelectedItem.js +1 -0
  577. package/dist/esm/PivotViewer/hooks/useSelectedItem.js.map +1 -0
  578. package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.d.ts +1 -0
  579. package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.d.ts.map +1 -0
  580. package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.js.map +1 -1
  581. package/dist/esm/PivotViewer/hooks/useWheelZoom.js.map +1 -1
  582. package/dist/esm/PivotViewer/hooks/useZoomScrollAnchor.js.map +1 -1
  583. package/dist/esm/PivotViewer/hooks/useZoomState.js.map +1 -1
  584. package/dist/esm/PivotViewer/index.d.ts +1 -0
  585. package/dist/esm/PivotViewer/index.d.ts.map +1 -0
  586. package/dist/esm/PivotViewer/types.d.ts +1 -0
  587. package/dist/esm/PivotViewer/types.d.ts.map +1 -0
  588. package/dist/esm/PivotViewer/types.js.map +1 -1
  589. package/dist/esm/PivotViewer/utils/animations.js.map +1 -1
  590. package/dist/esm/PivotViewer/utils/cardPosition.d.ts +1 -0
  591. package/dist/esm/PivotViewer/utils/cardPosition.d.ts.map +1 -0
  592. package/dist/esm/PivotViewer/utils/cardPosition.js.map +1 -1
  593. package/dist/esm/PivotViewer/utils/constants.js.map +1 -1
  594. package/dist/esm/PivotViewer/utils/idResolution.d.ts +1 -0
  595. package/dist/esm/PivotViewer/utils/idResolution.d.ts.map +1 -0
  596. package/dist/esm/PivotViewer/utils/idResolution.js.map +1 -1
  597. package/dist/esm/PivotViewer/utils/index.d.ts +1 -0
  598. package/dist/esm/PivotViewer/utils/index.d.ts.map +1 -0
  599. package/dist/esm/PivotViewer/utils/index.js +1 -0
  600. package/dist/esm/PivotViewer/utils/index.js.map +1 -0
  601. package/dist/esm/PivotViewer/utils/presentGrouping.d.ts +1 -0
  602. package/dist/esm/PivotViewer/utils/presentGrouping.d.ts.map +1 -0
  603. package/dist/esm/PivotViewer/utils/presentGrouping.js.map +1 -1
  604. package/dist/esm/PivotViewer/utils/search.d.ts +1 -0
  605. package/dist/esm/PivotViewer/utils/search.d.ts.map +1 -0
  606. package/dist/esm/PivotViewer/utils/search.js.map +1 -1
  607. package/dist/esm/PivotViewer/utils/selection.d.ts +1 -0
  608. package/dist/esm/PivotViewer/utils/selection.d.ts.map +1 -0
  609. package/dist/esm/PivotViewer/utils/selection.js.map +1 -1
  610. package/dist/esm/PivotViewer/utils/utils.d.ts +1 -0
  611. package/dist/esm/PivotViewer/utils/utils.d.ts.map +1 -0
  612. package/dist/esm/PivotViewer/utils/utils.js.map +1 -1
  613. package/dist/esm/QueryStatus/QueryStatus.js.map +1 -1
  614. package/dist/esm/QueryStatus/resolveQueryStatus.d.ts +1 -0
  615. package/dist/esm/QueryStatus/resolveQueryStatus.d.ts.map +1 -0
  616. package/dist/esm/QueryStatus/resolveQueryStatus.js.map +1 -1
  617. package/dist/esm/SchemaEditor/NameCell.d.ts +1 -0
  618. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
  619. package/dist/esm/SchemaEditor/NameCell.js.map +1 -1
  620. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +1 -0
  621. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
  622. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -1
  623. package/dist/esm/SchemaEditor/TypeCell.d.ts +1 -0
  624. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
  625. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -1
  626. package/dist/esm/SchemaEditor/index.d.ts +1 -0
  627. package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
  628. package/dist/esm/SchemaEditor/schemaHelpers.d.ts +1 -0
  629. package/dist/esm/SchemaEditor/schemaHelpers.d.ts.map +1 -0
  630. package/dist/esm/SchemaEditor/schemaHelpers.js.map +1 -1
  631. package/dist/esm/TimeMachine/EventsView.d.ts +1 -0
  632. package/dist/esm/TimeMachine/EventsView.d.ts.map +1 -0
  633. package/dist/esm/TimeMachine/EventsView.js.map +1 -1
  634. package/dist/esm/TimeMachine/Properties.js.map +1 -1
  635. package/dist/esm/TimeMachine/ReadModelView.d.ts +1 -0
  636. package/dist/esm/TimeMachine/ReadModelView.d.ts.map +1 -0
  637. package/dist/esm/TimeMachine/ReadModelView.js.map +1 -1
  638. package/dist/esm/TimeMachine/TimeMachine.d.ts +1 -0
  639. package/dist/esm/TimeMachine/TimeMachine.d.ts.map +1 -0
  640. package/dist/esm/TimeMachine/TimeMachine.js.map +1 -1
  641. package/dist/esm/TimeMachine/TimeMachineLabels.js.map +1 -1
  642. package/dist/esm/TimeMachine/index.d.ts +1 -0
  643. package/dist/esm/TimeMachine/index.d.ts.map +1 -0
  644. package/dist/esm/TimeMachine/propertiesHelpers.js.map +1 -1
  645. package/dist/esm/TimeMachine/types.js.map +1 -1
  646. package/dist/esm/Toolbar/Toolbar.d.ts +1 -0
  647. package/dist/esm/Toolbar/Toolbar.d.ts.map +1 -0
  648. package/dist/esm/Toolbar/Toolbar.js.map +1 -1
  649. package/dist/esm/Toolbar/ToolbarButton.d.ts +1 -0
  650. package/dist/esm/Toolbar/ToolbarButton.d.ts.map +1 -0
  651. package/dist/esm/Toolbar/ToolbarButton.js.map +1 -1
  652. package/dist/esm/Toolbar/ToolbarContext.js.map +1 -1
  653. package/dist/esm/Toolbar/ToolbarDragContext.js.map +1 -1
  654. package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts +1 -0
  655. package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts.map +1 -0
  656. package/dist/esm/Toolbar/ToolbarFanOutItem.js.map +1 -1
  657. package/dist/esm/Toolbar/ToolbarFolder.d.ts +1 -0
  658. package/dist/esm/Toolbar/ToolbarFolder.d.ts.map +1 -0
  659. package/dist/esm/Toolbar/ToolbarFolder.js.map +1 -1
  660. package/dist/esm/Toolbar/ToolbarFolderContext.js.map +1 -1
  661. package/dist/esm/Toolbar/ToolbarGroup.js.map +1 -1
  662. package/dist/esm/Toolbar/ToolbarItemVisibilityContext.js.map +1 -1
  663. package/dist/esm/Toolbar/ToolbarLayout.js.map +1 -1
  664. package/dist/esm/Toolbar/ToolbarSection.js.map +1 -1
  665. package/dist/esm/Toolbar/ToolbarSeparator.js.map +1 -1
  666. package/dist/esm/Toolbar/ToolbarSlot.js.map +1 -1
  667. package/dist/esm/Toolbar/index.d.ts +1 -0
  668. package/dist/esm/Toolbar/index.d.ts.map +1 -0
  669. package/dist/esm/configuration/CratisComponentsContext.d.ts +1 -0
  670. package/dist/esm/configuration/CratisComponentsContext.d.ts.map +1 -0
  671. package/dist/esm/configuration/CratisComponentsContext.js.map +1 -1
  672. package/dist/esm/configuration/CratisComponentsDefaults.d.ts +1 -0
  673. package/dist/esm/configuration/CratisComponentsDefaults.d.ts.map +1 -0
  674. package/dist/esm/configuration/CratisComponentsDefaults.js.map +1 -1
  675. package/dist/esm/configuration/useCratisIcon.d.ts +1 -0
  676. package/dist/esm/configuration/useCratisIcon.d.ts.map +1 -0
  677. package/dist/esm/configuration/useCratisIcon.js.map +1 -1
  678. package/dist/esm/index.d.ts +1 -0
  679. package/dist/esm/index.d.ts.map +1 -0
  680. package/dist/esm/renderer/DialogStackContext.js.map +1 -1
  681. package/dist/esm/renderer/RendererContext.d.ts +1 -0
  682. package/dist/esm/renderer/RendererContext.d.ts.map +1 -0
  683. package/dist/esm/renderer/RendererContext.js.map +1 -1
  684. package/dist/esm/renderer/RendererScope.d.ts +1 -0
  685. package/dist/esm/renderer/RendererScope.d.ts.map +1 -0
  686. package/dist/esm/renderer/RendererScope.js.map +1 -1
  687. package/dist/esm/renderer/builtin/index.js.map +1 -1
  688. package/dist/esm/renderer/capabilities.js.map +1 -1
  689. package/dist/esm/renderer/coreSlots.d.ts +1 -0
  690. package/dist/esm/renderer/coreSlots.d.ts.map +1 -0
  691. package/dist/esm/renderer/coreSlots.js.map +1 -1
  692. package/dist/esm/renderer/dialogStack.js.map +1 -1
  693. package/dist/esm/renderer/errors.d.ts +1 -0
  694. package/dist/esm/renderer/errors.d.ts.map +1 -0
  695. package/dist/esm/renderer/errors.js.map +1 -1
  696. package/dist/esm/renderer/index.d.ts +1 -0
  697. package/dist/esm/renderer/index.d.ts.map +1 -0
  698. package/dist/esm/renderer/manifest.d.ts +1 -0
  699. package/dist/esm/renderer/manifest.d.ts.map +1 -0
  700. package/dist/esm/renderer/manifest.js.map +1 -1
  701. package/dist/esm/renderer/overlayEnvironment.js.map +1 -1
  702. package/dist/esm/renderer/presentation.d.ts +1 -0
  703. package/dist/esm/renderer/presentation.d.ts.map +1 -0
  704. package/dist/esm/renderer/presentation.js.map +1 -1
  705. package/dist/esm/renderer/renderSlot.js.map +1 -1
  706. package/dist/esm/renderer/resolve.d.ts +1 -0
  707. package/dist/esm/renderer/resolve.d.ts.map +1 -0
  708. package/dist/esm/renderer/resolve.js.map +1 -1
  709. package/dist/esm/renderer/slots.js.map +1 -1
  710. package/dist/esm/types/ChangeHandler.d.ts +1 -0
  711. package/dist/esm/types/ChangeHandler.d.ts.map +1 -0
  712. package/dist/esm/types/ChangeHandler.js.map +1 -1
  713. package/dist/esm/types/ChangeMeta.js.map +1 -1
  714. package/dist/esm/types/ExactPartKeys.js.map +1 -1
  715. package/dist/esm/types/JsonSchema.js.map +1 -1
  716. package/dist/esm/types/TypeFormat.js.map +1 -1
  717. package/dist/esm/types/index.d.ts +1 -0
  718. package/dist/esm/types/index.d.ts.map +1 -0
  719. package/dist/esm/types/parts.js.map +1 -1
  720. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessageAction.js","sourceRoot":"","sources":["../../../Chat/ChatMessageAction.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
1
+ {"version":3,"file":"ChatMessageAction.js","sourceRoot":"","sources":["../../../Chat/ChatMessageAction.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { ReactNode } from 'react';\nimport type { ChatMessage } from './ChatMessage';\n\n/**\n * An action a host offers on messages — shown as a button on every message it is available for.\n * The library ships no actions of its own; whatever a message can be turned into (a task, an\n * issue, a document) is the host's business, expressed as descriptors like this one.\n * @typeParam TMessage The host's message type, so {@link onInvoke} receives the full message back.\n */\nexport interface ChatMessageAction<TMessage extends ChatMessage = ChatMessage> {\n /** Identifies the action among its siblings — used as the rendering key. */\n id: string;\n\n /** The label, shown as the button's tooltip and accessible name. */\n label: string;\n\n /** The icon — a CSS class name for an icon font the host provides, or a ready element. */\n icon: string | ReactNode;\n\n /**\n * Decides which messages the action is offered on. Omit to offer it on all of them.\n * @param message The message the action would apply to.\n * @returns True when the action should be offered.\n */\n isAvailable?: (message: TMessage) => boolean;\n\n /**\n * Invoked when the action is picked on a message.\n * @param message The message it was picked on.\n */\n onInvoke: (message: TMessage) => void;\n}\n"]}
@@ -16,3 +16,4 @@ export interface ChatMessageBodyProps {
16
16
  * apart and the host's own CSS can hang further behavior off them.
17
17
  */
18
18
  export declare const ChatMessageBody: ({ body, mentions }: ChatMessageBodyProps) => React.JSX.Element;
19
+ //# sourceMappingURL=ChatMessageBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageBody.d.ts","sourceRoot":"","sources":["../../../Chat/ChatMessageBody.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IAEb,yFAAyF;IACzF,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,uBAAwB,oBAAoB,sBAgBvE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessageBody.js","sources":["../../../Chat/ChatMessageBody.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAwBO,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAwB,MACpEA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,2BAA2B,EAAA,QAAA,EACnC,eAAe,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KACtD,OAAO,CAAC,OAAO,IACXA,GAAA,CAAA,MAAA,EAAA,EAEI,SAAS,EAAC,8BAA8B,EAAA,WAAA,EAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,EAAA,QAAA,EAE9B,OAAO,CAAC,IAAI,IAJR,KAAK,CAKP,KAEPA,IAAC,KAAK,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAc,OAAO,CAAC,IAAI,IAApB,KAAK,CAAiC,CAC9D,CACJ,EAAA,CACD;;"}
1
+ {"version":3,"file":"ChatMessageBody.js","sources":["../../../Chat/ChatMessageBody.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React from 'react';\nimport { mentionSegments } from './Kit/Mentions';\nimport type { ChatMention } from './ChatMention';\n\n/**\n * Props for {@link ChatMessageBody}.\n */\nexport interface ChatMessageBodyProps {\n /** The message text. Mentions appear in it as plain `@Name` text. */\n body: string;\n\n /** Who the body mentions — these render distinctly. Omit for a body with no mentions. */\n mentions?: ChatMention[];\n}\n\n/**\n * The text of one message. The body itself is plain text — including its `@Name` mentions — and\n * this component is what makes the mentions *look* like mentions: each known one renders as its\n * own element, marked with who it addresses, so a person and an agent mention can be styled\n * apart and the host's own CSS can hang further behavior off them.\n */\nexport const ChatMessageBody = ({ body, mentions }: ChatMessageBodyProps) => (\n <p className='cratis-chat-message__body'>\n {mentionSegments(body, mentions ?? []).map((segment, index) =>\n segment.mention ? (\n <span\n key={index}\n className='cratis-chat-message__mention'\n data-kind={segment.mention.kind}\n >\n {segment.text}\n </span>\n ) : (\n <React.Fragment key={index}>{segment.text}</React.Fragment>\n ),\n )}\n </p>\n);\n"],"names":["_jsx"],"mappings":";;;;;AAwBO,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAwB,MACpEA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,2BAA2B,EAAA,QAAA,EACnC,eAAe,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KACtD,OAAO,CAAC,OAAO,IACXA,GAAA,CAAA,MAAA,EAAA,EAEI,SAAS,EAAC,8BAA8B,EAAA,WAAA,EAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,EAAA,QAAA,EAE9B,OAAO,CAAC,IAAI,IAJR,KAAK,CAKP,KAEPA,IAAC,KAAK,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAc,OAAO,CAAC,IAAI,IAApB,KAAK,CAAiC,CAC9D,CACJ,EAAA,CACD;;"}
@@ -140,3 +140,4 @@ export interface ChatSidebarProps<TMessage extends ChatMessage = ChatMessage, TT
140
140
  */
141
141
  export declare const ChatSidebar: <TMessage extends ChatMessage = ChatMessage, TTopic extends ChatTopic = ChatTopic>({ open, onClose, topics, messages, topicsStatus, messagesStatus, selectedTopicId, onTopicSelected, onStartTopic, onSendMessage, onRequestTopicName, isTopicUnnamed, position, width, modal, labels, className, pt, ...conversation }: ChatSidebarProps<TMessage, TTopic>) => false | import("react").JSX.Element | null;
142
142
  export {};
143
+ //# sourceMappingURL=ChatSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSidebar.d.ts","sourceRoot":"","sources":["../../../Chat/ChatSidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSidebar.js","sources":["../../../Chat/ChatSidebar.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","isTopicUnnamed","defaultIsTopicUnnamed","_Fragment"],"mappings":";;;;;;;;;;;;AA+LA,MAAM,UAAU,GAAG,CAAC,GAAG,MAAiC,KACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAEpC,MAAM,QAAQ,GAAG,OACbA,IAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EAAA,aAAA,EACL,MAAM,EAAA,QAAA,EAAA,CAElBC,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,EACvCA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,iBAAiB,EAAA,CAAG,CAAA,EAAA,CACnC,CACT;AAYM,MAAM,WAAW,GAAG,CAGzB,EACE,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,kBAAkB,kBAClBC,gBAAc,EACd,QAAQ,GAAG,OAAO,EAClB,KAAK,GAAG,OAAO,EACf,KAAK,GAAG,KAAK,EACb,MAAM,EACN,SAAS,EACT,EAAE,EACF,GAAG,YAAY,EACkB,KAAI;AACrC,IAAA,MAAM,IAAI,GAAG,aAAa,EAAE;AAC5B,IAAA,MAAM,kBAAkB,GAAG,8BAA8B,EAAE;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC7C,IAAA,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAEhD,QAAQ,CAAC;IAEX,SAAS,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACrC,SAAS,CAAC,MAAK;QACX,gBAAgB,CAAC,CAAC,KAAK,KACnB,IAAI,GAAG,UAAU,GAAG,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAChE;AACL,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACV,MAAM,eAAe,GAAG,CAAC,KAAK,IAAI,OAAO,IAAI,aAAa,KAAK;AAC3D,UAAE,kBAAkB,CAAC,YAAY;UAC/B,IAAI;IACV,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,aAAa,KAAK,UAAU,IAAI,aAAa,KAAK,SAAS;YAAE;AACjE,QAAA,IAAI,CAAC,KAAK,KACN,MAAM,CAAC,UAAU,GAAG,kCAAkC,CAAC,CAAC,OAAO;AAC/D,YAAA,aAAa,CAAC,OAAO,EAAE,aAAa,IAAI,CAAC,MAAM,KAAK,CAAC,CACxD,EAAE;AACC,YAAA,gBAAgB,CAAC,aAAa,KAAK,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;YAClE;QACJ;AACA,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC5B,YAAA,gBAAgB,CAAC,aAAa,KAAK,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;QACtE,CAAC,EAAE,GAAG,CAAC;AACP,QAAA,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;IACtC,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAE3C,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,EAEzD;AACH,IAAA,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS;IAClD,MAAM,WAAW,GAAG;AAChB,WAAG,eAAe,IAAI,SAAS;UAC7B,kBAAkB;AACxB,IAAA,MAAM,SAAS,GACX,WAAW,KAAK;AACZ,UAAE;AACF,UAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;AAC3E,IAAA,MAAM,OAAO,GAAGA,gBAAc,IAAIC,cAAqB;AAEvD,IAAA,MAAM,MAAM,GAAG,CAAC,OAAmC,EAAE,KAAc,KAAI;QACnE,IAAI,CAAC,YAAY,EAAE;YACf,qBAAqB,CAAC,OAAO,CAAC;QAClC;AACA,QAAA,eAAe,GACX,OAAO,EACP,KAAK;aACA,OAAO,KAAK;AACT,kBAAE;kBACA,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,KAClB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAC5C,CAAC,CACf;AACL,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,YAAW;AAC1B,QAAA,MAAM,OAAO,GAAG,MAAM,YAAY,IAAI;AACtC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,MAAM,CAAC,OAAO,CAAC;QACnB;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GACd,WAAW,KAAK;AACZ,UAAE;AACF,UAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KACpB,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CACnD;AAEX,IAAA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAuB,KAAI;QACnD,IAAI,WAAW,KAAK,SAAS;YAAE;AAC/B,QAAA,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC1C,QAAA,IACI,SAAS;YACT,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,EACjE;AACE,YAAA,kBAAkB,GAAG,SAAS,EAAE,IAAI,CAAC;QACzC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,KAAK,GACP,WAAW,KAAK;AACZ,WAAG,MAAM,EAAE,MAAM,IAAI,QAAQ;AAC7B,UAAE,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS;cAC7B,SAAS,CAAC;eACT,MAAM,EAAE,YAAY,IAAI,WAAW,CAAC;AACjD,IAAA,MAAM,cAAc,GAChB,WAAW,KAAK,SAAS,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnE,MAAM,KAAK,IACPH,IAAA,CAAAI,QAAA,EAAA,EAAA,QAAA,EAAA,CACIJ,oBACQ,EAAE,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,CACjB,6BAA6B,EAC7B,EAAE,EAAE,MAAM,EAAE,SAAS,CACxB,EAAA,kBAAA,EACgB,QAAQ,EAAA,QAAA,EAAA,CAExB,WAAW,KAAK,SAAS,KACtBC,GAAA,CAAA,QAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,UAAU,CACjB,2BAA2B,EAC3B,EAAE,EAAE,IAAI,EAAE,SAAS,CACtB,sBACgB,MAAM,EACvB,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,gBAAgB,EAAA,YAAA,EAC3B,MAAM,EAAE,IAAI,IAAI,gBAAgB,EAC5C,OAAO,EAAE,MAAM,MAAM,CAAC,SAAS,CAAC,EAAA,QAAA,EAEhCA,IAAC,QAAQ,EAAA,EAAA,CAAG,GACP,CACZ,EACDA,eACQ,EAAE,EAAE,KAAK,EACb,SAAS,EAAE,UAAU,CACjB,4BAA4B,EAC5B;AACI,8BAAE;8BACA,SAAS,EACf,EAAE,EAAE,KAAK,EAAE,SAAS,CACvB,EAAA,kBAAA,EACgB,OAAO,EAAA,QAAA,EAEvB,KAAK,GACL,EACLA,GAAA,CAAA,QAAA,EAAA,EAAA,GACQ,EAAE,EAAE,KAAK,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,UAAU,CACjB,4BAA4B,EAC5B,EAAE,EAAE,KAAK,EAAE,SAAS,CACvB,EAAA,kBAAA,EACgB,OAAO,EAAA,YAAA,EACZ,MAAM,EAAE,KAAK,IAAI,YAAY,EACzC,OAAO,EAAE,OAAO,EAAA,QAAA,EAEhBA,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAA,QAAA,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAA,CAAQ,GAC/C,CAAA,EAAA,CACJ,EACTA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,OAAO,EACf,SAAS,EAAE,UAAU,CACjB,8BAA8B,EAC9B,EAAE,EAAE,OAAO,EAAE,SAAS,CACzB,EAAA,kBAAA,EACgB,SAAS,EAAA,QAAA,EAEzB,WAAW,KAAK,SAAS,IACtBA,IAAC,aAAa,EAAA,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAC1C,OAAO,EACH;0BACM,MAAK;4BACD,KAAK,UAAU,EAAE;wBACrB;0BACA,SAAS,EAEnB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,YAAY,EAAE,YAAY,CAAC,YAAY,EACvC,cAAc,EAAEC,gBAAc,EAC9B,cAAc,EAAE,YAAY,CAAC,cAAc,EAC3C,MAAM,EAAE;wBACJ,YAAY,EAAE,MAAM,EAAE,YAAY;wBAClC,GAAG,MAAM,EAAE,SAAS;AACvB,qBAAA,EAAA,CACH,KAEFD,GAAA,CAAC,gBAAgB,EAAA,EAAA,GACT,YAAY,EAChB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,IAAI,EACnB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAA,CAC9B,CACL,EAAA,CACC,CAAA,EAAA,CACP,CACN;IAED,OAAO,KAAK,IACRA,GAAA,CAAC,YAAY,OACL,EAAE,EAAE,QAAQ,EAChB,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,CAAC,SAAS,KAAI;AACxB,YAAA,IAAI,CAAC,SAAS;AAAE,gBAAA,OAAO,EAAE;QAC7B,CAAC,EACD,aAAa,EAAE,KAAK,EACpB,yBAAyB,EAAE,CAAC,KAAK,EACjC,SAAS,EAAE,UAAU,CACjB,+BAA+B,EAC/B,EAAE,EAAE,QAAQ,EAAE,SAAS,CAC1B,EAAA,kBAAA,EACgB,UAAU,EAAA,YAAA,EACf,KAAK,eACN,IAAI,IAAI,SAAS,EAAA,eAAA,EACb,WAAW,KAAK,SAAS,IAAI,SAAS,EAAA,QAAA,EAErDA,GAAA,CAAC,KAAK,EAAA,EAAA,GACE,EAAE,EAAE,IAAI,EACZ,SAAS,EAAE,UAAU,CACjB,qBAAqB,EACrB,EAAE,EAAE,IAAI,EAAE,SAAS,EACnB,SAAS,CACZ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAA,kBAAA,EACnB,MAAM,mBACR,QAAQ,EAAA,WAAA,EACZ,IAAI,IAAI,SAAS,mBACb,WAAW,KAAK,SAAS,IAAI,SAAS,YAEpD,KAAK,EAAA,CACF,GACG,KAMf,aAAa,KAAK,QAAQ;QAC1B,eAAe;QACf,YAAY,CACRA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,QAAQ,EAChB,SAAS,EAAE,UAAU,CACjB,+BAA+B,EAC/B,EAAE,EAAE,QAAQ,EAAE,SAAS,CAC1B,EAAA,kBAAA,EACgB,UAAU,EAAA,YAAA,EACf,KAAK,EAAA,WAAA,EACN,IAAI,IAAI,SAAS,EAAA,eAAA,EACb,WAAW,KAAK,SAAS,IAAI,SAAS,EAAA,eAAA,EACtC,aAAa,KAAK,UAAU,IAAI,SAAS,EAAA,cAAA,EAC1C,aAAa,KAAK,SAAS,IAAI,SAAS,EAAA,QAAA,EAEtDA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,UAAU,CACjB,qBAAqB,EACrB,EAAE,EAAE,IAAI,EAAE,SAAS,EACnB,SAAS,CACZ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAA,kBAAA,EACnB,MAAM,EAAA,eAAA,EACR,QAAQ,eACZ,IAAI,IAAI,SAAS,EAAA,eAAA,EACb,WAAW,KAAK,SAAS,IAAI,SAAS,EAAA,eAAA,EACtC,aAAa,KAAK,UAAU,IAAI,SAAS,EAAA,cAAA,EAC1C,aAAa,KAAK,SAAS,IAAI,SAAS,EACtD,cAAc,EAAE,CAAC,KAAK,KAAI;oBACtB,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,KAAK,CAAC;AACjC,oBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa;wBAAE;AAC1C,oBAAA,gBAAgB,CAAC,CAAC,KAAK,KACnB,KAAK,KAAK,UAAU,GAAG,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,QAAQ,GAAG,KAAK,CACzE;gBACL,CAAC,EAAA,QAAA,EAEA,KAAK,EAAA,CACJ,EAAA,CACJ,EACN,eAAe,CAClB,CACJ;AACL;;"}
1
+ {"version":3,"file":"ChatSidebar.js","sources":["../../../Chat/ChatSidebar.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes, HTMLAttributes } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Modal, ModalOverlay } from 'react-aria-components';\nimport type { ChatConversationLabels, ChatConversationProps } from './ChatConversation';\nimport { ChatConversation } from './ChatConversation';\nimport { sameChatIdentifier, type ChatIdentifier } from './ChatIdentifier';\nimport type { ChatMention } from './ChatMention';\nimport type { ChatMessage } from './ChatMessage';\nimport type { ChatTopic } from './ChatTopic';\nimport type { ChatStatus } from './ChatStatus';\nimport type { ChatTopicListLabels } from './ChatTopicList';\nimport { ChatTopicList } from './ChatTopicList';\nimport { isTopicUnnamed as defaultIsTopicUnnamed } from './isTopicUnnamed';\nimport { shouldRequestTopicName } from './shouldRequestTopicName';\nimport { useCratisIcon } from '../configuration/useCratisIcon';\nimport { unstable_useOverlayEnvironment } from '../renderer/RendererContext';\nimport type { ExactPartKeys } from '../types/ExactPartKeys';\nimport type { PartsOf } from '../types/parts';\n\ntype ChatSidebarPartAttributes<TElement> = HTMLAttributes<TElement> & {\n [attribute: `data-${string}`]: string | number | boolean | undefined;\n};\n\ntype ChatSidebarButtonAttributes = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onClick' | 'type'\n>;\n\n/** Stable Cratis-owned parts for styling a {@link ChatSidebar}. */\nexport interface ChatSidebarParts {\n /** Viewport overlay layer the sidebar portals into — only paints/blocks when {@link ChatSidebarProps.modal} is true. */\n backdrop?: ChatSidebarPartAttributes<HTMLDivElement>;\n /** The sidebar panel itself. */\n root?: ChatSidebarPartAttributes<HTMLDivElement>;\n /** Header containing the back affordance, title, and close button. */\n header?: ChatSidebarPartAttributes<HTMLElement>;\n /** The topic list title, or the open topic's name. */\n title?: ChatSidebarPartAttributes<HTMLHeadingElement>;\n /** Back-to-topics button, present only while a topic is open. */\n back?: ChatSidebarButtonAttributes;\n /** Close button. */\n close?: ChatSidebarButtonAttributes;\n /** The topic list / conversation content region. */\n content?: ChatSidebarPartAttributes<HTMLDivElement>;\n}\n\nconst chatSidebarPartsMatchManifest: ExactPartKeys<\n ChatSidebarParts,\n PartsOf<'ChatSidebar'>\n> = true;\nvoid chatSidebarPartsMatchManifest;\n\n/** Overrides for every label the {@link ChatSidebar} and its children render. Any field left\n * unset falls back to a literal English default. */\nexport interface ChatSidebarLabels {\n /** The sidebar's title while the topic list is showing. Defaults to `'Topics'`. */\n topics?: string;\n\n /** Placeholder title for a topic that has not been named yet. Defaults to `'New topic'`. */\n unnamedTopic?: string;\n\n /** Tooltip/accessible label for the back-to-topics button. Defaults to `'Back to topics'`. */\n back?: string;\n\n /** Accessible label for the close button. Defaults to `'Close chat'`. */\n close?: string;\n\n /** Labels forwarded to the {@link ChatTopicList}. */\n topicList?: ChatTopicListLabels;\n\n /** Labels forwarded to the {@link ChatConversation}. */\n conversation?: ChatConversationLabels;\n}\n\n/**\n * Props for {@link ChatSidebar}.\n * @typeParam TMessage The host's message type — anything extending {@link ChatMessage}.\n * @typeParam TTopic The host's topic type — anything extending {@link ChatTopic}.\n */\nexport interface ChatSidebarProps<\n TMessage extends ChatMessage = ChatMessage,\n TTopic extends ChatTopic = ChatTopic,\n> extends Omit<\n ChatConversationProps<TMessage>,\n 'messages' | 'onSendMessage' | 'labels' | 'className' | 'status'\n> {\n /** Whether the sidebar is open. */\n open: boolean;\n\n /** Invoked when the sidebar asks to close — the host owns {@link open}, so closing means the host flips it. */\n onClose: () => void;\n\n /**\n * The topics, in any order. Hand this the array a live (observable) query delivers and the\n * sidebar re-renders as it changes.\n */\n topics: TTopic[];\n\n /**\n * The messages — either the whole chat or just the open topic's; the sidebar shows those of\n * the open topic by matching on `topicId` either way. Hand this the array a live\n * (observable) query delivers and the conversation re-renders as it changes.\n */\n messages: TMessage[];\n\n /** Topic-list query display state. Defaults to ready when omitted. */\n topicsStatus?: ChatStatus;\n\n /** Conversation query display state. Defaults to ready when omitted. */\n messagesStatus?: ChatStatus;\n\n /**\n * The open topic, for hosts that own the selection themselves: an identifier opens that\n * topic's conversation, `null` shows the topic list, and leaving the prop unset lets the\n * sidebar keep the selection internally.\n */\n selectedTopicId?: ChatIdentifier | null;\n\n /**\n * Invoked when the open topic changes — a topic was opened (or just started), or the person\n * went back to the list.\n * @param topicId The identifier of the topic now open, or undefined for the list.\n * @param topic The topic itself, when it is known in {@link topics}.\n */\n onTopicSelected?: (topicId: ChatIdentifier | undefined, topic?: TTopic) => void;\n\n /**\n * Invoked when a new topic is asked for. Creating the topic is the host's business; answer\n * with its identifier (directly or through a promise) and the sidebar opens it, ready for\n * the first message. Omit to leave the new-topic affordance off.\n * @returns The identifier of the topic that was started, when the host created one.\n */\n onStartTopic?: () => ChatIdentifier | undefined | Promise<ChatIdentifier | undefined>;\n\n /**\n * Invoked when a message is sent, with the topic it belongs to, the trimmed body and who it\n * mentions. Everything else about persisting the message is the host's business.\n * @param topicId The identifier of the topic the message was sent in.\n * @param body The message text, mentions written into it as plain `@Name`.\n * @param mentions Who the body mentions.\n */\n onSendMessage: (\n topicId: ChatIdentifier,\n body: string,\n mentions: ChatMention[],\n ) => void;\n\n /**\n * Invoked when the very first message is sent in a topic that has no name yet — the host\n * asks its LLM (or whatever it prefers) for a good name and supplies it through the topic\n * data; until then the topic renders its pending placeholder. Not invoked again for later\n * messages, and never for a topic that already has a name.\n * @param topic The topic that needs a name.\n * @param firstMessageBody The message to derive the name from.\n */\n onRequestTopicName?: (topic: TTopic, firstMessageBody: string) => void;\n\n /**\n * Decides whether a topic counts as unnamed — see {@link ChatTopicListProps.isTopicUnnamed}.\n * @param topic The topic to check.\n * @returns True when the topic has no usable name yet.\n */\n isTopicUnnamed?: (topic: TTopic) => boolean;\n\n /** Which edge the sidebar opens from. Defaults to `'right'`. */\n position?: 'left' | 'right';\n\n /** The sidebar's width, any CSS length. Defaults to `'24rem'`. */\n width?: string;\n\n /**\n * Whether the sidebar is modal — a backdrop behind it, and dismissing by Escape or clicking\n * outside. Defaults to false: a chat lives *next to* the work, so it should not block it —\n * the background stays visible and interactive, and only the close/back affordances dismiss it.\n */\n modal?: boolean;\n\n /** Overrides for every label rendered. Unset fields fall back to literal English defaults. */\n labels?: ChatSidebarLabels;\n\n /** Additional class name for the sidebar's panel element. */\n className?: string;\n\n /** Cratis-owned per-part attributes. */\n pt?: ChatSidebarParts;\n}\n\nconst classNames = (...values: Array<string | undefined>) =>\n values.filter(Boolean).join(' ');\n\nconst BackIcon = () => (\n <svg\n width='14'\n height='14'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2.5'\n aria-hidden='true'\n >\n <line x1='19' y1='12' x2='5' y2='12' />\n <polyline points='12 19 5 12 12 5' />\n </svg>\n);\n\n/**\n * A topic-based chat in a sidebar next to the view, built on Components' own overlay primitives\n * (React Aria internally, for accessible dismissal and focus handling). It opens on the topic\n * list; picking a topic (or starting a new one) slides into that conversation, with a back\n * affordance to the list. Everything about *data* is the host's: topics and messages come in as\n * arrays (hand it live query data and it stays current), sends and new topics go out as\n * callbacks, and when the first message lands in an unnamed topic the sidebar asks the host for\n * a name through {@link ChatSidebarProps.onRequestTopicName | onRequestTopicName} — rendering a\n * pending placeholder until the name arrives.\n */\nexport const ChatSidebar = <\n TMessage extends ChatMessage = ChatMessage,\n TTopic extends ChatTopic = ChatTopic,\n>({\n open,\n onClose,\n topics,\n messages,\n topicsStatus,\n messagesStatus,\n selectedTopicId,\n onTopicSelected,\n onStartTopic,\n onSendMessage,\n onRequestTopicName,\n isTopicUnnamed,\n position = 'right',\n width = '24rem',\n modal = false,\n labels,\n className,\n pt,\n ...conversation\n}: ChatSidebarProps<TMessage, TTopic>) => {\n const icon = useCratisIcon();\n const overlayEnvironment = unstable_useOverlayEnvironment();\n const [mounted, setMounted] = useState(false);\n const nonModalPanel = useRef<HTMLDivElement>(null);\n const [nonModalPhase, setNonModalPhase] = useState<\n 'closed' | 'entering' | 'open' | 'exiting'\n >('closed');\n\n useEffect(() => setMounted(true), []);\n useEffect(() => {\n setNonModalPhase((phase) =>\n open ? 'entering' : phase === 'closed' ? 'closed' : 'exiting',\n );\n }, [open]);\n const portalContainer = !modal && mounted && nonModalPhase !== 'closed'\n ? overlayEnvironment.getContainer()\n : null;\n useEffect(() => {\n if (nonModalPhase !== 'entering' && nonModalPhase !== 'exiting') return;\n if (!modal && (\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ||\n nonModalPanel.current?.getAnimations?.().length === 0\n )) {\n setNonModalPhase(nonModalPhase === 'entering' ? 'open' : 'closed');\n return;\n }\n const timeout = setTimeout(() => {\n setNonModalPhase(nonModalPhase === 'entering' ? 'open' : 'closed');\n }, 250);\n return () => clearTimeout(timeout);\n }, [modal, nonModalPhase, portalContainer]);\n\n const [internalSelectedId, setInternalSelectedId] = useState<\n ChatIdentifier | undefined\n >();\n const isControlled = selectedTopicId !== undefined;\n const openTopicId = isControlled\n ? (selectedTopicId ?? undefined)\n : internalSelectedId;\n const openTopic =\n openTopicId === undefined\n ? undefined\n : topics.find((topic) => sameChatIdentifier(topic.id, openTopicId));\n const unnamed = isTopicUnnamed ?? defaultIsTopicUnnamed;\n\n const select = (topicId: ChatIdentifier | undefined, topic?: TTopic) => {\n if (!isControlled) {\n setInternalSelectedId(topicId);\n }\n onTopicSelected?.(\n topicId,\n topic ??\n (topicId === undefined\n ? undefined\n : topics.find((candidate) =>\n sameChatIdentifier(candidate.id, topicId),\n )),\n );\n };\n\n const startTopic = async () => {\n const topicId = await onStartTopic?.();\n if (topicId !== undefined) {\n select(topicId);\n }\n };\n\n const openMessages =\n openTopicId === undefined\n ? []\n : messages.filter((message) =>\n sameChatIdentifier(message.topicId, openTopicId),\n );\n\n const send = (body: string, mentions: ChatMention[]) => {\n if (openTopicId === undefined) return;\n onSendMessage(openTopicId, body, mentions);\n if (\n openTopic &&\n shouldRequestTopicName(unnamed(openTopic), openMessages.length)\n ) {\n onRequestTopicName?.(openTopic, body);\n }\n };\n\n const title =\n openTopicId === undefined\n ? (labels?.topics ?? 'Topics')\n : openTopic && !unnamed(openTopic)\n ? openTopic.name\n : (labels?.unnamedTopic ?? 'New topic');\n const titleIsPending =\n openTopicId !== undefined && (!openTopic || unnamed(openTopic));\n\n const panel = (\n <>\n <header\n {...pt?.header}\n className={classNames(\n 'cratis-chat-sidebar__header',\n pt?.header?.className,\n )}\n data-cratis-part='header'\n >\n {openTopicId !== undefined && (\n <button\n {...pt?.back}\n type='button'\n className={classNames(\n 'cratis-chat-sidebar__back',\n pt?.back?.className,\n )}\n data-cratis-part='back'\n title={labels?.back ?? 'Back to topics'}\n aria-label={labels?.back ?? 'Back to topics'}\n onClick={() => select(undefined)}\n >\n <BackIcon />\n </button>\n )}\n <h2\n {...pt?.title}\n className={classNames(\n 'cratis-chat-sidebar__title',\n titleIsPending\n ? 'cratis-chat-sidebar__title--pending'\n : undefined,\n pt?.title?.className,\n )}\n data-cratis-part='title'\n >\n {title}\n </h2>\n <button\n {...pt?.close}\n type='button'\n className={classNames(\n 'cratis-chat-sidebar__close',\n pt?.close?.className,\n )}\n data-cratis-part='close'\n aria-label={labels?.close ?? 'Close chat'}\n onClick={onClose}\n >\n <span aria-hidden='true'>{icon('close', '×')}</span>\n </button>\n </header>\n <div\n {...pt?.content}\n className={classNames(\n 'cratis-chat-sidebar__content',\n pt?.content?.className,\n )}\n data-cratis-part='content'\n >\n {openTopicId === undefined ? (\n <ChatTopicList<TTopic>\n topics={topics}\n status={topicsStatus}\n onOpen={(topic) => select(topic.id, topic)}\n onStart={\n onStartTopic\n ? () => {\n void startTopic();\n }\n : undefined\n }\n authorOf={conversation.authorOf}\n renderAvatar={conversation.renderAvatar}\n isTopicUnnamed={isTopicUnnamed}\n buildAvatarUrl={conversation.buildAvatarUrl}\n labels={{\n unnamedTopic: labels?.unnamedTopic,\n ...labels?.topicList,\n }}\n />\n ) : (\n <ChatConversation<TMessage>\n {...conversation}\n messages={openMessages}\n status={messagesStatus}\n onSendMessage={send}\n labels={labels?.conversation}\n />\n )}\n </div>\n </>\n );\n\n return modal ? (\n <ModalOverlay\n {...pt?.backdrop}\n isOpen={open}\n onOpenChange={(openState) => {\n if (!openState) onClose();\n }}\n isDismissable={modal}\n isKeyboardDismissDisabled={!modal}\n className={classNames(\n 'cratis-chat-sidebar__backdrop',\n pt?.backdrop?.className,\n )}\n data-cratis-part='backdrop'\n data-modal={modal}\n data-open={open || undefined}\n data-selected={openTopicId !== undefined || undefined}\n >\n <Modal\n {...pt?.root}\n className={classNames(\n 'cratis-chat-sidebar',\n pt?.root?.className,\n className,\n )}\n style={{ width, ...pt?.root?.style }}\n data-cratis-part='root'\n data-position={position}\n data-open={open || undefined}\n data-selected={openTopicId !== undefined || undefined}\n >\n {panel}\n </Modal>\n </ModalOverlay>\n ) : (\n // Non-modal: a chat lives *next to* the work, so the background must stay visible and\n // interactive. React Aria's Modal blocks its backdrop by design (its dismissal props only\n // gate how it closes, never whether it intercepts), so the default is a plain portaled\n // layer with no dismissal behavior at all — only the close/back affordances dismiss it.\n nonModalPhase !== 'closed' &&\n portalContainer &&\n createPortal(\n <div\n {...pt?.backdrop}\n className={classNames(\n 'cratis-chat-sidebar__backdrop',\n pt?.backdrop?.className,\n )}\n data-cratis-part='backdrop'\n data-modal={false}\n data-open={open || undefined}\n data-selected={openTopicId !== undefined || undefined}\n data-entering={nonModalPhase === 'entering' || undefined}\n data-exiting={nonModalPhase === 'exiting' || undefined}\n >\n <div\n {...pt?.root}\n ref={nonModalPanel}\n className={classNames(\n 'cratis-chat-sidebar',\n pt?.root?.className,\n className,\n )}\n style={{ width, ...pt?.root?.style }}\n data-cratis-part='root'\n data-position={position}\n data-open={open || undefined}\n data-selected={openTopicId !== undefined || undefined}\n data-entering={nonModalPhase === 'entering' || undefined}\n data-exiting={nonModalPhase === 'exiting' || undefined}\n onAnimationEnd={(event) => {\n pt?.root?.onAnimationEnd?.(event);\n if (event.target !== event.currentTarget) return;\n setNonModalPhase((phase) =>\n phase === 'entering' ? 'open' : phase === 'exiting' ? 'closed' : phase,\n );\n }}\n >\n {panel}\n </div>\n </div>,\n portalContainer,\n )\n );\n};\n"],"names":["_jsxs","_jsx","isTopicUnnamed","defaultIsTopicUnnamed","_Fragment"],"mappings":"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"}
@@ -37,3 +37,4 @@ export interface ChatSidebarForObservableQueriesProps<TMessage extends ChatMessa
37
37
  * the same, and a host that prefers to own its subscriptions uses {@link ChatSidebar} directly.
38
38
  */
39
39
  export declare const ChatSidebarForObservableQueries: <TMessage extends ChatMessage, TTopic extends ChatTopic, TTopicsQuery extends IObservableQueryFor<TTopic[], TTopicsArguments>, TMessagesQuery extends IObservableQueryFor<TMessage[], TMessagesArguments>, TTopicsArguments extends object = object, TMessagesArguments extends object = object>({ topicsQuery, topicsArguments, messagesQuery, messagesArguments, onTopicSelected, ...sidebar }: ChatSidebarForObservableQueriesProps<TMessage, TTopic, TTopicsQuery, TMessagesQuery, TTopicsArguments, TMessagesArguments>) => React.JSX.Element;
40
+ //# sourceMappingURL=ChatSidebarForObservableQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSidebarForObservableQueries.d.ts","sourceRoot":"","sources":["../../../Chat/ChatSidebarForObservableQueries.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAIrF,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,kBAAe,CAAC;AACnE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AA0C7C;;;;;;;;GAQG;AACH,MAAM,WAAW,oCAAoC,CACjD,QAAQ,SAAS,WAAW,EAC5B,MAAM,SAAS,SAAS,EACxB,YAAY,SAAS,mBAAmB,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,EACpE,cAAc,SAAS,mBAAmB,CAAC,QAAQ,EAAE,EAAE,kBAAkB,CAAC,EAC1E,gBAAgB,SAAS,MAAM,GAAG,MAAM,EACxC,kBAAkB,SAAS,MAAM,GAAG,MAAM,CAC5C,SAAQ,IAAI,CACV,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAClC,QAAQ,GAAG,UAAU,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,CAChF;IACG,kDAAkD;IAClD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAEvC,yDAAyD;IACzD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAEnC,iEAAiE;IACjE,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,iBAAiB,EAAE,CACf,OAAO,EAAE,cAAc,GAAG,SAAS,KAClC,kBAAkB,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,GACxC,QAAQ,SAAS,WAAW,EAC5B,MAAM,SAAS,SAAS,EACxB,YAAY,SAAS,mBAAmB,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,EACpE,cAAc,SAAS,mBAAmB,CAAC,QAAQ,EAAE,EAAE,kBAAkB,CAAC,EAC1E,gBAAgB,SAAS,MAAM,GAAG,MAAM,EACxC,kBAAkB,SAAS,MAAM,GAAG,MAAM,mGAQ3C,oCAAoC,CACnC,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,CACrB,sBAyEA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSidebarForObservableQueries.js","sources":["../../../Chat/ChatSidebarForObservableQueries.tsx"],"sourcesContent":[null],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ChatSidebarForObservableQueries.js","sources":["../../../Chat/ChatSidebarForObservableQueries.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React, { useCallback, useEffect, useLayoutEffect, useState } from 'react';\nimport type { Constructor } from '@cratis/fundamentals';\nimport type { IObservableQueryFor, QueryResultWithState } from '@cratis/arc/queries';\nimport { useObservableQuery } from '@cratis/arc.react/queries';\nimport { QueryStatus } from '../QueryStatus/QueryStatus';\nimport { resolveQueryStatus } from '../QueryStatus/resolveQueryStatus';\nimport { ChatSidebar, type ChatSidebarProps } from './ChatSidebar';\nimport { chatIdentifierString, type ChatIdentifier } from './ChatIdentifier';\nimport type { ChatMessage } from './ChatMessage';\nimport type { ChatTopic } from './ChatTopic';\nimport { ChatStatus } from './ChatStatus';\n\nconst chatStatusByQueryStatus: Record<QueryStatus, ChatStatus> = {\n [QueryStatus.Ready]: ChatStatus.Ready,\n [QueryStatus.Loading]: ChatStatus.Loading,\n [QueryStatus.Failed]: ChatStatus.Failed,\n [QueryStatus.Unauthorized]: ChatStatus.Unauthorized,\n};\n\nconst resolveChatStatus = (result: Parameters<typeof resolveQueryStatus>[0]): ChatStatus =>\n chatStatusByQueryStatus[resolveQueryStatus(result)];\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nconst serializeArguments = (args?: object): string => {\n if (!args || Object.keys(args).length === 0) return '';\n // Use Arc's sorted, JSON-serialized argument values as the subscription identity.\n const sorted = Object.keys(args).sort().reduce<Record<string, unknown>>((entries, key) => {\n entries[key] = (args as Record<string, unknown>)[key];\n return entries;\n }, {});\n return JSON.stringify(sorted);\n};\n\nconst KeyedQuerySubscriber = <\n TData,\n TQuery extends IObservableQueryFor<TData, TArguments>,\n TArguments extends object,\n>({\n query, args, queryKey, onResult,\n}: {\n query: Constructor<TQuery>;\n args?: TArguments;\n queryKey: string;\n onResult: (queryKey: string, result: QueryResultWithState<TData>) => void;\n}) => {\n const [result] = useObservableQuery<TData, TQuery, TArguments>(query, args);\n useIsomorphicLayoutEffect(() => { onResult(queryKey, result); }, [queryKey, result, onResult]);\n return null;\n};\n\n/**\n * Props for {@link ChatSidebarForObservableQueries}.\n * @typeParam TMessage The message type the messages query returns — anything extending {@link ChatMessage}.\n * @typeParam TTopic The topic type the topics query returns — anything extending {@link ChatTopic}.\n * @typeParam TTopicsQuery The observable query delivering the topics.\n * @typeParam TMessagesQuery The observable query delivering the open topic's messages.\n * @typeParam TTopicsArguments The topics query's argument type.\n * @typeParam TMessagesArguments The messages query's argument type.\n */\nexport interface ChatSidebarForObservableQueriesProps<\n TMessage extends ChatMessage,\n TTopic extends ChatTopic,\n TTopicsQuery extends IObservableQueryFor<TTopic[], TTopicsArguments>,\n TMessagesQuery extends IObservableQueryFor<TMessage[], TMessagesArguments>,\n TTopicsArguments extends object = object,\n TMessagesArguments extends object = object,\n> extends Omit<\n ChatSidebarProps<TMessage, TTopic>,\n 'topics' | 'messages' | 'selectedTopicId' | 'topicsStatus' | 'messagesStatus'\n> {\n /** The observable query delivering the topics. */\n topicsQuery: Constructor<TTopicsQuery>;\n\n /** Arguments for the topics query, when it takes any. */\n topicsArguments?: TTopicsArguments;\n\n /** The observable query delivering the open topic's messages. */\n messagesQuery: Constructor<TMessagesQuery>;\n\n /**\n * Arguments for the messages query, derived from the open topic. Answer undefined while no\n * topic is open — the messages query is not subscribed until there is one.\n * @param topicId The identifier of the open topic, or undefined for none.\n * @returns The arguments, or undefined to hold the subscription.\n */\n messagesArguments: (\n topicId: ChatIdentifier | undefined,\n ) => TMessagesArguments | undefined;\n}\n\n/**\n * The {@link ChatSidebar} bound to real-time Cratis Arc observable queries — one for the topics,\n * one for the open topic's messages — so both stay current as the read models change\n * server-side. This is a thin, optional convenience on top of the pure {@link ChatSidebar}: every\n * callback contract (sending, starting topics, naming, authors, actions, mentions) is exactly\n * the same, and a host that prefers to own its subscriptions uses {@link ChatSidebar} directly.\n */\nexport const ChatSidebarForObservableQueries = <\n TMessage extends ChatMessage,\n TTopic extends ChatTopic,\n TTopicsQuery extends IObservableQueryFor<TTopic[], TTopicsArguments>,\n TMessagesQuery extends IObservableQueryFor<TMessage[], TMessagesArguments>,\n TTopicsArguments extends object = object,\n TMessagesArguments extends object = object,\n>({\n topicsQuery,\n topicsArguments,\n messagesQuery,\n messagesArguments,\n onTopicSelected,\n ...sidebar\n}: ChatSidebarForObservableQueriesProps<\n TMessage,\n TTopic,\n TTopicsQuery,\n TMessagesQuery,\n TTopicsArguments,\n TMessagesArguments\n>) => {\n const [selectedId, setSelectedId] = useState<ChatIdentifier | undefined>(undefined);\n const [topicsSnapshot, setTopicsSnapshot] = useState<{\n queryKey: string;\n topics: TTopic[];\n status: ChatStatus;\n }>();\n const onTopicsResult = useCallback((queryKey: string, result: QueryResultWithState<TTopic[]>) => {\n const topics = Array.isArray(result.data) ? result.data : [];\n const status = resolveChatStatus(result);\n setTopicsSnapshot((previous) => {\n if (previous?.queryKey === queryKey && previous.status === status &&\n (previous.topics === topics || previous.topics.length === 0 && topics.length === 0)) {\n return previous;\n }\n return { queryKey, topics, status };\n });\n }, []);\n const [messagesSnapshot, setMessagesSnapshot] = useState<{\n queryKey: string;\n messages: TMessage[];\n status: ChatStatus;\n }>();\n const onMessagesResult = useCallback((queryKey: string, result: QueryResultWithState<TMessage[]>) => {\n setMessagesSnapshot({\n queryKey,\n messages: Array.isArray(result.data) ? result.data : [],\n status: resolveChatStatus(result),\n });\n }, []);\n\n const topicsQueryKey = serializeArguments(topicsArguments);\n const currentTopics = topicsQueryKey === topicsSnapshot?.queryKey ? topicsSnapshot : undefined;\n const messagesQueryArguments = messagesArguments(selectedId);\n const messagesQueryKey = selectedId !== undefined && messagesQueryArguments !== undefined\n ? JSON.stringify([chatIdentifierString(selectedId), serializeArguments(messagesQueryArguments)])\n : undefined;\n const currentMessages = messagesQueryKey === messagesSnapshot?.queryKey ? messagesSnapshot : undefined;\n\n return (\n <>\n <KeyedQuerySubscriber<TTopic[], TTopicsQuery, TTopicsArguments>\n key={topicsQueryKey}\n query={topicsQuery}\n args={topicsArguments}\n queryKey={topicsQueryKey}\n onResult={onTopicsResult}\n />\n {messagesQueryKey !== undefined && messagesQueryArguments !== undefined && (\n <KeyedQuerySubscriber<TMessage[], TMessagesQuery, TMessagesArguments>\n key={messagesQueryKey}\n query={messagesQuery}\n args={messagesQueryArguments}\n queryKey={messagesQueryKey}\n onResult={onMessagesResult}\n />\n )}\n <ChatSidebar<TMessage, TTopic>\n {...sidebar}\n topics={currentTopics?.topics ?? []}\n messages={currentMessages?.messages ?? []}\n topicsStatus={currentTopics?.status ?? ChatStatus.Loading}\n messagesStatus={messagesQueryKey === undefined\n ? ChatStatus.Ready\n : currentMessages?.status ?? ChatStatus.Loading}\n selectedTopicId={selectedId ?? null}\n onTopicSelected={(topicId, topic) => {\n setSelectedId(topicId);\n onTopicSelected?.(topicId, topic);\n }}\n />\n </>\n );\n};\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatStatus.js","sources":["../../../Chat/ChatStatus.ts"],"sourcesContent":[null],"names":[],"mappings":"IAIY;AAAZ,CAAA,UAAY,UAAU,EAAA;AAElB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AAEf,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AAEnB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AAEjB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AACjC,CAAC,EATW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;"}
1
+ {"version":3,"file":"ChatStatus.js","sources":["../../../Chat/ChatStatus.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** Display state of a chat topic list or conversation. */\nexport enum ChatStatus {\n /** Shows topics or messages, or the empty state when nothing is pending. */\n Ready = 'ready',\n /** Shows a loading message without data, or retains existing content during a refetch. */\n Loading = 'loading',\n /** Shows a failure alert, alongside any existing topics or messages kept after a failure. */\n Failed = 'failed',\n /** Shows an access-denied message instead of existing content. */\n Unauthorized = 'unauthorized',\n}\n"],"names":[],"mappings":"IAIY;AAAZ,CAAA,UAAY,UAAU,EAAA;AAElB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AAEf,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AAEnB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AAEjB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AACjC,CAAC,EATW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;"}
@@ -19,3 +19,4 @@ export interface ChatTopic {
19
19
  /** An open slot for whatever else the host's own topic shape carries. */
20
20
  metadata?: Record<string, unknown>;
21
21
  }
22
+ //# sourceMappingURL=ChatTopic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatTopic.d.ts","sourceRoot":"","sources":["../../../Chat/ChatTopic.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACtB,mCAAmC;IACnC,EAAE,EAAE,cAAc,CAAC;IAEnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sGAAsG;IACtG,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,2BAA2B;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,wGAAwG;IACxG,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatTopic.js","sourceRoot":"","sources":["../../../Chat/ChatTopic.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
1
+ {"version":3,"file":"ChatTopic.js","sourceRoot":"","sources":["../../../Chat/ChatTopic.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { ChatIdentifier } from './ChatIdentifier';\n\n/**\n * A topic — one conversation among many. A topic without a {@link name} is considered unnamed:\n * the components render a placeholder for it until the host supplies the real name, which is how\n * host-side auto-naming (ask an LLM for a title from the first message) shows up while it is\n * still underway.\n */\nexport interface ChatTopic {\n /** The identifier of the topic. */\n id: ChatIdentifier;\n\n /** The name. Leave unset (or blank) while the topic has not been named yet. */\n name?: string;\n\n /** The identifier of whoever started it. Resolved to a name and avatar by the host at render time. */\n startedBy?: ChatIdentifier;\n\n /** When it was started. */\n started?: Date;\n\n /** When something last happened in it — used to order the topic list. Falls back to {@link started}. */\n lastActivity?: Date;\n\n /** An open slot for whatever else the host's own topic shape carries. */\n metadata?: Record<string, unknown>;\n}\n"]}
@@ -83,3 +83,4 @@ export interface ChatTopicListProps<TTopic extends ChatTopic = ChatTopic> {
83
83
  * the placeholder simply stops being needed.
84
84
  */
85
85
  export declare const ChatTopicList: <TTopic extends ChatTopic = ChatTopic>({ topics, status, onOpen, onStart, authorOf, renderAvatar, isTopicUnnamed, buildAvatarUrl, labels, className, }: ChatTopicListProps<TTopic>) => import("react").JSX.Element;
86
+ //# sourceMappingURL=ChatTopicList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatTopicList.d.ts","sourceRoot":"","sources":["../../../Chat/ChatTopicList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,uBAAc,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAC/C,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAE1C,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,wBAAqB,CAAC;AAkBtF;oCACoC;AACpC,MAAM,WAAW,mBAAmB;IAChC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,4GAA4G;IAC5G,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8GAA8G;IAC9G,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+HAA+H;IAC/H,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2DAA2D;IAC3D,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS;IACpE;;;OAGG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,mKAAmK;IACnK,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;OAGG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,UAAU,CAAC;IAEpD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC;IAE3E;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAE5C,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAE1D,8FAA8F;IAC9F,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,SAAS,GAAG,SAAS,mHAW/D,kBAAkB,CAAC,MAAM,CAAC,gCAsG5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatTopicList.js","sources":["../../../Chat/ChatTopicList.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","isTopicUnnamed","defaultIsTopicUnnamed"],"mappings":"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"}
1
+ {"version":3,"file":"ChatTopicList.js","sources":["../../../Chat/ChatTopicList.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { ReactNode } from 'react';\nimport { PersonAvatarCircle, type BuildAvatarUrlParams } from './Kit/Avatar';\nimport { ChatAuthorKind } from './Kit/ChatAuthorKind';\nimport type { ChatAuthor } from './ChatAuthor';\nimport { chatIdentifierString, type ChatIdentifier } from './ChatIdentifier';\nimport type { ChatTopic } from './ChatTopic';\nimport { ChatStatus } from './ChatStatus';\nimport { isTopicUnnamed as defaultIsTopicUnnamed } from './isTopicUnnamed';\nimport { relativeTimestamp, type RelativeTimestampLabels } from './relativeTimestamp';\nimport { topicsByActivity } from './topicsByActivity';\n\nconst PlusIcon = () => (\n <svg\n width='14'\n height='14'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2.5'\n aria-hidden='true'\n >\n <line x1='12' y1='5' x2='12' y2='19' />\n <line x1='5' y1='12' x2='19' y2='12' />\n </svg>\n);\n\n/** Overrides for every label the {@link ChatTopicList} renders. Any field left unset falls back\n * to a literal English default. */\nexport interface ChatTopicListLabels {\n /** The new-topic button. Defaults to `'New topic'`. */\n newTopic?: string;\n\n /** Placeholder name for a topic that has not been named yet. Defaults to `'New topic'`. */\n unnamedTopic?: string;\n\n /** The started-by line under a topic's name. `{name}` is substituted. Defaults to `'Started by {name}'`. */\n startedBy?: string;\n\n /** Shown while loading without topics. Defaults to `'Loading topics…'`. */\n loading?: string;\n\n /** Shown when loading topics fails, alongside any existing topics. Defaults to `'Could not load topics.'`. */\n failed?: string;\n\n /** Shown when access is denied; replaces any existing topics. Defaults to `'You are not authorized to view these topics.'`. */\n unauthorized?: string;\n\n /** Shown when there are no topics yet. Defaults to `'No topics yet. Start the first one!'`. */\n empty?: string;\n\n /** Overrides for the relative last-activity timestamps. */\n timestamps?: RelativeTimestampLabels;\n}\n\n/**\n * Props for {@link ChatTopicList}.\n * @typeParam TTopic The host's topic type — anything extending {@link ChatTopic}.\n */\nexport interface ChatTopicListProps<TTopic extends ChatTopic = ChatTopic> {\n /**\n * The topics, in any order — the list orders them by most recent activity itself. Hand this\n * the array a live (observable) query delivers and the list re-renders as it changes.\n */\n topics: TTopic[];\n\n /** Query display state. Defaults to {@link ChatStatus.Ready}; existing topics remain visible on loading or failure, and unauthorized disables starting a topic. */\n status?: ChatStatus;\n\n /**\n * Invoked when a topic is picked from the list.\n * @param topic The topic that was picked.\n */\n onOpen: (topic: TTopic) => void;\n\n /**\n * Invoked when a new topic is asked for. Creating the topic is the host's business — the\n * component only raises the intent. Omit to leave the new-topic affordance off.\n */\n onStart?: () => void;\n\n /**\n * Resolves an author id into what it takes to render whoever started a topic. Omit to fall\n * back to rendering the id itself as the name.\n * @param authorId The identifier of the author to resolve.\n * @returns The author.\n */\n authorOf?: (authorId: ChatIdentifier) => ChatAuthor;\n\n /**\n * Renders the avatar for whoever started a topic, replacing the built-in initials circle.\n * @param authorId The identifier of the author.\n * @param author The resolved author, as {@link authorOf} answered.\n * @returns What to render.\n */\n renderAvatar?: (authorId: ChatIdentifier, author: ChatAuthor) => ReactNode;\n\n /**\n * Decides whether a topic counts as unnamed and renders the pending placeholder. Defaults to\n * \"no name, or only whitespace\" — override when the host's backend stores a literal\n * placeholder for unnamed topics instead.\n * @param topic The topic to check.\n * @returns True when the topic has no usable name yet.\n */\n isTopicUnnamed?: (topic: TTopic) => boolean;\n\n /** Builds the avatar image URL for topic starters. Omit to always show initials. */\n buildAvatarUrl?: (params: BuildAvatarUrlParams) => string;\n\n /** Overrides for every label rendered. Unset fields fall back to literal English defaults. */\n labels?: ChatTopicListLabels;\n\n /** Additional class name for the list's root element. */\n className?: string;\n}\n\n/**\n * The topics of a chat, most recently active first — pick one to open its conversation, or start\n * a new one. A topic that has not been named yet renders a placeholder in a pending style: with\n * host-side auto-naming, the name arrives through the data once the host has produced it, and\n * the placeholder simply stops being needed.\n */\nexport const ChatTopicList = <TTopic extends ChatTopic = ChatTopic>({\n topics,\n status = ChatStatus.Ready,\n onOpen,\n onStart,\n authorOf,\n renderAvatar,\n isTopicUnnamed,\n buildAvatarUrl,\n labels,\n className,\n}: ChatTopicListProps<TTopic>) => {\n const unnamed = isTopicUnnamed ?? defaultIsTopicUnnamed;\n\n const authorFor = (authorId: ChatIdentifier): ChatAuthor =>\n authorOf?.(authorId) ?? {\n name: chatIdentifierString(authorId),\n kind: ChatAuthorKind.User,\n };\n\n return (\n <div className={`cratis-chat-topics${className ? ` ${className}` : ''}`} aria-busy={status === ChatStatus.Loading && topics.length > 0 || undefined}>\n {onStart && (\n <button\n type='button'\n className='cratis-chat-topics__start'\n disabled={status === ChatStatus.Unauthorized}\n onClick={onStart}\n >\n <PlusIcon />\n <span>{labels?.newTopic ?? 'New topic'}</span>\n </button>\n )}\n {(topics.length === 0 || status === ChatStatus.Failed || status === ChatStatus.Unauthorized) && (\n <p className='cratis-chat-topics__empty'>\n {status === ChatStatus.Loading ? (\n <span key={status} role='status'>{labels?.loading ?? 'Loading topics…'}</span>\n ) : status === ChatStatus.Failed ? (\n <span key={status} role='alert'>{labels?.failed ?? 'Could not load topics.'}</span>\n ) : status === ChatStatus.Unauthorized ? (\n <span key={status} role='alert'>{labels?.unauthorized ?? 'You are not authorized to view these topics.'}</span>\n ) : (\n labels?.empty ?? 'No topics yet. Start the first one!'\n )}\n </p>\n )}\n <ul className='cratis-chat-topics__list'>\n {status !== ChatStatus.Unauthorized && topicsByActivity(topics).map((topic) => {\n const starter =\n topic.startedBy === undefined\n ? undefined\n : authorFor(topic.startedBy);\n const isPending = unnamed(topic);\n const activity = topic.lastActivity ?? topic.started;\n\n return (\n <li key={chatIdentifierString(topic.id)}>\n <button\n type='button'\n className='cratis-chat-topics__topic'\n onClick={() => onOpen(topic)}\n >\n {topic.startedBy !== undefined &&\n starter &&\n (renderAvatar ? (\n renderAvatar(topic.startedBy, starter)\n ) : (\n <PersonAvatarCircle\n userId={chatIdentifierString(topic.startedBy)}\n name={starter.name}\n hasAvatar={starter.hasAvatar ?? false}\n size={28}\n ownerType={\n starter.kind === ChatAuthorKind.Agent\n ? 'Agents'\n : 'Users'\n }\n version={starter.avatarVersion}\n buildAvatarUrl={buildAvatarUrl}\n />\n ))}\n <span className='cratis-chat-topics__details'>\n <span\n className={`cratis-chat-topics__name${isPending ? ' cratis-chat-topics__name--pending' : ''}`}\n >\n {isPending\n ? (labels?.unnamedTopic ?? 'New topic')\n : topic.name}\n </span>\n {starter && (\n <span className='cratis-chat-topics__started-by'>\n {(\n labels?.startedBy ?? 'Started by {name}'\n ).replace('{name}', starter.name)}\n </span>\n )}\n </span>\n {activity !== undefined && (\n <span className='cratis-chat-topics__activity'>\n {relativeTimestamp(\n activity,\n new Date(),\n labels?.timestamps,\n )}\n </span>\n )}\n </button>\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx","isTopicUnnamed","defaultIsTopicUnnamed"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnchoredOverlay.js","sources":["../../../../Chat/Kit/AnchoredOverlay.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;AAuCA,MAAM,cAAc,GAAG,GAAG;AAS1B,SAAS,gBAAgB,CACrB,MAAe,EACf,IAAyB,EACzB,KAA2B,EAC3B,GAAW,EAAA;IAEX,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;QACrC,OAAO;YACH,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACnC,YAAA,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG;YAC/D,SAAS,EAAE,IAAI,KAAK,OAAO,GAAG,kBAAkB,GAAG,wBAAwB;SAC9E;IACL;IAEA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG;AAC3D,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG;AACnC,IAAA,MAAM,QAAQ,GACV,IAAI,KAAK;AACL,UAAE,UAAU,GAAG,cAAc,IAAI,UAAU,GAAG;AAC1C,cAAE;AACF,cAAE;AACN,UAAE,UAAU,GAAG,cAAc,IAAI,UAAU,GAAG;AAC5C,cAAE;cACA,OAAO;AAEnB,IAAA,MAAM,UAAU,GACZ,KAAK,KAAK;AACN,UAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB;UACrE,KAAK,KAAK;cACR,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB;AACtD,cAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE;IAEvD,OAAO,QAAQ,KAAK;AAChB,UAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,UAAU;AAC3C,UAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE;AAC1E;AASO,MAAM,eAAe,GAAmC,CAAC,EAC5D,SAAS,EACT,IAAI,EACJ,IAAI,GAAG,OAAO,EACd,KAAK,GAAG,MAAM,EACd,GAAG,GAAG,CAAC,EACP,QAAQ,GACX,KAAI;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAyB;IAEnE,eAAe,CAAC,MAAK;QACjB,IAAI,CAAC,IAAI,EAAE;YACP,YAAY,CAAC,SAAS,CAAC;YACvB;QACJ;QACA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,qBAAqB,EAAE;AACzD,QAAA,IAAI,CAAC,MAAM;YAAE;AACb,QAAA,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5D,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AAEvC,IAAA,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAEpC,IAAA,OAAO,YAAY,CACfA,GAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,SAAS,EAAE,SAAS,CAAC,SAAS;AACjC,SAAA,EAAA,QAAA,EAEA,QAAQ,EAAA,CACP,EACN,QAAQ,CAAC,IAAI,CAChB;AACL;;"}
1
+ {"version":3,"file":"AnchoredOverlay.js","sources":["../../../../Chat/Kit/AnchoredOverlay.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React, { ReactNode, RefObject, useLayoutEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\n/** The side of the anchor the overlay prefers to open on. */\nexport type AnchoredOverlaySide = 'above' | 'below' | 'left' | 'right';\n\n/** Horizontal alignment relative to the anchor (for above/below overlays). */\nexport type AnchoredOverlayAlign = 'left' | 'right' | 'center';\n\n/**\n * Props for a fixed-position portalled overlay anchored to an element on the board. Board overlays\n * (menus, pickers, tooltips) must float above everything: the slice columns use content-visibility\n * paint containment for virtualization, which clips any absolutely-positioned descendant to the\n * column box — portaling is what lets an overlay escape.\n */\nexport interface AnchoredOverlayProps {\n /** The element the overlay anchors to. */\n anchorRef: RefObject<HTMLElement | null>;\n\n /** Whether the overlay is shown. */\n open: boolean;\n\n /** The preferred side; above/below flip when the viewport leaves no room. */\n side?: AnchoredOverlaySide;\n\n /** Horizontal alignment for above/below overlays. */\n align?: AnchoredOverlayAlign;\n\n /** Gap between the anchor and the overlay in pixels. */\n gap?: number;\n\n /** The overlay content. */\n children: ReactNode;\n}\n\n/** Space on the preferred side under which an above/below overlay flips to the other side. */\nconst FLIP_THRESHOLD = 260;\n\ninterface Placement {\n top?: number;\n bottom?: number;\n left: number;\n transform?: string;\n}\n\nfunction computePlacement(\n anchor: DOMRect,\n side: AnchoredOverlaySide,\n align: AnchoredOverlayAlign,\n gap: number,\n): Placement {\n if (side === 'left' || side === 'right') {\n return {\n top: anchor.top + anchor.height / 2,\n left: side === 'right' ? anchor.right + gap : anchor.left - gap,\n transform: side === 'right' ? 'translateY(-50%)' : 'translate(-100%, -50%)',\n };\n }\n\n const spaceBelow = window.innerHeight - anchor.bottom - gap;\n const spaceAbove = anchor.top - gap;\n const resolved =\n side === 'below'\n ? spaceBelow < FLIP_THRESHOLD && spaceAbove > spaceBelow\n ? 'above'\n : 'below'\n : spaceAbove < FLIP_THRESHOLD && spaceBelow > spaceAbove\n ? 'below'\n : 'above';\n\n const horizontal =\n align === 'center'\n ? { left: anchor.left + anchor.width / 2, transform: 'translateX(-50%)' }\n : align === 'right'\n ? { left: anchor.right, transform: 'translateX(-100%)' }\n : { left: anchor.left, transform: undefined };\n\n return resolved === 'below'\n ? { top: anchor.bottom + gap, ...horizontal }\n : { bottom: window.innerHeight - anchor.top + gap, ...horizontal };\n}\n\n/**\n * Renders its children into a fixed-position portal on <body>, anchored to an element on the board.\n * Board overlays (menus, pickers, tooltips) must float above everything: the slice columns use\n * content-visibility paint containment for virtualization, which clips any absolutely-positioned\n * descendant to the column box — portaling is what lets an overlay escape (the same approach the\n * Cratis Dropdown takes with appendTo=document.body).\n */\nexport const AnchoredOverlay: React.FC<AnchoredOverlayProps> = ({\n anchorRef,\n open,\n side = 'below',\n align = 'left',\n gap = 8,\n children,\n}) => {\n const [placement, setPlacement] = useState<Placement | undefined>();\n\n useLayoutEffect(() => {\n if (!open) {\n setPlacement(undefined);\n return;\n }\n const anchor = anchorRef.current?.getBoundingClientRect();\n if (!anchor) return;\n setPlacement(computePlacement(anchor, side, align, gap));\n }, [open, side, align, gap, anchorRef]);\n\n if (!open || !placement) return null;\n\n return createPortal(\n <div\n style={{\n position: 'fixed',\n zIndex: 1300,\n top: placement.top,\n bottom: placement.bottom,\n left: placement.left,\n transform: placement.transform,\n }}\n >\n {children}\n </div>,\n document.body,\n );\n};\n"],"names":["_jsx"],"mappings":";;;;AAuCA,MAAM,cAAc,GAAG,GAAG;AAS1B,SAAS,gBAAgB,CACrB,MAAe,EACf,IAAyB,EACzB,KAA2B,EAC3B,GAAW,EAAA;IAEX,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;QACrC,OAAO;YACH,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACnC,YAAA,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG;YAC/D,SAAS,EAAE,IAAI,KAAK,OAAO,GAAG,kBAAkB,GAAG,wBAAwB;SAC9E;IACL;IAEA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG;AAC3D,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG;AACnC,IAAA,MAAM,QAAQ,GACV,IAAI,KAAK;AACL,UAAE,UAAU,GAAG,cAAc,IAAI,UAAU,GAAG;AAC1C,cAAE;AACF,cAAE;AACN,UAAE,UAAU,GAAG,cAAc,IAAI,UAAU,GAAG;AAC5C,cAAE;cACA,OAAO;AAEnB,IAAA,MAAM,UAAU,GACZ,KAAK,KAAK;AACN,UAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB;UACrE,KAAK,KAAK;cACR,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB;AACtD,cAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE;IAEvD,OAAO,QAAQ,KAAK;AAChB,UAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,UAAU;AAC3C,UAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE;AAC1E;AASO,MAAM,eAAe,GAAmC,CAAC,EAC5D,SAAS,EACT,IAAI,EACJ,IAAI,GAAG,OAAO,EACd,KAAK,GAAG,MAAM,EACd,GAAG,GAAG,CAAC,EACP,QAAQ,GACX,KAAI;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAyB;IAEnE,eAAe,CAAC,MAAK;QACjB,IAAI,CAAC,IAAI,EAAE;YACP,YAAY,CAAC,SAAS,CAAC;YACvB;QACJ;QACA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,qBAAqB,EAAE;AACzD,QAAA,IAAI,CAAC,MAAM;YAAE;AACb,QAAA,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5D,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AAEvC,IAAA,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAEpC,IAAA,OAAO,YAAY,CACfA,GAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,SAAS,EAAE,SAAS,CAAC,SAAS;AACjC,SAAA,EAAA,QAAA,EAEA,QAAQ,EAAA,CACP,EACN,QAAQ,CAAC,IAAI,CAChB;AACL;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonAvatarCircle.js","sources":["../../../../../Chat/Kit/Avatar/PersonAvatarCircle.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAqEO,MAAM,kBAAkB,GAAG,CAAC,EAC/B,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,GAAG,OAAO,EACnB,UAAU,GAAG,OAAO,EACpB,OAAO,EACP,cAAc,EACd,SAAS,GACa,KAAI;AAC1B,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;AAClC,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,IAAI,IAAI;AAC7B,IAAA,MAAM,GAAG,GAAG,cAAc,GAAG;AACzB,QAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;QACzB,SAAS;QACT,UAAU;QACV,OAAO;AACV,KAAA,CAAC;IAMF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IAC/D,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,SAAS;AAEzD,IAAA,QACIA,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EACL,SAAS,GAAG,CAAA,qBAAA,EAAwB,SAAS,EAAE,GAAG,sBAAsB,EAE5E,KAAK,EAAE;AACH,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACxE,SAAA,EAAA,YAAA,EACW,IAAI,EAChB,KAAK,EAAE,IAAI,YAEV,SAAS,IACNA,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAC,4BAA4B,EACtC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAA,CAClC,KAEFA,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAC,+BAA+B,EACzC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA,EAAA,CAAI,EAAE,EAAA,QAAA,EAE9D,QAAQ,GACN,CACV,EAAA,CACE;AAEf;;"}
1
+ {"version":3,"file":"PersonAvatarCircle.js","sources":["../../../../../Chat/Kit/Avatar/PersonAvatarCircle.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useState } from 'react';\nimport type { Guid } from '@cratis/fundamentals';\nimport { getInitials } from './getInitials';\nimport { getAvatarColor } from './getAvatarColor';\n\n/** The parameters {@link PersonAvatarCircleProps.buildAvatarUrl} resolves into an image URL. */\nexport interface BuildAvatarUrlParams {\n /** The identifier of the person, as a string. */\n userId: string;\n\n /** The kind of owner the avatar belongs to, matching the storage layout. */\n ownerType: 'Users' | 'Personas' | 'Agents';\n\n /** The avatar rendition requested. */\n avatarSize: 'Small' | 'Medium';\n\n /** A value that changes whenever the avatar image changes, for cache-busting. */\n version?: number | string;\n}\n\n/**\n * Props for rendering a person's avatar image when one has been uploaded and a URL can be built for\n * it, falling back to their initials on a color derived from their identifier so the same person\n * always shows the same fallback color.\n */\nexport interface PersonAvatarCircleProps {\n /** The identifier of the person, used to build the avatar image URL. */\n userId: Guid | string;\n\n /** The person's display name, used for initials and accessibility text. */\n name: string;\n\n /** Whether the person has an uploaded avatar image. */\n hasAvatar: boolean;\n\n /** The rendered size, in pixels. */\n size: number;\n\n /** The kind of owner the avatar belongs to, matching the storage layout. Defaults to 'Users'. */\n ownerType?: 'Users' | 'Personas' | 'Agents';\n\n /** The avatar rendition to request from the server. Defaults to 'Small'. */\n avatarSize?: 'Small' | 'Medium';\n\n /**\n * A value that changes whenever the avatar image changes (e.g. the upload timestamp). Passed on to\n * {@link buildAvatarUrl} so a re-uploaded avatar can bust the aggressive HTTP cache on the old URL.\n */\n version?: number | string;\n\n /**\n * Builds the avatar image URL from the resolved parameters. Omit to always show the initials\n * fallback - this library ships no avatar storage convention of its own, so a host with an avatar\n * endpoint passes this to opt into images; one without simply never renders a broken `<img>`.\n */\n buildAvatarUrl?: (params: BuildAvatarUrlParams) => string;\n\n /** Additional class name applied to the circle, for context-specific styling (borders, cursor, ...). */\n className?: string;\n}\n\n/**\n * Renders a person's avatar image when one has been uploaded and a URL can be built for it, falling\n * back to their initials on a color derived from their identifier so the same person always shows the\n * same fallback color.\n */\nexport const PersonAvatarCircle = ({\n userId,\n name,\n hasAvatar,\n size,\n ownerType = 'Users',\n avatarSize = 'Small',\n version,\n buildAvatarUrl,\n className,\n}: PersonAvatarCircleProps) => {\n const initials = getInitials(name);\n const dimension = `${size}px`;\n const src = buildAvatarUrl?.({\n userId: userId.toString(),\n ownerType,\n avatarSize,\n version,\n });\n\n // The \"has avatar\" signal can outlive the stored image (e.g. a persona flag that stays set\n // after the blob is gone), which otherwise leaves a broken image and a stream of 404s.\n // Track the src that failed and fall back to initials for it — a new src (re-upload bumps the\n // version) is retried.\n const [failedSrc, setFailedSrc] = useState<string | null>(null);\n const showImage = hasAvatar && !!src && src !== failedSrc;\n\n return (\n <span\n className={\n className ? `person-avatar-circle ${className}` : 'person-avatar-circle'\n }\n style={{\n width: dimension,\n height: dimension,\n background: showImage ? undefined : getAvatarColor(userId.toString()),\n }}\n aria-label={name}\n title={name}\n >\n {showImage ? (\n <img\n className='person-avatar-circle-image'\n src={src}\n alt={name}\n draggable={false}\n onError={() => setFailedSrc(src)}\n />\n ) : (\n <span\n className='person-avatar-circle-initials'\n style={{ fontSize: `${Math.max(8, Math.round(size * 0.4))}px` }}\n >\n {initials}\n </span>\n )}\n </span>\n );\n};\n"],"names":["_jsx"],"mappings":";;;;;AAqEO,MAAM,kBAAkB,GAAG,CAAC,EAC/B,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,GAAG,OAAO,EACnB,UAAU,GAAG,OAAO,EACpB,OAAO,EACP,cAAc,EACd,SAAS,GACa,KAAI;AAC1B,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;AAClC,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,IAAI,IAAI;AAC7B,IAAA,MAAM,GAAG,GAAG,cAAc,GAAG;AACzB,QAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;QACzB,SAAS;QACT,UAAU;QACV,OAAO;AACV,KAAA,CAAC;IAMF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IAC/D,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,SAAS;AAEzD,IAAA,QACIA,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EACL,SAAS,GAAG,CAAA,qBAAA,EAAwB,SAAS,EAAE,GAAG,sBAAsB,EAE5E,KAAK,EAAE;AACH,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACxE,SAAA,EAAA,YAAA,EACW,IAAI,EAChB,KAAK,EAAE,IAAI,YAEV,SAAS,IACNA,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAC,4BAA4B,EACtC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAA,CAClC,KAEFA,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAC,+BAA+B,EACzC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA,EAAA,CAAI,EAAE,EAAA,QAAA,EAE9D,QAAQ,GACN,CACV,EAAA,CACE;AAEf;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAvatarColor.js","sources":["../../../../../Chat/Kit/Avatar/getAvatarColor.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA,MAAM,aAAa,GAAG;IAClB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACZ;AASM,MAAM,cAAc,GAAG,CAAC,IAAY,KAAY;IACnD,IAAI,IAAI,GAAG,CAAC;AACZ,IAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;AAC1D,QAAA,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;IACvD;AACA,IAAA,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/D;;"}
1
+ {"version":3,"file":"getAvatarColor.js","sources":["../../../../../Chat/Kit/Avatar/getAvatarColor.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nconst AVATAR_COLORS = [\n '#4f46e5',\n '#7c3aed',\n '#be185d',\n '#be123c',\n '#c2410c',\n '#0369a1',\n '#047857',\n '#0f766e',\n];\n\n/**\n * Computes a deterministic avatar background color from a stable seed - the person's identifier -\n * so the same person always shows the same fallback color everywhere their avatar appears,\n * regardless of how their name is rendered in that context.\n * @param seed A stable identifier for the person (e.g. their user id as a string).\n * @returns A hex color from the predefined avatar palette.\n */\nexport const getAvatarColor = (seed: string): string => {\n let hash = 0;\n for (let charIndex = 0; charIndex < seed.length; charIndex++) {\n hash = (hash * 31 + seed.charCodeAt(charIndex)) | 0;\n }\n return AVATAR_COLORS[Math.abs(hash) % AVATAR_COLORS.length];\n};\n"],"names":[],"mappings":"AAGA,MAAM,aAAa,GAAG;IAClB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACZ;AASM,MAAM,cAAc,GAAG,CAAC,IAAY,KAAY;IACnD,IAAI,IAAI,GAAG,CAAC;AACZ,IAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;AAC1D,QAAA,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;IACvD;AACA,IAAA,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/D;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getInitials.js","sources":["../../../../../Chat/Kit/Avatar/getInitials.ts"],"sourcesContent":[null],"names":[],"mappings":"AAQO,MAAM,WAAW,GAAG,CAAC,IAAY,KACpC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI;;"}
1
+ {"version":3,"file":"getInitials.js","sources":["../../../../../Chat/Kit/Avatar/getInitials.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Computes up to two uppercase initials from a display name.\n * @param name The display name.\n * @returns One or two initials, or '?' when none can be derived.\n */\nexport const getInitials = (name: string): string =>\n name.trim().split(/\\s+/).filter(Boolean).map(word => word[0]).join('').slice(0, 2).toUpperCase() || '?';\n"],"names":[],"mappings":"AAQO,MAAM,WAAW,GAAG,CAAC,IAAY,KACpC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI;;"}
@@ -1,3 +1,4 @@
1
1
  export { PersonAvatarCircle } from './PersonAvatarCircle.js';
2
2
  export type { PersonAvatarCircleProps, BuildAvatarUrlParams } from './PersonAvatarCircle.js';
3
3
  export { getAvatarColor } from './getAvatarColor.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Chat/Kit/Avatar/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,yBAAsB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC"}
@@ -4,3 +4,4 @@ export { PersonAvatarCircle } from './PersonAvatarCircle.js';
4
4
  export { getAvatarColor } from './getAvatarColor.js';
5
5
  // `getInitials` is an internal helper used by `PersonAvatarCircle` and is
6
6
  // intentionally not part of the public API.
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Chat/Kit/Avatar/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,0EAA0E;AAC1E,4CAA4C","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nexport { PersonAvatarCircle } from './PersonAvatarCircle';\nexport type { PersonAvatarCircleProps, BuildAvatarUrlParams } from './PersonAvatarCircle';\nexport { getAvatarColor } from './getAvatarColor';\n// `getInitials` is an internal helper used by `PersonAvatarCircle` and is\n// intentionally not part of the public API.\n"]}
@@ -104,3 +104,4 @@ export interface ChatProps {
104
104
  * callbacks. Owns no state except the draft being typed.
105
105
  */
106
106
  export declare const Chat: React.FC<ChatProps>;
107
+ //# sourceMappingURL=Chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/Chat.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.js","sources":["../../../../Chat/Kit/Chat.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Chat.js","sources":["../../../../Chat/Kit/Chat.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type React from 'react';\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport type { Guid } from '@cratis/fundamentals';\nimport { useOptionalMessenger } from '../../Common/messaging/useOptionalMessenger';\nimport { useCratisIcon } from '../../configuration/useCratisIcon';\nimport type { BuildAvatarUrlParams } from './Avatar';\nimport { ChatMessageAdded } from './ChatMessageAdded';\nimport {\n ChatComposer,\n type ChatComposerHandle,\n type ChatComposerLabels,\n} from './ChatComposer';\nimport { ChatMessageBubble, type ChatMessageBubbleLabels } from './ChatMessageBubble';\nimport type { ChatMessage } from './ChatMessage';\nimport type { ChatTypingAuthor } from './ChatTypingAuthor';\nimport { ChatVariant } from './ChatVariant';\nimport {\n FailedReply,\n type FailedReplyLabels,\n type FailedReplyReportDetails,\n} from './FailedReply';\nimport type { MentionCandidate } from './Mentions';\nimport { TypingIndicator } from './TypingIndicator';\n\n/** Overrides for every label the {@link Chat} panel and its children render. Any field left unset\n * falls back to a literal English default — this library ships no i18n mechanism of its own, so a\n * host that localizes passes its own translated strings through here. */\nexport interface ChatLabels {\n /** The panel's own title, shown when not {@link ChatVariant.Docked}. Defaults to `'Comments'`. */\n title?: string;\n /** Tooltip for the close button. Defaults to `'Close'`. */\n close?: string;\n /** Accessible label for the close button. Defaults to `'Close panel'`. */\n closePanel?: string;\n /** Shown when there are no messages yet. Defaults to `'No comments yet. Be the first!'`. */\n noComments?: string;\n /** One author typing. `{name}` is substituted. Defaults to `'{name} is typing'`. */\n typing?: string;\n /** Two authors typing. `{first}`/`{second}` are substituted. Defaults to `'{first} and {second} are typing'`. */\n typingTwo?: string;\n /** Three or more authors typing. Defaults to `'Several people are typing'`. */\n typingSeveral?: string;\n /** Labels forwarded to the {@link ChatComposer}. */\n composer?: ChatComposerLabels;\n /** Labels forwarded to every {@link ChatMessageBubble}. */\n messageBubble?: ChatMessageBubbleLabels;\n /** Labels forwarded to every {@link FailedReply}. */\n failedReply?: FailedReplyLabels;\n}\n\n/**\n * Props for the full conversation panel — messages, composer, typing indicator, and reactions.\n * Accepts message data and reports sends/reactions/actions; owns no state except the draft being typed.\n */\nexport interface ChatProps {\n /**\n * Identifies this conversation for opt-in messaging: when set, every send additionally\n * publishes a {@link ChatMessageAdded} carrying this id over the Arc messenger, at the same\n * moment `onSend` fires. Omit for exactly the previous behavior — `onSend` alone, nothing\n * published.\n */\n id?: string;\n\n /** The messages to render in chronological order. */\n messages: ChatMessage[];\n\n /** Invoked with the trimmed message text when the user sends. */\n onSend: (text: string) => void;\n\n /** Invoked when the close button is activated (only rendered when not {@link ChatVariant.Docked}). */\n onClose: () => void;\n\n /** The panel's title. Defaults to the localized `'Comments'` or {@link ChatLabels.title}. */\n title?: string;\n\n /** Whether the composer takes focus when mounted. Defaults to `false`. */\n autoFocus?: boolean;\n\n /**\n * How the conversation is presented. Docked leaves the frame and heading to whatever contains\n * it, which is what a chat sidebar provides.\n */\n variant?: ChatVariant;\n\n /** Everyone who can be mentioned from this conversation. Omit (together with\n * {@link resolveMentionCandidates}) to turn mentions off. */\n mentionCandidates?: MentionCandidate[];\n\n /**\n * Resolves who can be mentioned as the person types — see\n * {@link ChatComposerProps.resolveMentionCandidates}.\n */\n resolveMentionCandidates?: (\n query: string,\n ) => MentionCandidate[] | Promise<MentionCandidate[]>;\n\n /** Who the conversation is currently waiting on — someone typing, or an agent working. */\n typingAuthors?: ChatTypingAuthor[];\n\n /**\n * The identifier of whoever is looking at the conversation. Reactions are only offered when this\n * is given, together with {@link onReact} — a conversation whose backend cannot yet record a\n * reaction simply does not render the affordance.\n */\n currentUserId?: Guid;\n\n /** Invoked with the message reacted to and the emoji picked, whether given, changed, or taken back. */\n onReact?: (messageId: Guid, emoji: string) => void;\n\n /**\n * Invoked with the message somebody asked to have carried out. Omit to leave the affordance off — a\n * conversation whose subject is not something the host can act on does not offer it.\n */\n onAct?: (messageId: Guid) => void;\n\n /**\n * Decides which messages {@link ChatProps.onAct} is offered on. Omit to offer it on all of them.\n */\n canAct?: (message: ChatMessage) => boolean;\n\n /** Builds the avatar image URL for every author shown in the panel. Omit to always show initials. */\n buildAvatarUrl?: (params: BuildAvatarUrlParams) => string;\n\n /**\n * Builds the href for a failed turn's \"report this\" link. Omit to hide the report action on every\n * {@link FailedReply} line — see {@link FailedReplyProps.buildReportUrl}.\n */\n buildReportUrl?: (details: FailedReplyReportDetails) => string;\n\n /** Overrides for every label the panel and its children render. Unset fields fall back to\n * literal English defaults. */\n labels?: ChatLabels;\n}\n\nfunction formatTimestamp(date: Date): string {\n const diffMs = Date.now() - date.getTime();\n const diffMinutes = Math.floor(diffMs / 60_000);\n if (diffMinutes < 1) return 'just now';\n if (diffMinutes < 60) return `${diffMinutes}m ago`;\n const diffHours = Math.floor(diffMinutes / 60);\n if (diffHours < 24) return `${diffHours}h ago`;\n return date.toLocaleDateString(undefined, { month: 'short', day: 'numeric' });\n}\n\nfunction sameMinute(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate() &&\n a.getHours() === b.getHours() &&\n a.getMinutes() === b.getMinutes()\n );\n}\n\ninterface MessageRenderInfo {\n showAuthor: boolean;\n\n showTimestamp: boolean;\n}\n\nfunction computeRenderInfo(messages: ChatMessage[]): MessageRenderInfo[] {\n return messages.map((message, index) => {\n const previous = index > 0 ? messages[index - 1] : null;\n const next = index < messages.length - 1 ? messages[index + 1] : null;\n\n const showAuthor = !previous || previous.authorName !== message.authorName;\n\n const showTimestamp =\n !next ||\n next.authorName !== message.authorName ||\n !sameMinute(message.timestamp, next.timestamp);\n\n return { showAuthor, showTimestamp };\n });\n}\n\n/**\n * Composes the \"X is typing\" line from whoever the conversation is waiting on.\n * @param authors The authors currently typing or working.\n * @param labels Label overrides, as passed to {@link Chat}.\n * @returns The label to show, empty when nobody is.\n */\nfunction typingLabel(\n authors: ChatTypingAuthor[],\n labels: ChatLabels | undefined,\n): string {\n if (authors.length === 0) return '';\n if (authors.length === 1)\n return (labels?.typing ?? '{name} is typing').replace('{name}', authors[0].name);\n if (authors.length === 2)\n return (labels?.typingTwo ?? '{first} and {second} are typing')\n .replace('{first}', authors[0].name)\n .replace('{second}', authors[1].name);\n return labels?.typingSeveral ?? 'Several people are typing';\n}\n\n/**\n * The full conversation panel — messages, composer, typing indicator, and reactions. It renders\n * message bubbles, the composer row, and the typing indicator, and coordinates reactions/quick-reply/action\n * callbacks. Owns no state except the draft being typed.\n */\nexport const Chat: React.FC<ChatProps> = ({\n id,\n messages,\n onSend,\n onClose,\n title,\n autoFocus = false,\n variant = ChatVariant.Floating,\n mentionCandidates,\n resolveMentionCandidates,\n typingAuthors = [],\n currentUserId,\n onReact,\n onAct,\n canAct,\n buildAvatarUrl,\n buildReportUrl,\n labels,\n}) => {\n const icon = useCratisIcon();\n const messagesEndRef = useRef<HTMLDivElement>(null);\n const composerRef = useRef<ChatComposerHandle>(null);\n const renderInfo = useMemo(() => computeRenderInfo(messages), [messages]);\n const isDocked = variant === ChatVariant.Docked;\n const resolvedTitle = title ?? labels?.title ?? 'Comments';\n // Opt-in messaging: resolves to undefined without an Arc messenger. Publishing also requires\n // the `id` prop — without one there is nothing to key a {@link ChatMessageAdded} by.\n const publish = useOptionalMessenger();\n\n const handleSend = useCallback(\n (text: string) => {\n onSend(text);\n if (id) publish?.(new ChatMessageAdded(id, text));\n },\n [onSend, id, publish],\n );\n\n useEffect(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }, [messages, typingAuthors.length]);\n\n const quickReply = (authorName: string) =>\n composerRef.current?.prefill(`@${authorName} `);\n\n return (\n <div\n className={`chat-panel${isDocked ? ' chat-panel--docked' : ''}`}\n onClick={(event) => event.stopPropagation()}\n >\n {!isDocked && (\n <div className='chat-panel-header'>\n <span className='chat-panel-title'>{resolvedTitle}</span>\n <button\n type='button'\n className='chat-panel-close'\n onClick={onClose}\n title={labels?.close ?? 'Close'}\n aria-label={labels?.closePanel ?? 'Close panel'}\n >\n {icon('close', '×')}\n </button>\n </div>\n )}\n\n <div className='chat-panel-messages'>\n {messages.length === 0 && (\n <p className='chat-panel-empty'>\n {labels?.noComments ?? 'No comments yet. Be the first!'}\n </p>\n )}\n {messages.map((message, index) => {\n // A turn that ended in failure is not something its author said, so it never becomes\n // a bubble — it stands where the answer would have been and says so.\n if (message.failureDetail !== undefined) {\n return (\n <FailedReply\n key={message.id.toString()}\n message={message}\n buildReportUrl={buildReportUrl}\n labels={labels?.failedReply}\n />\n );\n }\n\n const { showAuthor, showTimestamp } = renderInfo[index];\n return (\n <ChatMessageBubble\n key={message.id.toString()}\n message={message}\n showAuthor={showAuthor}\n showTimestamp={showTimestamp}\n formattedTimestamp={formatTimestamp(message.timestamp)}\n currentUserId={currentUserId}\n onReact={onReact}\n onQuickReply={quickReply}\n onAct={\n onAct && (canAct?.(message) ?? true) ? onAct : undefined\n }\n buildAvatarUrl={buildAvatarUrl}\n labels={labels?.messageBubble}\n />\n );\n })}\n <TypingIndicator\n authors={typingAuthors}\n label={typingLabel(typingAuthors, labels)}\n buildAvatarUrl={buildAvatarUrl}\n />\n <div ref={messagesEndRef} />\n </div>\n\n <ChatComposer\n ref={composerRef}\n mentionCandidates={mentionCandidates}\n resolveMentionCandidates={resolveMentionCandidates}\n onSend={handleSend}\n autoFocus={autoFocus}\n buildAvatarUrl={buildAvatarUrl}\n labels={labels?.composer}\n />\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatAuthorKind.js","sources":["../../../../Chat/Kit/ChatAuthorKind.ts"],"sourcesContent":[null],"names":[],"mappings":"IAOY;AAAZ,CAAA,UAAY,cAAc,EAAA;AAEtB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AAGb,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACnB,CAAC,EANW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;"}
1
+ {"version":3,"file":"ChatAuthorKind.js","sources":["../../../../Chat/Kit/ChatAuthorKind.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * What kind of team member wrote a message. Only the author's identifier is ever stored, so the kind\n * is resolved when a conversation is rendered — it decides which avatar the message shows.\n */\nexport enum ChatAuthorKind {\n /** A message authored by an application user. */\n User = 'user',\n\n /** A message authored by an automated agent. */\n Agent = 'agent',\n}\n"],"names":[],"mappings":"IAOY;AAAZ,CAAA,UAAY,cAAc,EAAA;AAEtB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AAGb,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACnB,CAAC,EANW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;"}
@@ -36,3 +36,4 @@ export interface ChatBubbleProps {
36
36
  * down-right, and a hover card previewing the conversation state.
37
37
  */
38
38
  export declare const ChatBubble: React.FC<ChatBubbleProps>;
39
+ //# sourceMappingURL=ChatBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBubble.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/ChatBubble.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAsC,KAAK,oBAAoB,EAAE,MAAM,mBAAU,CAAC;AAgBzF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IAEnB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,IAAI,CAAC;IAExB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mFAAmF;IACnF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uGAAuG;IACvG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,MAAM,CAAC;CAC7D;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsMhD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatBubble.js","sources":["../../../../Chat/Kit/ChatBubble.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;AAQA,MAAM,IAAI,GAAwB,EAAE,UAAU,EAAE,uBAAuB,EAAE;AACzE,MAAM,8BAA8B,GAAG,EAAE;AACzC,MAAM,0BAA0B,GAAG,EAAE;AAErC,SAAS,eAAe,CAAC,IAAU,EAAA;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/C,IAAI,WAAW,GAAG,CAAC;AAAE,QAAA,OAAO,UAAU;IACtC,IAAI,WAAW,GAAG,EAAE;QAAE,OAAO,CAAA,EAAG,WAAW,CAAA,KAAA,CAAO;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9C,IAAI,SAAS,GAAG,EAAE;QAAE,OAAO,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO;AAC9C,IAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AACjF;AA+CO,MAAM,UAAU,GAA8B,CAAC,EAClD,QAAQ,EACR,UAAU,EACV,SAAS,EACT,IAAI,GAAG,EAAE,EACT,eAAe,GAAG,KAAK,EACvB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,mBAAmB,GAAG,KAAK,EAC3B,QAAQ,GAAG,KAAK,EAChB,cAAc,GACjB,KAAI;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAGjD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAGjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IACnE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACrD,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC;IAEzC,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;YACrD,cAAc,CAAC,KAAK,CAAC;YACrB,cAAc,CAAC,IAAI,CAAC;QACxB;AAAO,aAAA,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,EAAE;YAC5D,cAAc,CAAC,IAAI,CAAC;QACxB;AACA,QAAA,mBAAmB,CAAC,OAAO,GAAG,mBAAmB;AACrD,IAAA,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAEzB,MAAM,sBAAsB,GAAG,MAAK;QAChC,IAAI,WAAW,EAAE;YACb,cAAc,CAAC,KAAK,CAAC;YACrB,cAAc,CAAC,KAAK,CAAC;QACzB;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACpD,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAErD,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAC1D,YAAY,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,EACtC,YAAY,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CAGvCC,GAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE;AACH,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,YAAY,EAAE,KAAK;AACnB,oBAAA,SAAS,EAAE;AACP,0BAAE,CAAA,2EAAA;AACF,0BAAE,gCAAgC;AACtC,oBAAA,QAAQ,EAAE,UAAU;iBACvB,EAAA,QAAA,EAEDA,GAAA,CAAC,kBAAkB,EAAA,EACf,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAE,cAAc,EAAA,CAChC,EAAA,CACA,EAGL,WAAW,KACRD,IAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAA,iBAAA,EAAoB,WAAW,GAAG,2BAA2B,GAAG,4BAA4B,CAAA,CAAE,EACzG,cAAc,EAAE,sBAAsB,EAAA,aAAA,EAC1B,MAAM,EAAA,QAAA,EAAA,CAElBC,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE;AACH,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,MAAM,EAAE,QAAQ;AAChB,4BAAA,UAAU,EAAE,KAAK;4BACjB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;4BAC5B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC,yBAAA,EAAA,CACH,EACFA,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE;AACH,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,MAAM,EAAE,QAAQ;AAChB,4BAAA,UAAU,EAAE,KAAK;4BACjB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;4BAC5B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;yBAChC,EAAA,CACH,CAAA,EAAA,CACA,CACT,EAGA,SAAS,IAAI,CAAC,eAAe,KAC1BD,IAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE;AACH,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,UAAU,EAAE,EAAE;AACd,oBAAA,SAAS,EAAE,kBAAkB;AAC7B,oBAAA,KAAK,EAAE,GAAG;AACV,oBAAA,UAAU,EAAE,4BAA4B;AACxC,oBAAA,MAAM,EAAE,wCAAwC;AAChD,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE,gCAAgC;AAC3C,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,GAAG,EAAE,EAAE;AACP,oBAAA,UAAU,EAAE,YAAY;AACxB,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,MAAM,EAAE,IAAI;AACf,iBAAA,EAAA,QAAA,EAAA,CAGDC,IAAC,kBAAkB,EAAA,EACf,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,EAAE,EACR,cAAc,EAAE,cAAc,EAAA,CAChC,EAGFD,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CAChCA,IAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAE;AACH,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,UAAU,EAAE,UAAU;AACtB,oCAAA,GAAG,EAAE,CAAC;AACN,oCAAA,YAAY,EAAE,CAAC;AACf,oCAAA,QAAQ,EAAE,MAAM;iCACnB,EAAA,QAAA,EAAA,CAEDC,GAAA,CAAA,MAAA,EAAA,EACI,KAAK,EAAE;AACH,4CAAA,GAAG,IAAI;AACP,4CAAA,QAAQ,EAAE,EAAE;AACZ,4CAAA,UAAU,EAAE,GAAG;AACf,4CAAA,KAAK,EAAE,0BAA0B;AACpC,yCAAA,EAAA,QAAA,EAEA,UAAU,CAAC,MAAM,GAAG;8CACf,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA,CAAA;8CACtD,UAAU,EAAA,CACb,EACN,gBAAgB,KACbA,GAAA,CAAA,MAAA,EAAA,EACI,KAAK,EAAE;AACH,4CAAA,GAAG,IAAI;AACP,4CAAA,QAAQ,EAAE,EAAE;AACZ,4CAAA,KAAK,EAAE,oCAAoC;yCAC9C,EAAA,QAAA,EAEA,eAAe,CAAC,gBAAgB,CAAC,EAAA,CAC/B,CACV,CAAA,EAAA,CACC,EACNA,GAAA,CAAA,GAAA,EAAA,EACI,KAAK,EAAE;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,QAAQ,EAAE,EAAE;AACZ,oCAAA,KAAK,EAAE,0BAA0B;AACjC,oCAAA,MAAM,EAAE,SAAS;AACjB,oCAAA,UAAU,EAAE,GAAG;AAClB,iCAAA,EAAA,QAAA,EAEA;AACG,sCAAE,cAAc,CAAC,MAAM,GAAG;0CACpB,CAAA,EAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA,CAAA;AACxD,0CAAE;AACN,sCAAE,iBAAiB,EAAA,CACvB,EACH,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC,KACvCA,GAAA,CAAA,MAAA,EAAA,EACI,KAAK,EAAE;AACH,oCAAA,GAAG,IAAI;AACP,oCAAA,QAAQ,EAAE,EAAE;AACZ,oCAAA,KAAK,EAAE,6BAA6B;iCACvC,EAAA,QAAA,EAEA,UAAU,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,UAAU,CAAA,QAAA,CAAU,GACpD,CACV,CAAA,EAAA,CACC,IACJ,CACT,CAAA,EAAA,CACC;AAEd;;"}
1
+ {"version":3,"file":"ChatBubble.js","sources":["../../../../Chat/Kit/ChatBubble.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport type { Guid } from '@cratis/fundamentals';\nimport { PersonAvatarCircle, getAvatarColor, type BuildAvatarUrlParams } from './Avatar';\n\nconst FONT: React.CSSProperties = { fontFamily: 'system-ui, sans-serif' };\nconst PREVIEW_AUTHOR_NAME_MAX_LENGTH = 14;\nconst PREVIEW_MESSAGE_MAX_LENGTH = 60;\n\nfunction formatTimestamp(date: Date): string {\n const diffMs = Date.now() - date.getTime();\n const diffMinutes = Math.floor(diffMs / 60_000);\n if (diffMinutes < 1) return 'just now';\n if (diffMinutes < 60) return `${diffMinutes}m ago`;\n const diffHours = Math.floor(diffMinutes / 60);\n if (diffHours < 24) return `${diffHours}h ago`;\n return date.toLocaleDateString(undefined, { month: 'short', day: 'numeric' });\n}\n\n/**\n * Props for a canvas-rendered chat bubble avatar with hover preview and optional thinking indicator.\n * Shows the author's avatar circle with an optional selection ring, animated thinking dots, and a\n * hover card previewing the conversation state.\n */\nexport interface ChatBubbleProps {\n /** The identifier of the person this bubble represents. */\n authorId: Guid | string;\n\n /** The person's display name, used for the avatar and preview. */\n authorName: string;\n\n /** Whether the person has an uploaded avatar image. */\n hasAvatar: boolean;\n\n /** The avatar circle's diameter in pixels. Defaults to `56`. */\n size?: number;\n\n /** Whether to suppress the hover preview card. Defaults to `false`. */\n suppressPreview?: boolean;\n\n /** The most recent message text shown in the preview. */\n previewMessage?: string;\n\n /** The timestamp of the most recent message shown in the preview. */\n previewTimestamp?: Date;\n\n /** The number of replies shown in the preview. */\n replyCount?: number;\n\n /** Whether to show the animated thinking-bubble indicator. Defaults to `false`. */\n showThinkingBubbles?: boolean;\n\n /** Whether to show the selection ring around the avatar. Defaults to `false`. */\n selected?: boolean;\n\n /** Builds the avatar image URL. Omit to always show initials — see {@link PersonAvatarCircleProps}. */\n buildAvatarUrl?: (params: BuildAvatarUrlParams) => string;\n}\n\n/**\n * A canvas-rendered chat bubble avatar with hover preview and optional thinking indicator. Shows\n * the author's avatar circle with an optional selection ring, animated thinking dots trailing\n * down-right, and a hover card previewing the conversation state.\n */\nexport const ChatBubble: React.FC<ChatBubbleProps> = ({\n authorId,\n authorName,\n hasAvatar,\n size = 56,\n suppressPreview = false,\n previewMessage,\n previewTimestamp,\n replyCount,\n showThinkingBubbles = false,\n selected = false,\n buildAvatarUrl,\n}) => {\n const [isHovered, setIsHovered] = useState(false);\n // The thinking dots always use the person's deterministic color, even when an avatar image is\n // shown, so they stay visually tied to the person rather than picking up an unrelated color.\n const color = getAvatarColor(authorId.toString());\n\n // Thinking-bubble animation state\n const [dotsVisible, setDotsVisible] = useState(showThinkingBubbles);\n const [dotsExiting, setDotsExiting] = useState(false);\n const previousShowBubbles = useRef(false);\n\n useEffect(() => {\n if (showThinkingBubbles && !previousShowBubbles.current) {\n setDotsExiting(false);\n setDotsVisible(true);\n } else if (!showThinkingBubbles && previousShowBubbles.current) {\n setDotsExiting(true);\n }\n previousShowBubbles.current = showThinkingBubbles;\n }, [showThinkingBubbles]);\n\n const handleDotsAnimationEnd = () => {\n if (dotsExiting) {\n setDotsVisible(false);\n setDotsExiting(false);\n }\n };\n\n const dotSize1 = Math.max(8, Math.round(size * 0.2));\n const dotSize2 = Math.max(5, Math.round(size * 0.12));\n\n return (\n <div\n style={{ position: 'relative', width: size, height: size }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {/* Avatar circle */}\n <div\n style={{\n width: size,\n height: size,\n borderRadius: '50%',\n boxShadow: selected\n ? `inset 0 0 0 3px var(--cratis-primary-color), 0 4px 12px rgba(0, 0, 0, 0.22)`\n : '0 4px 12px rgba(0, 0, 0, 0.22)',\n position: 'relative',\n }}\n >\n <PersonAvatarCircle\n userId={authorId}\n name={authorName}\n hasAvatar={hasAvatar}\n size={size}\n avatarSize='Medium'\n buildAvatarUrl={buildAvatarUrl}\n />\n </div>\n\n {/* Animated thinking bubbles trailing down-right */}\n {dotsVisible && (\n <div\n className={`thinking-bubbles ${dotsExiting ? 'thinking-bubbles--exiting' : 'thinking-bubbles--entering'}`}\n onAnimationEnd={handleDotsAnimationEnd}\n aria-hidden='true'\n >\n <div\n className='thinking-dot thinking-dot--1'\n style={{\n width: dotSize1,\n height: dotSize1,\n background: color,\n top: Math.round(size * 0.94),\n left: Math.round(size * 0.82),\n }}\n />\n <div\n className='thinking-dot thinking-dot--2'\n style={{\n width: dotSize2,\n height: dotSize2,\n background: color,\n top: Math.round(size * 1.22),\n left: Math.round(size * 1.02),\n }}\n />\n </div>\n )}\n\n {/* Hover preview card */}\n {isHovered && !suppressPreview && (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n left: '100%',\n marginLeft: 14,\n transform: 'translateY(-50%)',\n width: 224,\n background: 'var(--cratis-surface-card)',\n border: '1px solid var(--cratis-surface-border)',\n borderRadius: 10,\n boxShadow: '0 8px 24px rgba(0, 0, 0, 0.14)',\n padding: '10px 12px',\n display: 'flex',\n gap: 10,\n alignItems: 'flex-start',\n pointerEvents: 'none',\n zIndex: 9999,\n }}\n >\n {/* Avatar in preview */}\n <PersonAvatarCircle\n userId={authorId}\n name={authorName}\n hasAvatar={hasAvatar}\n size={30}\n buildAvatarUrl={buildAvatarUrl}\n />\n\n {/* Text content */}\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n display: 'flex',\n alignItems: 'baseline',\n gap: 6,\n marginBottom: 3,\n flexWrap: 'wrap',\n }}\n >\n <span\n style={{\n ...FONT,\n fontSize: 12,\n fontWeight: 600,\n color: 'var(--cratis-text-color)',\n }}\n >\n {authorName.length > PREVIEW_AUTHOR_NAME_MAX_LENGTH\n ? `${authorName.slice(0, PREVIEW_AUTHOR_NAME_MAX_LENGTH)}…`\n : authorName}\n </span>\n {previewTimestamp && (\n <span\n style={{\n ...FONT,\n fontSize: 10,\n color: 'var(--cratis-text-color-secondary)',\n }}\n >\n {formatTimestamp(previewTimestamp)}\n </span>\n )}\n </div>\n <p\n style={{\n ...FONT,\n fontSize: 11,\n color: 'var(--cratis-text-color)',\n margin: '0 0 6px',\n lineHeight: 1.4,\n }}\n >\n {previewMessage\n ? previewMessage.length > PREVIEW_MESSAGE_MAX_LENGTH\n ? `${previewMessage.slice(0, PREVIEW_MESSAGE_MAX_LENGTH)}…`\n : previewMessage\n : 'No messages yet'}\n </p>\n {replyCount !== undefined && replyCount > 0 && (\n <span\n style={{\n ...FONT,\n fontSize: 10,\n color: 'var(--cratis-primary-color)',\n }}\n >\n {replyCount === 1 ? '1 reply' : `${replyCount} replies`}\n </span>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -62,3 +62,4 @@ export interface ChatComposerHandle {
62
62
  * button. It owns the draft so the surrounding panel stays a renderer of messages.
63
63
  */
64
64
  export declare const ChatComposer: React.ForwardRefExoticComponent<ChatComposerProps & React.RefAttributes<ChatComposerHandle>>;
65
+ //# sourceMappingURL=ChatComposer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/ChatComposer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAU,CAAC;AAKrD,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,qBAAY,CAAC;AACvE,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,qBAAkB,CAAC;AAE7E;eACe;AACf,MAAM,WAAW,kBAAkB;IAC/B,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEvC;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,CACvB,KAAK,EAAE,MAAM,KACZ,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEtD;;;;OAIG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAE7D,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wFAAwF;IACxF,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAE1D,+FAA+F;IAC/F,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B,2EAA2E;IAC3E,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,8FAmRxB,CAAC"}