@assistant-ui/react 0.12.25 → 0.12.27

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 (491) hide show
  1. package/dist/augmentations.d.ts.map +1 -1
  2. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  3. package/dist/client/InMemoryThreadList.js +1 -0
  4. package/dist/client/InMemoryThreadList.js.map +1 -1
  5. package/dist/client/SingleThreadList.d.ts.map +1 -1
  6. package/dist/client/SingleThreadList.js +1 -0
  7. package/dist/client/SingleThreadList.js.map +1 -1
  8. package/dist/context/providers/MessageProvider.d.ts +1 -1
  9. package/dist/context/providers/MessageProvider.d.ts.map +1 -1
  10. package/dist/context/react/ThreadViewportContext.d.ts +3 -3
  11. package/dist/context/react/ThreadViewportContext.d.ts.map +1 -1
  12. package/dist/context/react/utils/createContextHook.d.ts +1 -1
  13. package/dist/context/react/utils/createContextHook.d.ts.map +1 -1
  14. package/dist/context/react/utils/createContextHook.js.map +1 -1
  15. package/dist/context/react/utils/createContextStoreHook.d.ts +1 -1
  16. package/dist/context/react/utils/createContextStoreHook.d.ts.map +1 -1
  17. package/dist/context/react/utils/createStateHookForRuntime.d.ts +1 -1
  18. package/dist/context/react/utils/createStateHookForRuntime.d.ts.map +1 -1
  19. package/dist/context/react/utils/createStateHookForRuntime.js +1 -0
  20. package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
  21. package/dist/devtools/DevToolsHooks.d.ts +1 -1
  22. package/dist/devtools/DevToolsHooks.d.ts.map +1 -1
  23. package/dist/devtools/DevToolsHooks.js +4 -0
  24. package/dist/devtools/DevToolsHooks.js.map +1 -1
  25. package/dist/index.d.ts +3 -5
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +6 -32
  28. package/dist/index.js.map +1 -1
  29. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +3 -3
  30. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  31. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  32. package/dist/legacy-runtime/cloud/auiV0.d.ts +3 -3
  33. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -1
  34. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  35. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +1 -1
  36. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  37. package/dist/legacy-runtime/hooks/AssistantContext.d.ts +1 -1
  38. package/dist/legacy-runtime/hooks/AssistantContext.d.ts.map +1 -1
  39. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +1 -1
  40. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts.map +1 -1
  41. package/dist/legacy-runtime/hooks/ComposerContext.d.ts +1 -1
  42. package/dist/legacy-runtime/hooks/ComposerContext.d.ts.map +1 -1
  43. package/dist/legacy-runtime/hooks/MessageContext.d.ts +1 -1
  44. package/dist/legacy-runtime/hooks/MessageContext.d.ts.map +1 -1
  45. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +1 -1
  46. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts.map +1 -1
  47. package/dist/legacy-runtime/hooks/ThreadContext.d.ts +1 -1
  48. package/dist/legacy-runtime/hooks/ThreadContext.d.ts.map +1 -1
  49. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +1 -1
  50. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts.map +1 -1
  51. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts +1 -1
  52. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts.map +1 -1
  53. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +2 -2
  54. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  55. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts +3 -3
  56. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  57. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +14 -1
  58. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  59. package/dist/model-context/frame/useAssistantFrameHost.d.ts +1 -1
  60. package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -1
  61. package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
  62. package/dist/model-context/makeAssistantVisible.d.ts +1 -1
  63. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
  64. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -1
  65. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  66. package/dist/primitives/actionBar/ActionBarEdit.d.ts +1 -1
  67. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  68. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts +1 -1
  69. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -1
  70. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +1 -1
  71. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  72. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +1 -1
  73. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  74. package/dist/primitives/actionBar/ActionBarReload.d.ts +1 -1
  75. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  76. package/dist/primitives/actionBar/ActionBarRoot.d.ts +1 -1
  77. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  78. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +1 -1
  79. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  80. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +1 -1
  81. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  82. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +5 -2
  83. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -1
  84. package/dist/primitives/actionBarMore/ActionBarMoreContent.js +3 -2
  85. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  86. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +7 -4
  87. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -1
  88. package/dist/primitives/actionBarMore/ActionBarMoreItem.js +2 -2
  89. package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -1
  90. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +1 -1
  91. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -1
  92. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -1
  93. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +7 -4
  94. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -1
  95. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +2 -2
  96. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -1
  97. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +7 -4
  98. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -1
  99. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +2 -2
  100. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -1
  101. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +1 -1
  102. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  103. package/dist/primitives/assistantModal/AssistantModalAnchor.js +1 -1
  104. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  105. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +1 -1
  106. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  107. package/dist/primitives/assistantModal/AssistantModalContent.js +1 -1
  108. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  109. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +1 -1
  110. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  111. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  112. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +1 -1
  113. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  114. package/dist/primitives/assistantModal/AssistantModalTrigger.js +1 -1
  115. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  116. package/dist/primitives/attachment/AttachmentRemove.d.ts +1 -1
  117. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  118. package/dist/primitives/attachment/AttachmentRoot.d.ts +1 -1
  119. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  120. package/dist/primitives/attachment/AttachmentRoot.js +1 -1
  121. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  122. package/dist/primitives/attachment/AttachmentThumb.d.ts +1 -1
  123. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  124. package/dist/primitives/attachment/AttachmentThumb.js +1 -1
  125. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  126. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +1 -1
  127. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  128. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +1 -1
  129. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  130. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +1 -1
  131. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  132. package/dist/primitives/branchPicker/BranchPickerRoot.js +1 -1
  133. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  134. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +1 -1
  135. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
  136. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +1 -1
  137. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -1
  138. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +1 -1
  139. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -1
  140. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -1
  141. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  142. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts +1 -1
  143. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -1
  144. package/dist/primitives/composer/ComposerAttachmentDropzone.js +3 -2
  145. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  146. package/dist/primitives/composer/ComposerCancel.d.ts +1 -1
  147. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  148. package/dist/primitives/composer/ComposerDictationTranscript.d.ts +1 -1
  149. package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -1
  150. package/dist/primitives/composer/ComposerDictationTranscript.js +1 -1
  151. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
  152. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  153. package/dist/primitives/composer/ComposerInput.js +28 -0
  154. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  155. package/dist/primitives/composer/ComposerInputPluginContext.d.ts +11 -3
  156. package/dist/primitives/composer/ComposerInputPluginContext.d.ts.map +1 -1
  157. package/dist/primitives/composer/ComposerInputPluginContext.js +13 -9
  158. package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -1
  159. package/dist/primitives/composer/ComposerRoot.d.ts +1 -1
  160. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  161. package/dist/primitives/composer/ComposerSend.d.ts +1 -1
  162. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  163. package/dist/primitives/composer/trigger/TriggerPopover.d.ts +60 -0
  164. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -0
  165. package/dist/primitives/composer/trigger/TriggerPopover.js +108 -0
  166. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -0
  167. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts +31 -0
  168. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts.map +1 -0
  169. package/dist/primitives/composer/trigger/TriggerPopoverAction.js +39 -0
  170. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -0
  171. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts.map +1 -1
  172. package/dist/primitives/composer/trigger/TriggerPopoverBack.js +3 -3
  173. package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -1
  174. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts.map +1 -1
  175. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +11 -9
  176. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
  177. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts +28 -0
  178. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts.map +1 -0
  179. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js +37 -0
  180. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -0
  181. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts.map +1 -1
  182. package/dist/primitives/composer/trigger/TriggerPopoverItems.js +9 -6
  183. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
  184. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +16 -17
  185. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
  186. package/dist/primitives/composer/trigger/TriggerPopoverResource.js +53 -248
  187. package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -1
  188. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts +60 -0
  189. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts.map +1 -0
  190. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +117 -0
  191. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -0
  192. package/dist/primitives/composer/trigger/detectTrigger.js +1 -1
  193. package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -1
  194. package/dist/primitives/composer/trigger/index.d.ts +16 -3
  195. package/dist/primitives/composer/trigger/index.d.ts.map +1 -1
  196. package/dist/primitives/composer/trigger/index.js +9 -2
  197. package/dist/primitives/composer/trigger/index.js.map +1 -1
  198. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +22 -0
  199. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -0
  200. package/dist/primitives/composer/trigger/triggerDetectionResource.js +17 -0
  201. package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -0
  202. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +45 -0
  203. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -0
  204. package/dist/primitives/composer/trigger/triggerKeyboardResource.js +94 -0
  205. package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -0
  206. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +31 -0
  207. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -0
  208. package/dist/primitives/composer/trigger/triggerNavigationResource.js +94 -0
  209. package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -0
  210. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +42 -0
  211. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -0
  212. package/dist/primitives/composer/trigger/triggerSelectionResource.js +62 -0
  213. package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -0
  214. package/dist/primitives/composer.d.ts +8 -13
  215. package/dist/primitives/composer.d.ts.map +1 -1
  216. package/dist/primitives/composer.js +7 -17
  217. package/dist/primitives/composer.js.map +1 -1
  218. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts +14 -0
  219. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts.map +1 -0
  220. package/dist/primitives/dropdownMenuRenderPrimitives.js +7 -0
  221. package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -0
  222. package/dist/primitives/error/ErrorMessage.d.ts +1 -1
  223. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  224. package/dist/primitives/error/ErrorMessage.js +1 -1
  225. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  226. package/dist/primitives/error/ErrorRoot.d.ts +1 -1
  227. package/dist/primitives/error/ErrorRoot.d.ts.map +1 -1
  228. package/dist/primitives/error/ErrorRoot.js +1 -1
  229. package/dist/primitives/error/ErrorRoot.js.map +1 -1
  230. package/dist/primitives/message/MessageError.d.ts +1 -1
  231. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  232. package/dist/primitives/message/MessageIf.js +1 -1
  233. package/dist/primitives/message/MessageIf.js.map +1 -1
  234. package/dist/primitives/message/MessagePartsGrouped.d.ts +1 -1
  235. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  236. package/dist/primitives/message/MessageRoot.d.ts +1 -1
  237. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  238. package/dist/primitives/messagePart/MessagePartImage.d.ts +1 -1
  239. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -1
  240. package/dist/primitives/messagePart/MessagePartImage.js +2 -1
  241. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -1
  242. package/dist/primitives/messagePart/MessagePartInProgress.d.ts +1 -1
  243. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  244. package/dist/primitives/messagePart/MessagePartText.d.ts +2 -2
  245. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
  246. package/dist/primitives/queueItem/QueueItemRemove.d.ts +1 -1
  247. package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -1
  248. package/dist/primitives/queueItem/QueueItemSteer.d.ts +1 -1
  249. package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -1
  250. package/dist/primitives/suggestion/SuggestionDescription.d.ts +1 -1
  251. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -1
  252. package/dist/primitives/suggestion/SuggestionDescription.js +1 -1
  253. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
  254. package/dist/primitives/suggestion/SuggestionTitle.d.ts +1 -1
  255. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -1
  256. package/dist/primitives/suggestion/SuggestionTitle.js +1 -1
  257. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
  258. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +1 -1
  259. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  260. package/dist/primitives/thread/ThreadRoot.d.ts +1 -1
  261. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  262. package/dist/primitives/thread/ThreadRoot.js +1 -1
  263. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  264. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +1 -1
  265. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  266. package/dist/primitives/thread/ThreadSuggestion.d.ts +1 -1
  267. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  268. package/dist/primitives/thread/ThreadSuggestion.js +0 -2
  269. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  270. package/dist/primitives/thread/ThreadViewport.d.ts +1 -1
  271. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  272. package/dist/primitives/thread/ThreadViewportFooter.d.ts +1 -1
  273. package/dist/primitives/thread/ThreadViewportFooter.d.ts.map +1 -1
  274. package/dist/primitives/threadList/ThreadListNew.d.ts +1 -1
  275. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  276. package/dist/primitives/threadList/ThreadListRoot.d.ts +1 -1
  277. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -1
  278. package/dist/primitives/threadList/ThreadListRoot.js +1 -1
  279. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  280. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +1 -1
  281. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  282. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +1 -1
  283. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  284. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +1 -1
  285. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  286. package/dist/primitives/threadListItem/ThreadListItemRoot.js +1 -1
  287. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  288. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +1 -1
  289. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  290. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +1 -1
  291. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  292. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +5 -2
  293. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -1
  294. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +3 -2
  295. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  296. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +7 -4
  297. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -1
  298. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +2 -2
  299. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -1
  300. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +1 -1
  301. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -1
  302. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  303. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +7 -4
  304. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -1
  305. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +2 -2
  306. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -1
  307. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +7 -4
  308. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -1
  309. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +2 -2
  310. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
  311. package/dist/unstable/useMentionAdapter.d.ts +80 -0
  312. package/dist/unstable/useMentionAdapter.d.ts.map +1 -0
  313. package/dist/unstable/useMentionAdapter.js +129 -0
  314. package/dist/unstable/useMentionAdapter.js.map +1 -0
  315. package/dist/unstable/useSlashCommandAdapter.d.ts +32 -17
  316. package/dist/unstable/useSlashCommandAdapter.d.ts.map +1 -1
  317. package/dist/unstable/useSlashCommandAdapter.js +56 -32
  318. package/dist/unstable/useSlashCommandAdapter.js.map +1 -1
  319. package/dist/utils/Primitive.d.ts +6 -4
  320. package/dist/utils/Primitive.d.ts.map +1 -1
  321. package/dist/utils/Primitive.js +15 -8
  322. package/dist/utils/Primitive.js.map +1 -1
  323. package/dist/utils/createActionButton.d.ts +1 -1
  324. package/dist/utils/createActionButton.d.ts.map +1 -1
  325. package/dist/utils/hooks/useManagedRef.d.ts +1 -1
  326. package/dist/utils/hooks/useManagedRef.d.ts.map +1 -1
  327. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  328. package/dist/utils/json/is-json.d.ts +1 -1
  329. package/dist/utils/json/is-json.d.ts.map +1 -1
  330. package/dist/utils/smooth/SmoothContext.d.ts +2 -2
  331. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -1
  332. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  333. package/package.json +10 -10
  334. package/src/augmentations.ts +2 -0
  335. package/src/client/InMemoryThreadList.ts +1 -0
  336. package/src/client/SingleThreadList.ts +1 -0
  337. package/src/context/providers/MessageProvider.tsx +1 -1
  338. package/src/context/providers/ThreadViewportProvider.tsx +1 -1
  339. package/src/context/react/ThreadViewportContext.ts +3 -3
  340. package/src/context/react/utils/createContextHook.ts +1 -1
  341. package/src/context/react/utils/createContextStoreHook.ts +2 -2
  342. package/src/context/react/utils/createStateHookForRuntime.ts +2 -1
  343. package/src/devtools/DevToolsHooks.ts +5 -1
  344. package/src/index.ts +27 -56
  345. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +3 -3
  346. package/src/legacy-runtime/cloud/auiV0.ts +6 -3
  347. package/src/legacy-runtime/cloud/useCloudThreadListRuntime.ts +1 -1
  348. package/src/legacy-runtime/hooks/AssistantContext.ts +1 -1
  349. package/src/legacy-runtime/hooks/AttachmentContext.ts +1 -1
  350. package/src/legacy-runtime/hooks/ComposerContext.ts +1 -1
  351. package/src/legacy-runtime/hooks/MessageContext.ts +1 -1
  352. package/src/legacy-runtime/hooks/MessagePartContext.ts +1 -1
  353. package/src/legacy-runtime/hooks/ThreadContext.ts +1 -1
  354. package/src/legacy-runtime/hooks/ThreadListItemContext.ts +1 -1
  355. package/src/legacy-runtime/runtime-cores/assistant-transport/commandQueue.ts +1 -1
  356. package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +2 -2
  357. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.ts +20 -4
  358. package/src/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.test.ts +8 -2
  359. package/src/model-context/frame/useAssistantFrameHost.ts +1 -1
  360. package/src/model-context/makeAssistantVisible.tsx +3 -3
  361. package/src/primitives/actionBar/ActionBarCopy.tsx +1 -1
  362. package/src/primitives/actionBar/ActionBarEdit.ts +2 -2
  363. package/src/primitives/actionBar/ActionBarExportMarkdown.tsx +1 -1
  364. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +1 -1
  365. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +1 -1
  366. package/src/primitives/actionBar/ActionBarReload.ts +2 -2
  367. package/src/primitives/actionBar/ActionBarRoot.tsx +1 -1
  368. package/src/primitives/actionBar/ActionBarSpeak.ts +2 -2
  369. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +1 -1
  370. package/src/primitives/actionBarMore/ActionBarMoreContent.tsx +10 -4
  371. package/src/primitives/actionBarMore/ActionBarMoreItem.tsx +7 -7
  372. package/src/primitives/actionBarMore/ActionBarMoreRoot.tsx +2 -2
  373. package/src/primitives/actionBarMore/ActionBarMoreSeparator.tsx +7 -5
  374. package/src/primitives/actionBarMore/ActionBarMoreTrigger.tsx +7 -7
  375. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +6 -2
  376. package/src/primitives/assistantModal/AssistantModalContent.tsx +6 -2
  377. package/src/primitives/assistantModal/AssistantModalRoot.tsx +2 -2
  378. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +6 -2
  379. package/src/primitives/attachment/AttachmentRemove.ts +2 -2
  380. package/src/primitives/attachment/AttachmentRoot.tsx +5 -1
  381. package/src/primitives/attachment/AttachmentThumb.tsx +5 -1
  382. package/src/primitives/branchPicker/BranchPickerNext.ts +2 -2
  383. package/src/primitives/branchPicker/BranchPickerPrevious.ts +2 -2
  384. package/src/primitives/branchPicker/BranchPickerRoot.tsx +5 -1
  385. package/src/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.ts +2 -2
  386. package/src/primitives/chainOfThought/ChainOfThoughtRoot.tsx +5 -1
  387. package/src/primitives/composer/ComposerAddAttachment.ts +2 -2
  388. package/src/primitives/composer/ComposerAttachmentDropzone.test.tsx +125 -0
  389. package/src/primitives/composer/ComposerAttachmentDropzone.tsx +11 -8
  390. package/src/primitives/composer/ComposerCancel.ts +2 -2
  391. package/src/primitives/composer/ComposerDictationTranscript.tsx +5 -1
  392. package/src/primitives/composer/ComposerInput.tsx +33 -1
  393. package/src/primitives/composer/ComposerInputPluginContext.tsx +37 -24
  394. package/src/primitives/composer/ComposerRoot.tsx +1 -1
  395. package/src/primitives/composer/ComposerSend.ts +2 -2
  396. package/src/primitives/composer/trigger/TriggerPopover.tsx +207 -0
  397. package/src/primitives/composer/trigger/TriggerPopoverAction.tsx +61 -0
  398. package/src/primitives/composer/trigger/TriggerPopoverBack.tsx +4 -3
  399. package/src/primitives/composer/trigger/TriggerPopoverCategories.tsx +14 -17
  400. package/src/primitives/composer/trigger/TriggerPopoverDirective.tsx +57 -0
  401. package/src/primitives/composer/trigger/TriggerPopoverItems.tsx +44 -40
  402. package/src/primitives/composer/trigger/TriggerPopoverResource.ts +76 -315
  403. package/src/primitives/composer/trigger/TriggerPopoverRootContext.tsx +212 -0
  404. package/src/primitives/composer/trigger/detectTrigger.test.ts +36 -0
  405. package/src/primitives/composer/trigger/detectTrigger.ts +1 -1
  406. package/src/primitives/composer/trigger/index.ts +21 -5
  407. package/src/primitives/composer/trigger/triggerDetectionResource.ts +43 -0
  408. package/src/primitives/composer/trigger/triggerKeyboardResource.ts +151 -0
  409. package/src/primitives/composer/trigger/triggerNavigationResource.ts +145 -0
  410. package/src/primitives/composer/trigger/triggerSelectionResource.ts +122 -0
  411. package/src/primitives/composer.ts +8 -18
  412. package/src/primitives/dropdownMenuRenderPrimitives.test.tsx +64 -0
  413. package/src/primitives/dropdownMenuRenderPrimitives.ts +15 -0
  414. package/src/primitives/error/ErrorMessage.tsx +5 -1
  415. package/src/primitives/error/ErrorRoot.tsx +5 -1
  416. package/src/primitives/message/MessageError.ts +1 -1
  417. package/src/primitives/message/MessageIf.ts +1 -1
  418. package/src/primitives/message/MessagePartsGrouped.tsx +1 -1
  419. package/src/primitives/message/MessageRoot.tsx +1 -1
  420. package/src/primitives/messagePart/MessagePartImage.tsx +6 -1
  421. package/src/primitives/messagePart/MessagePartInProgress.ts +1 -1
  422. package/src/primitives/messagePart/MessagePartText.tsx +3 -3
  423. package/src/primitives/queueItem/QueueItemRemove.ts +2 -2
  424. package/src/primitives/queueItem/QueueItemSteer.ts +2 -2
  425. package/src/primitives/suggestion/SuggestionDescription.tsx +5 -1
  426. package/src/primitives/suggestion/SuggestionTitle.tsx +5 -1
  427. package/src/primitives/suggestion/SuggestionTrigger.ts +2 -2
  428. package/src/primitives/thread/ThreadRoot.tsx +5 -1
  429. package/src/primitives/thread/ThreadScrollToBottom.ts +2 -2
  430. package/src/primitives/thread/ThreadSuggestion.ts +2 -4
  431. package/src/primitives/thread/ThreadViewport.tsx +1 -1
  432. package/src/primitives/thread/ThreadViewportFooter.tsx +1 -1
  433. package/src/primitives/threadList/ThreadListNew.tsx +1 -1
  434. package/src/primitives/threadList/ThreadListRoot.tsx +5 -1
  435. package/src/primitives/threadListItem/ThreadListItemArchive.ts +2 -2
  436. package/src/primitives/threadListItem/ThreadListItemDelete.ts +2 -2
  437. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +5 -1
  438. package/src/primitives/threadListItem/ThreadListItemTrigger.ts +2 -2
  439. package/src/primitives/threadListItem/ThreadListItemUnarchive.ts +2 -2
  440. package/src/primitives/threadListItemMore/ThreadListItemMoreContent.tsx +10 -4
  441. package/src/primitives/threadListItemMore/ThreadListItemMoreItem.tsx +7 -7
  442. package/src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx +2 -2
  443. package/src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx +7 -5
  444. package/src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx +7 -7
  445. package/src/tests/BaseComposerRuntimeCore.test.ts +143 -0
  446. package/src/tests/DataRenderers.test.ts +174 -41
  447. package/src/tests/MessageParts.loading.test.tsx +104 -0
  448. package/src/tests/RemoteThreadListRuntime.deferredProvider.test.tsx +79 -0
  449. package/src/unstable/useMentionAdapter.ts +220 -0
  450. package/src/unstable/useSlashCommandAdapter.ts +79 -50
  451. package/src/utils/Primitive.test.tsx +7 -1
  452. package/src/utils/Primitive.tsx +49 -16
  453. package/src/utils/createActionButton.tsx +3 -3
  454. package/src/utils/hooks/useManagedRef.ts +2 -2
  455. package/src/utils/json/is-json.ts +1 -1
  456. package/src/utils/smooth/SmoothContext.tsx +5 -5
  457. package/dist/primitives/composer/mention/ComposerMentionContext.d.ts +0 -25
  458. package/dist/primitives/composer/mention/ComposerMentionContext.d.ts.map +0 -1
  459. package/dist/primitives/composer/mention/ComposerMentionContext.js +0 -74
  460. package/dist/primitives/composer/mention/ComposerMentionContext.js.map +0 -1
  461. package/dist/primitives/composer/mention/index.d.ts +0 -6
  462. package/dist/primitives/composer/mention/index.d.ts.map +0 -1
  463. package/dist/primitives/composer/mention/index.js +0 -8
  464. package/dist/primitives/composer/mention/index.js.map +0 -1
  465. package/dist/primitives/composer/slash-command/ComposerSlashCommandRoot.d.ts +0 -36
  466. package/dist/primitives/composer/slash-command/ComposerSlashCommandRoot.d.ts.map +0 -1
  467. package/dist/primitives/composer/slash-command/ComposerSlashCommandRoot.js +0 -36
  468. package/dist/primitives/composer/slash-command/ComposerSlashCommandRoot.js.map +0 -1
  469. package/dist/primitives/composer/slash-command/index.d.ts +0 -2
  470. package/dist/primitives/composer/slash-command/index.d.ts.map +0 -1
  471. package/dist/primitives/composer/slash-command/index.js +0 -2
  472. package/dist/primitives/composer/slash-command/index.js.map +0 -1
  473. package/dist/primitives/composer/trigger/TriggerPopoverContext.d.ts +0 -37
  474. package/dist/primitives/composer/trigger/TriggerPopoverContext.d.ts.map +0 -1
  475. package/dist/primitives/composer/trigger/TriggerPopoverContext.js +0 -70
  476. package/dist/primitives/composer/trigger/TriggerPopoverContext.js.map +0 -1
  477. package/dist/primitives/composer/trigger/TriggerPopoverPopover.d.ts +0 -26
  478. package/dist/primitives/composer/trigger/TriggerPopoverPopover.d.ts.map +0 -1
  479. package/dist/primitives/composer/trigger/TriggerPopoverPopover.js +0 -28
  480. package/dist/primitives/composer/trigger/TriggerPopoverPopover.js.map +0 -1
  481. package/dist/unstable/useToolMentionAdapter.d.ts +0 -42
  482. package/dist/unstable/useToolMentionAdapter.d.ts.map +0 -1
  483. package/dist/unstable/useToolMentionAdapter.js +0 -65
  484. package/dist/unstable/useToolMentionAdapter.js.map +0 -1
  485. package/src/primitives/composer/mention/ComposerMentionContext.tsx +0 -175
  486. package/src/primitives/composer/mention/index.ts +0 -19
  487. package/src/primitives/composer/slash-command/ComposerSlashCommandRoot.tsx +0 -76
  488. package/src/primitives/composer/slash-command/index.ts +0 -1
  489. package/src/primitives/composer/trigger/TriggerPopoverContext.tsx +0 -129
  490. package/src/primitives/composer/trigger/TriggerPopoverPopover.tsx +0 -51
  491. package/src/unstable/useToolMentionAdapter.ts +0 -114
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
4
+ import { DropdownMenuRenderItem } from "../dropdownMenuRenderPrimitives.js";
5
5
  import { useDropdownMenuScope } from "./scope.js";
6
6
  export const ThreadListItemMorePrimitiveItem = forwardRef(({ __scopeThreadListItemMore, ...rest }, ref) => {
7
7
  const scope = useDropdownMenuScope(__scopeThreadListItemMore);
8
- return _jsx(DropdownMenuPrimitive.Item, { ...scope, ...rest, ref: ref });
8
+ return _jsx(DropdownMenuRenderItem, { ...scope, ...rest, ref: ref });
9
9
  });
10
10
  ThreadListItemMorePrimitiveItem.displayName =
11
11
  "ThreadListItemMorePrimitive.Item";
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreItem.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAA0C,UAAU,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAe,oBAAoB,EAAE,mBAAgB;AAS5D,MAAM,CAAC,MAAM,+BAA+B,GAAG,UAAU,CAIvD,CACE,EACE,yBAAyB,EACzB,GAAG,IAAI,EAC4C,EACrD,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,qBAAqB,CAAC,IAAI,OAAK,KAAK,KAAM,IAAI,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AACvE,CAAC,CACF,CAAC;AAEF,+BAA+B,CAAC,WAAW;IACzC,kCAAkC,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreItem.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAAE,sBAAsB,EAAE,2CAAwC;AACzE,OAAO,EAAoB,oBAAoB,EAAE,mBAAgB;AAOjE,MAAM,CAAC,MAAM,+BAA+B,GAAG,UAAU,CAIvD,CACE,EACE,yBAAyB,EACzB,GAAG,IAAI,EAC4C,EACrD,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,sBAAsB,OAAK,KAAK,KAAM,IAAI,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AACnE,CAAC,CACF,CAAC;AAEF,+BAA+B,CAAC,WAAW;IACzC,kCAAkC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FC } from "react";
1
+ import type { FC } from "react";
2
2
  import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
3
3
  export declare namespace ThreadListItemMorePrimitiveRoot {
4
4
  type Props = DropdownMenuPrimitive.DropdownMenuProps;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGjE,yBAAiB,+BAA+B,CAAC;IAC/C,KAAY,KAAK,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;CAC7D;AAED,eAAO,MAAM,+BAA+B,EAAE,EAAE,CAC9C,+BAA+B,CAAC,KAAK,CAQtC,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGjE,yBAAiB,+BAA+B,CAAC;IAC/C,KAAY,KAAK,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;CAC7D;AAED,eAAO,MAAM,+BAA+B,EAAE,EAAE,CAC9C,+BAA+B,CAAC,KAAK,CAQtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreRoot.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAe,oBAAoB,EAAE,mBAAgB;AAM5D,MAAM,CAAC,MAAM,+BAA+B,GAExC,CAAC,EACH,yBAAyB,EACzB,GAAG,IAAI,EAC4C,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,qBAAqB,CAAC,IAAI,OAAK,KAAK,KAAM,IAAI,GAAI,CAAC;AAC7D,CAAC,CAAC;AAEF,+BAA+B,CAAC,WAAW;IACzC,kCAAkC,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreRoot.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAoB,oBAAoB,EAAE,mBAAgB;AAMjE,MAAM,CAAC,MAAM,+BAA+B,GAExC,CAAC,EACH,yBAAyB,EACzB,GAAG,IAAI,EAC4C,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,qBAAqB,CAAC,IAAI,OAAK,KAAK,KAAM,IAAI,GAAI,CAAC;AAC7D,CAAC,CAAC;AAEF,+BAA+B,CAAC,WAAW;IACzC,kCAAkC,CAAC"}
@@ -1,8 +1,11 @@
1
- import { ComponentPropsWithoutRef, ComponentRef } from "react";
2
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
1
+ import { type ComponentRef } from "react";
2
+ import type { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
3
+ import type { WithRenderPropProps } from "../../utils/Primitive.js";
3
4
  export declare namespace ThreadListItemMorePrimitiveSeparator {
4
5
  type Element = ComponentRef<typeof DropdownMenuPrimitive.Separator>;
5
- type Props = ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>;
6
+ type Props = WithRenderPropProps<typeof DropdownMenuPrimitive.Separator>;
6
7
  }
7
- export declare const ThreadListItemMorePrimitiveSeparator: import("react").ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
+ export declare const ThreadListItemMorePrimitiveSeparator: import("react").ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
9
+ render?: import("react").ReactElement | undefined;
10
+ } & import("react").RefAttributes<HTMLDivElement>>;
8
11
  //# sourceMappingURL=ThreadListItemMoreSeparator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreSeparator.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAc,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGjE,yBAAiB,oCAAoC,CAAC;IACpD,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC3E,KAAY,KAAK,GAAG,wBAAwB,CAC1C,OAAO,qBAAqB,CAAC,SAAS,CACvC,CAAC;CACH;AAED,eAAO,MAAM,oCAAoC,0MAehD,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreSeparator.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iCAA8B;AAIjE,yBAAiB,oCAAoC,CAAC;IACpD,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC3E,KAAY,KAAK,GAAG,mBAAmB,CACrC,OAAO,qBAAqB,CAAC,SAAS,CACvC,CAAC;CACH;AAED,eAAO,MAAM,oCAAoC;;kDAehD,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
4
+ import { DropdownMenuRenderSeparator } from "../dropdownMenuRenderPrimitives.js";
5
5
  import { useDropdownMenuScope } from "./scope.js";
6
6
  export const ThreadListItemMorePrimitiveSeparator = forwardRef(({ __scopeThreadListItemMore, ...rest }, ref) => {
7
7
  const scope = useDropdownMenuScope(__scopeThreadListItemMore);
8
- return _jsx(DropdownMenuPrimitive.Separator, { ...scope, ...rest, ref: ref });
8
+ return _jsx(DropdownMenuRenderSeparator, { ...scope, ...rest, ref: ref });
9
9
  });
10
10
  ThreadListItemMorePrimitiveSeparator.displayName =
11
11
  "ThreadListItemMorePrimitive.Separator";
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreSeparator.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAA0C,UAAU,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAe,oBAAoB,EAAE,mBAAgB;AAS5D,MAAM,CAAC,MAAM,oCAAoC,GAAG,UAAU,CAI5D,CACE,EACE,yBAAyB,EACzB,GAAG,IAAI,EACiD,EAC1D,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,qBAAqB,CAAC,SAAS,OAAK,KAAK,KAAM,IAAI,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AAC5E,CAAC,CACF,CAAC;AAEF,oCAAoC,CAAC,WAAW;IAC9C,uCAAuC,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreSeparator.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAAE,2BAA2B,EAAE,2CAAwC;AAC9E,OAAO,EAAoB,oBAAoB,EAAE,mBAAgB;AASjE,MAAM,CAAC,MAAM,oCAAoC,GAAG,UAAU,CAI5D,CACE,EACE,yBAAyB,EACzB,GAAG,IAAI,EACiD,EAC1D,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,2BAA2B,OAAK,KAAK,KAAM,IAAI,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AACxE,CAAC,CACF,CAAC;AAEF,oCAAoC,CAAC,WAAW;IAC9C,uCAAuC,CAAC"}
@@ -1,8 +1,11 @@
1
- import { ComponentPropsWithoutRef, ComponentRef } from "react";
2
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
1
+ import { type ComponentRef } from "react";
2
+ import type { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
3
+ import type { WithRenderPropProps } from "../../utils/Primitive.js";
3
4
  export declare namespace ThreadListItemMorePrimitiveTrigger {
4
5
  type Element = ComponentRef<typeof DropdownMenuPrimitive.Trigger>;
5
- type Props = ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>;
6
+ type Props = WithRenderPropProps<typeof DropdownMenuPrimitive.Trigger>;
6
7
  }
7
- export declare const ThreadListItemMorePrimitiveTrigger: import("react").ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
8
+ export declare const ThreadListItemMorePrimitiveTrigger: import("react").ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & {
9
+ render?: import("react").ReactElement | undefined;
10
+ } & import("react").RefAttributes<HTMLButtonElement>>;
8
11
  //# sourceMappingURL=ThreadListItemMoreTrigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreTrigger.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAc,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGjE,yBAAiB,kCAAkC,CAAC;IAClD,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACzE,KAAY,KAAK,GAAG,wBAAwB,CAC1C,OAAO,qBAAqB,CAAC,OAAO,CACrC,CAAC;CACH;AAED,eAAO,MAAM,kCAAkC,8MAe9C,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreTrigger.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iCAA8B;AAIjE,yBAAiB,kCAAkC,CAAC;IAClD,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACzE,KAAY,KAAK,GAAG,mBAAmB,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;CAC/E;AAED,eAAO,MAAM,kCAAkC;;qDAe9C,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { forwardRef } from "react";
4
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
4
+ import { DropdownMenuRenderTrigger } from "../dropdownMenuRenderPrimitives.js";
5
5
  import { useDropdownMenuScope } from "./scope.js";
6
6
  export const ThreadListItemMorePrimitiveTrigger = forwardRef(({ __scopeThreadListItemMore, ...rest }, ref) => {
7
7
  const scope = useDropdownMenuScope(__scopeThreadListItemMore);
8
- return _jsx(DropdownMenuPrimitive.Trigger, { ...scope, ...rest, ref: ref });
8
+ return _jsx(DropdownMenuRenderTrigger, { ...scope, ...rest, ref: ref });
9
9
  });
10
10
  ThreadListItemMorePrimitiveTrigger.displayName =
11
11
  "ThreadListItemMorePrimitive.Trigger";
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemMoreTrigger.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAA0C,UAAU,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAe,oBAAoB,EAAE,mBAAgB;AAS5D,MAAM,CAAC,MAAM,kCAAkC,GAAG,UAAU,CAI1D,CACE,EACE,yBAAyB,EACzB,GAAG,IAAI,EAC+C,EACxD,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,qBAAqB,CAAC,OAAO,OAAK,KAAK,KAAM,IAAI,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AAC1E,CAAC,CACF,CAAC;AAEF,kCAAkC,CAAC,WAAW;IAC5C,qCAAqC,CAAC"}
1
+ {"version":3,"file":"ThreadListItemMoreTrigger.js","sourceRoot":"","sources":["../../../src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAAE,yBAAyB,EAAE,2CAAwC;AAC5E,OAAO,EAAoB,oBAAoB,EAAE,mBAAgB;AAOjE,MAAM,CAAC,MAAM,kCAAkC,GAAG,UAAU,CAI1D,CACE,EACE,yBAAyB,EACzB,GAAG,IAAI,EAC+C,EACxD,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAE9D,OAAO,KAAC,yBAAyB,OAAK,KAAK,KAAM,IAAI,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AACtE,CAAC,CACF,CAAC;AAEF,kCAAkC,CAAC,WAAW;IAC5C,qCAAqC,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { type FC } from "react";
2
+ import type { Unstable_DirectiveFormatter, Unstable_TriggerAdapter, Unstable_TriggerItem } from "@assistant-ui/core";
3
+ import type { ReadonlyJSONObject } from "assistant-stream/utils";
4
+ /** Icon component shape consumed by `ComposerTriggerPopover`'s `iconMap`. */
5
+ export type Unstable_IconComponent = FC<{
6
+ className?: string;
7
+ }>;
8
+ export type Unstable_Mention = {
9
+ readonly id: string;
10
+ readonly type: string;
11
+ readonly label: string;
12
+ readonly description?: string | undefined;
13
+ /** Shortcut for `metadata.icon`; merged with `metadata` if both are given. */
14
+ readonly icon?: string | undefined;
15
+ readonly metadata?: ReadonlyJSONObject | undefined;
16
+ };
17
+ export type Unstable_MentionCategory = {
18
+ readonly id: string;
19
+ readonly label: string;
20
+ readonly items: readonly Unstable_Mention[];
21
+ };
22
+ export type Unstable_ModelContextToolsOptions = {
23
+ /** Wrap tools in a dedicated category (drill-down mode). */
24
+ readonly category?: {
25
+ readonly id: string;
26
+ readonly label: string;
27
+ };
28
+ /** Format tool name for display. */
29
+ readonly formatLabel?: (toolName: string) => string;
30
+ /** Default icon key for each tool. */
31
+ readonly icon?: string;
32
+ };
33
+ export type Unstable_UseMentionAdapterOptions = {
34
+ /** Flat mention list. Ignored when `categories` is set. */
35
+ readonly items?: readonly Unstable_Mention[];
36
+ /** Categorized mentions for drill-down navigation. */
37
+ readonly categories?: readonly Unstable_MentionCategory[];
38
+ /**
39
+ * How tools registered via `useAssistantTool` integrate.
40
+ * - `false`: exclude.
41
+ * - `true`: include (default when no `items`/`categories`; as a category
42
+ * if `categories` is set, flat otherwise).
43
+ * - object: explicit config.
44
+ *
45
+ * Omitted → defaults to `true` iff neither `items` nor `categories`.
46
+ */
47
+ readonly includeModelContextTools?: boolean | Unstable_ModelContextToolsOptions;
48
+ /** Directive formatter. @default unstable_defaultDirectiveFormatter */
49
+ readonly formatter?: Unstable_DirectiveFormatter;
50
+ /** Fires after an item is inserted into the composer. */
51
+ readonly onInserted?: (item: Unstable_TriggerItem) => void;
52
+ /** Maps `metadata.icon` / `category.id` string keys to React components. */
53
+ readonly iconMap?: Record<string, Unstable_IconComponent>;
54
+ /** Fallback icon when no entry in `iconMap` matches. */
55
+ readonly fallbackIcon?: Unstable_IconComponent;
56
+ };
57
+ export type Unstable_MentionDirective = {
58
+ readonly formatter: Unstable_DirectiveFormatter;
59
+ readonly onInserted?: ((item: Unstable_TriggerItem) => void) | undefined;
60
+ };
61
+ /**
62
+ * @deprecated Under active development and might change without notice.
63
+ *
64
+ * Creates a spreadable `{ adapter, directive }` bundle for `@` mentions.
65
+ * Supports tools registered via `useAssistantTool`, explicit items, or both —
66
+ * flat or categorized.
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * const mention = unstable_useMentionAdapter();
71
+ * <ComposerTriggerPopover char="@" {...mention} />
72
+ * ```
73
+ */
74
+ export declare function unstable_useMentionAdapter(options?: Unstable_UseMentionAdapterOptions): {
75
+ adapter: Unstable_TriggerAdapter;
76
+ directive: Unstable_MentionDirective;
77
+ iconMap?: Record<string, Unstable_IconComponent>;
78
+ fallbackIcon?: Unstable_IconComponent;
79
+ };
80
+ //# sourceMappingURL=useMentionAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMentionAdapter.d.ts","sourceRoot":"","sources":["../../src/unstable/useMentionAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EACV,2BAA2B,EAC3B,uBAAuB,EAEvB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,oCAAoC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC1D;;;;;;;;OAQG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAC9B,OAAO,GACP,iCAAiC,CAAC;IACtC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACjD,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC1D,wDAAwD;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1E,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,CAAC,EAAE,iCAAiC,GAC1C;IACD,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,yBAAyB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC,CA0GA"}
@@ -0,0 +1,129 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { useAui } from "@assistant-ui/store";
4
+ import { unstable_defaultDirectiveFormatter } from "@assistant-ui/core";
5
+ /**
6
+ * @deprecated Under active development and might change without notice.
7
+ *
8
+ * Creates a spreadable `{ adapter, directive }` bundle for `@` mentions.
9
+ * Supports tools registered via `useAssistantTool`, explicit items, or both —
10
+ * flat or categorized.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * const mention = unstable_useMentionAdapter();
15
+ * <ComposerTriggerPopover char="@" {...mention} />
16
+ * ```
17
+ */
18
+ export function unstable_useMentionAdapter(options) {
19
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
20
+ const aui = useAui();
21
+ const items = options?.items;
22
+ const categories = options?.categories;
23
+ const includeTools = options?.includeModelContextTools ?? (!items && !categories);
24
+ const toolsConfig = typeof includeTools === "object" ? includeTools : undefined;
25
+ const wantsTools = includeTools !== false;
26
+ const formatter = options?.formatter;
27
+ const onInserted = options?.onInserted;
28
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
29
+ const adapter = useMemo(() => {
30
+ const getModelContextTools = () => {
31
+ if (!wantsTools)
32
+ return [];
33
+ const ctx = aui.thread().getModelContext();
34
+ const tools = ctx.tools;
35
+ if (!tools)
36
+ return [];
37
+ const formatLabel = toolsConfig?.formatLabel;
38
+ const defaultIcon = toolsConfig?.icon;
39
+ return Object.entries(tools).map(([name, tool]) => toTriggerItem({
40
+ id: name,
41
+ type: "tool",
42
+ label: formatLabel ? formatLabel(name) : name,
43
+ description: tool.description ?? undefined,
44
+ icon: defaultIcon,
45
+ }));
46
+ };
47
+ // Categorized: drill-down mode
48
+ if (categories && categories.length > 0) {
49
+ const groups = categories.map((cat) => ({
50
+ id: cat.id,
51
+ label: cat.label,
52
+ items: cat.items.map(toTriggerItem),
53
+ }));
54
+ let toolCategory = null;
55
+ if (wantsTools) {
56
+ const toolItems = getModelContextTools();
57
+ if (toolItems.length > 0) {
58
+ toolCategory = {
59
+ id: toolsConfig?.category?.id ?? "tools",
60
+ label: toolsConfig?.category?.label ?? "Tools",
61
+ items: toolItems,
62
+ };
63
+ }
64
+ }
65
+ const allGroups = toolCategory ? [...groups, toolCategory] : groups;
66
+ return {
67
+ categories: () => allGroups.map(({ id, label }) => ({ id, label })),
68
+ categoryItems: (id) => allGroups.find((g) => g.id === id)?.items ?? [],
69
+ search: (query) => {
70
+ const lower = query.toLowerCase();
71
+ return allGroups
72
+ .flatMap((g) => g.items)
73
+ .filter((item) => matchesQuery(item, lower));
74
+ },
75
+ };
76
+ }
77
+ // Flat: items + (optionally) tools, all in one search pool
78
+ const flatItems = (items ?? []).map(toTriggerItem);
79
+ const getFlatPool = () => {
80
+ if (!wantsTools)
81
+ return flatItems;
82
+ const toolItems = getModelContextTools();
83
+ // Dedupe by id — explicit items win.
84
+ const seen = new Set(flatItems.map((i) => i.id));
85
+ return [...flatItems, ...toolItems.filter((t) => !seen.has(t.id))];
86
+ };
87
+ return {
88
+ categories: () => [],
89
+ categoryItems: () => [],
90
+ search: (query) => {
91
+ const lower = query.toLowerCase();
92
+ return getFlatPool().filter((item) => matchesQuery(item, lower));
93
+ },
94
+ };
95
+ }, [aui, items, categories, wantsTools, toolsConfig]);
96
+ // biome-ignore lint/correctness/useHookAtTopLevel: `unstable_` prefix not recognized as hook
97
+ const directive = useMemo(() => ({
98
+ formatter: formatter ?? unstable_defaultDirectiveFormatter,
99
+ ...(onInserted ? { onInserted } : {}),
100
+ }), [formatter, onInserted]);
101
+ return {
102
+ adapter,
103
+ directive,
104
+ ...(options?.iconMap ? { iconMap: options.iconMap } : {}),
105
+ ...(options?.fallbackIcon ? { fallbackIcon: options.fallbackIcon } : {}),
106
+ };
107
+ }
108
+ function toTriggerItem(m) {
109
+ const metadata = m.icon !== undefined ? { ...(m.metadata ?? {}), icon: m.icon } : m.metadata;
110
+ return {
111
+ id: m.id,
112
+ type: m.type,
113
+ label: m.label,
114
+ ...(m.description !== undefined ? { description: m.description } : {}),
115
+ ...(metadata !== undefined ? { metadata } : {}),
116
+ };
117
+ }
118
+ function matchesQuery(item, lower) {
119
+ if (!lower)
120
+ return true;
121
+ if (item.id.toLowerCase().includes(lower))
122
+ return true;
123
+ if (item.label.toLowerCase().includes(lower))
124
+ return true;
125
+ if (item.description?.toLowerCase().includes(lower))
126
+ return true;
127
+ return false;
128
+ }
129
+ //# sourceMappingURL=useMentionAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMentionAdapter.js","sourceRoot":"","sources":["../../src/unstable/useMentionAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,49 @@
1
- import type { Unstable_SlashCommandAdapter } from "@assistant-ui/core";
2
- export type Unstable_SlashCommandDefinition = {
3
- /** Unique command name (e.g. "summarize"). */
4
- readonly name: string;
5
- /** Display label (e.g. "/summarize"). */
1
+ import type { Unstable_TriggerAdapter, Unstable_TriggerItem } from "@assistant-ui/core";
2
+ import type { Unstable_IconComponent } from "./useMentionAdapter.js";
3
+ export type Unstable_SlashCommand = {
4
+ readonly id: string;
6
5
  readonly label?: string | undefined;
7
- /** Short description shown in the popover. */
8
6
  readonly description?: string | undefined;
9
- /** Icon identifier. */
10
7
  readonly icon?: string | undefined;
11
- /** Action to execute when the command is selected. */
12
- readonly execute?: (() => void) | undefined;
8
+ readonly execute: () => void;
13
9
  };
14
10
  export type Unstable_UseSlashCommandAdapterOptions = {
15
- /** List of available slash commands. */
16
- commands: readonly Unstable_SlashCommandDefinition[];
11
+ readonly commands: readonly Unstable_SlashCommand[];
12
+ /** Strip the trigger text from the composer after executing. @default false */
13
+ readonly removeOnExecute?: boolean | undefined;
14
+ /** Maps `metadata.icon` / `category.id` string keys to React components. */
15
+ readonly iconMap?: Record<string, Unstable_IconComponent>;
16
+ /** Fallback icon when no entry in `iconMap` matches. */
17
+ readonly fallbackIcon?: Unstable_IconComponent;
18
+ };
19
+ export type Unstable_SlashCommandAction = {
20
+ readonly onExecute: (item: Unstable_TriggerItem) => void;
21
+ readonly removeOnExecute?: boolean | undefined;
17
22
  };
18
23
  /**
19
- * @deprecated This API is still under active development and might change without notice.
24
+ * @deprecated Under active development and may change without notice.
20
25
  *
21
- * Creates a SlashCommandAdapter from a list of command definitions.
26
+ * Bundles slash command definitions (with inline `execute` callbacks) into
27
+ * `{adapter, action}` that plug directly into `ComposerTriggerPopover`.
28
+ * `execute` stays in the hook closure and is never attached to the returned
29
+ * `TriggerItem`, keeping items serializable.
22
30
  *
23
31
  * @example
24
32
  * ```tsx
25
- * const slashAdapter = unstable_useSlashCommandAdapter({
33
+ * const slash = unstable_useSlashCommandAdapter({
26
34
  * commands: [
27
- * { name: "summarize", description: "Summarize the conversation", execute: () => {} },
28
- * { name: "translate", description: "Translate text", execute: () => {} },
35
+ * { id: "summarize", execute: () => runSummarize(), icon: "FileText" },
36
+ * { id: "translate", execute: () => runTranslate(), icon: "Languages" },
29
37
  * ],
30
38
  * });
39
+ *
40
+ * <ComposerTriggerPopover char="/" {...slash} />
31
41
  * ```
32
42
  */
33
- export declare function unstable_useSlashCommandAdapter(options: Unstable_UseSlashCommandAdapterOptions): Unstable_SlashCommandAdapter;
43
+ export declare function unstable_useSlashCommandAdapter(options: Unstable_UseSlashCommandAdapterOptions): {
44
+ adapter: Unstable_TriggerAdapter;
45
+ action: Unstable_SlashCommandAction;
46
+ iconMap?: Record<string, Unstable_IconComponent>;
47
+ fallbackIcon?: Unstable_IconComponent;
48
+ };
34
49
  //# sourceMappingURL=useSlashCommandAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSlashCommandAdapter.d.ts","sourceRoot":"","sources":["../../src/unstable/useSlashCommandAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAG7B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,+BAA+B,GAAG;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,wCAAwC;IACxC,QAAQ,EAAE,SAAS,+BAA+B,EAAE,CAAC;CACtD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,4BAA4B,CAsC9B"}
1
+ {"version":3,"file":"useSlashCommandAdapter.d.ts","sourceRoot":"","sources":["../../src/unstable/useSlashCommandAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,+BAA4B;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/C,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC1D,wDAAwD;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C;IACD,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC,CAkCA"}
@@ -1,50 +1,74 @@
1
1
  "use client";
2
- import { useMemo } from "react";
2
+ import { useMemo, useRef } from "react";
3
3
  /**
4
- * @deprecated This API is still under active development and might change without notice.
4
+ * @deprecated Under active development and may change without notice.
5
5
  *
6
- * Creates a SlashCommandAdapter from a list of command definitions.
6
+ * Bundles slash command definitions (with inline `execute` callbacks) into
7
+ * `{adapter, action}` that plug directly into `ComposerTriggerPopover`.
8
+ * `execute` stays in the hook closure and is never attached to the returned
9
+ * `TriggerItem`, keeping items serializable.
7
10
  *
8
11
  * @example
9
12
  * ```tsx
10
- * const slashAdapter = unstable_useSlashCommandAdapter({
13
+ * const slash = unstable_useSlashCommandAdapter({
11
14
  * commands: [
12
- * { name: "summarize", description: "Summarize the conversation", execute: () => {} },
13
- * { name: "translate", description: "Translate text", execute: () => {} },
15
+ * { id: "summarize", execute: () => runSummarize(), icon: "FileText" },
16
+ * { id: "translate", execute: () => runTranslate(), icon: "Languages" },
14
17
  * ],
15
18
  * });
19
+ *
20
+ * <ComposerTriggerPopover char="/" {...slash} />
16
21
  * ```
17
22
  */
18
23
  export function unstable_useSlashCommandAdapter(options) {
19
- const { commands } = options;
24
+ const { commands, removeOnExecute } = options;
25
+ // biome-ignore lint/correctness/useHookAtTopLevel: `unstable_` prefix not recognized as hook
26
+ const commandsRef = useRef(commands);
27
+ commandsRef.current = commands;
28
+ // biome-ignore lint/correctness/useHookAtTopLevel: `unstable_` prefix not recognized as hook
20
29
  return useMemo(() => {
21
- // Build items lazily at call time so execute callbacks are always fresh
22
- const getItems = () => commands.map((cmd) => ({
23
- id: cmd.name,
24
- type: "command",
25
- label: cmd.label ?? `/${cmd.name}`,
26
- description: cmd.description,
27
- icon: cmd.icon,
28
- execute: cmd.execute,
29
- }));
30
- return {
31
- // No categories — slash commands show items directly via search mode
32
- categories() {
33
- return [];
34
- },
35
- categoryItems() {
36
- return [];
37
- },
38
- search(query) {
39
- const items = getItems();
40
- if (!query)
41
- return items;
30
+ const adapter = {
31
+ categories: () => [],
32
+ categoryItems: () => [],
33
+ search: (query) => {
42
34
  const lower = query.toLowerCase();
43
- return items.filter((item) => item.id.toLowerCase().includes(lower) ||
44
- item.label.toLowerCase().includes(lower) ||
45
- item.description?.toLowerCase().includes(lower));
35
+ return commandsRef.current
36
+ .filter((c) => matchesQuery(c, lower))
37
+ .map(toItem);
38
+ },
39
+ };
40
+ const action = {
41
+ onExecute: (item) => {
42
+ commandsRef.current.find((c) => c.id === item.id)?.execute();
46
43
  },
44
+ ...(removeOnExecute !== undefined ? { removeOnExecute } : {}),
45
+ };
46
+ return {
47
+ adapter,
48
+ action,
49
+ ...(options.iconMap ? { iconMap: options.iconMap } : {}),
50
+ ...(options.fallbackIcon ? { fallbackIcon: options.fallbackIcon } : {}),
47
51
  };
48
- }, [commands]);
52
+ }, [removeOnExecute, options.iconMap, options.fallbackIcon]);
53
+ }
54
+ function toItem(cmd) {
55
+ return {
56
+ id: cmd.id,
57
+ type: "command",
58
+ label: cmd.label ?? `/${cmd.id}`,
59
+ ...(cmd.description !== undefined ? { description: cmd.description } : {}),
60
+ ...(cmd.icon !== undefined ? { metadata: { icon: cmd.icon } } : {}),
61
+ };
62
+ }
63
+ function matchesQuery(cmd, lower) {
64
+ if (!lower)
65
+ return true;
66
+ if (cmd.id.toLowerCase().includes(lower))
67
+ return true;
68
+ if (cmd.label?.toLowerCase().includes(lower))
69
+ return true;
70
+ if (cmd.description?.toLowerCase().includes(lower))
71
+ return true;
72
+ return false;
49
73
  }
50
74
  //# sourceMappingURL=useSlashCommandAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSlashCommandAdapter.js","sourceRoot":"","sources":["../../src/unstable/useSlashCommandAdapter.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAyBhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAA+C;IAE/C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,OAAO,OAAO,CAA+B,GAAG,EAAE;QAChD,wEAAwE;QACxE,MAAM,QAAQ,GAAG,GAAgC,EAAE,CACjD,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrB,EAAE,EAAE,GAAG,CAAC,IAAI;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;YAClC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QAEN,OAAO;YACL,qEAAqE;YACrE,UAAU;gBACR,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,aAAa;gBACX,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,CAAC,KAAa;gBAClB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAClD,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"useSlashCommandAdapter.js","sourceRoot":"","sources":["../../src/unstable/useSlashCommandAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ComponentPropsWithoutRef, type ForwardRefExoticComponent, type ReactElement, type RefAttributes } from "react";
1
+ import { type ComponentPropsWithoutRef, type ComponentRef, type ElementType, type ForwardRefExoticComponent, type ReactElement, type RefAttributes } from "react";
2
2
  import { Primitive as RadixPrimitive } from "@radix-ui/react-primitive";
3
3
  /**
4
4
  * Thin wrapper around `@radix-ui/react-primitive` that adds `render` prop support.
@@ -11,9 +11,11 @@ import { Primitive as RadixPrimitive } from "@radix-ui/react-primitive";
11
11
  */
12
12
  declare const NODES: readonly ["a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul"];
13
13
  type PrimitiveNode = (typeof NODES)[number];
14
- type PrimitiveProps<E extends PrimitiveNode> = ComponentPropsWithoutRef<(typeof RadixPrimitive)[E]> & {
14
+ type WithRenderPropProps<T extends ElementType> = ComponentPropsWithoutRef<T> & {
15
15
  render?: ReactElement | undefined;
16
16
  };
17
+ type PrimitiveProps<E extends PrimitiveNode> = WithRenderPropProps<(typeof RadixPrimitive)[E]>;
18
+ declare function withRenderProp<T extends ElementType>(Component: T): ForwardRefExoticComponent<WithRenderPropProps<T> & RefAttributes<ComponentRef<T>>>;
17
19
  declare const Primitive: {
18
20
  a: ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLAnchorElement> & import("react").AnchorHTMLAttributes<HTMLAnchorElement> & {
19
21
  asChild?: boolean;
@@ -101,6 +103,6 @@ declare const Primitive: {
101
103
  render?: ReactElement | undefined;
102
104
  } & RefAttributes<SVGSVGElement>>;
103
105
  };
104
- export { Primitive };
105
- export type { PrimitiveProps };
106
+ export { Primitive, withRenderProp };
107
+ export type { PrimitiveProps, WithRenderPropProps };
106
108
  //# sourceMappingURL=Primitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../src/utils/Primitive.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EAEjB,KAAK,aAAa,EAInB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;;;;;;GAQG;AAGH,QAAA,MAAM,KAAK,qIAkBD,CAAC;AACX,KAAK,aAAa,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,KAAK,cAAc,CAAC,CAAC,SAAS,aAAa,IAAI,wBAAwB,CACrE,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAC3B,GAAG;IACF,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC,CAAC;AAuCF,QAAA,MAAM,SAAS;;;;iBAxCJ,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;CAgDlC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../src/utils/Primitive.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAE9B,KAAK,YAAY,EAEjB,KAAK,aAAa,EAInB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;;;;;;GAQG;AAGH,QAAA,MAAM,KAAK,qIAkBD,CAAC;AACX,KAAK,aAAa,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,KAAK,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAC5C,wBAAwB,CAAC,CAAC,CAAC,GAAG;IAC5B,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC,CAAC;AAEJ,KAAK,cAAc,CAAC,CAAC,SAAS,aAAa,IAAI,mBAAmB,CAChE,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;AAYF,iBAAS,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,SAAS,EAAE,CAAC,GAwCvC,yBAAyB,CACzC,mBAAmB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACxD,CACF;AAYD,QAAA,MAAM,SAAS;;;;iBAxEF,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;;;;iBAAxB,YAAY,GAAG,SAAS;;CAgFpC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}