@assistant-ui/react 0.14.16 → 0.14.19
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.
- package/dist/client/ExternalThread.d.ts +5 -3
- package/dist/client/ExternalThread.d.ts.map +1 -1
- package/dist/client/ExternalThread.js +745 -255
- package/dist/client/ExternalThread.js.map +1 -1
- package/dist/client/InMemoryThreadList.d.ts +1 -1
- package/dist/client/InMemoryThreadList.d.ts.map +1 -1
- package/dist/client/InMemoryThreadList.js +299 -113
- package/dist/client/InMemoryThreadList.js.map +1 -1
- package/dist/client/SingleThreadList.d.ts +1 -6
- package/dist/client/SingleThreadList.d.ts.map +1 -1
- package/dist/client/SingleThreadList.js +143 -55
- package/dist/client/SingleThreadList.js.map +1 -1
- package/dist/context/ReadonlyStore.js.map +1 -1
- package/dist/context/providers/MessageProvider.js +38 -5
- package/dist/context/providers/MessageProvider.js.map +1 -1
- package/dist/context/providers/ThreadViewportProvider.js +76 -20
- package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
- package/dist/context/react/ThreadViewportContext.js.map +1 -1
- package/dist/context/react/utils/createContextHook.js.map +1 -1
- package/dist/context/react/utils/createContextStoreHook.js +17 -2
- package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
- package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
- package/dist/context/react/utils/ensureBinding.js.map +1 -1
- package/dist/context/react/utils/useRuntimeState.js +18 -2
- package/dist/context/react/utils/useRuntimeState.js.map +1 -1
- package/dist/context/stores/ThreadViewport.js.map +1 -1
- package/dist/devtools/DevToolsHooks.js.map +1 -1
- package/dist/hooks/useMessageQuote.js.map +1 -1
- package/dist/hooks/useMessageTiming.js +4 -1
- package/dist/hooks/useMessageTiming.js.map +1 -1
- package/dist/hooks/useToolCallElapsed.d.ts +23 -0
- package/dist/hooks/useToolCallElapsed.d.ts.map +1 -0
- package/dist/hooks/useToolCallElapsed.js +72 -0
- package/dist/hooks/useToolCallElapsed.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -1
- package/dist/internal.js.map +1 -1
- package/dist/legacy-runtime/AssistantRuntimeProvider.js +46 -10
- package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
- package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
- package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +27 -6
- package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -1
- package/dist/legacy-runtime/hooks/AssistantContext.js +13 -2
- package/dist/legacy-runtime/hooks/AssistantContext.js.map +1 -1
- package/dist/legacy-runtime/hooks/AttachmentContext.js +9 -1
- package/dist/legacy-runtime/hooks/AttachmentContext.js.map +1 -1
- package/dist/legacy-runtime/hooks/ComposerContext.js +9 -1
- package/dist/legacy-runtime/hooks/ComposerContext.js.map +1 -1
- package/dist/legacy-runtime/hooks/MessageContext.js +12 -2
- package/dist/legacy-runtime/hooks/MessageContext.js.map +1 -1
- package/dist/legacy-runtime/hooks/MessagePartContext.js +9 -1
- package/dist/legacy-runtime/hooks/MessagePartContext.js.map +1 -1
- package/dist/legacy-runtime/hooks/ThreadContext.js +33 -5
- package/dist/legacy-runtime/hooks/ThreadContext.js.map +1 -1
- package/dist/legacy-runtime/hooks/ThreadListItemContext.js +9 -1
- package/dist/legacy-runtime/hooks/ThreadListItemContext.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js +3 -3
- package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js +71 -31
- package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +24 -16
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js +17 -12
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js +17 -3
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js.map +1 -1
- package/dist/mcp-apps/McpAppRenderer.d.ts +2 -10
- package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -1
- package/dist/mcp-apps/McpAppRenderer.js +9 -8
- package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
- package/dist/mcp-apps/McpAppsRemoteHost.d.ts +1 -8
- package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
- package/dist/mcp-apps/McpAppsRemoteHost.js +6 -5
- package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
- package/dist/mcp-apps/app-frame.js +33 -14
- package/dist/mcp-apps/app-frame.js.map +1 -1
- package/dist/mcp-apps/bridge.js.map +1 -1
- package/dist/mcp-apps/types.js.map +1 -1
- package/dist/mcp-apps/utils.js.map +1 -1
- package/dist/model-context/frame/useAssistantFrameHost.js +32 -14
- package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
- package/dist/model-context/makeAssistantVisible.js +64 -26
- package/dist/model-context/makeAssistantVisible.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.js +94 -20
- package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarExportMarkdown.js +105 -37
- package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +60 -11
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +60 -11
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarInteractionContext.js +3 -1
- package/dist/primitives/actionBar/ActionBarInteractionContext.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarRoot.js +84 -25
- package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js +45 -14
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
- package/dist/primitives/actionBar/useActionBarFloatStatus.js +22 -10
- package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
- package/dist/primitives/actionBar.js.map +1 -1
- package/dist/primitives/actionBarMore/ActionBarMoreContent.js +44 -7
- package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
- package/dist/primitives/actionBarMore/ActionBarMoreItem.js +28 -6
- package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -1
- package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +103 -36
- package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -1
- package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +28 -6
- package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -1
- package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +28 -6
- package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -1
- package/dist/primitives/actionBarMore/scope.js.map +1 -1
- package/dist/primitives/actionBarMore.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalAnchor.js +27 -6
- package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalContent.js +71 -10
- package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalRoot.js +93 -26
- package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalTrigger.js +27 -6
- package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
- package/dist/primitives/assistantModal/scope.js.map +1 -1
- package/dist/primitives/assistantModal.js.map +1 -1
- package/dist/primitives/attachment/AttachmentName.js +13 -1
- package/dist/primitives/attachment/AttachmentName.js.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.js +11 -4
- package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
- package/dist/primitives/attachment/AttachmentRoot.js +13 -4
- package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.js +20 -9
- package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
- package/dist/primitives/attachment.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerCount.js +14 -2
- package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNumber.js +14 -2
- package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerRoot.js +34 -6
- package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
- package/dist/primitives/branchPicker.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +16 -5
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +13 -4
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -1
- package/dist/primitives/chainOfThought.js.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.js +37 -24
- package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
- package/dist/primitives/composer/ComposerAttachmentDropzone.js +124 -49
- package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
- package/dist/primitives/composer/ComposerCancel.js.map +1 -1
- package/dist/primitives/composer/ComposerDictate.js.map +1 -1
- package/dist/primitives/composer/ComposerDictationTranscript.js +32 -7
- package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
- package/dist/primitives/composer/ComposerInput.js +29 -29
- package/dist/primitives/composer/ComposerInput.js.map +1 -1
- package/dist/primitives/composer/ComposerInputPluginContext.js +71 -25
- package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -1
- package/dist/primitives/composer/ComposerQuote.js +92 -23
- package/dist/primitives/composer/ComposerQuote.js.map +1 -1
- package/dist/primitives/composer/ComposerRoot.js +45 -11
- package/dist/primitives/composer/ComposerRoot.js.map +1 -1
- package/dist/primitives/composer/ComposerSend.js +9 -2
- package/dist/primitives/composer/ComposerSend.js.map +1 -1
- package/dist/primitives/composer/ComposerStopDictation.js +15 -5
- package/dist/primitives/composer/ComposerStopDictation.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopover.js +215 -75
- package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverBack.js +35 -7
- package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +134 -28
- package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverItems.js +132 -28
- package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +2 -10
- package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverResource.js +126 -53
- package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -1
- package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +181 -78
- package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -1
- package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -1
- package/dist/primitives/composer/trigger/index.js.map +1 -1
- package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +2 -6
- package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/triggerDetectionResource.js +30 -15
- package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -1
- package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +2 -17
- package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/triggerKeyboardResource.js +117 -59
- package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -1
- package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +2 -10
- package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/triggerNavigationResource.js +204 -71
- package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -1
- package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +2 -10
- package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/triggerSelectionResource.js +51 -14
- package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -1
- package/dist/primitives/composer.js.map +1 -1
- package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -1
- package/dist/primitives/error/ErrorMessage.js +28 -6
- package/dist/primitives/error/ErrorMessage.js.map +1 -1
- package/dist/primitives/error/ErrorRoot.js +14 -5
- package/dist/primitives/error/ErrorRoot.js.map +1 -1
- package/dist/primitives/error.js.map +1 -1
- package/dist/primitives/message/MessageError.js +2 -1
- package/dist/primitives/message/MessageError.js.map +1 -1
- package/dist/primitives/message/MessageIf.js +50 -20
- package/dist/primitives/message/MessageIf.js.map +1 -1
- package/dist/primitives/message/MessageParts.js +41 -7
- package/dist/primitives/message/MessageParts.js.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.js +399 -94
- package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
- package/dist/primitives/message/MessageRoot.js +197 -65
- package/dist/primitives/message/MessageRoot.js.map +1 -1
- package/dist/primitives/message.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartImage.js +15 -5
- package/dist/primitives/messagePart/MessagePartImage.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartText.d.ts +5 -2
- package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
- package/dist/primitives/messagePart/MessagePartText.js +35 -7
- package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartData.js +5 -4
- package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartFile.js +5 -4
- package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartImage.js +5 -4
- package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartReasoning.js +5 -4
- package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartSource.js +5 -4
- package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartText.js +5 -4
- package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
- package/dist/primitives/messagePart.js.map +1 -1
- package/dist/primitives/queueItem/QueueItemRemove.js +11 -4
- package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -1
- package/dist/primitives/queueItem/QueueItemSteer.js +11 -4
- package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -1
- package/dist/primitives/queueItem/QueueItemText.js +20 -6
- package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
- package/dist/primitives/queueItem.js.map +1 -1
- package/dist/primitives/reasoning/useScrollLock.js +61 -34
- package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +56 -16
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -1
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +120 -59
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
- package/dist/primitives/selectionToolbar.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionDescription.js +20 -6
- package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionTitle.js +20 -6
- package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionTrigger.js +39 -26
- package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
- package/dist/primitives/suggestion.js.map +1 -1
- package/dist/primitives/thread/ThreadEmpty.js +6 -2
- package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
- package/dist/primitives/thread/ThreadIf.js +32 -10
- package/dist/primitives/thread/ThreadIf.js.map +1 -1
- package/dist/primitives/thread/ThreadRoot.js +13 -4
- package/dist/primitives/thread/ThreadRoot.js.map +1 -1
- package/dist/primitives/thread/ThreadScrollToBottom.js +24 -6
- package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.js +18 -6
- package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
- package/dist/primitives/thread/ThreadViewport.js +185 -47
- package/dist/primitives/thread/ThreadViewport.js.map +1 -1
- package/dist/primitives/thread/ThreadViewportFooter.js +22 -9
- package/dist/primitives/thread/ThreadViewportFooter.js.map +1 -1
- package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js.map +1 -1
- package/dist/primitives/thread/topAnchor/createReserveObservers.js.map +1 -1
- package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
- package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -1
- package/dist/primitives/thread/topAnchor/topAnchorUtils.js.map +1 -1
- package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js +19 -4
- package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js.map +1 -1
- package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
- package/dist/primitives/thread/useThreadViewportAutoScroll.js +21 -16
- package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
- package/dist/primitives/thread.js.map +1 -1
- package/dist/primitives/threadList/ThreadListLoadMore.js.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.js +53 -11
- package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
- package/dist/primitives/threadList/ThreadListRoot.js +13 -4
- package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
- package/dist/primitives/threadList.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.js +26 -7
- package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
- package/dist/primitives/threadListItem.js.map +1 -1
- package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +44 -7
- package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
- package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +28 -6
- package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -1
- package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +25 -5
- package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
- package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +28 -6
- package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -1
- package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +28 -6
- package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
- package/dist/primitives/threadListItemMore/scope.js.map +1 -1
- package/dist/primitives/threadListItemMore.js.map +1 -1
- package/dist/sandbox-host/SandboxHost.js.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
- package/dist/tests/setup.js.map +1 -1
- package/dist/unstable/useComposerInputHistory.d.ts +30 -0
- package/dist/unstable/useComposerInputHistory.d.ts.map +1 -0
- package/dist/unstable/useComposerInputHistory.js +117 -0
- package/dist/unstable/useComposerInputHistory.js.map +1 -0
- package/dist/unstable/useMentionAdapter.js.map +1 -1
- package/dist/unstable/useMessageStallDetection.d.ts +29 -0
- package/dist/unstable/useMessageStallDetection.d.ts.map +1 -0
- package/dist/unstable/useMessageStallDetection.js +69 -0
- package/dist/unstable/useMessageStallDetection.js.map +1 -0
- package/dist/unstable/useSlashCommandAdapter.js.map +1 -1
- package/dist/utils/Primitive.js +57 -12
- package/dist/utils/Primitive.js.map +1 -1
- package/dist/utils/createActionButton.js +23 -7
- package/dist/utils/createActionButton.js.map +1 -1
- package/dist/utils/getSelectionMessageId.js.map +1 -1
- package/dist/utils/hooks/useManagedRef.js +16 -8
- package/dist/utils/hooks/useManagedRef.js.map +1 -1
- package/dist/utils/hooks/useMediaQuery.js +25 -10
- package/dist/utils/hooks/useMediaQuery.js.map +1 -1
- package/dist/utils/hooks/useOnResizeContent.js +29 -19
- package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
- package/dist/utils/hooks/useOnScrollToBottom.js +20 -4
- package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
- package/dist/utils/hooks/useSizeHandle.js +23 -15
- package/dist/utils/hooks/useSizeHandle.js.map +1 -1
- package/dist/utils/json/is-json-equal.js.map +1 -1
- package/dist/utils/json/is-json.js.map +1 -1
- package/dist/utils/smooth/SmoothContext.js +41 -11
- package/dist/utils/smooth/SmoothContext.js.map +1 -1
- package/dist/utils/smooth/useSmooth.d.ts +40 -2
- package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
- package/dist/utils/smooth/useSmooth.js +52 -13
- package/dist/utils/smooth/useSmooth.js.map +1 -1
- package/dist/utils/useToolArgsFieldStatus.d.ts +2 -2
- package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
- package/dist/utils/useToolArgsFieldStatus.js +13 -5
- package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
- package/package.json +6 -6
- package/src/client/ExternalThread.ts +146 -74
- package/src/client/InMemoryThreadList.ts +23 -21
- package/src/client/SingleThreadList.ts +29 -27
- package/src/hooks/useToolCallElapsed.ts +52 -0
- package/src/index.ts +19 -0
- package/src/mcp-apps/McpAppRenderer.tsx +5 -3
- package/src/mcp-apps/McpAppsRemoteHost.ts +5 -3
- package/src/primitives/composer/ComposerInput.test.tsx +1 -1
- package/src/primitives/composer/ComposerInput.tsx +3 -3
- package/src/primitives/composer/trigger/TriggerPopover.tsx +4 -5
- package/src/primitives/composer/trigger/TriggerPopoverResource.ts +5 -3
- package/src/primitives/composer/trigger/triggerDetectionResource.ts +21 -21
- package/src/primitives/composer/trigger/triggerKeyboardResource.test.ts +5 -4
- package/src/primitives/composer/trigger/triggerKeyboardResource.ts +99 -101
- package/src/primitives/composer/trigger/triggerNavigationResource.ts +92 -98
- package/src/primitives/composer/trigger/triggerSelectionResource.ts +76 -76
- package/src/primitives/messagePart/MessagePartText.tsx +3 -2
- package/src/primitives/reasoning/useScrollLock.ts +25 -2
- package/src/primitives/thread/useThreadViewportAutoScroll.ts +8 -0
- package/src/tests/external-thread-branches.test.tsx +160 -0
- package/src/tests/shouldContinue.test.ts +33 -0
- package/src/tests/toolCallTiming.test.tsx +221 -0
- package/src/unstable/useComposerInputHistory.test.tsx +201 -0
- package/src/unstable/useComposerInputHistory.ts +160 -0
- package/src/unstable/useMessageStallDetection.ts +91 -0
- package/src/utils/smooth/useSmooth.test.tsx +95 -0
- package/src/utils/smooth/useSmooth.ts +82 -10
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
|
+
import { createContext, useContext, useRef } from "@assistant-ui/tap/react-shim";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
4
5
|
//#region src/primitives/composer/ComposerInputPluginContext.tsx
|
|
5
6
|
const ComposerInputPluginRegistryContext = createContext(null);
|
|
@@ -11,33 +12,78 @@ const useComposerInputPluginRegistry = () => {
|
|
|
11
12
|
const useComposerInputPluginRegistryOptional = () => {
|
|
12
13
|
return useContext(ComposerInputPluginRegistryContext);
|
|
13
14
|
};
|
|
14
|
-
const ComposerInputPluginProvider = (
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
const ComposerInputPluginProvider = (t0) => {
|
|
16
|
+
const $ = c(8);
|
|
17
|
+
const { children } = t0;
|
|
18
|
+
let t1;
|
|
19
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
20
|
+
t1 = /* @__PURE__ */ new Map();
|
|
21
|
+
$[0] = t1;
|
|
22
|
+
} else t1 = $[0];
|
|
23
|
+
const pluginsRef = useRef(t1);
|
|
24
|
+
let t2;
|
|
25
|
+
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
26
|
+
t2 = [];
|
|
27
|
+
$[1] = t2;
|
|
28
|
+
} else t2 = $[1];
|
|
29
|
+
const snapshotRef = useRef(t2);
|
|
30
|
+
let t3;
|
|
31
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
32
|
+
t3 = () => {
|
|
33
|
+
const entries = Array.from(pluginsRef.current.entries());
|
|
34
|
+
entries.sort(_temp);
|
|
35
|
+
snapshotRef.current = entries.map(_temp2);
|
|
36
|
+
};
|
|
37
|
+
$[2] = t3;
|
|
38
|
+
} else t3 = $[2];
|
|
39
|
+
const refreshSnapshot = t3;
|
|
40
|
+
let t4;
|
|
41
|
+
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
42
|
+
t4 = (plugin_0, opts) => {
|
|
43
|
+
const priority = opts?.priority ?? 0;
|
|
44
|
+
pluginsRef.current.set(plugin_0, priority);
|
|
28
45
|
refreshSnapshot();
|
|
46
|
+
return () => {
|
|
47
|
+
pluginsRef.current.delete(plugin_0);
|
|
48
|
+
refreshSnapshot();
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
$[3] = t4;
|
|
52
|
+
} else t4 = $[3];
|
|
53
|
+
const register = t4;
|
|
54
|
+
let t5;
|
|
55
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
56
|
+
t5 = () => snapshotRef.current;
|
|
57
|
+
$[4] = t5;
|
|
58
|
+
} else t5 = $[4];
|
|
59
|
+
const getPlugins = t5;
|
|
60
|
+
let t6;
|
|
61
|
+
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
62
|
+
t6 = {
|
|
63
|
+
register,
|
|
64
|
+
getPlugins
|
|
29
65
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const registry =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
66
|
+
$[5] = t6;
|
|
67
|
+
} else t6 = $[5];
|
|
68
|
+
const registry = t6;
|
|
69
|
+
let t7;
|
|
70
|
+
if ($[6] !== children) {
|
|
71
|
+
t7 = /* @__PURE__ */ jsx(ComposerInputPluginRegistryContext.Provider, {
|
|
72
|
+
value: registry,
|
|
73
|
+
children
|
|
74
|
+
});
|
|
75
|
+
$[6] = children;
|
|
76
|
+
$[7] = t7;
|
|
77
|
+
} else t7 = $[7];
|
|
78
|
+
return t7;
|
|
40
79
|
};
|
|
80
|
+
function _temp(a, b) {
|
|
81
|
+
return b[1] - a[1];
|
|
82
|
+
}
|
|
83
|
+
function _temp2(t0) {
|
|
84
|
+
const [plugin] = t0;
|
|
85
|
+
return plugin;
|
|
86
|
+
}
|
|
41
87
|
//#endregion
|
|
42
88
|
export { ComposerInputPluginProvider, useComposerInputPluginRegistry, useComposerInputPluginRegistryOptional };
|
|
43
89
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerInputPluginContext.js","names":[],"sources":["../../../src/primitives/composer/ComposerInputPluginContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useRef,\n useCallback,\n useMemo,\n type ReactNode,\n type FC,\n} from \"react\";\n\n/**\n * A plugin that intercepts keyboard events and cursor changes in the composer\n * input. Used by trigger popover declarations to handle popover navigation\n * without ComposerInput knowing about specific triggers.\n */\nexport type ComposerInputPlugin = {\n /** Handle a key event. Return true if consumed (stops propagation to other plugins and default behavior). */\n handleKeyDown(e: {\n readonly key: string;\n readonly shiftKey: boolean;\n readonly ctrlKey?: boolean;\n readonly metaKey?: boolean;\n readonly nativeEvent?: { isComposing?: boolean };\n preventDefault(): void;\n }): boolean;\n\n /** Called on every cursor position change (selection change / text change). */\n setCursorPosition(pos: number): void;\n};\n\n/** Options for registering a plugin. */\nexport type ComposerInputPluginRegisterOptions = {\n /**\n * Relative priority. Plugins with higher priority receive events first.\n * @default 0\n */\n priority?: number;\n};\n\n// Ref-based registry: plugins are read imperatively at event time, so register/unregister does not trigger re-renders.\nexport type ComposerInputPluginRegistry = {\n register(\n plugin: ComposerInputPlugin,\n opts?: ComposerInputPluginRegisterOptions,\n ): () => void;\n getPlugins(): readonly ComposerInputPlugin[];\n};\n\nconst ComposerInputPluginRegistryContext =\n createContext<ComposerInputPluginRegistry | null>(null);\n\nexport const useComposerInputPluginRegistry =\n (): ComposerInputPluginRegistry => {\n const ctx = useContext(ComposerInputPluginRegistryContext);\n if (!ctx)\n throw new Error(\n \"useComposerInputPluginRegistry must be used within a ComposerInputPluginProvider\",\n );\n return ctx;\n };\n\nexport const useComposerInputPluginRegistryOptional =\n (): ComposerInputPluginRegistry | null => {\n return useContext(ComposerInputPluginRegistryContext);\n };\n\nexport const ComposerInputPluginProvider: FC<{ children: ReactNode }> = ({\n children,\n}) => {\n const pluginsRef = useRef<Map<ComposerInputPlugin, number>>(new Map());\n const snapshotRef = useRef<readonly ComposerInputPlugin[]>([]);\n\n const refreshSnapshot = useCallback(() => {\n const entries = Array.from(pluginsRef.current.entries());\n // Sort by priority descending; stable insertion order for equal priorities.\n entries.sort((a, b) => b[1] - a[1]);\n snapshotRef.current = entries.map(([plugin]) => plugin);\n }, []);\n\n const register = useCallback(\n (\n plugin: ComposerInputPlugin,\n opts?: ComposerInputPluginRegisterOptions,\n ) => {\n const priority = opts?.priority ?? 0;\n pluginsRef.current.set(plugin, priority);\n refreshSnapshot();\n return () => {\n pluginsRef.current.delete(plugin);\n refreshSnapshot();\n };\n },\n [refreshSnapshot],\n );\n\n const getPlugins = useCallback(\n (): readonly ComposerInputPlugin[] => snapshotRef.current,\n [],\n );\n\n const registry = useMemo<ComposerInputPluginRegistry>(\n () => ({ register, getPlugins }),\n [register, getPlugins],\n );\n\n return (\n <ComposerInputPluginRegistryContext.Provider value={registry}>\n {children}\n </ComposerInputPluginRegistryContext.Provider>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComposerInputPluginContext.js","names":["c","_c","createContext","useContext","useRef","useCallback","useMemo","ReactNode","FC","ComposerInputPlugin","handleKeyDown","e","key","shiftKey","ctrlKey","metaKey","nativeEvent","isComposing","preventDefault","setCursorPosition","pos","ComposerInputPluginRegisterOptions","priority","ComposerInputPluginRegistry","register","plugin","opts","getPlugins","ComposerInputPluginRegistryContext","useComposerInputPluginRegistry","ctx","Error","useComposerInputPluginRegistryOptional","ComposerInputPluginProvider","children","t0","$","t1","Symbol","for","Map","pluginsRef","t2","snapshotRef","t3","entries","Array","from","current","sort","_temp","map","_temp2","refreshSnapshot","t4","plugin_0","set","delete","t5","t6","registry","t7","a","b"],"sources":["../../../src/primitives/composer/ComposerInputPluginContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useRef,\n useCallback,\n useMemo,\n type ReactNode,\n type FC,\n} from \"react\";\n\n/**\n * A plugin that intercepts keyboard events and cursor changes in the composer\n * input. Used by trigger popover declarations to handle popover navigation\n * without ComposerInput knowing about specific triggers.\n */\nexport type ComposerInputPlugin = {\n /** Handle a key event. Return true if consumed (stops propagation to other plugins and default behavior). */\n handleKeyDown(e: {\n readonly key: string;\n readonly shiftKey: boolean;\n readonly ctrlKey?: boolean;\n readonly metaKey?: boolean;\n readonly nativeEvent?: { isComposing?: boolean };\n preventDefault(): void;\n }): boolean;\n\n /** Called on every cursor position change (selection change / text change). */\n setCursorPosition(pos: number): void;\n};\n\n/** Options for registering a plugin. */\nexport type ComposerInputPluginRegisterOptions = {\n /**\n * Relative priority. Plugins with higher priority receive events first.\n * @default 0\n */\n priority?: number;\n};\n\n// Ref-based registry: plugins are read imperatively at event time, so register/unregister does not trigger re-renders.\nexport type ComposerInputPluginRegistry = {\n register(\n plugin: ComposerInputPlugin,\n opts?: ComposerInputPluginRegisterOptions,\n ): () => void;\n getPlugins(): readonly ComposerInputPlugin[];\n};\n\nconst ComposerInputPluginRegistryContext =\n createContext<ComposerInputPluginRegistry | null>(null);\n\nexport const useComposerInputPluginRegistry =\n (): ComposerInputPluginRegistry => {\n const ctx = useContext(ComposerInputPluginRegistryContext);\n if (!ctx)\n throw new Error(\n \"useComposerInputPluginRegistry must be used within a ComposerInputPluginProvider\",\n );\n return ctx;\n };\n\nexport const useComposerInputPluginRegistryOptional =\n (): ComposerInputPluginRegistry | null => {\n return useContext(ComposerInputPluginRegistryContext);\n };\n\nexport const ComposerInputPluginProvider: FC<{ children: ReactNode }> = ({\n children,\n}) => {\n const pluginsRef = useRef<Map<ComposerInputPlugin, number>>(new Map());\n const snapshotRef = useRef<readonly ComposerInputPlugin[]>([]);\n\n const refreshSnapshot = useCallback(() => {\n const entries = Array.from(pluginsRef.current.entries());\n // Sort by priority descending; stable insertion order for equal priorities.\n entries.sort((a, b) => b[1] - a[1]);\n snapshotRef.current = entries.map(([plugin]) => plugin);\n }, []);\n\n const register = useCallback(\n (\n plugin: ComposerInputPlugin,\n opts?: ComposerInputPluginRegisterOptions,\n ) => {\n const priority = opts?.priority ?? 0;\n pluginsRef.current.set(plugin, priority);\n refreshSnapshot();\n return () => {\n pluginsRef.current.delete(plugin);\n refreshSnapshot();\n };\n },\n [refreshSnapshot],\n );\n\n const getPlugins = useCallback(\n (): readonly ComposerInputPlugin[] => snapshotRef.current,\n [],\n );\n\n const registry = useMemo<ComposerInputPluginRegistry>(\n () => ({ register, getPlugins }),\n [register, getPlugins],\n );\n\n return (\n <ComposerInputPluginRegistryContext.Provider value={registry}>\n {children}\n </ComposerInputPluginRegistryContext.Provider>\n );\n};\n"],"mappings":";;;;;AAkDA,MAAM4B,qCACJ1B,cAAkD,IAAI;AAExD,MAAa2B,uCACX;CACE,MAAAC,MAAY3B,WAAWyB,kCAAkC;CACzD,IAAI,CAACE,KACH,MAAM,IAAIC,MACR,kFACF;CAAE,OACGD;AAAG;AAGd,MAAaE,+CACX;CAAA,OACS7B,WAAWyB,kCAAkC;AAAC;AAGzD,MAAaK,+BAA2DE,OAAA;CAAA,MAAAC,IAAAnC,EAAA,CAAA;CAAC,MAAA,EAAAiC,aAAAC;CAExE,IAAAE;CAAA,IAAAD,EAAA,OAAAE,OAAAC,IAAA,2BAAA,GAAA;EAC6DF,qBAAA,IAAIG,IAAI;EAACJ,EAAA,KAAAC;CAAA,OAAAA,KAAAD,EAAA;CAArE,MAAAK,aAAmBrC,OAAyCiC,EAAS;CAAE,IAAAK;CAAA,IAAAN,EAAA,OAAAE,OAAAC,IAAA,2BAAA,GAAA;EACZG,KAAA,CAAA;EAAEN,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAA7D,MAAAO,cAAoBvC,OAAuCsC,EAAE;CAAE,IAAAE;CAAA,IAAAR,EAAA,OAAAE,OAAAC,IAAA,2BAAA,GAAA;EAE3BK,WAAA;GAClC,MAAAC,UAAgBC,MAAKC,KAAMN,WAAUO,QAAQH,QAAS,CAAC;GAEvDA,QAAOI,KAAMC,KAAqB;GAClCP,YAAWK,UAAWH,QAAOM,IAAKC,MAAoB;EAAnC;EACpBhB,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CALD,MAAAiB,kBAAwBT;CAKjB,IAAAU;CAAA,IAAAlB,EAAA,OAAAE,OAAAC,IAAA,2BAAA,GAAA;EAGLe,MAAAC,UAAA7B,SAAA;GAIE,MAAAJ,WAAiBI,MAAIJ,YAAJ;GACjBmB,WAAUO,QAAQQ,IAAK/B,UAAQH,QAAQ;GACvC+B,gBAAgB;GAAC,aACV;IACLZ,WAAUO,QAAQS,OAAQhC,QAAM;IAChC4B,gBAAgB;GAAC;EAClB;EACFjB,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAZH,MAAAZ,WAAiB8B;CAcf,IAAAI;CAAA,IAAAtB,EAAA,OAAAE,OAAAC,IAAA,2BAAA,GAAA;EAGAmB,WAAsCf,YAAWK;EAAQZ,EAAA,KAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAD3D,MAAAT,aAAmB+B;CAGjB,IAAAC;CAAA,IAAAvB,EAAA,OAAAE,OAAAC,IAAA,2BAAA,GAAA;EAGOoB,KAAA;GAAAnC;GAAAG;EAAuB;EAACS,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CADjC,MAAAwB,WACSD;CAEP,IAAAE;CAAA,IAAAzB,EAAA,OAAAF,UAAA;EAGA2B,KAAA,oBAAA,mCAAA,UAAA;GAAoDD,OAAAA;GACjD1B;EACH,CAAA;EAA8CE,EAAA,KAAAF;EAAAE,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,OAF9CyB;AAE8C;AA1CsB,SAAAX,MAAAY,GAAAC,GAAA;CAAA,OAS7CA,EAAC,KAAMD,EAAC;AAAG;AATkC,SAAAV,OAAAjB,IAAA;CAUjC,MAAA,CAAAV,UAAAU;CAAQ,OAAKV;AAAM"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Primitive } from "../../utils/Primitive.js";
|
|
3
3
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
4
|
-
import {
|
|
4
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
5
|
+
import { forwardRef } from "@assistant-ui/tap/react-shim";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
6
7
|
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
7
8
|
//#region src/primitives/composer/ComposerQuote.tsx
|
|
@@ -18,11 +19,19 @@ import { composeEventHandlers } from "@radix-ui/primitive";
|
|
|
18
19
|
* ```
|
|
19
20
|
*/
|
|
20
21
|
const ComposerPrimitiveQuote = forwardRef((props, forwardedRef) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const $ = c(3);
|
|
23
|
+
if (!useAuiState(_temp)) return null;
|
|
24
|
+
let t0;
|
|
25
|
+
if ($[0] !== forwardedRef || $[1] !== props) {
|
|
26
|
+
t0 = /* @__PURE__ */ jsx(Primitive.div, {
|
|
27
|
+
...props,
|
|
28
|
+
ref: forwardedRef
|
|
29
|
+
});
|
|
30
|
+
$[0] = forwardedRef;
|
|
31
|
+
$[1] = props;
|
|
32
|
+
$[2] = t0;
|
|
33
|
+
} else t0 = $[2];
|
|
34
|
+
return t0;
|
|
26
35
|
});
|
|
27
36
|
ComposerPrimitiveQuote.displayName = "ComposerPrimitive.Quote";
|
|
28
37
|
/**
|
|
@@ -33,14 +42,35 @@ ComposerPrimitiveQuote.displayName = "ComposerPrimitive.Quote";
|
|
|
33
42
|
* <ComposerPrimitive.QuoteText />
|
|
34
43
|
* ```
|
|
35
44
|
*/
|
|
36
|
-
const ComposerPrimitiveQuoteText = forwardRef((
|
|
37
|
-
const
|
|
45
|
+
const ComposerPrimitiveQuoteText = forwardRef((t0, forwardedRef) => {
|
|
46
|
+
const $ = c(7);
|
|
47
|
+
let children;
|
|
48
|
+
let props;
|
|
49
|
+
if ($[0] !== t0) {
|
|
50
|
+
({children, ...props} = t0);
|
|
51
|
+
$[0] = t0;
|
|
52
|
+
$[1] = children;
|
|
53
|
+
$[2] = props;
|
|
54
|
+
} else {
|
|
55
|
+
children = $[1];
|
|
56
|
+
props = $[2];
|
|
57
|
+
}
|
|
58
|
+
const text = useAuiState(_temp2);
|
|
38
59
|
if (!text) return null;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
60
|
+
const t1 = children ?? text;
|
|
61
|
+
let t2;
|
|
62
|
+
if ($[3] !== forwardedRef || $[4] !== props || $[5] !== t1) {
|
|
63
|
+
t2 = /* @__PURE__ */ jsx(Primitive.span, {
|
|
64
|
+
...props,
|
|
65
|
+
ref: forwardedRef,
|
|
66
|
+
children: t1
|
|
67
|
+
});
|
|
68
|
+
$[3] = forwardedRef;
|
|
69
|
+
$[4] = props;
|
|
70
|
+
$[5] = t1;
|
|
71
|
+
$[6] = t2;
|
|
72
|
+
} else t2 = $[6];
|
|
73
|
+
return t2;
|
|
44
74
|
});
|
|
45
75
|
ComposerPrimitiveQuoteText.displayName = "ComposerPrimitive.QuoteText";
|
|
46
76
|
/**
|
|
@@ -51,19 +81,58 @@ ComposerPrimitiveQuoteText.displayName = "ComposerPrimitive.QuoteText";
|
|
|
51
81
|
* <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss>
|
|
52
82
|
* ```
|
|
53
83
|
*/
|
|
54
|
-
const ComposerPrimitiveQuoteDismiss = forwardRef((
|
|
84
|
+
const ComposerPrimitiveQuoteDismiss = forwardRef((t0, forwardedRef) => {
|
|
85
|
+
const $ = c(12);
|
|
86
|
+
let onClick;
|
|
87
|
+
let props;
|
|
88
|
+
if ($[0] !== t0) {
|
|
89
|
+
({onClick, ...props} = t0);
|
|
90
|
+
$[0] = t0;
|
|
91
|
+
$[1] = onClick;
|
|
92
|
+
$[2] = props;
|
|
93
|
+
} else {
|
|
94
|
+
onClick = $[1];
|
|
95
|
+
props = $[2];
|
|
96
|
+
}
|
|
55
97
|
const aui = useAui();
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
98
|
+
let t1;
|
|
99
|
+
if ($[3] !== aui) {
|
|
100
|
+
t1 = () => {
|
|
101
|
+
aui.composer().setQuote(void 0);
|
|
102
|
+
};
|
|
103
|
+
$[3] = aui;
|
|
104
|
+
$[4] = t1;
|
|
105
|
+
} else t1 = $[4];
|
|
106
|
+
const handleDismiss = t1;
|
|
107
|
+
let t2;
|
|
108
|
+
if ($[5] !== handleDismiss || $[6] !== onClick) {
|
|
109
|
+
t2 = composeEventHandlers(onClick, handleDismiss);
|
|
110
|
+
$[5] = handleDismiss;
|
|
111
|
+
$[6] = onClick;
|
|
112
|
+
$[7] = t2;
|
|
113
|
+
} else t2 = $[7];
|
|
114
|
+
let t3;
|
|
115
|
+
if ($[8] !== forwardedRef || $[9] !== props || $[10] !== t2) {
|
|
116
|
+
t3 = /* @__PURE__ */ jsx(Primitive.button, {
|
|
117
|
+
type: "button",
|
|
118
|
+
...props,
|
|
119
|
+
ref: forwardedRef,
|
|
120
|
+
onClick: t2
|
|
121
|
+
});
|
|
122
|
+
$[8] = forwardedRef;
|
|
123
|
+
$[9] = props;
|
|
124
|
+
$[10] = t2;
|
|
125
|
+
$[11] = t3;
|
|
126
|
+
} else t3 = $[11];
|
|
127
|
+
return t3;
|
|
65
128
|
});
|
|
66
129
|
ComposerPrimitiveQuoteDismiss.displayName = "ComposerPrimitive.QuoteDismiss";
|
|
130
|
+
function _temp(s) {
|
|
131
|
+
return s.composer.quote;
|
|
132
|
+
}
|
|
133
|
+
function _temp2(s) {
|
|
134
|
+
return s.composer.quote?.text;
|
|
135
|
+
}
|
|
67
136
|
//#endregion
|
|
68
137
|
export { ComposerPrimitiveQuote, ComposerPrimitiveQuoteDismiss, ComposerPrimitiveQuoteText };
|
|
69
138
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerQuote.js","names":[],"sources":["../../../src/primitives/composer/ComposerQuote.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// ---- Root ----\n\nexport namespace ComposerPrimitiveQuote {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * Renders a container for the quoted text preview in the composer.\n * Only renders when a quote is set.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Quote>\n * <ComposerPrimitive.QuoteText />\n * <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss>\n * </ComposerPrimitive.Quote>\n * ```\n */\nexport const ComposerPrimitiveQuote = forwardRef<\n ComposerPrimitiveQuote.Element,\n ComposerPrimitiveQuote.Props\n>((props, forwardedRef) => {\n const quote = useAuiState((s) => s.composer.quote);\n if (!quote) return null;\n\n return <Primitive.div {...props} ref={forwardedRef} />;\n});\n\nComposerPrimitiveQuote.displayName = \"ComposerPrimitive.Quote\";\n\n// ---- QuoteText ----\n\nexport namespace ComposerPrimitiveQuoteText {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the quoted text content.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.QuoteText />\n * ```\n */\nexport const ComposerPrimitiveQuoteText = forwardRef<\n ComposerPrimitiveQuoteText.Element,\n ComposerPrimitiveQuoteText.Props\n>(({ children, ...props }, forwardedRef) => {\n const text = useAuiState((s) => s.composer.quote?.text);\n if (!text) return null;\n\n return (\n <Primitive.span {...props} ref={forwardedRef}>\n {children ?? text}\n </Primitive.span>\n );\n});\n\nComposerPrimitiveQuoteText.displayName = \"ComposerPrimitive.QuoteText\";\n\n// ---- QuoteDismiss ----\n\nexport namespace ComposerPrimitiveQuoteDismiss {\n export type Element = ComponentRef<typeof Primitive.button>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.button>;\n}\n\n/**\n * A button that clears the current quote from the composer.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss>\n * ```\n */\nexport const ComposerPrimitiveQuoteDismiss = forwardRef<\n ComposerPrimitiveQuoteDismiss.Element,\n ComposerPrimitiveQuoteDismiss.Props\n>(({ onClick, ...props }, forwardedRef) => {\n const aui = useAui();\n const handleDismiss = useCallback(() => {\n aui.composer().setQuote(undefined);\n }, [aui]);\n\n return (\n <Primitive.button\n type=\"button\"\n {...props}\n ref={forwardedRef}\n onClick={composeEventHandlers(onClick, handleDismiss)}\n />\n );\n});\n\nComposerPrimitiveQuoteDismiss.displayName = \"ComposerPrimitive.QuoteDismiss\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComposerQuote.js","names":["c","_c","Primitive","ComponentRef","ComponentPropsWithoutRef","forwardRef","useCallback","useAui","useAuiState","composeEventHandlers","ComposerPrimitiveQuote","Element","div","Props","props","forwardedRef","$","quote","_temp","t0","displayName","ComposerPrimitiveQuoteText","span","children","text","_temp2","t1","t2","ComposerPrimitiveQuoteDismiss","button","onClick","aui","composer","setQuote","undefined","handleDismiss","t3","s"],"sources":["../../../src/primitives/composer/ComposerQuote.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// ---- Root ----\n\nexport namespace ComposerPrimitiveQuote {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * Renders a container for the quoted text preview in the composer.\n * Only renders when a quote is set.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Quote>\n * <ComposerPrimitive.QuoteText />\n * <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss>\n * </ComposerPrimitive.Quote>\n * ```\n */\nexport const ComposerPrimitiveQuote = forwardRef<\n ComposerPrimitiveQuote.Element,\n ComposerPrimitiveQuote.Props\n>((props, forwardedRef) => {\n const quote = useAuiState((s) => s.composer.quote);\n if (!quote) return null;\n\n return <Primitive.div {...props} ref={forwardedRef} />;\n});\n\nComposerPrimitiveQuote.displayName = \"ComposerPrimitive.Quote\";\n\n// ---- QuoteText ----\n\nexport namespace ComposerPrimitiveQuoteText {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the quoted text content.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.QuoteText />\n * ```\n */\nexport const ComposerPrimitiveQuoteText = forwardRef<\n ComposerPrimitiveQuoteText.Element,\n ComposerPrimitiveQuoteText.Props\n>(({ children, ...props }, forwardedRef) => {\n const text = useAuiState((s) => s.composer.quote?.text);\n if (!text) return null;\n\n return (\n <Primitive.span {...props} ref={forwardedRef}>\n {children ?? text}\n </Primitive.span>\n );\n});\n\nComposerPrimitiveQuoteText.displayName = \"ComposerPrimitive.QuoteText\";\n\n// ---- QuoteDismiss ----\n\nexport namespace ComposerPrimitiveQuoteDismiss {\n export type Element = ComponentRef<typeof Primitive.button>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.button>;\n}\n\n/**\n * A button that clears the current quote from the composer.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss>\n * ```\n */\nexport const ComposerPrimitiveQuoteDismiss = forwardRef<\n ComposerPrimitiveQuoteDismiss.Element,\n ComposerPrimitiveQuoteDismiss.Props\n>(({ onClick, ...props }, forwardedRef) => {\n const aui = useAui();\n const handleDismiss = useCallback(() => {\n aui.composer().setQuote(undefined);\n }, [aui]);\n\n return (\n <Primitive.button\n type=\"button\"\n {...props}\n ref={forwardedRef}\n onClick={composeEventHandlers(onClick, handleDismiss)}\n />\n );\n});\n\nComposerPrimitiveQuoteDismiss.displayName = \"ComposerPrimitive.QuoteDismiss\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA+BA,MAAaU,yBAAyBL,YAGpCS,OAAAC,iBAAA;CAAA,MAAAC,IAAAf,EAAA,CAAA;CAEA,IAAI,CADUO,YAAYU,KACrBD,GAAK,OAAS;CAAK,IAAAE;CAAA,IAAAH,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,OAAA;EAEjBK,KAAA,oBAAA,UAAA,KAAA;GAAA,GAAmBL;GAAYC,KAAAA;EAAY,CAAA;EAAIC,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAA/CG;AAA+C,CACvD;AAEDT,uBAAuBU,cAAc;;;;;;;;;AAiBrC,MAAaC,6BAA6BhB,YAGxCc,IAAAJ,iBAAA;CAAA,MAAAC,IAAAf,EAAA,CAAA;CAAA,IAAAsB;CAAA,IAAAT;CAAA,IAAAE,EAAA,OAAAG,IAAA;EAAC,CAAA,CAAAI,aAAAT,SAAAK;EAAsBH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAF;CAAA,OAAA;EAAAS,WAAAP,EAAA;EAAAF,QAAAE,EAAA;CAAA;CACvB,MAAAQ,OAAahB,YAAYiB,MAA6B;CACtD,IAAI,CAACD,MAAI,OAAS;CAIb,MAAAE,KAAAH,YAAAC;CAAgB,IAAAG;CAAA,IAAAX,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,SAAAE,EAAA,OAAAU,IAAA;EADnBC,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBb;GAAYC,KAAAA;aAC7BW;EACH,CAAA;EAAiBV,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,KAAAU;EAAAV,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,OAFjBW;AAEiB,CAEpB;AAEDN,2BAA2BD,cAAc;;;;;;;;;AAiBzC,MAAaQ,gCAAgCvB,YAG3Cc,IAAAJ,iBAAA;CAAA,MAAAC,IAAAf,EAAA,EAAA;CAAA,IAAA6B;CAAA,IAAAhB;CAAA,IAAAE,EAAA,OAAAG,IAAA;EAAC,CAAA,CAAAW,YAAAhB,SAAAK;EAAqBH,EAAA,KAAAG;EAAAH,EAAA,KAAAc;EAAAd,EAAA,KAAAF;CAAA,OAAA;EAAAgB,UAAAd,EAAA;EAAAF,QAAAE,EAAA;CAAA;CACtB,MAAAe,MAAYxB,OAAO;CAAE,IAAAmB;CAAA,IAAAV,EAAA,OAAAe,KAAA;EACaL,WAAA;GAChCK,IAAGC,SAAU,CAAC,CAAAC,SAAUC,KAAAA,CAAS;EAAC;EACnClB,EAAA,KAAAe;EAAAf,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAFD,MAAAmB,gBAAsBT;CAEZ,IAAAC;CAAA,IAAAX,EAAA,OAAAmB,iBAAAnB,EAAA,OAAAc,SAAA;EAOGH,KAAAlB,qBAAqBqB,SAASK,aAAa;EAACnB,EAAA,KAAAmB;EAAAnB,EAAA,KAAAc;EAAAd,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAoB;CAAA,IAAApB,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,SAAAE,EAAA,QAAAW,IAAA;EAJvDS,KAAA,oBAAA,UAAA,QAAA;GACO,MAAA;GAAQ,GACTtB;GACCC,KAAAA;GACI,SAAAY;EAA4C,CAAA;EACrDX,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,MAAAW;EAAAX,EAAA,MAAAoB;CAAA,OAAAA,KAAApB,EAAA;CAAA,OALFoB;AAKE,CAEL;AAEDR,8BAA8BR,cAAc;AA1E1C,SAAAF,MAAAmB,GAAA;CAAA,OACiCA,EAACL,SAASf;AAAM;AA0BjD,SAAAQ,OAAAY,GAAA;CAAA,OACgCA,EAACL,SAASf,OAAYO;AAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Primitive } from "../../utils/Primitive.js";
|
|
3
3
|
import { useComposerSend } from "./ComposerSend.js";
|
|
4
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
4
5
|
import { forwardRef } from "@assistant-ui/tap/react-shim";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
6
7
|
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
@@ -20,18 +21,51 @@ import { composeEventHandlers } from "@radix-ui/primitive";
|
|
|
20
21
|
* </ComposerPrimitive.Root>
|
|
21
22
|
* ```
|
|
22
23
|
*/
|
|
23
|
-
const ComposerPrimitiveRoot = forwardRef((
|
|
24
|
+
const ComposerPrimitiveRoot = forwardRef((t0, forwardedRef) => {
|
|
25
|
+
const $ = c(12);
|
|
26
|
+
let onSubmit;
|
|
27
|
+
let rest;
|
|
28
|
+
if ($[0] !== t0) {
|
|
29
|
+
({onSubmit, ...rest} = t0);
|
|
30
|
+
$[0] = t0;
|
|
31
|
+
$[1] = onSubmit;
|
|
32
|
+
$[2] = rest;
|
|
33
|
+
} else {
|
|
34
|
+
onSubmit = $[1];
|
|
35
|
+
rest = $[2];
|
|
36
|
+
}
|
|
24
37
|
const send = useComposerSend();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
38
|
+
let t1;
|
|
39
|
+
if ($[3] !== send) {
|
|
40
|
+
t1 = (e) => {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
if (!send) return;
|
|
43
|
+
send();
|
|
44
|
+
};
|
|
45
|
+
$[3] = send;
|
|
46
|
+
$[4] = t1;
|
|
47
|
+
} else t1 = $[4];
|
|
48
|
+
const handleSubmit = t1;
|
|
49
|
+
let t2;
|
|
50
|
+
if ($[5] !== handleSubmit || $[6] !== onSubmit) {
|
|
51
|
+
t2 = composeEventHandlers(onSubmit, handleSubmit);
|
|
52
|
+
$[5] = handleSubmit;
|
|
53
|
+
$[6] = onSubmit;
|
|
54
|
+
$[7] = t2;
|
|
55
|
+
} else t2 = $[7];
|
|
56
|
+
let t3;
|
|
57
|
+
if ($[8] !== forwardedRef || $[9] !== rest || $[10] !== t2) {
|
|
58
|
+
t3 = /* @__PURE__ */ jsx(Primitive.form, {
|
|
59
|
+
...rest,
|
|
60
|
+
ref: forwardedRef,
|
|
61
|
+
onSubmit: t2
|
|
62
|
+
});
|
|
63
|
+
$[8] = forwardedRef;
|
|
64
|
+
$[9] = rest;
|
|
65
|
+
$[10] = t2;
|
|
66
|
+
$[11] = t3;
|
|
67
|
+
} else t3 = $[11];
|
|
68
|
+
return t3;
|
|
35
69
|
});
|
|
36
70
|
ComposerPrimitiveRoot.displayName = "ComposerPrimitive.Root";
|
|
37
71
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerRoot.js","names":[],"sources":["../../../src/primitives/composer/ComposerRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n type FormEvent,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useComposerSend } from \"./ComposerSend\";\n\nexport namespace ComposerPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.form>;\n /**\n * Props for the ComposerPrimitive.Root component.\n * Accepts all standard form element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.form>;\n}\n\n/**\n * The root form container for message composition.\n *\n * This component provides a form wrapper that handles message submission when the form\n * is submitted (e.g., via Enter key or submit button). It automatically prevents the\n * default form submission and triggers the composer's send functionality.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Root>\n * <ComposerPrimitive.Input placeholder=\"Type your message...\" />\n * <ComposerPrimitive.Send>Send</ComposerPrimitive.Send>\n * </ComposerPrimitive.Root>\n * ```\n */\nexport const ComposerPrimitiveRoot = forwardRef<\n ComposerPrimitiveRoot.Element,\n ComposerPrimitiveRoot.Props\n>(({ onSubmit, ...rest }, forwardedRef) => {\n const send = useComposerSend();\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n\n if (!send) return;\n send();\n };\n\n return (\n <Primitive.form\n {...rest}\n ref={forwardedRef}\n onSubmit={composeEventHandlers(onSubmit, handleSubmit)}\n />\n );\n});\n\nComposerPrimitiveRoot.displayName = \"ComposerPrimitive.Root\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComposerRoot.js","names":["c","_c","composeEventHandlers","Primitive","ComponentRef","FormEvent","forwardRef","ComponentPropsWithoutRef","useComposerSend","ComposerPrimitiveRoot","Element","form","Props","t0","forwardedRef","$","onSubmit","rest","send","t1","e","preventDefault","handleSubmit","t2","t3","displayName"],"sources":["../../../src/primitives/composer/ComposerRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n type FormEvent,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useComposerSend } from \"./ComposerSend\";\n\nexport namespace ComposerPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.form>;\n /**\n * Props for the ComposerPrimitive.Root component.\n * Accepts all standard form element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.form>;\n}\n\n/**\n * The root form container for message composition.\n *\n * This component provides a form wrapper that handles message submission when the form\n * is submitted (e.g., via Enter key or submit button). It automatically prevents the\n * default form submission and triggers the composer's send functionality.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Root>\n * <ComposerPrimitive.Input placeholder=\"Type your message...\" />\n * <ComposerPrimitive.Send>Send</ComposerPrimitive.Send>\n * </ComposerPrimitive.Root>\n * ```\n */\nexport const ComposerPrimitiveRoot = forwardRef<\n ComposerPrimitiveRoot.Element,\n ComposerPrimitiveRoot.Props\n>(({ onSubmit, ...rest }, forwardedRef) => {\n const send = useComposerSend();\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n\n if (!send) return;\n send();\n };\n\n return (\n <Primitive.form\n {...rest}\n ref={forwardedRef}\n onSubmit={composeEventHandlers(onSubmit, handleSubmit)}\n />\n );\n});\n\nComposerPrimitiveRoot.displayName = \"ComposerPrimitive.Root\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAaS,wBAAwBH,YAGnCO,IAAAC,iBAAA;CAAA,MAAAC,IAAAd,EAAA,EAAA;CAAA,IAAAe;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAF,IAAA;EAAC,CAAA,CAAAG,aAAAC,QAAAJ;EAAqBE,EAAA,KAAAF;EAAAE,EAAA,KAAAC;EAAAD,EAAA,KAAAE;CAAA,OAAA;EAAAD,WAAAD,EAAA;EAAAE,OAAAF,EAAA;CAAA;CACtB,MAAAG,OAAaV,gBAAgB;CAAE,IAAAW;CAAA,IAAAJ,EAAA,OAAAG,MAAA;EAEVC,MAAAC,MAAA;GACnBA,EAACC,eAAgB;GAEjB,IAAI,CAACH,MAAI;GACTA,KAAK;EAAC;EACPH,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CALD,MAAAO,eAAqBH;CAKnB,IAAAI;CAAA,IAAAR,EAAA,OAAAO,gBAAAP,EAAA,OAAAC,UAAA;EAMYO,KAAArB,qBAAqBc,UAAUM,YAAY;EAACP,EAAA,KAAAO;EAAAP,EAAA,KAAAC;EAAAD,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,OAAAD,gBAAAC,EAAA,OAAAE,QAAAF,EAAA,QAAAQ,IAAA;EAHxDC,KAAA,oBAAA,UAAA,MAAA;GAAA,GACMP;GACCH,KAAAA;GACK,UAAAS;EAA4C,CAAA;EACtDR,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAJFS;AAIE,CAEL;AAEDf,sBAAsBgB,cAAc"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { createActionButton } from "../../utils/createActionButton.js";
|
|
3
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
import { useComposerSend as useComposerSend$1 } from "@assistant-ui/core/react";
|
|
4
|
-
import { useCallback } from "@assistant-ui/tap/react-shim";
|
|
5
5
|
//#region src/primitives/composer/ComposerSend.ts
|
|
6
6
|
const useComposerSend = () => {
|
|
7
|
+
const $ = c(2);
|
|
7
8
|
const { disabled, send } = useComposerSend$1();
|
|
8
|
-
|
|
9
|
+
let t0;
|
|
10
|
+
if ($[0] !== send) {
|
|
11
|
+
t0 = () => send();
|
|
12
|
+
$[0] = send;
|
|
13
|
+
$[1] = t0;
|
|
14
|
+
} else t0 = $[1];
|
|
15
|
+
const callback = t0;
|
|
9
16
|
if (disabled) return null;
|
|
10
17
|
return callback;
|
|
11
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerSend.js","names":["useComposerSendBehavior"],"sources":["../../../src/primitives/composer/ComposerSend.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport {\n type ActionButtonElement,\n type ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useComposerSend as useComposerSendBehavior } from \"@assistant-ui/core/react\";\n\nexport const useComposerSend = () => {\n const { disabled, send } = useComposerSendBehavior();\n const callback = useCallback(() => send(), [send]);\n if (disabled) return null;\n return callback;\n};\n\nexport namespace ComposerPrimitiveSend {\n export type Element = ActionButtonElement;\n /**\n * Props for the ComposerPrimitive.Send component.\n * Inherits all button element props and action button functionality.\n */\n export type Props = ActionButtonProps<typeof useComposerSend>;\n}\n\n/**\n * A button component that sends the current message in the composer.\n *\n * This component automatically handles the send functionality and is disabled\n * when sending is not available (e.g., when the thread is running, the composer\n * is empty, or not in editing mode).\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Send>\n * Send Message\n * </ComposerPrimitive.Send>\n * ```\n */\nexport const ComposerPrimitiveSend = createActionButton(\n \"ComposerPrimitive.Send\",\n useComposerSend,\n);\n"],"mappings":";;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"ComposerSend.js","names":["c","_c","useCallback","ActionButtonElement","ActionButtonProps","createActionButton","useComposerSend","useComposerSendBehavior","$","disabled","send","t0","callback","ComposerPrimitiveSend","Element","Props"],"sources":["../../../src/primitives/composer/ComposerSend.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport {\n type ActionButtonElement,\n type ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useComposerSend as useComposerSendBehavior } from \"@assistant-ui/core/react\";\n\nexport const useComposerSend = () => {\n const { disabled, send } = useComposerSendBehavior();\n const callback = useCallback(() => send(), [send]);\n if (disabled) return null;\n return callback;\n};\n\nexport namespace ComposerPrimitiveSend {\n export type Element = ActionButtonElement;\n /**\n * Props for the ComposerPrimitive.Send component.\n * Inherits all button element props and action button functionality.\n */\n export type Props = ActionButtonProps<typeof useComposerSend>;\n}\n\n/**\n * A button component that sends the current message in the composer.\n *\n * This component automatically handles the send functionality and is disabled\n * when sending is not available (e.g., when the thread is running, the composer\n * is empty, or not in editing mode).\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.Send>\n * Send Message\n * </ComposerPrimitive.Send>\n * ```\n */\nexport const ComposerPrimitiveSend = createActionButton(\n \"ComposerPrimitive.Send\",\n useComposerSend,\n);\n"],"mappings":";;;;;AAUA,MAAaM,wBAAkB;CAAA,MAAAE,IAAAP,EAAA,CAAA;CAC7B,MAAA,EAAAQ,UAAAC,SAA2BH,kBAAwB;CAAE,IAAAI;CAAA,IAAAH,EAAA,OAAAE,MAAA;EACxBC,WAAMD,KAAK;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAzC,MAAAI,WAAiBD;CACjB,IAAIF,UAAQ,OAAS;CAAK,OACnBG;AAAQ;;;;;;;;;;;;;;;AA0BjB,MAAaC,wBAAwBR,mBACnC,0BACAC,eACF"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { createActionButton } from "../../utils/createActionButton.js";
|
|
3
3
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
4
|
-
import {
|
|
4
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
5
5
|
//#region src/primitives/composer/ComposerStopDictation.ts
|
|
6
6
|
const useComposerStopDictation = () => {
|
|
7
|
+
const $ = c(2);
|
|
7
8
|
const aui = useAui();
|
|
8
|
-
const isDictating = useAuiState(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const isDictating = useAuiState(_temp);
|
|
10
|
+
let t0;
|
|
11
|
+
if ($[0] !== aui) {
|
|
12
|
+
t0 = () => {
|
|
13
|
+
aui.composer().stopDictation();
|
|
14
|
+
};
|
|
15
|
+
$[0] = aui;
|
|
16
|
+
$[1] = t0;
|
|
17
|
+
} else t0 = $[1];
|
|
18
|
+
const callback = t0;
|
|
12
19
|
if (!isDictating) return null;
|
|
13
20
|
return callback;
|
|
14
21
|
};
|
|
@@ -25,6 +32,9 @@ const useComposerStopDictation = () => {
|
|
|
25
32
|
* ```
|
|
26
33
|
*/
|
|
27
34
|
const ComposerPrimitiveStopDictation = createActionButton("ComposerPrimitive.StopDictation", useComposerStopDictation);
|
|
35
|
+
function _temp(s) {
|
|
36
|
+
return s.composer.dictation != null;
|
|
37
|
+
}
|
|
28
38
|
//#endregion
|
|
29
39
|
export { ComposerPrimitiveStopDictation };
|
|
30
40
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerStopDictation.js","names":[],"sources":["../../../src/primitives/composer/ComposerStopDictation.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n ActionButtonElement,\n ActionButtonProps,\n} from \"../../utils/createActionButton\";\nimport { createActionButton } from \"../../utils/createActionButton\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nconst useComposerStopDictation = () => {\n const aui = useAui();\n const isDictating = useAuiState((s) => s.composer.dictation != null);\n\n const callback = useCallback(() => {\n aui.composer().stopDictation();\n }, [aui]);\n\n if (!isDictating) return null;\n return callback;\n};\n\nexport namespace ComposerPrimitiveStopDictation {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useComposerStopDictation>;\n}\n\n/**\n * A button that stops the current dictation session.\n *\n * Only rendered when dictation is active.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.StopDictation>\n * <StopIcon />\n * </ComposerPrimitive.StopDictation>\n * ```\n */\nexport const ComposerPrimitiveStopDictation = createActionButton(\n \"ComposerPrimitive.StopDictation\",\n useComposerStopDictation,\n);\n"],"mappings":";;;;;AAWA,
|
|
1
|
+
{"version":3,"file":"ComposerStopDictation.js","names":["c","_c","useCallback","useAui","ActionButtonElement","ActionButtonProps","createActionButton","useAuiState","useComposerStopDictation","$","aui","isDictating","_temp","t0","composer","stopDictation","callback","ComposerPrimitiveStopDictation","Element","Props","s","dictation"],"sources":["../../../src/primitives/composer/ComposerStopDictation.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n ActionButtonElement,\n ActionButtonProps,\n} from \"../../utils/createActionButton\";\nimport { createActionButton } from \"../../utils/createActionButton\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nconst useComposerStopDictation = () => {\n const aui = useAui();\n const isDictating = useAuiState((s) => s.composer.dictation != null);\n\n const callback = useCallback(() => {\n aui.composer().stopDictation();\n }, [aui]);\n\n if (!isDictating) return null;\n return callback;\n};\n\nexport namespace ComposerPrimitiveStopDictation {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useComposerStopDictation>;\n}\n\n/**\n * A button that stops the current dictation session.\n *\n * Only rendered when dictation is active.\n *\n * @example\n * ```tsx\n * <ComposerPrimitive.StopDictation>\n * <StopIcon />\n * </ComposerPrimitive.StopDictation>\n * ```\n */\nexport const ComposerPrimitiveStopDictation = createActionButton(\n \"ComposerPrimitive.StopDictation\",\n useComposerStopDictation,\n);\n"],"mappings":";;;;;AAWA,MAAMQ,iCAA2B;CAAA,MAAAC,IAAAR,EAAA,CAAA;CAC/B,MAAAS,MAAYP,OAAO;CACnB,MAAAQ,cAAoBJ,YAAYK,KAAmC;CAAE,IAAAC;CAAA,IAAAJ,EAAA,OAAAC,KAAA;EAExCG,WAAA;GAC3BH,IAAGI,SAAU,CAAC,CAAAC,cAAe;EAAC;EAC/BN,EAAA,KAAAC;EAAAD,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAFD,MAAAO,WAAiBH;CAIjB,IAAI,CAACF,aAAW,OAAS;CAAK,OACvBK;AAAQ;;;;;;;;;;;;;AAoBjB,MAAaC,iCAAiCX,mBAC5C,mCACAE,wBACF;AAhCiC,SAAAI,MAAAQ,GAAA;CAAA,OAEQA,EAACN,SAASO,aAAc;AAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerPopover.d.ts","names":[],"sources":["../../../../src/primitives/composer/trigger/TriggerPopover.tsx"],"mappings":";;;;;;;
|
|
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"}
|