@assistant-ui/react 0.14.21 → 0.14.23

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 (32) hide show
  1. package/dist/index.d.ts +3 -2
  2. package/dist/index.js +3 -2
  3. package/dist/internal.d.ts +3 -3
  4. package/dist/internal.js +2 -4
  5. package/dist/internal.js.map +1 -1
  6. package/dist/primitives/composer/trigger/TriggerPopover.d.ts +4 -2
  7. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  8. package/dist/primitives/composer/trigger/TriggerPopover.js +125 -119
  9. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
  10. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +3 -1
  11. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
  12. package/dist/primitives/composer/trigger/TriggerPopoverResource.js +22 -20
  13. package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -1
  14. package/dist/primitives/composer/trigger/index.d.ts +1 -0
  15. package/dist/unstable/useLiveCompletionAdapter.d.ts +47 -0
  16. package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -0
  17. package/dist/unstable/useLiveCompletionAdapter.js +116 -0
  18. package/dist/unstable/useLiveCompletionAdapter.js.map +1 -0
  19. package/dist/utils/smooth/useSmooth.d.ts +8 -0
  20. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  21. package/dist/utils/smooth/useSmooth.js +11 -2
  22. package/dist/utils/smooth/useSmooth.js.map +1 -1
  23. package/package.json +2 -2
  24. package/src/index.ts +7 -0
  25. package/src/internal.ts +0 -2
  26. package/src/primitives/composer/trigger/TriggerPopover.tsx +11 -1
  27. package/src/primitives/composer/trigger/TriggerPopoverResource.ts +5 -0
  28. package/src/tests/ExternalStoreThreadRuntimeCore.test.ts +113 -0
  29. package/src/unstable/useLiveCompletionAdapter.test.tsx +176 -0
  30. package/src/unstable/useLiveCompletionAdapter.ts +145 -0
  31. package/src/utils/smooth/useSmooth.test.tsx +106 -2
  32. package/src/utils/smooth/useSmooth.ts +20 -2
package/dist/index.d.ts CHANGED
@@ -72,6 +72,7 @@ import { Unstable_MessageStallDetection, Unstable_MessageStallDetectionOptions,
72
72
  import { ToolExecutionStatus, internal_d_exports } from "./internal.js";
73
73
  import { Unstable_IconComponent, Unstable_Mention, Unstable_MentionCategory, Unstable_MentionDirective, Unstable_ModelContextToolsOptions, Unstable_UseMentionAdapterOptions, unstable_useMentionAdapter } from "./unstable/useMentionAdapter.js";
74
74
  import { Unstable_SlashCommand, Unstable_SlashCommandAction, Unstable_UseSlashCommandAdapterOptions, unstable_useSlashCommandAdapter } from "./unstable/useSlashCommandAdapter.js";
75
+ import { Unstable_UseLiveCompletionAdapterOptions, unstable_useLiveCompletionAdapter } from "./unstable/useLiveCompletionAdapter.js";
75
76
  import { Unstable_ComposerInputHistory, unstable_useComposerInputHistory } from "./unstable/useComposerInputHistory.js";
76
77
  import { McpAppDisplayMode, McpAppHostContext, McpAppHostInfo, McpAppMetadata, McpAppResource, McpAppResourceCSP, McpAppResourceMeta, McpAppSandboxConfig, McpAppToolCallParams, McpAppsHost, McpAppsRemoteHostOptions, ToolCallMessagePartMcpMetadata } from "./mcp-apps/types.js";
77
78
  import { McpAppRenderer, McpAppRendererOptions } from "./mcp-apps/McpAppRenderer.js";
@@ -80,7 +81,7 @@ import { getMcpAppFromToolPart } from "./mcp-apps/utils.js";
80
81
  import { AssistantClient, AssistantEventCallback, AssistantEventName, AssistantEventPayload, AssistantEventScope, AssistantEventSelector, AssistantState, AuiIf, AuiProvider, useAui, useAuiEvent, useAuiState } from "@assistant-ui/store";
81
82
  import { AssistantContextConfig, AssistantDataUI, AssistantDataUIProps, AssistantInteractableProps, AssistantTool, AssistantToolProps, AssistantToolUI, AssistantToolUIProps, DataMessagePartComponent, DataMessagePartProps, DataRenderers, EmptyMessagePartComponent, EmptyMessagePartProps, EnrichedPartState, FileMessagePartComponent, FileMessagePartProps, GenerativeUIComponentRegistry, GenerativeUIMessagePartComponent, GenerativeUIMessagePartProps, GenerativeUIRender, GenerativeUIRenderError, GenerativeUIRenderProps, GroupByContext, ImageMessagePartComponent, ImageMessagePartProps, Interactables, McpAppResourceOutput, McpToolkitDefinition, PartState, ProviderToolConfig, QuoteMessagePartComponent, QuoteMessagePartProps, ReasoningGroupComponent, ReasoningGroupProps, ReasoningMessagePartComponent, ReasoningMessagePartProps, RuntimeAdapterProvider, RuntimeAdapters, SourceMessagePartComponent, SourceMessagePartProps, TextMessagePartComponent, TextMessagePartProps, ToolArgsStatus, ToolCallMessagePartComponent, ToolCallMessagePartProps, ToolCallText, ToolDefinition, Toolkit, ToolkitDefinition, ToolkitDefinitionEntry, Tools, Unstable_AudioMessagePartComponent, Unstable_AudioMessagePartProps, defineMcpToolkit, defineToolkit, externalTool, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, providerTool, stubTool, useAssistantContext, useAssistantDataUI, useAssistantInstructions, useAssistantInteractable, useAssistantTool, useAssistantToolUI, useAuiToolOverrides, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useRuntimeAdapters, useToolArgsStatus, useVoiceControls, useVoiceState, useVoiceVolume } from "@assistant-ui/core/react";
82
83
  import { AssistantCloud } from "assistant-cloud";
83
- import { AddToolResultOptions, AppendMessage, AssistantFrameHost, AssistantFrameProvider, AssistantRuntime, Attachment, AttachmentAdapter, AttachmentRuntime, AttachmentState, AttachmentStatus, ChatModelAdapter, ChatModelRunOptions, ChatModelRunResult, ChatModelRunUpdate, CompleteAttachment, ComposerRuntime, ComposerState, CompositeAttachmentAdapter, CreateAppendMessage, CreateAttachment, CreateResumeRunConfig, CreateStartRunConfig, DataMessagePart, DictationAdapter, DictationState, EditComposerRuntime, EditComposerState, ExportedMessageRepository, ExportedMessageRepositoryItem, ExternalStoreAdapter, ExternalStoreMessageConverter, ExternalStoreSharedOptions, ExternalStoreThreadData, ExternalStoreThreadListAdapter, ExternalThreadBranchAdapter, ExternalThreadQueueAdapter, FRAME_MESSAGE_CHANNEL, FeedbackAdapter, FileMessagePart, FrameMessage, FrameMessageType, GenerativeUIMessagePart, GenerativeUINode, GenerativeUISpec, GenericThreadHistoryAdapter, ImageMessagePart, InMemoryThreadListAdapter, LanguageModelConfig, LanguageModelV1CallSettings, LocalRuntimeOptionsBase, MessageFormatAdapter, MessageFormatItem, MessageFormatRepository, MessagePartRuntime, MessagePartState, MessagePartStatus, MessageQueueController, MessageQueueDriver, MessageRuntime, MessageState, MessageStatus, MessageStorageEntry, MessageTiming, ModelContext, ModelContextProvider, ModelContextRegistry, ModelContextRegistryInstructionHandle, ModelContextRegistryProviderHandle, ModelContextRegistryToolHandle, PendingAttachment, QuoteInfo, RealtimeVoiceAdapter, ReasoningMessagePart, RemoteThreadListAdapter, RespondToToolApprovalOptions, SerializedModelContext, SerializedTool, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SourceMessagePart, SourceProviderMetadata, SpeechSynthesisAdapter, SubmitFeedbackOptions, SuggestionAdapter, TextMessagePart, ThreadAssistantMessage, ThreadAssistantMessagePart, ThreadComposerRuntime, ThreadComposerState, ThreadHistoryAdapter, ThreadListItemRuntime, ThreadListItemState, ThreadListItemStatus, ThreadListRuntime, ThreadListState, ThreadMessage, ThreadMessageLike, ThreadRuntime, ThreadState, ThreadSuggestion, ThreadSystemMessage, ThreadUserMessage, ThreadUserMessagePart, ToolApprovalOption, ToolApprovalOptionKind, ToolApprovalResponse, ToolCallMessagePart, ToolCallMessagePartStatus, ToolCallTiming, ToolModelContentPart, Unstable_AudioMessagePart, Unstable_DirectiveFormatter, Unstable_DirectiveSegment, Unstable_TriggerItem, Unsubscribe, VoiceSessionControls, VoiceSessionHelpers, VoiceSessionState, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, getExternalStoreMessages, mergeModelContexts, pickExternalStoreSharedOptions, tool, unstable_defaultDirectiveFormatter } from "@assistant-ui/core";
84
+ import { AddToolResultOptions, AppendMessage, AssistantFrameHost, AssistantFrameProvider, AssistantRuntime, Attachment, AttachmentAdapter, AttachmentRuntime, AttachmentState, AttachmentStatus, ChatModelAdapter, ChatModelRunOptions, ChatModelRunResult, ChatModelRunUpdate, CompleteAttachment, ComposerRuntime, ComposerState, CompositeAttachmentAdapter, CreateAppendMessage, CreateAttachment, CreateResumeRunConfig, CreateStartRunConfig, DataMessagePart, DictationAdapter, DictationState, EditComposerRuntime, EditComposerState, ExportedMessageRepository, ExportedMessageRepositoryItem, ExternalStoreAdapter, ExternalStoreMessageConverter, ExternalStoreSharedOptions, ExternalStoreThreadData, ExternalStoreThreadListAdapter, ExternalThreadBranchAdapter, ExternalThreadQueueAdapter, FRAME_MESSAGE_CHANNEL, FeedbackAdapter, FileMessagePart, FrameMessage, FrameMessageType, GenerativeUIMessagePart, GenerativeUINode, GenerativeUISpec, GenericThreadHistoryAdapter, ImageMessagePart, InMemoryThreadListAdapter, LanguageModelConfig, LanguageModelV1CallSettings, LocalRuntimeOptionsBase, MessageFormatAdapter, MessageFormatItem, MessageFormatRepository, MessagePartRuntime, MessagePartState, MessagePartStatus, MessageQueueController, MessageQueueDriver, MessageRuntime, MessageState, MessageStatus, MessageStorageEntry, MessageTiming, ModelContext, ModelContextProvider, ModelContextRegistry, ModelContextRegistryInstructionHandle, ModelContextRegistryProviderHandle, ModelContextRegistryToolHandle, PendingAttachment, QuoteInfo, RealtimeVoiceAdapter, ReasoningMessagePart, RemoteThreadListAdapter, RespondToToolApprovalOptions, SerializedModelContext, SerializedTool, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SourceMessagePart, SourceProviderMetadata, SpeechSynthesisAdapter, SubmitFeedbackOptions, SuggestionAdapter, TextMessagePart, ThreadAssistantMessage, ThreadAssistantMessagePart, ThreadComposerRuntime, ThreadComposerState, ThreadHistoryAdapter, ThreadListItemRuntime, ThreadListItemState, ThreadListItemStatus, ThreadListRuntime, ThreadListState, ThreadMessage, ThreadMessageLike, ThreadRuntime, ThreadState, ThreadSuggestion, ThreadSystemMessage, ThreadUserMessage, ThreadUserMessagePart, ToolApprovalOption, ToolApprovalOptionKind, ToolApprovalResponse, ToolCallMessagePart, ToolCallMessagePartStatus, ToolCallTiming, ToolModelContentPart, Unstable_AudioMessagePart, Unstable_DirectiveFormatter, Unstable_DirectiveSegment, Unstable_TriggerItem, Unsubscribe, VoiceSessionControls, VoiceSessionHelpers, VoiceSessionState, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, fromThreadMessageLike, generateId, getExternalStoreMessages, mergeModelContexts, pickExternalStoreSharedOptions, tool, unstable_defaultDirectiveFormatter } from "@assistant-ui/core";
84
85
  import { Tool } from "assistant-stream";
85
86
  import { ChainOfThoughtClient, ComposerSendOptions, ModelContext as ModelContextClient, QueueItemMethods, QueueItemState, SuggestionConfig, Suggestions } from "@assistant-ui/core/store";
86
- export { actionBarMore_d_exports as ActionBarMorePrimitive, actionBar_d_exports as ActionBarPrimitive, type AddToolResultOptions, type AppendMessage, type Assistant, type AssistantClient, AssistantCloud, type AssistantContextConfig, type AssistantDataUI, type AssistantDataUIProps, type AssistantEventCallback, type AssistantEventName, type AssistantEventPayload, type AssistantEventScope, type AssistantEventSelector, AssistantFrameHost, AssistantFrameProvider, type AssistantInteractableProps, assistantModal_d_exports as AssistantModalPrimitive, type AssistantRuntime, AssistantRuntimeProvider, type AssistantState, type AssistantTool, type AssistantToolProps, type AssistantToolUI, type AssistantToolUIProps, type AssistantTransportCommand, type AssistantTransportConnectionMetadata, type AssistantTransportProtocol, type Attachment, type AttachmentAdapter, attachment_d_exports as AttachmentPrimitive, type AttachmentRuntime, type AttachmentState, type AttachmentStatus, AuiIf, AuiProvider, branchPicker_d_exports as BranchPickerPrimitive, ChainOfThoughtByIndicesProvider, ChainOfThoughtClient, chainOfThought_d_exports as ChainOfThoughtPrimitive, type ChatModelAdapter, type ChatModelRunOptions, type ChatModelRunResult, type ChatModelRunUpdate, CloudFileAttachmentAdapter, type CompleteAttachment, ComposerAttachmentByIndexProvider, composer_d_exports as ComposerPrimitive, type ComposerRuntime, type ComposerSendOptions, type ComposerState, CompositeAttachmentAdapter, type CreateAppendMessage, type CreateAttachment, type CreateResumeRunConfig, type CreateStartRunConfig, type DataMessagePart, type DataMessagePartComponent, type DataMessagePartProps, DataRenderers, DevToolsHooks, DevToolsProviderApi, type DictationAdapter, type DictationState, type EditComposerRuntime, type EditComposerState, type EmptyMessagePartComponent, type EmptyMessagePartProps, type EnrichedPartState, error_d_exports as ErrorPrimitive, ExportedMessageRepository, type ExportedMessageRepositoryItem, type ExternalStoreAdapter, type ExternalStoreMessageConverter, type ExternalStoreSharedOptions, type ExternalStoreThreadData, type ExternalStoreThreadListAdapter, ExternalThread, type ExternalThreadBranchAdapter, type ExternalThreadMessage, type ExternalThreadProps, type ExternalThreadQueueAdapter, FRAME_MESSAGE_CHANNEL, type FeedbackAdapter, type FileMessagePart, type FileMessagePartComponent, type FileMessagePartProps, type FrameMessage, type FrameMessageType, type GenerativeUIComponentRegistry, type GenerativeUIMessagePart, type GenerativeUIMessagePartComponent, type GenerativeUIMessagePartProps, type GenerativeUINode, GenerativeUIRender, GenerativeUIRenderError, type GenerativeUIRenderProps, type GenerativeUISpec, type GenericThreadHistoryAdapter, type GroupByContext, internal_d_exports as INTERNAL, type ImageMessagePart, type ImageMessagePartComponent, type ImageMessagePartProps, InMemoryThreadList, InMemoryThreadListAdapter, type InMemoryThreadListProps, Interactables, type LanguageModelConfig, type LanguageModelV1CallSettings, type LocalRuntimeOptions, type LocalRuntimeOptionsBase, type McpAppDisplayMode, type McpAppHostContext, type McpAppHostInfo, type McpAppMetadata, McpAppRenderer, type McpAppRendererOptions, type McpAppResource, type McpAppResourceCSP, type McpAppResourceMeta, type McpAppResourceOutput, type McpAppSandboxConfig, type McpAppToolCallParams, type McpAppsHost, McpAppsRemoteHost, type McpAppsRemoteHostOptions, type McpToolkitDefinition, MessageAttachmentByIndexProvider, MessageByIndexProvider, type MessageFormatAdapter, type MessageFormatItem, type MessageFormatRepository, messagePart_d_exports as MessagePartPrimitive, type MessagePartRuntime, type MessagePartState, type MessagePartStatus, message_d_exports as MessagePrimitive, MessageProvider, type MessageQueueController, type MessageQueueDriver, type MessageRuntime, type MessageState, type MessageStatus, type MessageStorageEntry, type MessageTiming, type ModelContext, ModelContextClient, type ModelContextProvider, ModelContextRegistry, type ModelContextRegistryInstructionHandle, type ModelContextRegistryProviderHandle, type ModelContextRegistryToolHandle, PartByIndexProvider, type PartState, type PendingAttachment, type ProviderToolConfig, type QueueItemMethods, queueItem_d_exports as QueueItemPrimitive, type QueueItemState, type QuoteInfo, type QuoteMessagePartComponent, type QuoteMessagePartProps, ReadonlyThreadProvider, type RealtimeVoiceAdapter, type ReasoningGroupComponent, type ReasoningGroupProps, type ReasoningMessagePart, type ReasoningMessagePartComponent, type ReasoningMessagePartProps, type RemoteThreadListAdapter, type RespondToToolApprovalOptions, RuntimeAdapterProvider, type RuntimeAdapters, selectionToolbar_d_exports as SelectionToolbarPrimitive, type SendCommandsRequestBody, type SerializedModelContext, type SerializedTool, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SingleThreadList, type SmoothOptions, type SourceMessagePart, type SourceMessagePartComponent, type SourceMessagePartProps, type SourceProviderMetadata, type SpeechSynthesisAdapter, type SubmitFeedbackOptions, type SuggestionAdapter, SuggestionByIndexProvider, type SuggestionConfig, suggestion_d_exports as SuggestionPrimitive, Suggestions, type TextMessagePart, type TextMessagePartComponent, type TextMessagePartProps, TextMessagePartProvider, type ThreadAssistantMessage, type ThreadAssistantMessagePart, type ThreadComposerRuntime, type ThreadComposerState, type ThreadHistoryAdapter, ThreadListItemByIndexProvider, threadListItemMore_d_exports as ThreadListItemMorePrimitive, threadListItem_d_exports as ThreadListItemPrimitive, type ThreadListItemRuntime, ThreadListItemRuntimeProvider, type ThreadListItemState, type ThreadListItemStatus, threadList_d_exports as ThreadListPrimitive, type ThreadListRuntime, type ThreadListState, type ThreadMessage, type ThreadMessageLike, thread_d_exports as ThreadPrimitive, type ThreadRuntime, type ThreadState, type ThreadSuggestion, type ThreadSystemMessage, type ThreadUserMessage, type ThreadUserMessagePart, type ThreadViewportState, type Tool, type ToolApprovalOption, type ToolApprovalOptionKind, type ToolApprovalResponse, type ToolArgsStatus, type ToolCallMessagePart, type ToolCallMessagePartComponent, type ToolCallMessagePartMcpMetadata, type ToolCallMessagePartProps, type ToolCallMessagePartStatus, type ToolCallText, type ToolCallTiming, type ToolDefinition, type ToolExecutionStatus, type ToolModelContentPart, type Toolkit, type ToolkitDefinition, type ToolkitDefinitionEntry, Tools, type Unstable_AudioMessagePart, type Unstable_AudioMessagePartComponent, type Unstable_AudioMessagePartProps, type Unstable_ComposerInputHistory, type Unstable_DirectiveFormatter, type Unstable_DirectiveSegment, type Unstable_IconComponent, type Unstable_Mention, type Unstable_MentionCategory, type Unstable_MentionDirective, type Unstable_MessageStallDetection, type Unstable_MessageStallDetectionOptions, type Unstable_ModelContextToolsOptions, type RegisteredTrigger as Unstable_RegisteredTrigger, type Unstable_SlashCommand, type Unstable_SlashCommandAction, type TriggerBehavior as Unstable_TriggerBehavior, type Unstable_TriggerItem, type Unstable_UseMentionAdapterOptions, type Unstable_UseSlashCommandAdapterOptions, type Unsubscribe, type VoiceSessionControls, type VoiceSessionHelpers, type VoiceSessionState, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, defineMcpToolkit, defineToolkit, externalTool, getExternalStoreMessages, getMcpAppFromToolPart, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, makeAssistantVisible, mergeModelContexts, pickExternalStoreSharedOptions, providerTool, stubTool, tool, convertExternalMessages as unstable_convertExternalMessages, createMessageConverter as unstable_createMessageConverter, unstable_defaultDirectiveFormatter, unstable_useComposerInputHistory, unstable_useMentionAdapter, unstable_useMessageStallDetection, unstable_useSlashCommandAdapter, useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext, useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional, useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional, useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers, useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional, useAssistantContext, useAssistantDataUI, useAssistantFrameHost, useAssistantInstructions, useAssistantInteractable, useAssistantRuntime, useAssistantTool, useAssistantToolUI, useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState, useAttachment, useAttachmentRuntime, useAui, useAuiEvent, useAuiState, useAuiToolOverrides, useCloudThreadListAdapter, useCloudThreadListRuntime, useComposer, useComposerRuntime, useEditComposer, useEditComposerAttachment, useEditComposerAttachmentRuntime, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessage, useMessageAttachment, useMessageAttachmentRuntime, useMessagePart, useMessagePartData, useMessagePartFile, useMessagePartImage, useMessagePartReasoning, useMessagePartRuntime, useMessagePartSource, useMessagePartText, useMessageQuote, useMessageRuntime, useMessageTiming, useRemoteThreadListRuntime, useRuntimeAdapters, useScrollLock, useSmooth, useThread, useThreadComposer, useThreadComposerAttachment, useThreadComposerAttachmentRuntime, useThreadList, useThreadListItem, useThreadListItemRuntime, useThreadModelContext, useThreadRuntime, useThreadViewport, useThreadViewportAutoScroll, useThreadViewportStore, useToolArgsStatus, useToolCallElapsed, useVoiceControls, useVoiceState, useVoiceVolume };
87
+ export { actionBarMore_d_exports as ActionBarMorePrimitive, actionBar_d_exports as ActionBarPrimitive, type AddToolResultOptions, type AppendMessage, type Assistant, type AssistantClient, AssistantCloud, type AssistantContextConfig, type AssistantDataUI, type AssistantDataUIProps, type AssistantEventCallback, type AssistantEventName, type AssistantEventPayload, type AssistantEventScope, type AssistantEventSelector, AssistantFrameHost, AssistantFrameProvider, type AssistantInteractableProps, assistantModal_d_exports as AssistantModalPrimitive, type AssistantRuntime, AssistantRuntimeProvider, type AssistantState, type AssistantTool, type AssistantToolProps, type AssistantToolUI, type AssistantToolUIProps, type AssistantTransportCommand, type AssistantTransportConnectionMetadata, type AssistantTransportProtocol, type Attachment, type AttachmentAdapter, attachment_d_exports as AttachmentPrimitive, type AttachmentRuntime, type AttachmentState, type AttachmentStatus, AuiIf, AuiProvider, branchPicker_d_exports as BranchPickerPrimitive, ChainOfThoughtByIndicesProvider, ChainOfThoughtClient, chainOfThought_d_exports as ChainOfThoughtPrimitive, type ChatModelAdapter, type ChatModelRunOptions, type ChatModelRunResult, type ChatModelRunUpdate, CloudFileAttachmentAdapter, type CompleteAttachment, ComposerAttachmentByIndexProvider, composer_d_exports as ComposerPrimitive, type ComposerRuntime, type ComposerSendOptions, type ComposerState, CompositeAttachmentAdapter, type CreateAppendMessage, type CreateAttachment, type CreateResumeRunConfig, type CreateStartRunConfig, type DataMessagePart, type DataMessagePartComponent, type DataMessagePartProps, DataRenderers, DevToolsHooks, DevToolsProviderApi, type DictationAdapter, type DictationState, type EditComposerRuntime, type EditComposerState, type EmptyMessagePartComponent, type EmptyMessagePartProps, type EnrichedPartState, error_d_exports as ErrorPrimitive, ExportedMessageRepository, type ExportedMessageRepositoryItem, type ExternalStoreAdapter, type ExternalStoreMessageConverter, type ExternalStoreSharedOptions, type ExternalStoreThreadData, type ExternalStoreThreadListAdapter, ExternalThread, type ExternalThreadBranchAdapter, type ExternalThreadMessage, type ExternalThreadProps, type ExternalThreadQueueAdapter, FRAME_MESSAGE_CHANNEL, type FeedbackAdapter, type FileMessagePart, type FileMessagePartComponent, type FileMessagePartProps, type FrameMessage, type FrameMessageType, type GenerativeUIComponentRegistry, type GenerativeUIMessagePart, type GenerativeUIMessagePartComponent, type GenerativeUIMessagePartProps, type GenerativeUINode, GenerativeUIRender, GenerativeUIRenderError, type GenerativeUIRenderProps, type GenerativeUISpec, type GenericThreadHistoryAdapter, type GroupByContext, internal_d_exports as INTERNAL, type ImageMessagePart, type ImageMessagePartComponent, type ImageMessagePartProps, InMemoryThreadList, InMemoryThreadListAdapter, type InMemoryThreadListProps, Interactables, type LanguageModelConfig, type LanguageModelV1CallSettings, type LocalRuntimeOptions, type LocalRuntimeOptionsBase, type McpAppDisplayMode, type McpAppHostContext, type McpAppHostInfo, type McpAppMetadata, McpAppRenderer, type McpAppRendererOptions, type McpAppResource, type McpAppResourceCSP, type McpAppResourceMeta, type McpAppResourceOutput, type McpAppSandboxConfig, type McpAppToolCallParams, type McpAppsHost, McpAppsRemoteHost, type McpAppsRemoteHostOptions, type McpToolkitDefinition, MessageAttachmentByIndexProvider, MessageByIndexProvider, type MessageFormatAdapter, type MessageFormatItem, type MessageFormatRepository, messagePart_d_exports as MessagePartPrimitive, type MessagePartRuntime, type MessagePartState, type MessagePartStatus, message_d_exports as MessagePrimitive, MessageProvider, type MessageQueueController, type MessageQueueDriver, type MessageRuntime, type MessageState, type MessageStatus, type MessageStorageEntry, type MessageTiming, type ModelContext, ModelContextClient, type ModelContextProvider, ModelContextRegistry, type ModelContextRegistryInstructionHandle, type ModelContextRegistryProviderHandle, type ModelContextRegistryToolHandle, PartByIndexProvider, type PartState, type PendingAttachment, type ProviderToolConfig, type QueueItemMethods, queueItem_d_exports as QueueItemPrimitive, type QueueItemState, type QuoteInfo, type QuoteMessagePartComponent, type QuoteMessagePartProps, ReadonlyThreadProvider, type RealtimeVoiceAdapter, type ReasoningGroupComponent, type ReasoningGroupProps, type ReasoningMessagePart, type ReasoningMessagePartComponent, type ReasoningMessagePartProps, type RemoteThreadListAdapter, type RespondToToolApprovalOptions, RuntimeAdapterProvider, type RuntimeAdapters, selectionToolbar_d_exports as SelectionToolbarPrimitive, type SendCommandsRequestBody, type SerializedModelContext, type SerializedTool, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SingleThreadList, type SmoothOptions, type SourceMessagePart, type SourceMessagePartComponent, type SourceMessagePartProps, type SourceProviderMetadata, type SpeechSynthesisAdapter, type SubmitFeedbackOptions, type SuggestionAdapter, SuggestionByIndexProvider, type SuggestionConfig, suggestion_d_exports as SuggestionPrimitive, Suggestions, type TextMessagePart, type TextMessagePartComponent, type TextMessagePartProps, TextMessagePartProvider, type ThreadAssistantMessage, type ThreadAssistantMessagePart, type ThreadComposerRuntime, type ThreadComposerState, type ThreadHistoryAdapter, ThreadListItemByIndexProvider, threadListItemMore_d_exports as ThreadListItemMorePrimitive, threadListItem_d_exports as ThreadListItemPrimitive, type ThreadListItemRuntime, ThreadListItemRuntimeProvider, type ThreadListItemState, type ThreadListItemStatus, threadList_d_exports as ThreadListPrimitive, type ThreadListRuntime, type ThreadListState, type ThreadMessage, type ThreadMessageLike, thread_d_exports as ThreadPrimitive, type ThreadRuntime, type ThreadState, type ThreadSuggestion, type ThreadSystemMessage, type ThreadUserMessage, type ThreadUserMessagePart, type ThreadViewportState, type Tool, type ToolApprovalOption, type ToolApprovalOptionKind, type ToolApprovalResponse, type ToolArgsStatus, type ToolCallMessagePart, type ToolCallMessagePartComponent, type ToolCallMessagePartMcpMetadata, type ToolCallMessagePartProps, type ToolCallMessagePartStatus, type ToolCallText, type ToolCallTiming, type ToolDefinition, type ToolExecutionStatus, type ToolModelContentPart, type Toolkit, type ToolkitDefinition, type ToolkitDefinitionEntry, Tools, type Unstable_AudioMessagePart, type Unstable_AudioMessagePartComponent, type Unstable_AudioMessagePartProps, type Unstable_ComposerInputHistory, type Unstable_DirectiveFormatter, type Unstable_DirectiveSegment, type Unstable_IconComponent, type Unstable_Mention, type Unstable_MentionCategory, type Unstable_MentionDirective, type Unstable_MessageStallDetection, type Unstable_MessageStallDetectionOptions, type Unstable_ModelContextToolsOptions, type RegisteredTrigger as Unstable_RegisteredTrigger, type Unstable_SlashCommand, type Unstable_SlashCommandAction, type TriggerBehavior as Unstable_TriggerBehavior, type Unstable_TriggerItem, type Unstable_UseLiveCompletionAdapterOptions, type Unstable_UseMentionAdapterOptions, type Unstable_UseSlashCommandAdapterOptions, type Unsubscribe, type VoiceSessionControls, type VoiceSessionHelpers, type VoiceSessionState, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, defineMcpToolkit, defineToolkit, externalTool, fromThreadMessageLike, generateId, getExternalStoreMessages, getMcpAppFromToolPart, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, makeAssistantVisible, mergeModelContexts, pickExternalStoreSharedOptions, providerTool, stubTool, tool, convertExternalMessages as unstable_convertExternalMessages, createMessageConverter as unstable_createMessageConverter, unstable_defaultDirectiveFormatter, unstable_useComposerInputHistory, unstable_useLiveCompletionAdapter, unstable_useMentionAdapter, unstable_useMessageStallDetection, unstable_useSlashCommandAdapter, useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext, useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional, useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional, useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers, useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional, useAssistantContext, useAssistantDataUI, useAssistantFrameHost, useAssistantInstructions, useAssistantInteractable, useAssistantRuntime, useAssistantTool, useAssistantToolUI, useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState, useAttachment, useAttachmentRuntime, useAui, useAuiEvent, useAuiState, useAuiToolOverrides, useCloudThreadListAdapter, useCloudThreadListRuntime, useComposer, useComposerRuntime, useEditComposer, useEditComposerAttachment, useEditComposerAttachmentRuntime, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessage, useMessageAttachment, useMessageAttachmentRuntime, useMessagePart, useMessagePartData, useMessagePartFile, useMessagePartImage, useMessagePartReasoning, useMessagePartRuntime, useMessagePartSource, useMessagePartText, useMessageQuote, useMessageRuntime, useMessageTiming, useRemoteThreadListRuntime, useRuntimeAdapters, useScrollLock, useSmooth, useThread, useThreadComposer, useThreadComposerAttachment, useThreadComposerAttachmentRuntime, useThreadList, useThreadListItem, useThreadListItemRuntime, useThreadModelContext, useThreadRuntime, useThreadViewport, useThreadViewportAutoScroll, useThreadViewportStore, useToolArgsStatus, useToolCallElapsed, useVoiceControls, useVoiceState, useVoiceVolume };
package/dist/index.js CHANGED
@@ -66,6 +66,7 @@ import { InMemoryThreadList } from "./client/InMemoryThreadList.js";
66
66
  import { internal_exports } from "./internal.js";
67
67
  import { unstable_useMentionAdapter } from "./unstable/useMentionAdapter.js";
68
68
  import { unstable_useSlashCommandAdapter } from "./unstable/useSlashCommandAdapter.js";
69
+ import { unstable_useLiveCompletionAdapter } from "./unstable/useLiveCompletionAdapter.js";
69
70
  import { unstable_useComposerInputHistory } from "./unstable/useComposerInputHistory.js";
70
71
  import { getMcpAppFromToolPart } from "./mcp-apps/utils.js";
71
72
  import { McpAppRenderer } from "./mcp-apps/McpAppRenderer.js";
@@ -73,6 +74,6 @@ import { McpAppsRemoteHost } from "./mcp-apps/McpAppsRemoteHost.js";
73
74
  import { AuiIf, AuiProvider, useAui, useAuiEvent, useAuiState } from "@assistant-ui/store";
74
75
  import { DataRenderers, GenerativeUIRender, GenerativeUIRenderError, Interactables, RuntimeAdapterProvider, Tools, defineMcpToolkit, defineToolkit, externalTool, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, providerTool, stubTool, useAssistantContext, useAssistantDataUI, useAssistantInstructions, useAssistantInteractable, useAssistantTool, useAssistantToolUI, useAuiToolOverrides, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useRuntimeAdapters, useToolArgsStatus, useVoiceControls, useVoiceState, useVoiceVolume } from "@assistant-ui/core/react";
75
76
  import { AssistantCloud } from "assistant-cloud";
76
- import { AssistantFrameHost, AssistantFrameProvider, CompositeAttachmentAdapter, ExportedMessageRepository, FRAME_MESSAGE_CHANNEL, InMemoryThreadListAdapter, ModelContextRegistry, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, getExternalStoreMessages, mergeModelContexts, pickExternalStoreSharedOptions, tool, unstable_defaultDirectiveFormatter } from "@assistant-ui/core";
77
+ import { AssistantFrameHost, AssistantFrameProvider, CompositeAttachmentAdapter, ExportedMessageRepository, FRAME_MESSAGE_CHANNEL, InMemoryThreadListAdapter, ModelContextRegistry, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, fromThreadMessageLike, generateId, getExternalStoreMessages, mergeModelContexts, pickExternalStoreSharedOptions, tool, unstable_defaultDirectiveFormatter } from "@assistant-ui/core";
77
78
  import { ChainOfThoughtClient, ModelContext as ModelContextClient, Suggestions } from "@assistant-ui/core/store";
78
- export { actionBarMore_exports as ActionBarMorePrimitive, actionBar_exports as ActionBarPrimitive, AssistantCloud, AssistantFrameHost, AssistantFrameProvider, assistantModal_exports as AssistantModalPrimitive, AssistantRuntimeProvider, attachment_exports as AttachmentPrimitive, AuiIf, AuiProvider, branchPicker_exports as BranchPickerPrimitive, ChainOfThoughtByIndicesProvider, ChainOfThoughtClient, chainOfThought_exports as ChainOfThoughtPrimitive, CloudFileAttachmentAdapter, ComposerAttachmentByIndexProvider, composer_exports as ComposerPrimitive, CompositeAttachmentAdapter, DataRenderers, DevToolsHooks, DevToolsProviderApi, error_exports as ErrorPrimitive, ExportedMessageRepository, ExternalThread, FRAME_MESSAGE_CHANNEL, GenerativeUIRender, GenerativeUIRenderError, internal_exports as INTERNAL, InMemoryThreadList, InMemoryThreadListAdapter, Interactables, McpAppRenderer, McpAppsRemoteHost, MessageAttachmentByIndexProvider, MessageByIndexProvider, messagePart_exports as MessagePartPrimitive, message_exports as MessagePrimitive, MessageProvider, ModelContextClient, ModelContextRegistry, PartByIndexProvider, queueItem_exports as QueueItemPrimitive, ReadonlyThreadProvider, RuntimeAdapterProvider, selectionToolbar_exports as SelectionToolbarPrimitive, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SingleThreadList, SuggestionByIndexProvider, suggestion_exports as SuggestionPrimitive, Suggestions, TextMessagePartProvider, ThreadListItemByIndexProvider, threadListItemMore_exports as ThreadListItemMorePrimitive, threadListItem_exports as ThreadListItemPrimitive, ThreadListItemRuntimeProvider, threadList_exports as ThreadListPrimitive, thread_exports as ThreadPrimitive, Tools, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, defineMcpToolkit, defineToolkit, externalTool, getExternalStoreMessages, getMcpAppFromToolPart, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, makeAssistantVisible, mergeModelContexts, pickExternalStoreSharedOptions, providerTool, stubTool, tool, convertExternalMessages as unstable_convertExternalMessages, createMessageConverter as unstable_createMessageConverter, unstable_defaultDirectiveFormatter, unstable_useComposerInputHistory, unstable_useMentionAdapter, unstable_useMessageStallDetection, unstable_useSlashCommandAdapter, useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext, useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional, useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional, useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers, useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional, useAssistantContext, useAssistantDataUI, useAssistantFrameHost, useAssistantInstructions, useAssistantInteractable, useAssistantRuntime, useAssistantTool, useAssistantToolUI, useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState, useAttachment, useAttachmentRuntime, useAui, useAuiEvent, useAuiState, useAuiToolOverrides, useCloudThreadListAdapter, useCloudThreadListRuntime, useComposer, useComposerRuntime, useEditComposer, useEditComposerAttachment, useEditComposerAttachmentRuntime, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessage, useMessageAttachment, useMessageAttachmentRuntime, useMessagePart, useMessagePartData, useMessagePartFile, useMessagePartImage, useMessagePartReasoning, useMessagePartRuntime, useMessagePartSource, useMessagePartText, useMessageQuote, useMessageRuntime, useMessageTiming, useRemoteThreadListRuntime, useRuntimeAdapters, useScrollLock, useSmooth, useThread, useThreadComposer, useThreadComposerAttachment, useThreadComposerAttachmentRuntime, useThreadList, useThreadListItem, useThreadListItemRuntime, useThreadModelContext, useThreadRuntime, useThreadViewport, useThreadViewportAutoScroll, useThreadViewportStore, useToolArgsStatus, useToolCallElapsed, useVoiceControls, useVoiceState, useVoiceVolume };
79
+ export { actionBarMore_exports as ActionBarMorePrimitive, actionBar_exports as ActionBarPrimitive, AssistantCloud, AssistantFrameHost, AssistantFrameProvider, assistantModal_exports as AssistantModalPrimitive, AssistantRuntimeProvider, attachment_exports as AttachmentPrimitive, AuiIf, AuiProvider, branchPicker_exports as BranchPickerPrimitive, ChainOfThoughtByIndicesProvider, ChainOfThoughtClient, chainOfThought_exports as ChainOfThoughtPrimitive, CloudFileAttachmentAdapter, ComposerAttachmentByIndexProvider, composer_exports as ComposerPrimitive, CompositeAttachmentAdapter, DataRenderers, DevToolsHooks, DevToolsProviderApi, error_exports as ErrorPrimitive, ExportedMessageRepository, ExternalThread, FRAME_MESSAGE_CHANNEL, GenerativeUIRender, GenerativeUIRenderError, internal_exports as INTERNAL, InMemoryThreadList, InMemoryThreadListAdapter, Interactables, McpAppRenderer, McpAppsRemoteHost, MessageAttachmentByIndexProvider, MessageByIndexProvider, messagePart_exports as MessagePartPrimitive, message_exports as MessagePrimitive, MessageProvider, ModelContextClient, ModelContextRegistry, PartByIndexProvider, queueItem_exports as QueueItemPrimitive, ReadonlyThreadProvider, RuntimeAdapterProvider, selectionToolbar_exports as SelectionToolbarPrimitive, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SingleThreadList, SuggestionByIndexProvider, suggestion_exports as SuggestionPrimitive, Suggestions, TextMessagePartProvider, ThreadListItemByIndexProvider, threadListItemMore_exports as ThreadListItemMorePrimitive, threadListItem_exports as ThreadListItemPrimitive, ThreadListItemRuntimeProvider, threadList_exports as ThreadListPrimitive, thread_exports as ThreadPrimitive, Tools, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createVoiceSession, defineMcpToolkit, defineToolkit, externalTool, fromThreadMessageLike, generateId, getExternalStoreMessages, getMcpAppFromToolPart, groupPartByType, hitl, hitlTool, humanTool, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, makeAssistantVisible, mergeModelContexts, pickExternalStoreSharedOptions, providerTool, stubTool, tool, convertExternalMessages as unstable_convertExternalMessages, createMessageConverter as unstable_createMessageConverter, unstable_defaultDirectiveFormatter, unstable_useComposerInputHistory, unstable_useLiveCompletionAdapter, unstable_useMentionAdapter, unstable_useMessageStallDetection, unstable_useSlashCommandAdapter, useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext, useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional, useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional, useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers, useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional, useAssistantContext, useAssistantDataUI, useAssistantFrameHost, useAssistantInstructions, useAssistantInteractable, useAssistantRuntime, useAssistantTool, useAssistantToolUI, useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState, useAttachment, useAttachmentRuntime, useAui, useAuiEvent, useAuiState, useAuiToolOverrides, useCloudThreadListAdapter, useCloudThreadListRuntime, useComposer, useComposerRuntime, useEditComposer, useEditComposerAttachment, useEditComposerAttachmentRuntime, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessage, useMessageAttachment, useMessageAttachmentRuntime, useMessagePart, useMessagePartData, useMessagePartFile, useMessagePartImage, useMessagePartReasoning, useMessagePartRuntime, useMessagePartSource, useMessagePartText, useMessageQuote, useMessageRuntime, useMessageTiming, useRemoteThreadListRuntime, useRuntimeAdapters, useScrollLock, useSmooth, useThread, useThreadComposer, useThreadComposerAttachment, useThreadComposerAttachmentRuntime, useThreadList, useThreadListItem, useThreadListItemRuntime, useThreadModelContext, useThreadRuntime, useThreadViewport, useThreadViewportAutoScroll, useThreadViewportStore, useToolArgsStatus, useToolCallElapsed, useVoiceControls, useVoiceState, useVoiceVolume };
@@ -3,12 +3,12 @@ import { useSmooth } from "./utils/smooth/useSmooth.js";
3
3
  import { useSmoothStatus, withSmoothContextProvider } from "./utils/smooth/SmoothContext.js";
4
4
  import { useComposerInputPluginRegistryOptional } from "./primitives/composer/ComposerInputPluginContext.js";
5
5
  import { ThreadListRuntimeCore, ThreadRuntimeCore, ToolExecutionStatus } from "@assistant-ui/core";
6
- import { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadListItemRuntimeBinding, ThreadRuntimeCoreBinding, ThreadRuntimeImpl, fromThreadMessageLike, generateId, getAutoStatus } from "@assistant-ui/core/internal";
6
+ import { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadListItemRuntimeBinding, ThreadRuntimeCoreBinding, ThreadRuntimeImpl, getAutoStatus } from "@assistant-ui/core/internal";
7
7
 
8
8
  //#region src/internal.d.ts
9
9
  declare namespace internal_d_exports {
10
- export { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadListItemRuntimeBinding, ThreadListRuntimeCore, ThreadRuntimeCore, ThreadRuntimeCoreBinding, ThreadRuntimeImpl, ToolExecutionStatus, fromThreadMessageLike, generateId, getAutoStatus, splitLocalRuntimeOptions, useComposerInputPluginRegistryOptional, useSmooth, useSmoothStatus, withSmoothContextProvider };
10
+ export { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadListItemRuntimeBinding, ThreadListRuntimeCore, ThreadRuntimeCore, ThreadRuntimeCoreBinding, ThreadRuntimeImpl, ToolExecutionStatus, getAutoStatus, splitLocalRuntimeOptions, useComposerInputPluginRegistryOptional, useSmooth, useSmoothStatus, withSmoothContextProvider };
11
11
  }
12
12
  //#endregion
13
- export { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, type ThreadListItemRuntimeBinding, type ThreadListRuntimeCore, type ThreadRuntimeCore, type ThreadRuntimeCoreBinding, ThreadRuntimeImpl, type ToolExecutionStatus, fromThreadMessageLike, generateId, getAutoStatus, internal_d_exports, splitLocalRuntimeOptions, useComposerInputPluginRegistryOptional, useSmooth, useSmoothStatus, withSmoothContextProvider };
13
+ export { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, type ThreadListItemRuntimeBinding, type ThreadListRuntimeCore, type ThreadRuntimeCore, type ThreadRuntimeCoreBinding, ThreadRuntimeImpl, type ToolExecutionStatus, getAutoStatus, internal_d_exports, splitLocalRuntimeOptions, useComposerInputPluginRegistryOptional, useSmooth, useSmoothStatus, withSmoothContextProvider };
14
14
  //# sourceMappingURL=internal.d.ts.map
package/dist/internal.js CHANGED
@@ -3,7 +3,7 @@ import { useComposerInputPluginRegistryOptional } from "./primitives/composer/Co
3
3
  import { useSmoothStatus, withSmoothContextProvider } from "./utils/smooth/SmoothContext.js";
4
4
  import { useSmooth } from "./utils/smooth/useSmooth.js";
5
5
  import { splitLocalRuntimeOptions } from "./legacy-runtime/runtime-cores/local/LocalRuntimeOptions.js";
6
- import { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadRuntimeImpl, fromThreadMessageLike, generateId, getAutoStatus } from "@assistant-ui/core/internal";
6
+ import { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadRuntimeImpl, getAutoStatus } from "@assistant-ui/core/internal";
7
7
  //#region src/internal.ts
8
8
  var internal_exports = /* @__PURE__ */ __exportAll({
9
9
  AssistantRuntimeImpl: () => AssistantRuntimeImpl,
@@ -12,8 +12,6 @@ var internal_exports = /* @__PURE__ */ __exportAll({
12
12
  DefaultThreadComposerRuntimeCore: () => DefaultThreadComposerRuntimeCore,
13
13
  MessageRepository: () => MessageRepository,
14
14
  ThreadRuntimeImpl: () => ThreadRuntimeImpl,
15
- fromThreadMessageLike: () => fromThreadMessageLike,
16
- generateId: () => generateId,
17
15
  getAutoStatus: () => getAutoStatus,
18
16
  splitLocalRuntimeOptions: () => splitLocalRuntimeOptions,
19
17
  useComposerInputPluginRegistryOptional: () => useComposerInputPluginRegistryOptional,
@@ -22,6 +20,6 @@ var internal_exports = /* @__PURE__ */ __exportAll({
22
20
  withSmoothContextProvider: () => withSmoothContextProvider
23
21
  });
24
22
  //#endregion
25
- export { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadRuntimeImpl, fromThreadMessageLike, generateId, getAutoStatus, internal_exports, splitLocalRuntimeOptions, useComposerInputPluginRegistryOptional, useSmooth, useSmoothStatus, withSmoothContextProvider };
23
+ export { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadRuntimeImpl, getAutoStatus, internal_exports, splitLocalRuntimeOptions, useComposerInputPluginRegistryOptional, useSmooth, useSmoothStatus, withSmoothContextProvider };
26
24
 
27
25
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","names":["ThreadRuntimeCore","ThreadListRuntimeCore","DefaultThreadComposerRuntimeCore","CompositeContextProvider","MessageRepository","BaseAssistantRuntimeCore","generateId","AssistantRuntimeImpl","ThreadRuntimeImpl","fromThreadMessageLike","getAutoStatus","ThreadRuntimeCoreBinding","ThreadListItemRuntimeBinding","splitLocalRuntimeOptions","ToolExecutionStatus","useSmooth","useSmoothStatus","withSmoothContextProvider","useComposerInputPluginRegistryOptional"],"sources":["../src/internal.ts"],"sourcesContent":["// Re-export from @assistant-ui/core\nexport type {\n ThreadRuntimeCore,\n ThreadListRuntimeCore,\n} from \"@assistant-ui/core\";\n\n// Re-export from @assistant-ui/core/internal\nexport {\n DefaultThreadComposerRuntimeCore,\n CompositeContextProvider,\n MessageRepository,\n BaseAssistantRuntimeCore,\n generateId,\n AssistantRuntimeImpl,\n ThreadRuntimeImpl,\n fromThreadMessageLike,\n getAutoStatus,\n} from \"@assistant-ui/core/internal\";\nexport type {\n ThreadRuntimeCoreBinding,\n ThreadListItemRuntimeBinding,\n} from \"@assistant-ui/core/internal\";\n\n// React-specific (stay in react)\nexport { splitLocalRuntimeOptions } from \"./legacy-runtime/runtime-cores/local/LocalRuntimeOptions\";\nexport type { ToolExecutionStatus } from \"@assistant-ui/core\";\n\nexport { useSmooth } from \"./utils/smooth/useSmooth\";\nexport {\n useSmoothStatus,\n withSmoothContextProvider,\n} from \"./utils/smooth/SmoothContext\";\n\n// ComposerInput plugin registry (used by react-lexical)\nexport { useComposerInputPluginRegistryOptional } from \"./primitives/composer/ComposerInputPluginContext\";\n"],"mappings":""}
1
+ {"version":3,"file":"internal.js","names":["ThreadRuntimeCore","ThreadListRuntimeCore","DefaultThreadComposerRuntimeCore","CompositeContextProvider","MessageRepository","BaseAssistantRuntimeCore","AssistantRuntimeImpl","ThreadRuntimeImpl","getAutoStatus","ThreadRuntimeCoreBinding","ThreadListItemRuntimeBinding","splitLocalRuntimeOptions","ToolExecutionStatus","useSmooth","useSmoothStatus","withSmoothContextProvider","useComposerInputPluginRegistryOptional"],"sources":["../src/internal.ts"],"sourcesContent":["// Re-export from @assistant-ui/core\nexport type {\n ThreadRuntimeCore,\n ThreadListRuntimeCore,\n} from \"@assistant-ui/core\";\n\n// Re-export from @assistant-ui/core/internal\nexport {\n DefaultThreadComposerRuntimeCore,\n CompositeContextProvider,\n MessageRepository,\n BaseAssistantRuntimeCore,\n AssistantRuntimeImpl,\n ThreadRuntimeImpl,\n getAutoStatus,\n} from \"@assistant-ui/core/internal\";\nexport type {\n ThreadRuntimeCoreBinding,\n ThreadListItemRuntimeBinding,\n} from \"@assistant-ui/core/internal\";\n\n// React-specific (stay in react)\nexport { splitLocalRuntimeOptions } from \"./legacy-runtime/runtime-cores/local/LocalRuntimeOptions\";\nexport type { ToolExecutionStatus } from \"@assistant-ui/core\";\n\nexport { useSmooth } from \"./utils/smooth/useSmooth\";\nexport {\n useSmoothStatus,\n withSmoothContextProvider,\n} from \"./utils/smooth/SmoothContext\";\n\n// ComposerInput plugin registry (used by react-lexical)\nexport { useComposerInputPluginRegistryOptional } from \"./primitives/composer/ComposerInputPluginContext\";\n"],"mappings":""}
@@ -17,7 +17,8 @@ declare namespace ComposerPrimitiveTriggerPopover {
17
17
  type Element = ComponentRef<typeof Primitive.div>;
18
18
  type Props = Omit<ComponentPropsWithoutRef<typeof Primitive.div>, "onSelect"> & {
19
19
  /** The character(s) that activate this trigger (e.g. `"@"`, `"/"`). Also serves as the trigger identity within the root. */readonly char: string; /** Adapter providing categories and items. */
20
- readonly adapter?: Unstable_TriggerAdapter | undefined;
20
+ readonly adapter?: Unstable_TriggerAdapter | undefined; /** Whether the adapter is resolving items, surfaced to the popover scope for async sources. @default false */
21
+ readonly isLoading?: boolean | undefined;
21
22
  };
22
23
  }
23
24
  /**
@@ -53,7 +54,8 @@ declare const ComposerPrimitiveTriggerPopover: import("react").ForwardRefExoticC
53
54
  render?: import("react").ReactElement | undefined;
54
55
  } & import("react").RefAttributes<HTMLDivElement>, "ref">, "onSelect"> & {
55
56
  /** The character(s) that activate this trigger (e.g. `"@"`, `"/"`). Also serves as the trigger identity within the root. */readonly char: string; /** Adapter providing categories and items. */
56
- readonly adapter?: Unstable_TriggerAdapter | undefined;
57
+ readonly adapter?: Unstable_TriggerAdapter | undefined; /** Whether the adapter is resolving items, surfaced to the popover scope for async sources. @default false */
58
+ readonly isLoading?: boolean | undefined;
57
59
  } & import("react").RefAttributes<HTMLDivElement>>;
58
60
  //#endregion
59
61
  export { ComposerPrimitiveTriggerPopover, TriggerBehaviorRegistration, useTriggerBehaviorRegistration, useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional };
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerPopover.d.ts","names":[],"sources":["../../../../src/primitives/composer/trigger/TriggerPopover.tsx"],"mappings":";;;;;;;cAkCa,6BAAA,QAA6B,4BAOzC;AAAA,cAEY,qCAAA,QAAqC,4BAAA;AATlD;AAAA,KAaY,2BAAA;EACV,QAAA,CAAS,QAAA,EAAU,eAAe;AAAA;AAPnC;AAAA,cAcY,8BAAA,QAA8B,2BAO1C;AAAA,kBAEgB,+BAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,GAAA;EAAA,KACxC,KAAA,GAAQ,IAAA,CAClB,wBAAA,QAAgC,SAAA,CAAU,GAAA;IAxBI,qIA4BrC,IAAA,UAxB0B;IAAA,SA0B1B,OAAA,GAAU,uBAAA;EAAA;AAAA;;;;AAzBa;AAOpC;;;;AAOC;AAED;;;;;;;;;;;;;;;;;;cAwCa,+BAAA,kBAA+B,yBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,cAAA,oBAAA,cAAA,CAAA,cAAA;;;;;EA/BE,mJA+BjC;EAAA,mBA/BU,uBAAA;AAAA"}
1
+ {"version":3,"file":"TriggerPopover.d.ts","names":[],"sources":["../../../../src/primitives/composer/trigger/TriggerPopover.tsx"],"mappings":";;;;;;;cAkCa,6BAAA,QAA6B,4BAOzC;AAAA,cAEY,qCAAA,QAAqC,4BAAA;AATlD;AAAA,KAaY,2BAAA;EACV,QAAA,CAAS,QAAA,EAAU,eAAe;AAAA;AAPnC;AAAA,cAcY,8BAAA,QAA8B,2BAO1C;AAAA,kBAEgB,+BAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,GAAA;EAAA,KACxC,KAAA,GAAQ,IAAA,CAClB,wBAAA,QAAgC,SAAA,CAAU,GAAA;IAxBI,qIA4BrC,IAAA,UAxB0B;IAAA,SA0B1B,OAAA,GAAU,uBAAA,cAzBa;IAAA,SA2BvB,SAAA;EAAA;AAAA;;AA3BuB;AAOpC;;;;AAOC;AAED;;;;;;;;;;;;;;;;;;;;cA0Ca,+BAAA,kBAA+B,yBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,cAAA,oBAAA,cAAA,CAAA,cAAA;;;;;EA/BtB,mJA6JrB;EAAA,mBA/JsB,uBAAA,cAiCqB;EAAA"}
@@ -53,36 +53,40 @@ const useTriggerBehaviorRegistration = () => {
53
53
  * ```
54
54
  */
55
55
  const ComposerPrimitiveTriggerPopover = forwardRef((t0, forwardedRef) => {
56
- const $ = c(59);
56
+ const $ = c(61);
57
57
  let adapter;
58
58
  let ariaLabel;
59
59
  let char;
60
60
  let children;
61
61
  let props;
62
+ let t1;
62
63
  if ($[0] !== t0) {
63
- ({char, adapter, "aria-label": ariaLabel, children, ...props} = t0);
64
+ ({char, adapter, isLoading: t1, "aria-label": ariaLabel, children, ...props} = t0);
64
65
  $[0] = t0;
65
66
  $[1] = adapter;
66
67
  $[2] = ariaLabel;
67
68
  $[3] = char;
68
69
  $[4] = children;
69
70
  $[5] = props;
71
+ $[6] = t1;
70
72
  } else {
71
73
  adapter = $[1];
72
74
  ariaLabel = $[2];
73
75
  char = $[3];
74
76
  children = $[4];
75
77
  props = $[5];
78
+ t1 = $[6];
76
79
  }
80
+ const isLoading = t1 === void 0 ? false : t1;
77
81
  const aui = useAui();
78
82
  const text = useAuiState(_temp);
79
83
  const popoverId = useId();
80
84
  const behaviorRef = useRef(null);
81
85
  const [behavior, setBehavior] = useState(null);
82
86
  const registrationCountRef = useRef(0);
83
- let t1;
84
- if ($[6] !== char) {
85
- t1 = (next) => {
87
+ let t2;
88
+ if ($[7] !== char) {
89
+ t2 = (next) => {
86
90
  registrationCountRef.current = registrationCountRef.current + 1;
87
91
  if (process.env.NODE_ENV !== "production" && registrationCountRef.current > 1) console.warn(`[assistant-ui] TriggerPopover "${char}" received more than one behavior child. Exactly one <TriggerPopover.Directive> or <TriggerPopover.Action> is allowed per TriggerPopover; the last registration wins.`);
88
92
  behaviorRef.current = next;
@@ -95,147 +99,149 @@ const ComposerPrimitiveTriggerPopover = forwardRef((t0, forwardedRef) => {
95
99
  }
96
100
  };
97
101
  };
98
- $[6] = char;
99
- $[7] = t1;
100
- } else t1 = $[7];
101
- const register = t1;
102
- let t2;
103
- if ($[8] !== register) {
104
- t2 = { register };
105
- $[8] = register;
106
- $[9] = t2;
107
- } else t2 = $[9];
108
- const registration = t2;
109
- const t3 = behavior ?? void 0;
110
- let t4;
111
- if ($[10] !== adapter || $[11] !== aui || $[12] !== char || $[13] !== popoverId || $[14] !== t3 || $[15] !== text) {
112
- t4 = TriggerPopoverResource({
102
+ $[7] = char;
103
+ $[8] = t2;
104
+ } else t2 = $[8];
105
+ const register = t2;
106
+ let t3;
107
+ if ($[9] !== register) {
108
+ t3 = { register };
109
+ $[9] = register;
110
+ $[10] = t3;
111
+ } else t3 = $[10];
112
+ const registration = t3;
113
+ const t4 = behavior ?? void 0;
114
+ let t5;
115
+ if ($[11] !== adapter || $[12] !== aui || $[13] !== char || $[14] !== isLoading || $[15] !== popoverId || $[16] !== t4 || $[17] !== text) {
116
+ t5 = TriggerPopoverResource({
113
117
  adapter,
114
118
  text,
115
119
  triggerChar: char,
116
- behavior: t3,
120
+ behavior: t4,
117
121
  aui,
118
- popoverId
122
+ popoverId,
123
+ isLoading
119
124
  });
120
- $[10] = adapter;
121
- $[11] = aui;
122
- $[12] = char;
123
- $[13] = popoverId;
124
- $[14] = t3;
125
- $[15] = text;
125
+ $[11] = adapter;
126
+ $[12] = aui;
127
+ $[13] = char;
128
+ $[14] = isLoading;
129
+ $[15] = popoverId;
126
130
  $[16] = t4;
127
- } else t4 = $[16];
128
- const resource = useResource(t4);
129
- let t5;
130
- if ($[17] !== resource) {
131
- t5 = () => resource;
132
- $[17] = resource;
131
+ $[17] = text;
133
132
  $[18] = t5;
134
133
  } else t5 = $[18];
135
- const getResource = useEffectEvent(t5);
136
- const root = useTriggerPopoverRootContext();
134
+ const resource = useResource(t5);
137
135
  let t6;
138
- if ($[19] !== behavior || $[20] !== char || $[21] !== getResource || $[22] !== root) {
139
- t6 = () => root.register({
136
+ if ($[19] !== resource) {
137
+ t6 = () => resource;
138
+ $[19] = resource;
139
+ $[20] = t6;
140
+ } else t6 = $[20];
141
+ const getResource = useEffectEvent(t6);
142
+ const root = useTriggerPopoverRootContext();
143
+ let t7;
144
+ if ($[21] !== behavior || $[22] !== char || $[23] !== getResource || $[24] !== root) {
145
+ t7 = () => root.register({
140
146
  char,
141
147
  ...behavior ? { behavior } : {},
142
148
  resource: getResource()
143
149
  });
144
- $[19] = behavior;
145
- $[20] = char;
146
- $[21] = getResource;
147
- $[22] = root;
148
- $[23] = t6;
149
- } else t6 = $[23];
150
- let t7;
151
- if ($[24] !== behavior || $[25] !== char || $[26] !== root) {
152
- t7 = [
150
+ $[21] = behavior;
151
+ $[22] = char;
152
+ $[23] = getResource;
153
+ $[24] = root;
154
+ $[25] = t7;
155
+ } else t7 = $[25];
156
+ let t8;
157
+ if ($[26] !== behavior || $[27] !== char || $[28] !== root) {
158
+ t8 = [
153
159
  root,
154
160
  char,
155
161
  behavior
156
162
  ];
157
- $[24] = behavior;
158
- $[25] = char;
159
- $[26] = root;
160
- $[27] = t7;
161
- } else t7 = $[27];
162
- useEffect(t6, t7);
163
+ $[26] = behavior;
164
+ $[27] = char;
165
+ $[28] = root;
166
+ $[29] = t8;
167
+ } else t8 = $[29];
168
+ useEffect(t7, t8);
163
169
  const pluginRegistry = useComposerInputPluginRegistryOptional();
164
- let t8;
165
- if ($[28] !== getResource || $[29] !== pluginRegistry) {
166
- t8 = () => {
170
+ let t9;
171
+ if ($[30] !== getResource || $[31] !== pluginRegistry) {
172
+ t9 = () => {
167
173
  if (!pluginRegistry) return;
168
174
  return pluginRegistry.register(getResource());
169
175
  };
170
- $[28] = getResource;
171
- $[29] = pluginRegistry;
172
- $[30] = t8;
173
- } else t8 = $[30];
174
- let t9;
175
- if ($[31] !== pluginRegistry) {
176
- t9 = [pluginRegistry];
176
+ $[30] = getResource;
177
177
  $[31] = pluginRegistry;
178
178
  $[32] = t9;
179
179
  } else t9 = $[32];
180
- useEffect(t8, t9);
180
+ let t10;
181
+ if ($[33] !== pluginRegistry) {
182
+ t10 = [pluginRegistry];
183
+ $[33] = pluginRegistry;
184
+ $[34] = t10;
185
+ } else t10 = $[34];
186
+ useEffect(t9, t10);
181
187
  const open = behavior !== null && resource.open;
182
188
  const aria = useTriggerPopoverAriaPublish();
183
- let t10;
184
189
  let t11;
185
- if ($[33] !== aria || $[34] !== char || $[35] !== open) {
186
- t10 = () => {
190
+ let t12;
191
+ if ($[35] !== aria || $[36] !== char || $[37] !== open) {
192
+ t11 = () => {
187
193
  if (!open) return;
188
194
  return () => {
189
195
  aria.setActiveAria(char, null);
190
196
  };
191
197
  };
192
- t11 = [
198
+ t12 = [
193
199
  aria,
194
200
  char,
195
201
  open
196
202
  ];
197
- $[33] = aria;
198
- $[34] = char;
199
- $[35] = open;
200
- $[36] = t10;
201
- $[37] = t11;
203
+ $[35] = aria;
204
+ $[36] = char;
205
+ $[37] = open;
206
+ $[38] = t11;
207
+ $[39] = t12;
202
208
  } else {
203
- t10 = $[36];
204
- t11 = $[37];
209
+ t11 = $[38];
210
+ t12 = $[39];
205
211
  }
206
- useEffect(t10, t11);
207
- let t12;
212
+ useEffect(t11, t12);
208
213
  let t13;
209
- if ($[38] !== aria || $[39] !== char || $[40] !== open || $[41] !== popoverId || $[42] !== resource.highlightedItemId) {
210
- t12 = () => {
214
+ let t14;
215
+ if ($[40] !== aria || $[41] !== char || $[42] !== open || $[43] !== popoverId || $[44] !== resource.highlightedItemId) {
216
+ t13 = () => {
211
217
  if (!open) return;
212
218
  aria.setActiveAria(char, {
213
219
  popoverId,
214
220
  highlightedItemId: resource.highlightedItemId
215
221
  });
216
222
  };
217
- t13 = [
223
+ t14 = [
218
224
  aria,
219
225
  char,
220
226
  popoverId,
221
227
  open,
222
228
  resource.highlightedItemId
223
229
  ];
224
- $[38] = aria;
225
- $[39] = char;
226
- $[40] = open;
227
- $[41] = popoverId;
228
- $[42] = resource.highlightedItemId;
229
- $[43] = t12;
230
- $[44] = t13;
230
+ $[40] = aria;
231
+ $[41] = char;
232
+ $[42] = open;
233
+ $[43] = popoverId;
234
+ $[44] = resource.highlightedItemId;
235
+ $[45] = t13;
236
+ $[46] = t14;
231
237
  } else {
232
- t12 = $[43];
233
- t13 = $[44];
238
+ t13 = $[45];
239
+ t14 = $[46];
234
240
  }
235
- useEffect(t12, t13);
236
- let t14;
237
- if ($[45] !== ariaLabel || $[46] !== children || $[47] !== forwardedRef || $[48] !== open || $[49] !== popoverId || $[50] !== props || $[51] !== resource.highlightedItemId) {
238
- t14 = open ? /* @__PURE__ */ jsx(Primitive.div, {
241
+ useEffect(t13, t14);
242
+ let t15;
243
+ if ($[47] !== ariaLabel || $[48] !== children || $[49] !== forwardedRef || $[50] !== open || $[51] !== popoverId || $[52] !== props || $[53] !== resource.highlightedItemId) {
244
+ t15 = open ? /* @__PURE__ */ jsx(Primitive.div, {
239
245
  role: "listbox",
240
246
  id: popoverId,
241
247
  "aria-label": ariaLabel ?? "Suggestions",
@@ -245,36 +251,36 @@ const ComposerPrimitiveTriggerPopover = forwardRef((t0, forwardedRef) => {
245
251
  ref: forwardedRef,
246
252
  children
247
253
  }) : children;
248
- $[45] = ariaLabel;
249
- $[46] = children;
250
- $[47] = forwardedRef;
251
- $[48] = open;
252
- $[49] = popoverId;
253
- $[50] = props;
254
- $[51] = resource.highlightedItemId;
255
- $[52] = t14;
256
- } else t14 = $[52];
257
- let t15;
258
- if ($[53] !== resource || $[54] !== t14) {
259
- t15 = /* @__PURE__ */ jsx(TriggerPopoverScopeContext.Provider, {
254
+ $[47] = ariaLabel;
255
+ $[48] = children;
256
+ $[49] = forwardedRef;
257
+ $[50] = open;
258
+ $[51] = popoverId;
259
+ $[52] = props;
260
+ $[53] = resource.highlightedItemId;
261
+ $[54] = t15;
262
+ } else t15 = $[54];
263
+ let t16;
264
+ if ($[55] !== resource || $[56] !== t15) {
265
+ t16 = /* @__PURE__ */ jsx(TriggerPopoverScopeContext.Provider, {
260
266
  value: resource,
261
- children: t14
267
+ children: t15
262
268
  });
263
- $[53] = resource;
264
- $[54] = t14;
265
- $[55] = t15;
266
- } else t15 = $[55];
267
- let t16;
268
- if ($[56] !== registration || $[57] !== t15) {
269
- t16 = /* @__PURE__ */ jsx(TriggerBehaviorRegistrationContext.Provider, {
269
+ $[55] = resource;
270
+ $[56] = t15;
271
+ $[57] = t16;
272
+ } else t16 = $[57];
273
+ let t17;
274
+ if ($[58] !== registration || $[59] !== t16) {
275
+ t17 = /* @__PURE__ */ jsx(TriggerBehaviorRegistrationContext.Provider, {
270
276
  value: registration,
271
- children: t15
277
+ children: t16
272
278
  });
273
- $[56] = registration;
274
- $[57] = t15;
275
- $[58] = t16;
276
- } else t16 = $[58];
277
- return t16;
279
+ $[58] = registration;
280
+ $[59] = t16;
281
+ $[60] = t17;
282
+ } else t17 = $[60];
283
+ return t17;
278
284
  });
279
285
  ComposerPrimitiveTriggerPopover.displayName = "ComposerPrimitive.TriggerPopover";
280
286
  function _temp(s) {
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerPopover.js","names":["c","_c","useAui","useAuiState","useResource","Unstable_TriggerAdapter","createContext","forwardRef","useCallback","useContext","useEffect","useEffectEvent","useId","useMemo","useRef","useState","ComponentPropsWithoutRef","ComponentRef","Primitive","useComposerInputPluginRegistryOptional","TriggerPopoverResource","TriggerPopoverResourceOutput","TriggerBehavior","useTriggerPopoverAriaPublish","useTriggerPopoverRootContext","TriggerPopoverScopeContext","useTriggerPopoverScopeContext","ctx","Error","useTriggerPopoverScopeContextOptional","TriggerBehaviorRegistration","register","behavior","TriggerBehaviorRegistrationContext","useTriggerBehaviorRegistration","ComposerPrimitiveTriggerPopover","Element","div","Props","Omit","char","adapter","t0","forwardedRef","$","ariaLabel","children","props","aui","text","_temp","popoverId","behaviorRef","setBehavior","registrationCountRef","t1","next","current","process","env","NODE_ENV","console","warn","Math","max","t2","registration","t3","undefined","t4","triggerChar","resource","t5","getResource","root","t6","t7","pluginRegistry","t8","t9","open","aria","t10","t11","setActiveAria","t12","t13","highlightedItemId","t14","t15","t16","displayName","s","composer"],"sources":["../../../../src/primitives/composer/trigger/TriggerPopover.tsx"],"sourcesContent":["\"use client\";\n\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { useResource } from \"@assistant-ui/tap\";\nimport type { Unstable_TriggerAdapter } from \"@assistant-ui/core\";\nimport {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useEffectEvent,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ComponentRef,\n} from \"react\";\nimport { Primitive } from \"../../../utils/Primitive\";\nimport { useComposerInputPluginRegistryOptional } from \"../ComposerInputPluginContext\";\nimport {\n TriggerPopoverResource,\n type TriggerPopoverResourceOutput,\n} from \"./TriggerPopoverResource\";\nimport type { TriggerBehavior } from \"./triggerSelectionResource\";\nimport {\n useTriggerPopoverAriaPublish,\n useTriggerPopoverRootContext,\n} from \"./TriggerPopoverRootContext\";\n\nconst TriggerPopoverScopeContext =\n createContext<TriggerPopoverResourceOutput | null>(null);\n\nexport const useTriggerPopoverScopeContext = () => {\n const ctx = useContext(TriggerPopoverScopeContext);\n if (!ctx)\n throw new Error(\n \"useTriggerPopoverScopeContext must be used within ComposerPrimitive.TriggerPopover\",\n );\n return ctx;\n};\n\nexport const useTriggerPopoverScopeContextOptional = () =>\n useContext(TriggerPopoverScopeContext);\n\n/** Registration API exposed to behavior sub-primitives. */\nexport type TriggerBehaviorRegistration = {\n register(behavior: TriggerBehavior): () => void;\n};\n\nconst TriggerBehaviorRegistrationContext =\n createContext<TriggerBehaviorRegistration | null>(null);\n\n/** Obtain the registration handle from the parent `<TriggerPopover>`. */\nexport const useTriggerBehaviorRegistration = () => {\n const ctx = useContext(TriggerBehaviorRegistrationContext);\n if (!ctx)\n throw new Error(\n \"TriggerPopover.Directive / TriggerPopover.Action must be rendered inside ComposerPrimitive.TriggerPopover\",\n );\n return ctx;\n};\n\nexport namespace ComposerPrimitiveTriggerPopover {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = Omit<\n ComponentPropsWithoutRef<typeof Primitive.div>,\n \"onSelect\"\n > & {\n /** The character(s) that activate this trigger (e.g. `\"@\"`, `\"/\"`). Also serves as the trigger identity within the root. */\n readonly char: string;\n /** Adapter providing categories and items. */\n readonly adapter?: Unstable_TriggerAdapter | undefined;\n };\n}\n\n/**\n * Declares a trigger and renders its popover container. The popover only\n * renders its DOM (and children) when the trigger character is active in the\n * composer input and a behavior sub-primitive has been registered.\n *\n * A behavior is contributed by rendering exactly one of\n * `<TriggerPopover.Directive>` or `<TriggerPopover.Action>` as a child. Without\n * a behavior the trigger stays closed.\n *\n * Must be placed inside `ComposerPrimitive.Unstable_TriggerPopoverRoot`.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Unstable_TriggerPopover\n * char=\"@\"\n * adapter={mentionAdapter}\n * >\n * <ComposerPrimitive.Unstable_TriggerPopover.Directive formatter={formatter} />\n * <ComposerPrimitive.Unstable_TriggerPopoverCategories>\n * {(cats) => cats.map(...)}\n * </ComposerPrimitive.Unstable_TriggerPopoverCategories>\n * <ComposerPrimitive.Unstable_TriggerPopoverItems>\n * {(items) => items.map(...)}\n * </ComposerPrimitive.Unstable_TriggerPopoverItems>\n * </ComposerPrimitive.Unstable_TriggerPopover>\n * ```\n */\nexport const ComposerPrimitiveTriggerPopover = forwardRef<\n ComposerPrimitiveTriggerPopover.Element,\n ComposerPrimitiveTriggerPopover.Props\n>(\n (\n { char, adapter, \"aria-label\": ariaLabel, children, ...props },\n forwardedRef,\n ) => {\n const aui = useAui();\n const text = useAuiState((s) => s.composer.text);\n const popoverId = useId();\n\n // Track in state (for resource reactivity) + ref (dev warning on duplicate registrations).\n const behaviorRef = useRef<TriggerBehavior | null>(null);\n const [behavior, setBehavior] = useState<TriggerBehavior | null>(null);\n const registrationCountRef = useRef(0);\n\n const register = useCallback<TriggerBehaviorRegistration[\"register\"]>(\n (next) => {\n registrationCountRef.current += 1;\n if (\n process.env.NODE_ENV !== \"production\" &&\n registrationCountRef.current > 1\n ) {\n console.warn(\n `[assistant-ui] TriggerPopover \"${char}\" received more than one behavior child. Exactly one <TriggerPopover.Directive> or <TriggerPopover.Action> is allowed per TriggerPopover; the last registration wins.`,\n );\n }\n behaviorRef.current = next;\n setBehavior(next);\n return () => {\n registrationCountRef.current = Math.max(\n 0,\n registrationCountRef.current - 1,\n );\n if (behaviorRef.current === next) {\n behaviorRef.current = null;\n setBehavior(null);\n }\n };\n },\n [char],\n );\n\n const registration = useMemo<TriggerBehaviorRegistration>(\n () => ({ register }),\n [register],\n );\n\n const resource = useResource(\n TriggerPopoverResource({\n adapter,\n text,\n triggerChar: char,\n behavior: behavior ?? undefined,\n aui,\n popoverId,\n }),\n );\n\n const getResource = useEffectEvent(() => resource);\n\n const root = useTriggerPopoverRootContext();\n useEffect(() => {\n return root.register({\n char,\n ...(behavior ? { behavior } : {}),\n resource: getResource(),\n });\n }, [root, char, behavior]);\n\n const pluginRegistry = useComposerInputPluginRegistryOptional();\n useEffect(() => {\n if (!pluginRegistry) return undefined;\n return pluginRegistry.register(getResource());\n }, [pluginRegistry]);\n\n const open = behavior !== null && resource.open;\n\n const aria = useTriggerPopoverAriaPublish();\n\n useEffect(() => {\n if (!open) return undefined;\n return () => {\n aria.setActiveAria(char, null);\n };\n }, [aria, char, open]);\n\n useEffect(() => {\n if (!open) return;\n aria.setActiveAria(char, {\n popoverId,\n highlightedItemId: resource.highlightedItemId,\n });\n }, [aria, char, popoverId, open, resource.highlightedItemId]);\n\n return (\n <TriggerBehaviorRegistrationContext.Provider value={registration}>\n <TriggerPopoverScopeContext.Provider value={resource}>\n {open ? (\n <Primitive.div\n role=\"listbox\"\n id={popoverId}\n aria-label={ariaLabel ?? \"Suggestions\"}\n aria-activedescendant={resource.highlightedItemId}\n data-state=\"open\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Primitive.div>\n ) : (\n children\n )}\n </TriggerPopoverScopeContext.Provider>\n </TriggerBehaviorRegistrationContext.Provider>\n );\n },\n);\n\nComposerPrimitiveTriggerPopover.displayName =\n \"ComposerPrimitive.TriggerPopover\";\n"],"mappings":";;;;;;;;;;;AA+BA,MAAMyB,6BACJnB,cAAmD,IAAI;AAEzD,MAAaoB,sCAAgC;CAC3C,MAAAC,MAAYlB,WAAWgB,0BAA0B;CACjD,IAAI,CAACE,KACH,MAAM,IAAIC,MACR,oFACF;CAAE,OACGD;AAAG;AAGZ,MAAaE,8CAAwC;CAAA,OACnDpB,WAAWgB,0BAA0B;AAAC;AAOxC,MAAMQ,qCACJ3B,cAAkD,IAAI;;AAGxD,MAAa4B,uCAAiC;CAC5C,MAAAP,MAAYlB,WAAWwB,kCAAkC;CACzD,IAAI,CAACN,KACH,MAAM,IAAIC,MACR,2GACF;CAAE,OACGD;AAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CZ,MAAaQ,kCAAkC5B,YAI7CmC,IAAAC,iBAAA;CAAA,MAAAC,IAAA3C,EAAA,EAAA;CAAA,IAAAwC;CAAA,IAAAI;CAAA,IAAAL;CAAA,IAAAM;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAF,IAAA;EACE,CAAA,CAAAF,MAAAC,SAAA,cAAAI,WAAAC,aAAAC,SAAAL;EAA8DE,EAAA,KAAAF;EAAAE,EAAA,KAAAH;EAAAG,EAAA,KAAAC;EAAAD,EAAA,KAAAJ;EAAAI,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAAN,UAAAG,EAAA;EAAAC,YAAAD,EAAA;EAAAJ,OAAAI,EAAA;EAAAE,WAAAF,EAAA;EAAAG,QAAAH,EAAA;CAAA;CAG9D,MAAAI,MAAY9C,OAAO;CACnB,MAAA+C,OAAa9C,YAAY+C,KAAsB;CAC/C,MAAAC,YAAkBvC,MAAM;CAGxB,MAAAwC,cAAoBtC,OAA+B,IAAI;CACvD,MAAA,CAAAkB,UAAAqB,eAAgCtC,SAAiC,IAAI;CACrE,MAAAuC,uBAA6BxC,OAAO,CAAC;CAAE,IAAAyC;CAAA,IAAAX,EAAA,OAAAJ,MAAA;EAGrCe,MAAAC,SAAA;GACEF,qBAAoBG,UAApBH,qBAAoBG,UAAY;GAChC,IACEC,QAAOC,IAAIC,aAAc,gBACzBN,qBAAoBG,UAAW,GAE/BI,QAAOC,KACL,kCAAkCtB,KAAI,sKACxC;GAEFY,YAAWK,UAAWD;GACtBH,YAAYG,IAAI;GAAC,aACV;IACLF,qBAAoBG,UAAWM,KAAIC,IACjC,GACAV,qBAAoBG,UAAW,CACjC;IACA,IAAIL,YAAWK,YAAaD,MAAI;KAC9BJ,YAAWK,UAAW;KACtBJ,YAAY,IAAI;IAAC;GAClB;EACF;EACFT,EAAA,KAAAJ;EAAAI,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAvBH,MAAAb,WAAiBwB;CAyBf,IAAAU;CAAA,IAAArB,EAAA,OAAAb,UAAA;EAGOkC,KAAA,EAAAlC,SAAW;EAACa,EAAA,KAAAb;EAAAa,EAAA,KAAAqB;CAAA,OAAAA,KAAArB,EAAA;CADrB,MAAAsB,eACSD;CASK,MAAAE,KAAAnC,YAAAoC,KAAAA;CAAqB,IAAAC;CAAA,IAAAzB,EAAA,QAAAH,WAAAG,EAAA,QAAAI,OAAAJ,EAAA,QAAAJ,QAAAI,EAAA,QAAAO,aAAAP,EAAA,QAAAuB,MAAAvB,EAAA,QAAAK,MAAA;EAJjCoB,KAAAjD,uBAAuB;GAAAqB;GAAAQ;GAAAqB,aAGR9B;GAAIR,UACPmC;GAAqBnB;GAAAG;EAGjC,CAAC;EAACP,EAAA,MAAAH;EAAAG,EAAA,MAAAI;EAAAJ,EAAA,MAAAJ;EAAAI,EAAA,MAAAO;EAAAP,EAAA,MAAAuB;EAAAvB,EAAA,MAAAK;EAAAL,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CARJ,MAAA2B,WAAiBnE,YACfiE,EAQF;CAAE,IAAAG;CAAA,IAAA5B,EAAA,QAAA2B,UAAA;EAEiCC,WAAMD;EAAQ3B,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAjD,MAAA6B,cAAoB9D,eAAe6D,EAAc;CAEjD,MAAAE,OAAalD,6BAA6B;CAAE,IAAAmD;CAAA,IAAA/B,EAAA,QAAAZ,YAAAY,EAAA,QAAAJ,QAAAI,EAAA,QAAA6B,eAAA7B,EAAA,QAAA8B,MAAA;EAClCC,WACDD,KAAI3C,SAAU;GAAAS;GAAA,GAEfR,WAAA,EAAAA,SAA2B,IAA3B,CAA2B;GAACuC,UACtBE,YAAY;EACxB,CAAC;EACF7B,EAAA,MAAAZ;EAAAY,EAAA,MAAAJ;EAAAI,EAAA,MAAA6B;EAAA7B,EAAA,MAAA8B;EAAA9B,EAAA,MAAA+B;CAAA,OAAAA,KAAA/B,EAAA;CAAA,IAAAgC;CAAA,IAAAhC,EAAA,QAAAZ,YAAAY,EAAA,QAAAJ,QAAAI,EAAA,QAAA8B,MAAA;EAAEE,KAAA;GAACF;GAAMlC;GAAMR;EAAQ;EAACY,EAAA,MAAAZ;EAAAY,EAAA,MAAAJ;EAAAI,EAAA,MAAA8B;EAAA9B,EAAA,MAAAgC;CAAA,OAAAA,KAAAhC,EAAA;CANzBlC,UAAUiE,IAMPC,EAAsB;CAEzB,MAAAC,iBAAuB1D,uCAAuC;CAAE,IAAA2D;CAAA,IAAAlC,EAAA,QAAA6B,eAAA7B,EAAA,QAAAiC,gBAAA;EACtDC,WAAA;GACR,IAAI,CAACD,gBAAc;GAAmB,OAC/BA,eAAc9C,SAAU0C,YAAY,CAAC;EAAC;EAC9C7B,EAAA,MAAA6B;EAAA7B,EAAA,MAAAiC;EAAAjC,EAAA,MAAAkC;CAAA,OAAAA,KAAAlC,EAAA;CAAA,IAAAmC;CAAA,IAAAnC,EAAA,QAAAiC,gBAAA;EAAEE,KAAA,CAACF,cAAc;EAACjC,EAAA,MAAAiC;EAAAjC,EAAA,MAAAmC;CAAA,OAAAA,KAAAnC,EAAA;CAHnBlC,UAAUoE,IAGPC,EAAgB;CAEnB,MAAAC,OAAahD,aAAa,QAAQuC,SAAQS;CAE1C,MAAAC,OAAa1D,6BAA6B;CAAE,IAAA2D;CAAA,IAAAC;CAAA,IAAAvC,EAAA,QAAAqC,QAAArC,EAAA,QAAAJ,QAAAI,EAAA,QAAAoC,MAAA;EAElCE,YAAA;GACR,IAAI,CAACF,MAAI;GAAmB,aACrB;IACLC,KAAIG,cAAe5C,MAAM,IAAI;GAAC;EAC/B;EACA2C,MAAA;GAACF;GAAMzC;GAAMwC;EAAI;EAACpC,EAAA,MAAAqC;EAAArC,EAAA,MAAAJ;EAAAI,EAAA,MAAAoC;EAAApC,EAAA,MAAAsC;EAAAtC,EAAA,MAAAuC;CAAA,OAAA;EAAAD,MAAAtC,EAAA;EAAAuC,MAAAvC,EAAA;CAAA;CALrBlC,UAAUwE,KAKPC,GAAkB;CAAC,IAAAE;CAAA,IAAAC;CAAA,IAAA1C,EAAA,QAAAqC,QAAArC,EAAA,QAAAJ,QAAAI,EAAA,QAAAoC,QAAApC,EAAA,QAAAO,aAAAP,EAAA,QAAA2B,SAAAgB,mBAAA;EAEZF,YAAA;GACR,IAAI,CAACL,MAAI;GACTC,KAAIG,cAAe5C,MAAM;IAAAW;IAAAoC,mBAEJhB,SAAQgB;GAC7B,CAAC;EAAC;EACDD,MAAA;GAACL;GAAMzC;GAAMW;GAAW6B;GAAMT,SAAQgB;EAAkB;EAAC3C,EAAA,MAAAqC;EAAArC,EAAA,MAAAJ;EAAAI,EAAA,MAAAoC;EAAApC,EAAA,MAAAO;EAAAP,EAAA,MAAA2B,SAAAgB;EAAA3C,EAAA,MAAAyC;EAAAzC,EAAA,MAAA0C;CAAA,OAAA;EAAAD,MAAAzC,EAAA;EAAA0C,MAAA1C,EAAA;CAAA;CAN5DlC,UAAU2E,KAMPC,GAAyD;CAAC,IAAAE;CAAA,IAAA5C,EAAA,QAAAC,aAAAD,EAAA,QAAAE,YAAAF,EAAA,QAAAD,gBAAAC,EAAA,QAAAoC,QAAApC,EAAA,QAAAO,aAAAP,EAAA,QAAAG,SAAAH,EAAA,QAAA2B,SAAAgB,mBAAA;EAKtDC,MAAAR,OACC,oBAAA,UAAA,KAAA;GACO,MAAA;GACD7B,IAAAA;GACQ,cAAAN,aAAA;GACW,yBAAA0B,SAAQgB;GACpB,cAAA;GAAM,GACbxC;GACCJ,KAAAA;GAEJG;EACH,CAAA,IAXDA;EAcAF,EAAA,MAAAC;EAAAD,EAAA,MAAAE;EAAAF,EAAA,MAAAD;EAAAC,EAAA,MAAAoC;EAAApC,EAAA,MAAAO;EAAAP,EAAA,MAAAG;EAAAH,EAAA,MAAA2B,SAAAgB;EAAA3C,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CAAA,IAAA6C;CAAA,IAAA7C,EAAA,QAAA2B,YAAA3B,EAAA,QAAA4C,KAAA;EAfHC,MAAA,oBAAA,2BAAA,UAAA;GAA4ClB,OAAAA;aACzCiB;EAeH,CAAA;EAAsC5C,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4C;EAAA5C,EAAA,MAAA6C;CAAA,OAAAA,MAAA7C,EAAA;CAAA,IAAA8C;CAAA,IAAA9C,EAAA,QAAAsB,gBAAAtB,EAAA,QAAA6C,KAAA;EAjBxCC,MAAA,oBAAA,mCAAA,UAAA;GAAoDxB,OAAAA;aAClDuB;EAiBF,CAAA;EAA8C7C,EAAA,MAAAsB;EAAAtB,EAAA,MAAA6C;EAAA7C,EAAA,MAAA8C;CAAA,OAAAA,MAAA9C,EAAA;CAAA,OAlB9C8C;AAkB8C,CAGpD;AAEAvD,gCAAgCwD,cAC9B;AArHA,SAAAzC,MAAA0C,GAAA;CAAA,OAKkCA,EAACC,SAAS5C;AAAK"}
1
+ {"version":3,"file":"TriggerPopover.js","names":["c","_c","useAui","useAuiState","useResource","Unstable_TriggerAdapter","createContext","forwardRef","useCallback","useContext","useEffect","useEffectEvent","useId","useMemo","useRef","useState","ComponentPropsWithoutRef","ComponentRef","Primitive","useComposerInputPluginRegistryOptional","TriggerPopoverResource","TriggerPopoverResourceOutput","TriggerBehavior","useTriggerPopoverAriaPublish","useTriggerPopoverRootContext","TriggerPopoverScopeContext","useTriggerPopoverScopeContext","ctx","Error","useTriggerPopoverScopeContextOptional","TriggerBehaviorRegistration","register","behavior","TriggerBehaviorRegistrationContext","useTriggerBehaviorRegistration","ComposerPrimitiveTriggerPopover","Element","div","Props","Omit","char","adapter","isLoading","t0","forwardedRef","$","ariaLabel","children","props","t1","undefined","aui","text","_temp","popoverId","behaviorRef","setBehavior","registrationCountRef","t2","next","current","process","env","NODE_ENV","console","warn","Math","max","t3","registration","t4","t5","triggerChar","resource","t6","getResource","root","t7","t8","pluginRegistry","t9","t10","open","aria","t11","t12","setActiveAria","t13","t14","highlightedItemId","t15","t16","t17","displayName","s","composer"],"sources":["../../../../src/primitives/composer/trigger/TriggerPopover.tsx"],"sourcesContent":["\"use client\";\n\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { useResource } from \"@assistant-ui/tap\";\nimport type { Unstable_TriggerAdapter } from \"@assistant-ui/core\";\nimport {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useEffectEvent,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ComponentRef,\n} from \"react\";\nimport { Primitive } from \"../../../utils/Primitive\";\nimport { useComposerInputPluginRegistryOptional } from \"../ComposerInputPluginContext\";\nimport {\n TriggerPopoverResource,\n type TriggerPopoverResourceOutput,\n} from \"./TriggerPopoverResource\";\nimport type { TriggerBehavior } from \"./triggerSelectionResource\";\nimport {\n useTriggerPopoverAriaPublish,\n useTriggerPopoverRootContext,\n} from \"./TriggerPopoverRootContext\";\n\nconst TriggerPopoverScopeContext =\n createContext<TriggerPopoverResourceOutput | null>(null);\n\nexport const useTriggerPopoverScopeContext = () => {\n const ctx = useContext(TriggerPopoverScopeContext);\n if (!ctx)\n throw new Error(\n \"useTriggerPopoverScopeContext must be used within ComposerPrimitive.TriggerPopover\",\n );\n return ctx;\n};\n\nexport const useTriggerPopoverScopeContextOptional = () =>\n useContext(TriggerPopoverScopeContext);\n\n/** Registration API exposed to behavior sub-primitives. */\nexport type TriggerBehaviorRegistration = {\n register(behavior: TriggerBehavior): () => void;\n};\n\nconst TriggerBehaviorRegistrationContext =\n createContext<TriggerBehaviorRegistration | null>(null);\n\n/** Obtain the registration handle from the parent `<TriggerPopover>`. */\nexport const useTriggerBehaviorRegistration = () => {\n const ctx = useContext(TriggerBehaviorRegistrationContext);\n if (!ctx)\n throw new Error(\n \"TriggerPopover.Directive / TriggerPopover.Action must be rendered inside ComposerPrimitive.TriggerPopover\",\n );\n return ctx;\n};\n\nexport namespace ComposerPrimitiveTriggerPopover {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = Omit<\n ComponentPropsWithoutRef<typeof Primitive.div>,\n \"onSelect\"\n > & {\n /** The character(s) that activate this trigger (e.g. `\"@\"`, `\"/\"`). Also serves as the trigger identity within the root. */\n readonly char: string;\n /** Adapter providing categories and items. */\n readonly adapter?: Unstable_TriggerAdapter | undefined;\n /** Whether the adapter is resolving items, surfaced to the popover scope for async sources. @default false */\n readonly isLoading?: boolean | undefined;\n };\n}\n\n/**\n * Declares a trigger and renders its popover container. The popover only\n * renders its DOM (and children) when the trigger character is active in the\n * composer input and a behavior sub-primitive has been registered.\n *\n * A behavior is contributed by rendering exactly one of\n * `<TriggerPopover.Directive>` or `<TriggerPopover.Action>` as a child. Without\n * a behavior the trigger stays closed.\n *\n * Must be placed inside `ComposerPrimitive.Unstable_TriggerPopoverRoot`.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Unstable_TriggerPopover\n * char=\"@\"\n * adapter={mentionAdapter}\n * >\n * <ComposerPrimitive.Unstable_TriggerPopover.Directive formatter={formatter} />\n * <ComposerPrimitive.Unstable_TriggerPopoverCategories>\n * {(cats) => cats.map(...)}\n * </ComposerPrimitive.Unstable_TriggerPopoverCategories>\n * <ComposerPrimitive.Unstable_TriggerPopoverItems>\n * {(items) => items.map(...)}\n * </ComposerPrimitive.Unstable_TriggerPopoverItems>\n * </ComposerPrimitive.Unstable_TriggerPopover>\n * ```\n */\nexport const ComposerPrimitiveTriggerPopover = forwardRef<\n ComposerPrimitiveTriggerPopover.Element,\n ComposerPrimitiveTriggerPopover.Props\n>(\n (\n {\n char,\n adapter,\n isLoading = false,\n \"aria-label\": ariaLabel,\n children,\n ...props\n },\n forwardedRef,\n ) => {\n const aui = useAui();\n const text = useAuiState((s) => s.composer.text);\n const popoverId = useId();\n\n // Track in state (for resource reactivity) + ref (dev warning on duplicate registrations).\n const behaviorRef = useRef<TriggerBehavior | null>(null);\n const [behavior, setBehavior] = useState<TriggerBehavior | null>(null);\n const registrationCountRef = useRef(0);\n\n const register = useCallback<TriggerBehaviorRegistration[\"register\"]>(\n (next) => {\n registrationCountRef.current += 1;\n if (\n process.env.NODE_ENV !== \"production\" &&\n registrationCountRef.current > 1\n ) {\n console.warn(\n `[assistant-ui] TriggerPopover \"${char}\" received more than one behavior child. Exactly one <TriggerPopover.Directive> or <TriggerPopover.Action> is allowed per TriggerPopover; the last registration wins.`,\n );\n }\n behaviorRef.current = next;\n setBehavior(next);\n return () => {\n registrationCountRef.current = Math.max(\n 0,\n registrationCountRef.current - 1,\n );\n if (behaviorRef.current === next) {\n behaviorRef.current = null;\n setBehavior(null);\n }\n };\n },\n [char],\n );\n\n const registration = useMemo<TriggerBehaviorRegistration>(\n () => ({ register }),\n [register],\n );\n\n const resource = useResource(\n TriggerPopoverResource({\n adapter,\n text,\n triggerChar: char,\n behavior: behavior ?? undefined,\n aui,\n popoverId,\n isLoading,\n }),\n );\n\n const getResource = useEffectEvent(() => resource);\n\n const root = useTriggerPopoverRootContext();\n useEffect(() => {\n return root.register({\n char,\n ...(behavior ? { behavior } : {}),\n resource: getResource(),\n });\n }, [root, char, behavior]);\n\n const pluginRegistry = useComposerInputPluginRegistryOptional();\n useEffect(() => {\n if (!pluginRegistry) return undefined;\n return pluginRegistry.register(getResource());\n }, [pluginRegistry]);\n\n const open = behavior !== null && resource.open;\n\n const aria = useTriggerPopoverAriaPublish();\n\n useEffect(() => {\n if (!open) return undefined;\n return () => {\n aria.setActiveAria(char, null);\n };\n }, [aria, char, open]);\n\n useEffect(() => {\n if (!open) return;\n aria.setActiveAria(char, {\n popoverId,\n highlightedItemId: resource.highlightedItemId,\n });\n }, [aria, char, popoverId, open, resource.highlightedItemId]);\n\n return (\n <TriggerBehaviorRegistrationContext.Provider value={registration}>\n <TriggerPopoverScopeContext.Provider value={resource}>\n {open ? (\n <Primitive.div\n role=\"listbox\"\n id={popoverId}\n aria-label={ariaLabel ?? \"Suggestions\"}\n aria-activedescendant={resource.highlightedItemId}\n data-state=\"open\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Primitive.div>\n ) : (\n children\n )}\n </TriggerPopoverScopeContext.Provider>\n </TriggerBehaviorRegistrationContext.Provider>\n );\n },\n);\n\nComposerPrimitiveTriggerPopover.displayName =\n \"ComposerPrimitive.TriggerPopover\";\n"],"mappings":"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"}