@athenaintel/react 0.43.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +258 -8
- package/dist/agent-runtime/src/answer-label.cjs +137 -0
- package/dist/agent-runtime/src/answer-label.cjs.map +1 -0
- package/dist/agent-runtime/src/answer-label.d.ts +104 -0
- package/dist/agent-runtime/src/answer-label.js +137 -0
- package/dist/agent-runtime/src/answer-label.js.map +1 -0
- package/dist/agent-runtime/src/answer-rows.cjs +180 -0
- package/dist/agent-runtime/src/answer-rows.cjs.map +1 -0
- package/dist/agent-runtime/src/answer-rows.d.ts +86 -0
- package/dist/agent-runtime/src/answer-rows.js +180 -0
- package/dist/agent-runtime/src/answer-rows.js.map +1 -0
- package/dist/agent-runtime/src/call-recap.cjs +319 -0
- package/dist/agent-runtime/src/call-recap.cjs.map +1 -0
- package/dist/agent-runtime/src/call-recap.d.ts +142 -0
- package/dist/agent-runtime/src/call-recap.js +319 -0
- package/dist/agent-runtime/src/call-recap.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-store.cjs +1 -0
- package/dist/agent-runtime/src/chat-outbox-store.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-store.d.ts +7 -0
- package/dist/agent-runtime/src/chat-outbox-store.js +1 -0
- package/dist/agent-runtime/src/chat-outbox-store.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox.cjs +46 -5
- package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox.d.ts +29 -0
- package/dist/agent-runtime/src/chat-outbox.js +46 -5
- package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/client-tool-bridge.cjs +15 -15
- package/dist/agent-runtime/src/client-tool-bridge.cjs.map +1 -1
- package/dist/agent-runtime/src/conversation-index.cjs +8 -8
- package/dist/agent-runtime/src/conversation-index.cjs.map +1 -1
- package/dist/agent-runtime/src/conversation-index.d.ts +7 -0
- package/dist/agent-runtime/src/conversation-index.js.map +1 -1
- package/dist/agent-runtime/src/conversation-list.cjs +2 -1
- package/dist/agent-runtime/src/conversation-list.cjs.map +1 -1
- package/dist/agent-runtime/src/conversation-list.d.ts +19 -3
- package/dist/agent-runtime/src/conversation-list.js +2 -1
- package/dist/agent-runtime/src/conversation-list.js.map +1 -1
- package/dist/agent-runtime/src/decision-checks.cjs +207 -0
- package/dist/agent-runtime/src/decision-checks.cjs.map +1 -0
- package/dist/agent-runtime/src/decision-checks.d.ts +142 -0
- package/dist/agent-runtime/src/decision-checks.js +207 -0
- package/dist/agent-runtime/src/decision-checks.js.map +1 -0
- package/dist/agent-runtime/src/desktop-handoff.d.ts +12 -0
- package/dist/agent-runtime/src/errors.cjs +18 -0
- package/dist/agent-runtime/src/errors.cjs.map +1 -1
- package/dist/agent-runtime/src/errors.d.ts +7 -0
- package/dist/agent-runtime/src/errors.js +18 -0
- package/dist/agent-runtime/src/errors.js.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs +12 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +6 -6
- package/dist/agent-runtime/src/generated/runconfig-contract.js +12 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
- package/dist/agent-runtime/src/handoff-arrival.cjs +60 -0
- package/dist/agent-runtime/src/handoff-arrival.cjs.map +1 -0
- package/dist/agent-runtime/src/handoff-arrival.d.ts +46 -0
- package/dist/agent-runtime/src/handoff-arrival.js +60 -0
- package/dist/agent-runtime/src/handoff-arrival.js.map +1 -0
- package/dist/agent-runtime/src/index.d.ts +16 -9
- package/dist/agent-runtime/src/interrupts.cjs +71 -19
- package/dist/agent-runtime/src/interrupts.cjs.map +1 -1
- package/dist/agent-runtime/src/interrupts.d.ts +40 -3
- package/dist/agent-runtime/src/interrupts.js +56 -4
- package/dist/agent-runtime/src/interrupts.js.map +1 -1
- package/dist/agent-runtime/src/lane-history.cjs +8 -8
- package/dist/agent-runtime/src/lane-history.cjs.map +1 -1
- package/dist/agent-runtime/src/messages.cjs +43 -8
- package/dist/agent-runtime/src/messages.cjs.map +1 -1
- package/dist/agent-runtime/src/messages.d.ts +25 -3
- package/dist/agent-runtime/src/messages.js +43 -8
- package/dist/agent-runtime/src/messages.js.map +1 -1
- package/dist/agent-runtime/src/model-context.cjs +3 -2
- package/dist/agent-runtime/src/model-context.cjs.map +1 -1
- package/dist/agent-runtime/src/model-context.d.ts +6 -1
- package/dist/agent-runtime/src/model-context.js +3 -2
- package/dist/agent-runtime/src/model-context.js.map +1 -1
- package/dist/agent-runtime/src/offline-status.cjs +36 -0
- package/dist/agent-runtime/src/offline-status.cjs.map +1 -0
- package/dist/agent-runtime/src/offline-status.d.ts +118 -3
- package/dist/agent-runtime/src/offline-status.js +36 -0
- package/dist/agent-runtime/src/offline-status.js.map +1 -0
- package/dist/agent-runtime/src/queue.cjs +0 -9
- package/dist/agent-runtime/src/queue.cjs.map +1 -1
- package/dist/agent-runtime/src/queue.js +0 -9
- package/dist/agent-runtime/src/queue.js.map +1 -1
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +9 -9
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
- package/dist/agent-runtime/src/runtime-catalog.cjs +42 -0
- package/dist/agent-runtime/src/runtime-catalog.cjs.map +1 -0
- package/dist/agent-runtime/src/runtime-catalog.d.ts +35 -0
- package/dist/agent-runtime/src/runtime-catalog.js +42 -0
- package/dist/agent-runtime/src/runtime-catalog.js.map +1 -0
- package/dist/agent-runtime/src/runtime-messages.cjs.map +1 -1
- package/dist/agent-runtime/src/runtime-messages.d.ts +1 -1
- package/dist/agent-runtime/src/runtime-messages.js.map +1 -1
- package/dist/agent-runtime/src/runtime.d.ts +41 -0
- package/dist/agent-runtime/src/send-recovery.cjs +37 -3
- package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
- package/dist/agent-runtime/src/send-recovery.d.ts +19 -0
- package/dist/agent-runtime/src/send-recovery.js +37 -3
- package/dist/agent-runtime/src/send-recovery.js.map +1 -1
- package/dist/agent-runtime/src/statewire-suspended.cjs +3 -3
- package/dist/agent-runtime/src/statewire-suspended.cjs.map +1 -1
- package/dist/agent-runtime/src/subagents.cjs +32 -2
- package/dist/agent-runtime/src/subagents.cjs.map +1 -1
- package/dist/agent-runtime/src/subagents.d.ts +9 -0
- package/dist/agent-runtime/src/subagents.js +30 -0
- package/dist/agent-runtime/src/subagents.js.map +1 -1
- package/dist/agent-runtime/src/thread-driver.cjs +67 -0
- package/dist/agent-runtime/src/thread-driver.cjs.map +1 -0
- package/dist/agent-runtime/src/thread-driver.d.ts +49 -0
- package/dist/agent-runtime/src/thread-driver.js +67 -0
- package/dist/agent-runtime/src/thread-driver.js.map +1 -0
- package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +172 -0
- package/dist/agent-runtime/src/thread-handoff-protocol.d.ts +868 -0
- package/dist/agent-runtime/src/thread-handoff-qr.d.ts +11 -0
- package/dist/agent-runtime/src/thread-handoff.d.ts +3 -364
- package/dist/agent-runtime/src/thread-status.cjs +3 -3
- package/dist/agent-runtime/src/thread-status.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.cjs +210 -25
- package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.d.ts +12 -0
- package/dist/agent-runtime/src/tool-metadata.js +210 -25
- package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
- package/dist/agent-runtime/src/tool-names.cjs +2 -0
- package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-names.d.ts +2 -0
- package/dist/agent-runtime/src/tool-names.js +2 -0
- package/dist/agent-runtime/src/tool-names.js.map +1 -1
- package/dist/agent-runtime/src/types.d.ts +10 -2
- package/dist/agent-runtime/src/use-conversation-list.cjs +14 -13
- package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
- package/dist/agent-runtime/src/use-conversation-list.d.ts +6 -0
- package/dist/agent-runtime/src/use-conversation-list.js +3 -2
- package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +45 -20
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +10 -3
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +27 -2
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-config.cjs +14 -14
- package/dist/agent-runtime/src/use-deep-agent-config.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-edit-submit.cjs +6 -6
- package/dist/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +40 -22
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +17 -0
- package/dist/agent-runtime/src/use-deep-agent-runtime.js +24 -6
- package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs +45 -45
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs +588 -130
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +162 -10
- package/dist/agent-runtime/src/use-deep-agent-voice.js +529 -71
- package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-window-sync.cjs +26 -26
- package/dist/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -1
- package/dist/agent-runtime/src/use-historical-edit-attachments.cjs +4 -4
- package/dist/agent-runtime/src/use-historical-edit-attachments.cjs.map +1 -1
- package/dist/agent-runtime/src/use-thread-handoff-flow.d.ts +34 -26
- package/dist/agent-runtime/src/voice-earcon.cjs +139 -0
- package/dist/agent-runtime/src/voice-earcon.cjs.map +1 -0
- package/dist/agent-runtime/src/voice-earcon.d.ts +38 -0
- package/dist/agent-runtime/src/voice-earcon.js +139 -0
- package/dist/agent-runtime/src/voice-earcon.js.map +1 -0
- package/dist/agent-runtime/src/voice-media.cjs +117 -0
- package/dist/agent-runtime/src/voice-media.cjs.map +1 -0
- package/dist/agent-runtime/src/voice-media.d.ts +63 -0
- package/dist/agent-runtime/src/voice-media.js +117 -0
- package/dist/agent-runtime/src/voice-media.js.map +1 -0
- package/dist/agent-runtime/src/voice-presentation.cjs +2 -0
- package/dist/agent-runtime/src/voice-presentation.cjs.map +1 -1
- package/dist/agent-runtime/src/voice-presentation.js +2 -0
- package/dist/agent-runtime/src/voice-presentation.js.map +1 -1
- package/dist/agent-runtime/src/voice-wire-types.d.ts +32 -0
- package/dist/assets/AssetPanel.cjs +11 -11
- package/dist/assets/AssetPanel.cjs.map +1 -1
- package/dist/assets/AthenaAssetEmbed.cjs +11 -9
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
- package/dist/assets/AthenaAssetEmbed.d.ts +18 -5
- package/dist/assets/AthenaAssetEmbed.js +4 -2
- package/dist/assets/AthenaAssetEmbed.js.map +1 -1
- package/dist/assets/AthenaLayout.cjs +16 -16
- package/dist/assets/AthenaLayout.cjs.map +1 -1
- package/dist/assets/use-asset-content.cjs +4 -4
- package/dist/assets/use-asset-content.cjs.map +1 -1
- package/dist/assets/use-asset-embed.cjs +14 -7
- package/dist/assets/use-asset-embed.cjs.map +1 -1
- package/dist/assets/use-asset-embed.d.ts +23 -6
- package/dist/assets/use-asset-embed.js +10 -3
- package/dist/assets/use-asset-embed.js.map +1 -1
- package/dist/auth/AthenaAuthContext.cjs +3 -3
- package/dist/auth/AthenaAuthContext.cjs.map +1 -1
- package/dist/auth/AthenaAuthProvider.cjs +8 -8
- package/dist/auth/AthenaAuthProvider.cjs.map +1 -1
- package/dist/auth/AthenaCredentialSourceContext.cjs +5 -5
- package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
- package/dist/auth/AthenaSSOProvider.cjs +14 -14
- package/dist/auth/AthenaSSOProvider.cjs.map +1 -1
- package/dist/auth/credential-source.cjs +26 -13
- package/dist/auth/credential-source.cjs.map +1 -1
- package/dist/auth/credential-source.d.ts +8 -0
- package/dist/auth/credential-source.js +26 -13
- package/dist/auth/credential-source.js.map +1 -1
- package/dist/catalog/agent-model-options.cjs +25 -17
- package/dist/catalog/agent-model-options.cjs.map +1 -1
- package/dist/catalog/agent-model-options.d.ts +38 -5
- package/dist/catalog/agent-model-options.js +25 -17
- package/dist/catalog/agent-model-options.js.map +1 -1
- package/dist/catalog/channel-refusal.cjs +36 -0
- package/dist/catalog/channel-refusal.cjs.map +1 -0
- package/dist/catalog/channel-refusal.d.ts +29 -0
- package/dist/catalog/channel-refusal.js +36 -0
- package/dist/catalog/channel-refusal.js.map +1 -0
- package/dist/catalog/chat-pickers.cjs +60 -24
- package/dist/catalog/chat-pickers.cjs.map +1 -1
- package/dist/catalog/chat-pickers.d.ts +12 -2
- package/dist/catalog/chat-pickers.js +56 -20
- package/dist/catalog/chat-pickers.js.map +1 -1
- package/dist/catalog/runtime-catalog.cjs +89 -23
- package/dist/catalog/runtime-catalog.cjs.map +1 -1
- package/dist/catalog/runtime-catalog.d.ts +8 -2
- package/dist/catalog/runtime-catalog.js +83 -17
- package/dist/catalog/runtime-catalog.js.map +1 -1
- package/dist/catalog/use-athena-chat-mode.cjs +12 -12
- package/dist/catalog/use-athena-chat-mode.cjs.map +1 -1
- package/dist/chat/AthenaChat.cjs +155 -67
- package/dist/chat/AthenaChat.cjs.map +1 -1
- package/dist/chat/AthenaChat.d.ts +42 -2
- package/dist/chat/AthenaChat.js +106 -18
- package/dist/chat/AthenaChat.js.map +1 -1
- package/dist/chat/AthenaChatErrorBoundary.cjs +3 -3
- package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -1
- package/dist/chat/DrivingOnChip.cjs +23 -0
- package/dist/chat/DrivingOnChip.cjs.map +1 -0
- package/dist/chat/DrivingOnChip.d.ts +17 -0
- package/dist/chat/DrivingOnChip.js +23 -0
- package/dist/chat/DrivingOnChip.js.map +1 -0
- package/dist/chat/StatewireApprovalCard.cjs +166 -37
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
- package/dist/chat/StatewireApprovalCard.d.ts +91 -2
- package/dist/chat/StatewireApprovalCard.js +156 -27
- package/dist/chat/StatewireApprovalCard.js.map +1 -1
- package/dist/chat/StatewireClientToolBridge.cjs +2 -2
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.cjs +81 -69
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.d.ts +25 -13
- package/dist/chat/StatewireQueuedMessages.js +73 -61
- package/dist/chat/StatewireQueuedMessages.js.map +1 -1
- package/dist/chat/WaitingOnYouBanner.cjs +9 -5
- package/dist/chat/WaitingOnYouBanner.cjs.map +1 -1
- package/dist/chat/WaitingOnYouBanner.js +7 -3
- package/dist/chat/WaitingOnYouBanner.js.map +1 -1
- package/dist/chat/athena-chat-welcome.cjs +2 -2
- package/dist/chat/athena-chat-welcome.cjs.map +1 -1
- package/dist/chat/athena-citation-links.cjs +5 -5
- package/dist/chat/athena-citation-links.cjs.map +1 -1
- package/dist/chat/athena-composer-controls.cjs +26 -16
- package/dist/chat/athena-composer-controls.cjs.map +1 -1
- package/dist/chat/athena-composer-controls.d.ts +6 -0
- package/dist/chat/athena-composer-controls.js +26 -16
- package/dist/chat/athena-composer-controls.js.map +1 -1
- package/dist/chat/athena-turn-end-status.cjs +42 -0
- package/dist/chat/athena-turn-end-status.cjs.map +1 -0
- package/dist/chat/athena-turn-end-status.d.ts +24 -0
- package/dist/chat/athena-turn-end-status.js +42 -0
- package/dist/chat/athena-turn-end-status.js.map +1 -0
- package/dist/chat/browser-decision-check.cjs +131 -0
- package/dist/chat/browser-decision-check.cjs.map +1 -0
- package/dist/chat/browser-decision-check.d.ts +61 -0
- package/dist/chat/browser-decision-check.js +131 -0
- package/dist/chat/browser-decision-check.js.map +1 -0
- package/dist/chat/chat-outbox-rows.cjs +3 -3
- package/dist/chat/chat-outbox-rows.cjs.map +1 -1
- package/dist/chat/chat-voice-controls.cjs +96 -29
- package/dist/chat/chat-voice-controls.cjs.map +1 -1
- package/dist/chat/chat-voice-controls.d.ts +42 -3
- package/dist/chat/chat-voice-controls.js +92 -25
- package/dist/chat/chat-voice-controls.js.map +1 -1
- package/dist/chat/composer-keyboard-hint.cjs +5 -5
- package/dist/chat/composer-keyboard-hint.cjs.map +1 -1
- package/dist/chat/device-operation.cjs +29 -0
- package/dist/chat/device-operation.cjs.map +1 -0
- package/dist/chat/device-operation.d.ts +34 -0
- package/dist/chat/device-operation.js +29 -0
- package/dist/chat/device-operation.js.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs +14 -14
- package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -1
- package/dist/chat/super-grouping/GroupedMessageParts.cjs +4 -4
- package/dist/chat/super-grouping/GroupedMessageParts.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +52 -36
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +19 -4
- package/dist/chat/super-grouping/SuperGroupingCard.js +29 -13
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingTranscript.cjs +32 -32
- package/dist/chat/super-grouping/SuperGroupingTranscript.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingTranscript.js +3 -3
- package/dist/chat/super-grouping/SuperGroupingTranscript.js.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.cjs +73 -40
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.d.ts +10 -2
- package/dist/chat/super-grouping/ToolTimeline.js +69 -36
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
- package/dist/chat/super-grouping/activity-timeline.cjs +47 -12
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -1
- package/dist/chat/super-grouping/activity-timeline.d.ts +21 -0
- package/dist/chat/super-grouping/activity-timeline.js +47 -12
- package/dist/chat/super-grouping/activity-timeline.js.map +1 -1
- package/dist/chat/super-grouping/grouping-function.cjs +4 -0
- package/dist/chat/super-grouping/grouping-function.cjs.map +1 -1
- package/dist/chat/super-grouping/grouping-function.d.ts +7 -0
- package/dist/chat/super-grouping/grouping-function.js +5 -1
- package/dist/chat/super-grouping/grouping-function.js.map +1 -1
- package/dist/chat/super-grouping/index.cjs +6 -0
- package/dist/chat/super-grouping/index.cjs.map +1 -1
- package/dist/chat/super-grouping/index.d.ts +5 -2
- package/dist/chat/super-grouping/index.js +7 -1
- package/dist/chat/super-grouping/index.js.map +1 -1
- package/dist/chat/super-grouping/tool-part-placement.cjs +17 -0
- package/dist/chat/super-grouping/tool-part-placement.cjs.map +1 -0
- package/dist/chat/super-grouping/tool-part-placement.d.ts +22 -0
- package/dist/chat/super-grouping/tool-part-placement.js +17 -0
- package/dist/chat/super-grouping/tool-part-placement.js.map +1 -0
- package/dist/chat/thread-scroll-to-bottom.cjs +2 -2
- package/dist/chat/thread-scroll-to-bottom.cjs.map +1 -1
- package/dist/chat/thread-scroll-to-bottom.d.ts +10 -7
- package/dist/chat/thread-scroll-to-bottom.js +2 -2
- package/dist/chat/thread-scroll-to-bottom.js.map +1 -1
- package/dist/chat/tooltip-icon-button.cjs +2 -2
- package/dist/chat/tooltip-icon-button.cjs.map +1 -1
- package/dist/chat/use-athena-voice-live.cjs +11 -0
- package/dist/chat/use-athena-voice-live.cjs.map +1 -0
- package/dist/chat/use-athena-voice-live.d.ts +11 -0
- package/dist/chat/use-athena-voice-live.js +11 -0
- package/dist/chat/use-athena-voice-live.js.map +1 -0
- package/dist/chat/use-statewire-approval-request.cjs +56 -24
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -1
- package/dist/chat/use-statewire-approval-request.d.ts +33 -4
- package/dist/chat/use-statewire-approval-request.js +41 -9
- package/dist/chat/use-statewire-approval-request.js.map +1 -1
- package/dist/chat-ui/auth/sign-in-card.cjs +2 -2
- package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.cjs +138 -107
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.d.ts +20 -4
- package/dist/chat-ui/composer/tiptap-composer.js +85 -54
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
- package/dist/chat-ui/header/conversation-history-panel.cjs +49 -23
- package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -1
- package/dist/chat-ui/header/conversation-history-panel.d.ts +12 -1
- package/dist/chat-ui/header/conversation-history-panel.js +38 -12
- package/dist/chat-ui/header/conversation-history-panel.js.map +1 -1
- package/dist/chat-ui/index.cjs +21 -0
- package/dist/chat-ui/index.cjs.map +1 -1
- package/dist/chat-ui/index.d.ts +8 -1
- package/dist/chat-ui/index.js +21 -0
- package/dist/chat-ui/index.js.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs +4 -4
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +10 -9
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +3 -2
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +29 -6
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.d.ts +7 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js +25 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +3 -3
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +56 -2
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.d.ts +12 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +56 -2
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +24 -3
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +7 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +24 -3
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +35 -13
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +15 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +28 -6
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +9 -6
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.d.ts +3 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +5 -2
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -1
- package/dist/chat-ui/mentions/use-account-workspace-id.cjs +45 -10
- package/dist/chat-ui/mentions/use-account-workspace-id.cjs.map +1 -1
- package/dist/chat-ui/mentions/use-account-workspace-id.d.ts +24 -1
- package/dist/chat-ui/mentions/use-account-workspace-id.js +46 -11
- package/dist/chat-ui/mentions/use-account-workspace-id.js.map +1 -1
- package/dist/chat-ui/mentions/use-member-avatar.cjs +4 -4
- package/dist/chat-ui/mentions/use-member-avatar.cjs.map +1 -1
- package/dist/chat-ui/mentions/use-mention-asset.cjs +3 -3
- package/dist/chat-ui/mentions/use-mention-asset.cjs.map +1 -1
- package/dist/chat-ui/messages/answer-label.cjs +42 -0
- package/dist/chat-ui/messages/answer-label.cjs.map +1 -0
- package/dist/chat-ui/messages/answer-label.d.ts +33 -0
- package/dist/chat-ui/messages/answer-label.js +42 -0
- package/dist/chat-ui/messages/answer-label.js.map +1 -0
- package/dist/chat-ui/messages/arrival-animation.cjs +13 -0
- package/dist/chat-ui/messages/arrival-animation.cjs.map +1 -0
- package/dist/chat-ui/messages/arrival-animation.d.ts +14 -0
- package/dist/chat-ui/messages/arrival-animation.js +13 -0
- package/dist/chat-ui/messages/arrival-animation.js.map +1 -0
- package/dist/chat-ui/messages/continue-pill.cjs +5 -5
- package/dist/chat-ui/messages/continue-pill.cjs.map +1 -1
- package/dist/chat-ui/messages/from-the-call-card.cjs +124 -0
- package/dist/chat-ui/messages/from-the-call-card.cjs.map +1 -0
- package/dist/chat-ui/messages/from-the-call-card.d.ts +17 -0
- package/dist/chat-ui/messages/from-the-call-card.js +124 -0
- package/dist/chat-ui/messages/from-the-call-card.js.map +1 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.cjs +44 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.cjs.map +1 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.d.ts +17 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.js +44 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.js.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.cjs +3 -3
- package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -1
- package/dist/chat-ui/messages/message-components.cjs +8 -4
- package/dist/chat-ui/messages/message-components.cjs.map +1 -1
- package/dist/chat-ui/messages/message-components.js +5 -1
- package/dist/chat-ui/messages/message-components.js.map +1 -1
- package/dist/chat-ui/messages/message-images.cjs +66 -0
- package/dist/chat-ui/messages/message-images.cjs.map +1 -0
- package/dist/chat-ui/messages/message-images.d.ts +16 -0
- package/dist/chat-ui/messages/message-images.js +66 -0
- package/dist/chat-ui/messages/message-images.js.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs +2 -2
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -1
- package/dist/chat-ui/messages/wake-marker.cjs +3 -3
- package/dist/chat-ui/messages/wake-marker.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-link.cjs +3 -2
- package/dist/chat-ui/rich-text/chat-link.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-link.d.ts +4 -0
- package/dist/chat-ui/rich-text/chat-link.js +4 -3
- package/dist/chat-ui/rich-text/chat-link.js.map +1 -1
- package/dist/chat-ui/rich-text/chat-message-body.cjs +9 -8
- package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-message-body.d.ts +12 -0
- package/dist/chat-ui/rich-text/chat-message-body.js +2 -1
- package/dist/chat-ui/rich-text/chat-message-body.js.map +1 -1
- package/dist/chat-ui/rich-text/chat-node-views.cjs +6 -6
- package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -1
- package/dist/chat-ui/rich-text/dom-output-spec.cjs +2 -2
- package/dist/chat-ui/rich-text/dom-output-spec.cjs.map +1 -1
- package/dist/chat-ui/statewire.cjs +3 -0
- package/dist/chat-ui/statewire.cjs.map +1 -1
- package/dist/chat-ui/statewire.d.ts +2 -1
- package/dist/chat-ui/statewire.js +3 -0
- package/dist/chat-ui/statewire.js.map +1 -1
- package/dist/chat-ui/thread/chat-thread-shell.cjs +45 -14
- package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -1
- package/dist/chat-ui/thread/chat-thread-shell.d.ts +16 -2
- package/dist/chat-ui/thread/chat-thread-shell.js +37 -6
- package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -1
- package/dist/chat-ui/thread/composer-send-or-stop.cjs +30 -20
- package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -1
- package/dist/chat-ui/thread/composer-send-or-stop.d.ts +8 -0
- package/dist/chat-ui/thread/composer-send-or-stop.js +29 -19
- package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.cjs +20 -21
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.js +3 -4
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
- package/dist/chat-ui/thread/thread-loading-overlay.cjs +5 -5
- package/dist/chat-ui/thread/thread-loading-overlay.cjs.map +1 -1
- package/dist/collab/client.cjs +52 -3
- package/dist/collab/client.cjs.map +1 -1
- package/dist/collab/client.d.ts +27 -0
- package/dist/collab/client.js +52 -3
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/document-status.cjs +150 -0
- package/dist/collab/document-status.cjs.map +1 -0
- package/dist/collab/document-status.d.ts +68 -0
- package/dist/collab/document-status.js +150 -0
- package/dist/collab/document-status.js.map +1 -0
- package/dist/collab/index.cjs +7 -0
- package/dist/collab/index.cjs.map +1 -1
- package/dist/collab/index.d.ts +6 -1
- package/dist/collab/index.js +7 -0
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/presence-react.cjs +11 -11
- package/dist/collab/presence-react.cjs.map +1 -1
- package/dist/collab/react.cjs +6 -6
- package/dist/collab/react.cjs.map +1 -1
- package/dist/composer/AttachmentContext.cjs +24 -11
- package/dist/composer/AttachmentContext.cjs.map +1 -1
- package/dist/composer/AttachmentContext.js +18 -5
- package/dist/composer/AttachmentContext.js.map +1 -1
- package/dist/composer/ComposerAttachmentPreview.cjs +78 -23
- package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -1
- package/dist/composer/ComposerAttachmentPreview.d.ts +5 -3
- package/dist/composer/ComposerAttachmentPreview.js +79 -24
- package/dist/composer/ComposerAttachmentPreview.js.map +1 -1
- package/dist/composer/ComposerDropZone.cjs +7 -7
- package/dist/composer/ComposerDropZone.cjs.map +1 -1
- package/dist/composer/FileUploadButton.cjs +37 -22
- package/dist/composer/FileUploadButton.cjs.map +1 -1
- package/dist/composer/FileUploadButton.d.ts +6 -0
- package/dist/composer/FileUploadButton.js +34 -19
- package/dist/composer/FileUploadButton.js.map +1 -1
- package/dist/composer/QuoteContext.cjs +8 -8
- package/dist/composer/QuoteContext.cjs.map +1 -1
- package/dist/composer/composer-handoff.cjs +4 -4
- package/dist/composer/composer-handoff.cjs.map +1 -1
- package/dist/composer/index.d.ts +1 -1
- package/dist/composer/useAppendToComposer.cjs +4 -4
- package/dist/composer/useAppendToComposer.cjs.map +1 -1
- package/dist/composer/useAttachFiles.cjs +23 -6
- package/dist/composer/useAttachFiles.cjs.map +1 -1
- package/dist/composer/useAttachFiles.d.ts +15 -7
- package/dist/composer/useAttachFiles.js +22 -5
- package/dist/composer/useAttachFiles.js.map +1 -1
- package/dist/composer/useComposerAttachment.cjs +4 -4
- package/dist/composer/useComposerAttachment.cjs.map +1 -1
- package/dist/composer/useFileUpload.cjs +21 -16
- package/dist/composer/useFileUpload.cjs.map +1 -1
- package/dist/composer/useFileUpload.d.ts +12 -0
- package/dist/composer/useFileUpload.js +12 -7
- package/dist/composer/useFileUpload.js.map +1 -1
- package/dist/composer/useReadComposerDraft.cjs +27 -8
- package/dist/composer/useReadComposerDraft.cjs.map +1 -1
- package/dist/composer/useReadComposerDraft.d.ts +23 -1
- package/dist/composer/useReadComposerDraft.js +27 -8
- package/dist/composer/useReadComposerDraft.js.map +1 -1
- package/dist/composer/useSendMessage.cjs +4 -4
- package/dist/composer/useSendMessage.cjs.map +1 -1
- package/dist/diagnostics/useAthenaDiagnostics.cjs +4 -4
- package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -1
- package/dist/dictation/audio-level-history.cjs +3 -3
- package/dist/dictation/audio-level-history.cjs.map +1 -1
- package/dist/dictation/dictation-controls.cjs +24 -20
- package/dist/dictation/dictation-controls.cjs.map +1 -1
- package/dist/dictation/dictation-controls.d.ts +6 -1
- package/dist/dictation/dictation-controls.js +24 -20
- package/dist/dictation/dictation-controls.js.map +1 -1
- package/dist/dictation/use-athena-dictation-engine.cjs +3 -3
- package/dist/dictation/use-athena-dictation-engine.cjs.map +1 -1
- package/dist/dictation/use-dictation.cjs +22 -22
- package/dist/dictation/use-dictation.cjs.map +1 -1
- package/dist/index.cjs +29 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -4
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/dist/keryx-http/src/receive-only-socket.cjs +40 -0
- package/dist/keryx-http/src/receive-only-socket.cjs.map +1 -0
- package/dist/keryx-http/src/receive-only-socket.d.ts +27 -0
- package/dist/keryx-http/src/receive-only-socket.js +40 -0
- package/dist/keryx-http/src/receive-only-socket.js.map +1 -0
- package/dist/keryx-http/src/unconfirmed-update-attributions.cjs +190 -0
- package/dist/keryx-http/src/unconfirmed-update-attributions.cjs.map +1 -0
- package/dist/keryx-http/src/unconfirmed-update-attributions.d.ts +132 -0
- package/dist/keryx-http/src/unconfirmed-update-attributions.js +190 -0
- package/dist/keryx-http/src/unconfirmed-update-attributions.js.map +1 -0
- package/dist/keryx-http/src/update-attributions.cjs +141 -0
- package/dist/keryx-http/src/update-attributions.cjs.map +1 -0
- package/dist/keryx-http/src/update-attributions.d.ts +107 -0
- package/dist/keryx-http/src/update-attributions.js +141 -0
- package/dist/keryx-http/src/update-attributions.js.map +1 -0
- package/dist/lib/owner-document.cjs +6 -6
- package/dist/lib/owner-document.cjs.map +1 -1
- package/dist/lib/use-athena-rest-query.cjs +4 -4
- package/dist/lib/use-athena-rest-query.cjs.map +1 -1
- package/dist/lib/use-document-active.cjs +4 -4
- package/dist/lib/use-document-active.cjs.map +1 -1
- package/dist/lib/use-prefers-reduced-motion.cjs +2 -2
- package/dist/lib/use-prefers-reduced-motion.cjs.map +1 -1
- package/dist/offline/offline-history.cjs +7 -7
- package/dist/offline/offline-history.cjs.map +1 -1
- package/dist/provider/AthenaContext.cjs +3 -3
- package/dist/provider/AthenaContext.cjs.map +1 -1
- package/dist/provider/AthenaProvider.cjs +120 -79
- package/dist/provider/AthenaProvider.cjs.map +1 -1
- package/dist/provider/AthenaProvider.d.ts +11 -1
- package/dist/provider/AthenaProvider.js +44 -3
- package/dist/provider/AthenaProvider.js.map +1 -1
- package/dist/provider/PostHogProvider.cjs +2 -2
- package/dist/provider/PostHogProvider.cjs.map +1 -1
- package/dist/provider/agent-selection-context.cjs +2 -2
- package/dist/provider/agent-selection-context.cjs.map +1 -1
- package/dist/provider/chat-mode-context.cjs +2 -2
- package/dist/provider/chat-mode-context.cjs.map +1 -1
- package/dist/provider/session-persistence-context.cjs +10 -0
- package/dist/provider/session-persistence-context.cjs.map +1 -0
- package/dist/provider/session-persistence-context.d.ts +15 -0
- package/dist/provider/session-persistence-context.js +10 -0
- package/dist/provider/session-persistence-context.js.map +1 -0
- package/dist/provider/statewire-history-context.cjs +4 -4
- package/dist/provider/statewire-history-context.cjs.map +1 -1
- package/dist/provider/statewire-lifecycle-context.cjs +3 -3
- package/dist/provider/statewire-lifecycle-context.cjs.map +1 -1
- package/dist/provider/statewire-window-context.cjs +3 -3
- package/dist/provider/statewire-window-context.cjs.map +1 -1
- package/dist/provider/theme-style-context.cjs +3 -3
- package/dist/provider/theme-style-context.cjs.map +1 -1
- package/dist/react/package.json.cjs +1 -1
- package/dist/react/package.json.js +1 -1
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs +10 -10
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
- package/dist/runtime/auth-refusal-restart.cjs +7 -7
- package/dist/runtime/auth-refusal-restart.cjs.map +1 -1
- package/dist/runtime/auth.cjs +13 -13
- package/dist/runtime/auth.cjs.map +1 -1
- package/dist/runtime/statewire-lifecycle.cjs +1 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -1
- package/dist/runtime/statewire-lifecycle.d.ts +3 -1
- package/dist/runtime/statewire-lifecycle.js +2 -1
- package/dist/runtime/statewire-lifecycle.js.map +1 -1
- package/dist/runtime/statewire-server-lane-context.cjs +2 -2
- package/dist/runtime/statewire-server-lane-context.cjs.map +1 -1
- package/dist/runtime/statewire-session-lane.cjs +4 -4
- package/dist/runtime/statewire-session-lane.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.cjs +10 -8
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +2 -0
- package/dist/runtime/useAthenaStatewireRuntime.js +2 -0
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/threads/Inbox.cjs +8 -8
- package/dist/threads/Inbox.cjs.map +1 -1
- package/dist/threads/SessionList.cjs +9 -9
- package/dist/threads/SessionList.cjs.map +1 -1
- package/dist/threads/SessionsPage.cjs +11 -11
- package/dist/threads/SessionsPage.cjs.map +1 -1
- package/dist/threads/api.cjs.map +1 -1
- package/dist/threads/api.d.ts +15 -0
- package/dist/threads/api.js.map +1 -1
- package/dist/threads/conversation-list-fetcher.cjs +13 -5
- package/dist/threads/conversation-list-fetcher.cjs.map +1 -1
- package/dist/threads/conversation-list-fetcher.d.ts +4 -1
- package/dist/threads/conversation-list-fetcher.js +13 -5
- package/dist/threads/conversation-list-fetcher.js.map +1 -1
- package/dist/threads/index-triggered-refresh.cjs +10 -10
- package/dist/threads/index-triggered-refresh.cjs.map +1 -1
- package/dist/threads/mark-viewed-thread-read.cjs +12 -12
- package/dist/threads/mark-viewed-thread-read.cjs.map +1 -1
- package/dist/threads/offline-session-list.cjs +3 -3
- package/dist/threads/offline-session-list.cjs.map +1 -1
- package/dist/threads/session-list-tab-share.cjs +5 -5
- package/dist/threads/session-list-tab-share.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.cjs +79 -57
- package/dist/threads/statewire-thread-list.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.d.ts +20 -8
- package/dist/threads/statewire-thread-list.js +28 -6
- package/dist/threads/statewire-thread-list.js.map +1 -1
- package/dist/threads/thread-id-context.cjs +5 -5
- package/dist/threads/thread-id-context.cjs.map +1 -1
- package/dist/threads/use-athena-session-attention.cjs +2 -2
- package/dist/threads/use-athena-session-attention.cjs.map +1 -1
- package/dist/threads/use-athena-sessions.cjs +37 -15
- package/dist/threads/use-athena-sessions.cjs.map +1 -1
- package/dist/threads/use-athena-sessions.d.ts +10 -5
- package/dist/threads/use-athena-sessions.js +28 -6
- package/dist/threads/use-athena-sessions.js.map +1 -1
- package/dist/threads/use-athena-thread-model.cjs +3 -3
- package/dist/threads/use-athena-thread-model.cjs.map +1 -1
- package/dist/threads/use-rest-conversation-history.cjs +3 -3
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -1
- package/dist/threads/use-rest-conversation-history.d.ts +1 -0
- package/dist/threads/use-statewire-conversation-history.cjs +8 -8
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -1
- package/dist/threads/use-thread-archive.cjs +9 -9
- package/dist/threads/use-thread-archive.cjs.map +1 -1
- package/dist/threads/use-thread-favorite.cjs +2 -2
- package/dist/threads/use-thread-favorite.cjs.map +1 -1
- package/dist/threads/use-thread-field-override.cjs +20 -20
- package/dist/threads/use-thread-field-override.cjs.map +1 -1
- package/dist/threads/use-thread-read-state.cjs +4 -4
- package/dist/threads/use-thread-read-state.cjs.map +1 -1
- package/dist/threads/use-thread-rename.cjs +2 -2
- package/dist/threads/use-thread-rename.cjs.map +1 -1
- package/dist/threads/useAthenaThreadManager.cjs +2 -2
- package/dist/threads/useAthenaThreadManager.cjs.map +1 -1
- package/dist/tools/NestedPtcMessages.cjs +6 -6
- package/dist/tools/NestedPtcMessages.cjs.map +1 -1
- package/dist/tools/append-document-tool-ui.cjs +7 -7
- package/dist/tools/append-document-tool-ui.cjs.map +1 -1
- package/dist/tools/file-tool-uis.cjs +2 -2
- package/dist/tools/file-tool-uis.cjs.map +1 -1
- package/dist/tools/misc-tool-uis.cjs +2 -2
- package/dist/tools/misc-tool-uis.cjs.map +1 -1
- package/dist/tools/primitives.cjs +6 -6
- package/dist/tools/primitives.cjs.map +1 -1
- package/dist/tools/read-asset-tool-ui.cjs +6 -6
- package/dist/tools/read-asset-tool-ui.cjs.map +1 -1
- package/dist/tools/subagent-task-tool-ui.cjs +21 -21
- package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
- package/dist/tools/test-recording-tool-uis.cjs +16 -16
- package/dist/tools/test-recording-tool-uis.cjs.map +1 -1
- package/dist/tools/todo-plan-store.cjs +4 -4
- package/dist/tools/todo-plan-store.cjs.map +1 -1
- package/dist/tools/tool-appearance.cjs +3 -3
- package/dist/tools/tool-appearance.cjs.map +1 -1
- package/dist/tools/tool-fallback.cjs +14 -14
- package/dist/tools/tool-fallback.cjs.map +1 -1
- package/dist/tools/tool-uis.cjs +74 -74
- package/dist/tools/tool-uis.cjs.map +1 -1
- package/dist/tools/use-elapsed-seconds.cjs +3 -3
- package/dist/tools/use-elapsed-seconds.cjs.map +1 -1
- package/dist/tools/write-todos-tool-ui.cjs +9 -9
- package/dist/tools/write-todos-tool-ui.cjs.map +1 -1
- package/dist/ui/image-viewer.cjs +382 -0
- package/dist/ui/image-viewer.cjs.map +1 -0
- package/dist/ui/image-viewer.d.ts +50 -0
- package/dist/ui/image-viewer.js +382 -0
- package/dist/ui/image-viewer.js.map +1 -0
- package/dist/voice/chat.cjs +6 -0
- package/dist/voice/chat.cjs.map +1 -1
- package/dist/voice/chat.d.ts +1 -1
- package/dist/voice/chat.js +8 -2
- package/dist/voice/livekit-join.cjs +52 -101
- package/dist/voice/livekit-join.cjs.map +1 -1
- package/dist/voice/livekit-join.d.ts +1 -6
- package/dist/voice/livekit-join.js +52 -101
- package/dist/voice/livekit-join.js.map +1 -1
- package/dist/voice/livekit.cjs.map +1 -1
- package/dist/voice/livekit.d.ts +11 -1
- package/dist/voice/livekit.js.map +1 -1
- package/dist/voice/use-athena-voice-session.cjs +34 -34
- package/dist/voice/use-athena-voice-session.cjs.map +1 -1
- package/dist/workbench/ComputerLiveDesktop.cjs +13 -13
- package/dist/workbench/ComputerLiveDesktop.cjs.map +1 -1
- package/dist/workbench/SessionWorkbench.cjs +22 -22
- package/dist/workbench/SessionWorkbench.cjs.map +1 -1
- package/dist/workbench/session-workbench-context.cjs +3 -3
- package/dist/workbench/session-workbench-context.cjs.map +1 -1
- package/dist/workbench/session-workbench-panes.cjs +8 -8
- package/dist/workbench/session-workbench-panes.cjs.map +1 -1
- package/dist/workbench/workbench-layout-context.cjs +3 -3
- package/dist/workbench/workbench-layout-context.cjs.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerAttachmentPreview.cjs","sources":["../../src/composer/ComposerAttachmentPreview.tsx"],"sourcesContent":["import { Loader2Icon, PaperclipIcon, XIcon } from 'lucide-react';\nimport type
|
|
1
|
+
{"version":3,"file":"ComposerAttachmentPreview.cjs","sources":["../../src/composer/ComposerAttachmentPreview.tsx"],"sourcesContent":["import { Loader2Icon, PaperclipIcon, XIcon } from 'lucide-react';\nimport { type FC, useMemo, useState } from 'react';\nimport { ImageViewer, type ImageViewerImage } from '../ui/image-viewer';\nimport { useAttachments } from './AttachmentContext';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\n\nexport interface ComposerAttachmentPreviewProps {\n className?: string;\n}\n\n/** A staged picture: the attachment, with the local preview it shows. */\ntype PictureAttachment = UploadedAsset & { previewUrl: string };\n\nconst isPicture = (asset: UploadedAsset): asset is PictureAttachment => Boolean(asset.previewUrl);\n\nconst REMOVE_BUTTON_CLASS =\n 'shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors';\n\n/**\n * Renders the draft's attachments above the composer. A picture shows as a\n * thumbnail that opens full screen, as Devin's composer does (← → page through\n * the draft's pictures, Esc closes); any other file shows as a pill with its\n * name. Each has a dismiss button.\n */\nexport const ComposerAttachmentPreview: FC<ComposerAttachmentPreviewProps> = ({ className }) => {\n const { attachments, isUploading, removeAttachment } = useAttachments();\n const pictures = useMemo(() => attachments.filter(isPicture), [attachments]);\n const images = useMemo<ImageViewerImage[]>(\n () => pictures.map((picture) => ({ src: picture.previewUrl, name: picture.title })),\n [pictures],\n );\n // The picture open in the viewer, by attachment id: removing another one\n // never moves the viewer to a different picture.\n const [viewingId, setViewingId] = useState<string | null>(null);\n const viewingIndex = pictures.findIndex((picture) => picture.id === viewingId);\n\n if (attachments.length === 0 && !isUploading) return null;\n\n return (\n <div className={cn('aui-attachment-preview mx-3 mt-2 flex flex-wrap items-end gap-1.5', className)}>\n {attachments.map((asset) =>\n isPicture(asset) ? (\n <div\n key={asset.id}\n className=\"group relative h-14 w-[72px] shrink-0 overflow-hidden rounded-lg border border-border/60 bg-muted/40\"\n data-slot=\"attachment-picture\"\n >\n <button\n type=\"button\"\n onClick={() => setViewingId(asset.id)}\n className=\"block size-full cursor-zoom-in focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring\"\n aria-label={`View ${asset.title}`}\n title={asset.title}\n >\n <img src={asset.previewUrl} alt={asset.title} draggable={false} className=\"size-full object-cover\" />\n </button>\n <button\n type=\"button\"\n onClick={() => removeAttachment(asset.id)}\n className=\"absolute right-0.5 top-0.5 inline-flex size-5 items-center justify-center rounded-full bg-black/65 text-white opacity-80 transition-opacity hover:bg-black/80 hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white\"\n aria-label={`Remove ${asset.title}`}\n title=\"Remove\"\n >\n <XIcon className=\"size-3\" />\n </button>\n </div>\n ) : (\n <div\n key={asset.id}\n className=\"flex items-center gap-1.5 rounded-lg border border-border/60 bg-muted/40 px-2.5 py-1.5 text-xs\"\n >\n <PaperclipIcon className=\"size-3 shrink-0 text-muted-foreground/60\" />\n <span className=\"max-w-[180px] truncate text-foreground/80\">{asset.title}</span>\n <button\n type=\"button\"\n onClick={() => removeAttachment(asset.id)}\n className={REMOVE_BUTTON_CLASS}\n aria-label={`Remove ${asset.title}`}\n >\n <XIcon className=\"size-3\" />\n </button>\n </div>\n ),\n )}\n {isUploading ? (\n <div className=\"flex items-center gap-1.5 rounded-lg border border-border/60 bg-muted/40 px-2.5 py-1.5 text-xs text-muted-foreground\">\n <Loader2Icon className=\"size-3 shrink-0 animate-spin\" />\n <span>Uploading...</span>\n </div>\n ) : null}\n <ImageViewer\n images={images}\n index={viewingIndex === -1 ? null : viewingIndex}\n onIndexChange={(index) => setViewingId(index === null ? null : (pictures[index]?.id ?? null))}\n />\n </div>\n );\n};\n"],"names":["useAttachments","useMemo","useState","cn","jsxs","jsx","XIcon","PaperclipIcon","Loader2Icon","ImageViewer"],"mappings":";;;;;;;;AAcA,MAAM,YAAY,CAAC,UAAqD,QAAQ,MAAM,UAAU;AAEhG,MAAM,sBACJ;AAQK,MAAM,4BAAgE,CAAC,EAAE,gBAAgB;AAC9F,QAAM,EAAE,aAAa,aAAa,iBAAA,IAAqBA,kBAAAA,eAAA;AACvD,QAAM,WAAWC,WAAAA,QAAQ,MAAM,YAAY,OAAO,SAAS,GAAG,CAAC,WAAW,CAAC;AAC3E,QAAM,SAASA,WAAAA;AAAAA,IACb,MAAM,SAAS,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ,YAAY,MAAM,QAAQ,MAAA,EAAQ;AAAA,IAClF,CAAC,QAAQ;AAAA,EAAA;AAIX,QAAM,CAAC,WAAW,YAAY,IAAIC,WAAAA,SAAwB,IAAI;AAC9D,QAAM,eAAe,SAAS,UAAU,CAAC,YAAY,QAAQ,OAAO,SAAS;AAE7E,MAAI,YAAY,WAAW,KAAK,CAAC,YAAa,QAAO;AAErD,yCACG,OAAA,EAAI,WAAWC,OAAAA,GAAG,qEAAqE,SAAS,GAC9F,UAAA;AAAA,IAAA,YAAY;AAAA,MAAI,CAAC,UAChB,UAAU,KAAK,IACbC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UACV,aAAU;AAAA,UAEV,UAAA;AAAA,YAAAC,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM,aAAa,MAAM,EAAE;AAAA,gBACpC,WAAU;AAAA,gBACV,cAAY,QAAQ,MAAM,KAAK;AAAA,gBAC/B,OAAO,MAAM;AAAA,gBAEb,UAAAA,2BAAAA,IAAC,OAAA,EAAI,KAAK,MAAM,YAAY,KAAK,MAAM,OAAO,WAAW,OAAO,WAAU,yBAAA,CAAyB;AAAA,cAAA;AAAA,YAAA;AAAA,YAErGA,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM,iBAAiB,MAAM,EAAE;AAAA,gBACxC,WAAU;AAAA,gBACV,cAAY,UAAU,MAAM,KAAK;AAAA,gBACjC,OAAM;AAAA,gBAEN,UAAAA,2BAAAA,IAACC,YAAAA,OAAA,EAAM,WAAU,SAAA,CAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5B;AAAA,QAAA;AAAA,QArBK,MAAM;AAAA,MAAA,IAwBbF,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAEV,UAAA;AAAA,YAAAC,2BAAAA,IAACE,YAAAA,eAAA,EAAc,WAAU,2CAAA,CAA2C;AAAA,YACpEF,2BAAAA,IAAC,QAAA,EAAK,WAAU,6CAA6C,gBAAM,OAAM;AAAA,YACzEA,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM,iBAAiB,MAAM,EAAE;AAAA,gBACxC,WAAW;AAAA,gBACX,cAAY,UAAU,MAAM,KAAK;AAAA,gBAEjC,UAAAA,2BAAAA,IAACC,YAAAA,OAAA,EAAM,WAAU,SAAA,CAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5B;AAAA,QAAA;AAAA,QAZK,MAAM;AAAA,MAAA;AAAA,IAab;AAAA,IAGH,cACCF,2BAAAA,KAAC,OAAA,EAAI,WAAU,wHACb,UAAA;AAAA,MAAAC,2BAAAA,IAACG,YAAAA,aAAA,EAAY,WAAU,+BAAA,CAA+B;AAAA,MACtDH,2BAAAA,IAAC,UAAK,UAAA,eAAA,CAAY;AAAA,IAAA,EAAA,CACpB,IACE;AAAA,IACJA,2BAAAA;AAAAA,MAACI,YAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA,OAAO,iBAAiB,KAAK,OAAO;AAAA,QACpC,eAAe,CAAC;;AAAU,8BAAa,UAAU,OAAO,SAAQ,cAAS,KAAK,MAAd,mBAAiB,OAAM,IAAK;AAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC9F,GACF;AAEJ;;"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type FC } from 'react';
|
|
2
2
|
export interface ComposerAttachmentPreviewProps {
|
|
3
3
|
className?: string;
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
-
* Renders
|
|
7
|
-
*
|
|
6
|
+
* Renders the draft's attachments above the composer. A picture shows as a
|
|
7
|
+
* thumbnail that opens full screen, as Devin's composer does (← → page through
|
|
8
|
+
* the draft's pictures, Esc closes); any other file shows as a pill with its
|
|
9
|
+
* name. Each has a dismiss button.
|
|
8
10
|
*/
|
|
9
11
|
export declare const ComposerAttachmentPreview: FC<ComposerAttachmentPreviewProps>;
|
|
@@ -1,36 +1,91 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { XIcon, PaperclipIcon, Loader2Icon } from "lucide-react";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { ImageViewer } from "../ui/image-viewer.js";
|
|
3
5
|
import { useAttachments } from "./AttachmentContext.js";
|
|
4
6
|
import { cn } from "cnfast";
|
|
7
|
+
const isPicture = (asset) => Boolean(asset.previewUrl);
|
|
8
|
+
const REMOVE_BUTTON_CLASS = "shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors";
|
|
5
9
|
const ComposerAttachmentPreview = ({ className }) => {
|
|
6
10
|
const { attachments, isUploading, removeAttachment } = useAttachments();
|
|
11
|
+
const pictures = useMemo(() => attachments.filter(isPicture), [attachments]);
|
|
12
|
+
const images = useMemo(
|
|
13
|
+
() => pictures.map((picture) => ({ src: picture.previewUrl, name: picture.title })),
|
|
14
|
+
[pictures]
|
|
15
|
+
);
|
|
16
|
+
const [viewingId, setViewingId] = useState(null);
|
|
17
|
+
const viewingIndex = pictures.findIndex((picture) => picture.id === viewingId);
|
|
7
18
|
if (attachments.length === 0 && !isUploading) return null;
|
|
8
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("aui-attachment-preview mx-3 mt-2 flex flex-wrap gap-1.5", className), children: [
|
|
9
|
-
attachments.map(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("aui-attachment-preview mx-3 mt-2 flex flex-wrap items-end gap-1.5", className), children: [
|
|
20
|
+
attachments.map(
|
|
21
|
+
(asset) => isPicture(asset) ? /* @__PURE__ */ jsxs(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
className: "group relative h-14 w-[72px] shrink-0 overflow-hidden rounded-lg border border-border/60 bg-muted/40",
|
|
25
|
+
"data-slot": "attachment-picture",
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ jsx(
|
|
28
|
+
"button",
|
|
29
|
+
{
|
|
30
|
+
type: "button",
|
|
31
|
+
onClick: () => setViewingId(asset.id),
|
|
32
|
+
className: "block size-full cursor-zoom-in focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
|
|
33
|
+
"aria-label": `View ${asset.title}`,
|
|
34
|
+
title: asset.title,
|
|
35
|
+
children: /* @__PURE__ */ jsx("img", { src: asset.previewUrl, alt: asset.title, draggable: false, className: "size-full object-cover" })
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
/* @__PURE__ */ jsx(
|
|
39
|
+
"button",
|
|
40
|
+
{
|
|
41
|
+
type: "button",
|
|
42
|
+
onClick: () => removeAttachment(asset.id),
|
|
43
|
+
className: "absolute right-0.5 top-0.5 inline-flex size-5 items-center justify-center rounded-full bg-black/65 text-white opacity-80 transition-opacity hover:bg-black/80 hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white",
|
|
44
|
+
"aria-label": `Remove ${asset.title}`,
|
|
45
|
+
title: "Remove",
|
|
46
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "size-3" })
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
asset.id
|
|
52
|
+
) : /* @__PURE__ */ jsxs(
|
|
53
|
+
"div",
|
|
54
|
+
{
|
|
55
|
+
className: "flex items-center gap-1.5 rounded-lg border border-border/60 bg-muted/40 px-2.5 py-1.5 text-xs",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx(PaperclipIcon, { className: "size-3 shrink-0 text-muted-foreground/60" }),
|
|
58
|
+
/* @__PURE__ */ jsx("span", { className: "max-w-[180px] truncate text-foreground/80", children: asset.title }),
|
|
59
|
+
/* @__PURE__ */ jsx(
|
|
60
|
+
"button",
|
|
61
|
+
{
|
|
62
|
+
type: "button",
|
|
63
|
+
onClick: () => removeAttachment(asset.id),
|
|
64
|
+
className: REMOVE_BUTTON_CLASS,
|
|
65
|
+
"aria-label": `Remove ${asset.title}`,
|
|
66
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "size-3" })
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
asset.id
|
|
72
|
+
)
|
|
73
|
+
),
|
|
30
74
|
isUploading ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 rounded-lg border border-border/60 bg-muted/40 px-2.5 py-1.5 text-xs text-muted-foreground", children: [
|
|
31
75
|
/* @__PURE__ */ jsx(Loader2Icon, { className: "size-3 shrink-0 animate-spin" }),
|
|
32
76
|
/* @__PURE__ */ jsx("span", { children: "Uploading..." })
|
|
33
|
-
] }) : null
|
|
77
|
+
] }) : null,
|
|
78
|
+
/* @__PURE__ */ jsx(
|
|
79
|
+
ImageViewer,
|
|
80
|
+
{
|
|
81
|
+
images,
|
|
82
|
+
index: viewingIndex === -1 ? null : viewingIndex,
|
|
83
|
+
onIndexChange: (index) => {
|
|
84
|
+
var _a;
|
|
85
|
+
return setViewingId(index === null ? null : ((_a = pictures[index]) == null ? void 0 : _a.id) ?? null);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
)
|
|
34
89
|
] });
|
|
35
90
|
};
|
|
36
91
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerAttachmentPreview.js","sources":["../../src/composer/ComposerAttachmentPreview.tsx"],"sourcesContent":["import { Loader2Icon, PaperclipIcon, XIcon } from 'lucide-react';\nimport type
|
|
1
|
+
{"version":3,"file":"ComposerAttachmentPreview.js","sources":["../../src/composer/ComposerAttachmentPreview.tsx"],"sourcesContent":["import { Loader2Icon, PaperclipIcon, XIcon } from 'lucide-react';\nimport { type FC, useMemo, useState } from 'react';\nimport { ImageViewer, type ImageViewerImage } from '../ui/image-viewer';\nimport { useAttachments } from './AttachmentContext';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\n\nexport interface ComposerAttachmentPreviewProps {\n className?: string;\n}\n\n/** A staged picture: the attachment, with the local preview it shows. */\ntype PictureAttachment = UploadedAsset & { previewUrl: string };\n\nconst isPicture = (asset: UploadedAsset): asset is PictureAttachment => Boolean(asset.previewUrl);\n\nconst REMOVE_BUTTON_CLASS =\n 'shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors';\n\n/**\n * Renders the draft's attachments above the composer. A picture shows as a\n * thumbnail that opens full screen, as Devin's composer does (← → page through\n * the draft's pictures, Esc closes); any other file shows as a pill with its\n * name. Each has a dismiss button.\n */\nexport const ComposerAttachmentPreview: FC<ComposerAttachmentPreviewProps> = ({ className }) => {\n const { attachments, isUploading, removeAttachment } = useAttachments();\n const pictures = useMemo(() => attachments.filter(isPicture), [attachments]);\n const images = useMemo<ImageViewerImage[]>(\n () => pictures.map((picture) => ({ src: picture.previewUrl, name: picture.title })),\n [pictures],\n );\n // The picture open in the viewer, by attachment id: removing another one\n // never moves the viewer to a different picture.\n const [viewingId, setViewingId] = useState<string | null>(null);\n const viewingIndex = pictures.findIndex((picture) => picture.id === viewingId);\n\n if (attachments.length === 0 && !isUploading) return null;\n\n return (\n <div className={cn('aui-attachment-preview mx-3 mt-2 flex flex-wrap items-end gap-1.5', className)}>\n {attachments.map((asset) =>\n isPicture(asset) ? (\n <div\n key={asset.id}\n className=\"group relative h-14 w-[72px] shrink-0 overflow-hidden rounded-lg border border-border/60 bg-muted/40\"\n data-slot=\"attachment-picture\"\n >\n <button\n type=\"button\"\n onClick={() => setViewingId(asset.id)}\n className=\"block size-full cursor-zoom-in focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring\"\n aria-label={`View ${asset.title}`}\n title={asset.title}\n >\n <img src={asset.previewUrl} alt={asset.title} draggable={false} className=\"size-full object-cover\" />\n </button>\n <button\n type=\"button\"\n onClick={() => removeAttachment(asset.id)}\n className=\"absolute right-0.5 top-0.5 inline-flex size-5 items-center justify-center rounded-full bg-black/65 text-white opacity-80 transition-opacity hover:bg-black/80 hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white\"\n aria-label={`Remove ${asset.title}`}\n title=\"Remove\"\n >\n <XIcon className=\"size-3\" />\n </button>\n </div>\n ) : (\n <div\n key={asset.id}\n className=\"flex items-center gap-1.5 rounded-lg border border-border/60 bg-muted/40 px-2.5 py-1.5 text-xs\"\n >\n <PaperclipIcon className=\"size-3 shrink-0 text-muted-foreground/60\" />\n <span className=\"max-w-[180px] truncate text-foreground/80\">{asset.title}</span>\n <button\n type=\"button\"\n onClick={() => removeAttachment(asset.id)}\n className={REMOVE_BUTTON_CLASS}\n aria-label={`Remove ${asset.title}`}\n >\n <XIcon className=\"size-3\" />\n </button>\n </div>\n ),\n )}\n {isUploading ? (\n <div className=\"flex items-center gap-1.5 rounded-lg border border-border/60 bg-muted/40 px-2.5 py-1.5 text-xs text-muted-foreground\">\n <Loader2Icon className=\"size-3 shrink-0 animate-spin\" />\n <span>Uploading...</span>\n </div>\n ) : null}\n <ImageViewer\n images={images}\n index={viewingIndex === -1 ? null : viewingIndex}\n onIndexChange={(index) => setViewingId(index === null ? null : (pictures[index]?.id ?? null))}\n />\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AAcA,MAAM,YAAY,CAAC,UAAqD,QAAQ,MAAM,UAAU;AAEhG,MAAM,sBACJ;AAQK,MAAM,4BAAgE,CAAC,EAAE,gBAAgB;AAC9F,QAAM,EAAE,aAAa,aAAa,iBAAA,IAAqB,eAAA;AACvD,QAAM,WAAW,QAAQ,MAAM,YAAY,OAAO,SAAS,GAAG,CAAC,WAAW,CAAC;AAC3E,QAAM,SAAS;AAAA,IACb,MAAM,SAAS,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ,YAAY,MAAM,QAAQ,MAAA,EAAQ;AAAA,IAClF,CAAC,QAAQ;AAAA,EAAA;AAIX,QAAM,CAAC,WAAW,YAAY,IAAI,SAAwB,IAAI;AAC9D,QAAM,eAAe,SAAS,UAAU,CAAC,YAAY,QAAQ,OAAO,SAAS;AAE7E,MAAI,YAAY,WAAW,KAAK,CAAC,YAAa,QAAO;AAErD,8BACG,OAAA,EAAI,WAAW,GAAG,qEAAqE,SAAS,GAC9F,UAAA;AAAA,IAAA,YAAY;AAAA,MAAI,CAAC,UAChB,UAAU,KAAK,IACb;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UACV,aAAU;AAAA,UAEV,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM,aAAa,MAAM,EAAE;AAAA,gBACpC,WAAU;AAAA,gBACV,cAAY,QAAQ,MAAM,KAAK;AAAA,gBAC/B,OAAO,MAAM;AAAA,gBAEb,UAAA,oBAAC,OAAA,EAAI,KAAK,MAAM,YAAY,KAAK,MAAM,OAAO,WAAW,OAAO,WAAU,yBAAA,CAAyB;AAAA,cAAA;AAAA,YAAA;AAAA,YAErG;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM,iBAAiB,MAAM,EAAE;AAAA,gBACxC,WAAU;AAAA,gBACV,cAAY,UAAU,MAAM,KAAK;AAAA,gBACjC,OAAM;AAAA,gBAEN,UAAA,oBAAC,OAAA,EAAM,WAAU,SAAA,CAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5B;AAAA,QAAA;AAAA,QArBK,MAAM;AAAA,MAAA,IAwBb;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,oBAAC,eAAA,EAAc,WAAU,2CAAA,CAA2C;AAAA,YACpE,oBAAC,QAAA,EAAK,WAAU,6CAA6C,gBAAM,OAAM;AAAA,YACzE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM,iBAAiB,MAAM,EAAE;AAAA,gBACxC,WAAW;AAAA,gBACX,cAAY,UAAU,MAAM,KAAK;AAAA,gBAEjC,UAAA,oBAAC,OAAA,EAAM,WAAU,SAAA,CAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5B;AAAA,QAAA;AAAA,QAZK,MAAM;AAAA,MAAA;AAAA,IAab;AAAA,IAGH,cACC,qBAAC,OAAA,EAAI,WAAU,wHACb,UAAA;AAAA,MAAA,oBAAC,aAAA,EAAY,WAAU,+BAAA,CAA+B;AAAA,MACtD,oBAAC,UAAK,UAAA,eAAA,CAAY;AAAA,IAAA,EAAA,CACpB,IACE;AAAA,IACJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,OAAO,iBAAiB,KAAK,OAAO;AAAA,QACpC,eAAe,CAAC;;AAAU,8BAAa,UAAU,OAAO,SAAQ,cAAS,KAAK,MAAd,mBAAiB,OAAM,IAAK;AAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC9F,GACF;AAEJ;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const
|
|
4
|
+
const require$$0 = require("react");
|
|
5
5
|
const AttachmentContext = require("./AttachmentContext.cjs");
|
|
6
6
|
const useAttachFiles = require("./useAttachFiles.cjs");
|
|
7
7
|
const cnfast = require("cnfast");
|
|
@@ -11,23 +11,23 @@ const ComposerDropZone = ({
|
|
|
11
11
|
onUpload,
|
|
12
12
|
onDragActiveChange
|
|
13
13
|
}) => {
|
|
14
|
-
const [isDragOver, setIsDragOver] =
|
|
14
|
+
const [isDragOver, setIsDragOver] = require$$0.useState(false);
|
|
15
15
|
const { attachFiles } = useAttachFiles.useAttachFiles();
|
|
16
16
|
const { isUploading } = AttachmentContext.useAttachments();
|
|
17
|
-
const onDragActiveChangeRef =
|
|
17
|
+
const onDragActiveChangeRef = require$$0.useRef(onDragActiveChange);
|
|
18
18
|
onDragActiveChangeRef.current = onDragActiveChange;
|
|
19
|
-
|
|
19
|
+
require$$0.useEffect(() => {
|
|
20
20
|
var _a;
|
|
21
21
|
(_a = onDragActiveChangeRef.current) == null ? void 0 : _a.call(onDragActiveChangeRef, isDragOver);
|
|
22
22
|
}, [isDragOver]);
|
|
23
|
-
const handleDragOver =
|
|
23
|
+
const handleDragOver = require$$0.useCallback((e) => {
|
|
24
24
|
e.preventDefault();
|
|
25
25
|
e.stopPropagation();
|
|
26
26
|
if (e.dataTransfer.types.includes("Files")) {
|
|
27
27
|
setIsDragOver(true);
|
|
28
28
|
}
|
|
29
29
|
}, []);
|
|
30
|
-
const handleDragLeave =
|
|
30
|
+
const handleDragLeave = require$$0.useCallback((e) => {
|
|
31
31
|
e.preventDefault();
|
|
32
32
|
e.stopPropagation();
|
|
33
33
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
@@ -36,7 +36,7 @@ const ComposerDropZone = ({
|
|
|
36
36
|
setIsDragOver(false);
|
|
37
37
|
}
|
|
38
38
|
}, []);
|
|
39
|
-
const handleDrop =
|
|
39
|
+
const handleDrop = require$$0.useCallback(
|
|
40
40
|
async (e) => {
|
|
41
41
|
e.preventDefault();
|
|
42
42
|
e.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerDropZone.cjs","sources":["../../src/composer/ComposerDropZone.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type DragEvent,\n type FC,\n type ReactNode,\n} from 'react';\nimport { useAttachments } from './AttachmentContext';\nimport { useAttachFiles } from './useAttachFiles';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\n\nexport interface ComposerDropZoneProps {\n children: ReactNode;\n className?: string;\n /** Called after files are uploaded via drag-and-drop. */\n onUpload?: (assets: UploadedAsset[]) => void;\n /**\n * Reports whether files are being dragged over the zone, so the composer\n * surface inside can tint itself (`ChatComposerDock dragActive`). Called\n * with `false` on mount and again on every change.\n */\n onDragActiveChange?: (active: boolean) => void;\n}\n\n/**\n * Wraps the composer area with drag-and-drop file upload support.\n * Shows a visual drop indicator when files are dragged over.\n */\nexport const ComposerDropZone: FC<ComposerDropZoneProps> = ({\n children,\n className,\n onUpload,\n onDragActiveChange,\n}) => {\n const [isDragOver, setIsDragOver] = useState(false);\n const { attachFiles } = useAttachFiles();\n const { isUploading } = useAttachments();\n\n const onDragActiveChangeRef = useRef(onDragActiveChange);\n onDragActiveChangeRef.current = onDragActiveChange;\n useEffect(() => {\n onDragActiveChangeRef.current?.(isDragOver);\n }, [isDragOver]);\n\n const handleDragOver = useCallback((e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (e.dataTransfer.types.includes('Files')) {\n setIsDragOver(true);\n }\n }, []);\n\n const handleDragLeave = useCallback((e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const { clientX, clientY } = e;\n if (\n clientX < rect.left ||\n clientX > rect.right ||\n clientY < rect.top ||\n clientY > rect.bottom\n ) {\n setIsDragOver(false);\n }\n }, []);\n\n const handleDrop = useCallback(\n async (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n\n const files = Array.from(e.dataTransfer.files);\n if (files.length === 0) return;\n\n const assets = await attachFiles(files, 'drop');\n if (assets.length > 0) {\n onUpload?.(assets);\n }\n },\n [attachFiles, onUpload],\n );\n\n return (\n <div\n className={cn('relative', className)}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {children}\n {isDragOver && !isUploading && (\n <div className=\"aui-drop-overlay pointer-events-none absolute inset-0 z-20 flex items-center justify-center rounded-2xl border-2 border-dashed border-primary/50 bg-primary/5\">\n <span className=\"text-sm font-medium text-primary\">Drop files to upload</span>\n </div>\n )}\n </div>\n );\n};\n"],"names":["useState","useAttachFiles","useAttachments","useRef","useEffect","useCallback","jsxs","cn","jsx"],"mappings":";;;;;;;AA+BO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,YAAY,aAAa,IAAIA,
|
|
1
|
+
{"version":3,"file":"ComposerDropZone.cjs","sources":["../../src/composer/ComposerDropZone.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type DragEvent,\n type FC,\n type ReactNode,\n} from 'react';\nimport { useAttachments } from './AttachmentContext';\nimport { useAttachFiles } from './useAttachFiles';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\n\nexport interface ComposerDropZoneProps {\n children: ReactNode;\n className?: string;\n /** Called after files are uploaded via drag-and-drop. */\n onUpload?: (assets: UploadedAsset[]) => void;\n /**\n * Reports whether files are being dragged over the zone, so the composer\n * surface inside can tint itself (`ChatComposerDock dragActive`). Called\n * with `false` on mount and again on every change.\n */\n onDragActiveChange?: (active: boolean) => void;\n}\n\n/**\n * Wraps the composer area with drag-and-drop file upload support.\n * Shows a visual drop indicator when files are dragged over.\n */\nexport const ComposerDropZone: FC<ComposerDropZoneProps> = ({\n children,\n className,\n onUpload,\n onDragActiveChange,\n}) => {\n const [isDragOver, setIsDragOver] = useState(false);\n const { attachFiles } = useAttachFiles();\n const { isUploading } = useAttachments();\n\n const onDragActiveChangeRef = useRef(onDragActiveChange);\n onDragActiveChangeRef.current = onDragActiveChange;\n useEffect(() => {\n onDragActiveChangeRef.current?.(isDragOver);\n }, [isDragOver]);\n\n const handleDragOver = useCallback((e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (e.dataTransfer.types.includes('Files')) {\n setIsDragOver(true);\n }\n }, []);\n\n const handleDragLeave = useCallback((e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const { clientX, clientY } = e;\n if (\n clientX < rect.left ||\n clientX > rect.right ||\n clientY < rect.top ||\n clientY > rect.bottom\n ) {\n setIsDragOver(false);\n }\n }, []);\n\n const handleDrop = useCallback(\n async (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n\n const files = Array.from(e.dataTransfer.files);\n if (files.length === 0) return;\n\n const assets = await attachFiles(files, 'drop');\n if (assets.length > 0) {\n onUpload?.(assets);\n }\n },\n [attachFiles, onUpload],\n );\n\n return (\n <div\n className={cn('relative', className)}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {children}\n {isDragOver && !isUploading && (\n <div className=\"aui-drop-overlay pointer-events-none absolute inset-0 z-20 flex items-center justify-center rounded-2xl border-2 border-dashed border-primary/50 bg-primary/5\">\n <span className=\"text-sm font-medium text-primary\">Drop files to upload</span>\n </div>\n )}\n </div>\n );\n};\n"],"names":["useState","useAttachFiles","useAttachments","useRef","useEffect","useCallback","jsxs","cn","jsx"],"mappings":";;;;;;;AA+BO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,YAAY,aAAa,IAAIA,WAAAA,SAAS,KAAK;AAClD,QAAM,EAAE,YAAA,IAAgBC,8BAAA;AACxB,QAAM,EAAE,YAAA,IAAgBC,iCAAA;AAExB,QAAM,wBAAwBC,WAAAA,OAAO,kBAAkB;AACvD,wBAAsB,UAAU;AAChCC,aAAAA,UAAU,MAAM;;AACd,gCAAsB,YAAtB,+CAAgC;AAAA,EAClC,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,iBAAiBC,uBAAY,CAAC,MAAiB;AACnD,MAAE,eAAA;AACF,MAAE,gBAAA;AACF,QAAI,EAAE,aAAa,MAAM,SAAS,OAAO,GAAG;AAC1C,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAM,kBAAkBA,uBAAY,CAAC,MAAiB;AACpD,MAAE,eAAA;AACF,MAAE,gBAAA;AACF,UAAM,OAAQ,EAAE,cAA8B,sBAAA;AAC9C,UAAM,EAAE,SAAS,QAAA,IAAY;AAC7B,QACE,UAAU,KAAK,QACf,UAAU,KAAK,SACf,UAAU,KAAK,OACf,UAAU,KAAK,QACf;AACA,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAM,aAAaA,WAAAA;AAAAA,IACjB,OAAO,MAAiB;AACtB,QAAE,eAAA;AACF,QAAE,gBAAA;AACF,oBAAc,KAAK;AAEnB,YAAM,QAAQ,MAAM,KAAK,EAAE,aAAa,KAAK;AAC7C,UAAI,MAAM,WAAW,EAAG;AAExB,YAAM,SAAS,MAAM,YAAY,OAAO,MAAM;AAC9C,UAAI,OAAO,SAAS,GAAG;AACrB,6CAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,CAAC,aAAa,QAAQ;AAAA,EAAA;AAGxB,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,OAAAA,GAAG,YAAY,SAAS;AAAA,MACnC,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ;AAAA,MAEP,UAAA;AAAA,QAAA;AAAA,QACA,cAAc,CAAC,eACdC,2BAAAA,IAAC,OAAA,EAAI,WAAU,iKACb,UAAAA,2BAAAA,IAAC,QAAA,EAAK,WAAU,oCAAmC,UAAA,uBAAA,CAAoB,EAAA,CACzE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
|
|
@@ -2,22 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const lucideReact = require("lucide-react");
|
|
5
|
-
const
|
|
5
|
+
const require$$0 = require("react");
|
|
6
6
|
const useAttachFiles = require("./useAttachFiles.cjs");
|
|
7
|
+
const tooltip = require("../ui/tooltip.cjs");
|
|
7
8
|
const cnfast = require("cnfast");
|
|
8
9
|
const FileUploadButton = ({
|
|
9
10
|
className,
|
|
10
11
|
onUpload,
|
|
11
|
-
accept
|
|
12
|
+
accept,
|
|
13
|
+
disabledReason = null
|
|
12
14
|
}) => {
|
|
13
|
-
const inputRef =
|
|
15
|
+
const inputRef = require$$0.useRef(null);
|
|
14
16
|
const { attachFiles, isUploading, error, clearError } = useAttachFiles.useAttachFiles();
|
|
15
|
-
const
|
|
17
|
+
const unavailable = Boolean(disabledReason);
|
|
18
|
+
const handleClick = require$$0.useCallback(() => {
|
|
16
19
|
var _a;
|
|
20
|
+
if (unavailable) return;
|
|
17
21
|
clearError();
|
|
18
22
|
(_a = inputRef.current) == null ? void 0 : _a.click();
|
|
19
|
-
}, [clearError]);
|
|
20
|
-
const handleFiles =
|
|
23
|
+
}, [clearError, unavailable]);
|
|
24
|
+
const handleFiles = require$$0.useCallback(
|
|
21
25
|
async (files) => {
|
|
22
26
|
if (!files || files.length === 0) return;
|
|
23
27
|
const assets = await attachFiles(Array.from(files), "paperclip");
|
|
@@ -30,6 +34,25 @@ const FileUploadButton = ({
|
|
|
30
34
|
},
|
|
31
35
|
[attachFiles, onUpload]
|
|
32
36
|
);
|
|
37
|
+
const button = /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
"button",
|
|
39
|
+
{
|
|
40
|
+
type: "button",
|
|
41
|
+
onClick: handleClick,
|
|
42
|
+
disabled: isUploading,
|
|
43
|
+
"aria-disabled": unavailable || void 0,
|
|
44
|
+
"data-unavailable": unavailable || void 0,
|
|
45
|
+
className: cnfast.cn(
|
|
46
|
+
"aui-file-upload-btn flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-50 disabled:pointer-events-none",
|
|
47
|
+
error && "text-destructive",
|
|
48
|
+
className,
|
|
49
|
+
unavailable && "cursor-not-allowed opacity-30 hover:bg-transparent hover:text-muted-foreground"
|
|
50
|
+
),
|
|
51
|
+
title: unavailable ? void 0 : error ?? (isUploading ? "Uploading..." : "Attach files"),
|
|
52
|
+
"aria-label": isUploading ? "Uploading files" : "Attach files",
|
|
53
|
+
children: isUploading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { className: "size-4 animate-spin" }) : error ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircleIcon, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PaperclipIcon, { className: "size-4" })
|
|
54
|
+
}
|
|
55
|
+
);
|
|
33
56
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
34
57
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
35
58
|
"input",
|
|
@@ -43,22 +66,14 @@ const FileUploadButton = ({
|
|
|
43
66
|
"aria-label": "Upload files"
|
|
44
67
|
}
|
|
45
68
|
),
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
error && "text-destructive",
|
|
55
|
-
className
|
|
56
|
-
),
|
|
57
|
-
title: error ?? (isUploading ? "Uploading..." : "Attach files"),
|
|
58
|
-
"aria-label": isUploading ? "Uploading files" : "Attach files",
|
|
59
|
-
children: isUploading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { className: "size-4 animate-spin" }) : error ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircleIcon, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PaperclipIcon, { className: "size-4" })
|
|
60
|
-
}
|
|
61
|
-
)
|
|
69
|
+
unavailable ? (
|
|
70
|
+
// The reason in the SDK's tooltip, which opens on keyboard focus as well as on hover (a
|
|
71
|
+
// native title shows only to a pointer).
|
|
72
|
+
/* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
73
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: button }),
|
|
74
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { side: "bottom", children: disabledReason })
|
|
75
|
+
] })
|
|
76
|
+
) : button
|
|
62
77
|
] });
|
|
63
78
|
};
|
|
64
79
|
exports.FileUploadButton = FileUploadButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadButton.cjs","sources":["../../src/composer/FileUploadButton.tsx"],"sourcesContent":["import { PaperclipIcon, Loader2Icon, AlertCircleIcon } from 'lucide-react';\nimport { useCallback, useRef, type FC } from 'react';\nimport { useAttachFiles } from './useAttachFiles';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\n\nexport interface FileUploadButtonProps {\n className?: string;\n /** Called after files are uploaded successfully. Receives the created assets. */\n onUpload?: (assets: UploadedAsset[]) => void;\n /** Accepted file types (MIME pattern). Defaults to all files. */\n accept?: string;\n}\n\n/**\n * Paperclip button that opens a file picker and uploads selected files to Athena.\n * After upload, adds files to the attachment context so they appear as pills\n * above the composer and get included when the message is sent.\n */\nexport const FileUploadButton: FC<FileUploadButtonProps> = ({\n className,\n onUpload,\n accept,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const { attachFiles, isUploading, error, clearError } = useAttachFiles();\n\n const handleClick = useCallback(() => {\n clearError();\n inputRef.current?.click();\n }, [clearError]);\n\n const handleFiles = useCallback(\n async (files: FileList | null) => {\n if (!files || files.length === 0) return;\n\n const assets = await attachFiles(Array.from(files), 'paperclip');\n if (assets.length > 0) {\n onUpload?.(assets);\n }\n\n // Reset input so the same file can be re-selected\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n },\n [attachFiles, onUpload],\n );\n\n
|
|
1
|
+
{"version":3,"file":"FileUploadButton.cjs","sources":["../../src/composer/FileUploadButton.tsx"],"sourcesContent":["import { PaperclipIcon, Loader2Icon, AlertCircleIcon } from 'lucide-react';\nimport { useCallback, useRef, type FC } from 'react';\nimport { useAttachFiles } from './useAttachFiles';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip';\n\nexport interface FileUploadButtonProps {\n className?: string;\n /** Called after files are uploaded successfully. Receives the created assets. */\n onUpload?: (assets: UploadedAsset[]) => void;\n /** Accepted file types (MIME pattern). Defaults to all files. */\n accept?: string;\n /**\n * Why attaching is off right now, e.g. \"Needs a connection…\" while the host knows Athena can't be\n * reached: the button shows disabled with this in its tooltip and the file picker does not open.\n * It stays focusable, and the tooltip opens on keyboard focus as on hover. `null` or absent: on.\n */\n disabledReason?: string | null;\n}\n\n/**\n * Paperclip button that opens a file picker and uploads selected files to Athena.\n * After upload, adds files to the attachment context so they appear as pills\n * above the composer and get included when the message is sent.\n */\nexport const FileUploadButton: FC<FileUploadButtonProps> = ({\n className,\n onUpload,\n accept,\n disabledReason = null,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const { attachFiles, isUploading, error, clearError } = useAttachFiles();\n const unavailable = Boolean(disabledReason);\n\n const handleClick = useCallback(() => {\n if (unavailable) return;\n clearError();\n inputRef.current?.click();\n }, [clearError, unavailable]);\n\n const handleFiles = useCallback(\n async (files: FileList | null) => {\n if (!files || files.length === 0) return;\n\n const assets = await attachFiles(Array.from(files), 'paperclip');\n if (assets.length > 0) {\n onUpload?.(assets);\n }\n\n // Reset input so the same file can be re-selected\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n },\n [attachFiles, onUpload],\n );\n\n const button = (\n <button\n type=\"button\"\n onClick={handleClick}\n disabled={isUploading}\n // Off with a reason, it keeps its pointer and its focus: the reason has to be readable.\n aria-disabled={unavailable || undefined}\n data-unavailable={unavailable || undefined}\n className={cn(\n 'aui-file-upload-btn flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-50 disabled:pointer-events-none',\n error && 'text-destructive',\n className,\n unavailable &&\n 'cursor-not-allowed opacity-30 hover:bg-transparent hover:text-muted-foreground',\n )}\n title={unavailable ? undefined : (error ?? (isUploading ? 'Uploading...' : 'Attach files'))}\n aria-label={isUploading ? 'Uploading files' : 'Attach files'}\n >\n {isUploading ? (\n <Loader2Icon className=\"size-4 animate-spin\" />\n ) : error ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <PaperclipIcon className=\"size-4\" />\n )}\n </button>\n );\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n multiple\n accept={accept}\n className=\"hidden\"\n onChange={(e) => handleFiles(e.target.files)}\n aria-label=\"Upload files\"\n />\n {unavailable ? (\n // The reason in the SDK's tooltip, which opens on keyboard focus as well as on hover (a\n // native title shows only to a pointer).\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"bottom\">{disabledReason}</TooltipContent>\n </Tooltip>\n ) : (\n button\n )}\n </>\n );\n};\n"],"names":["useRef","useAttachFiles","useCallback","jsx","cn","Loader2Icon","AlertCircleIcon","PaperclipIcon","jsxs","Fragment","Tooltip","TooltipTrigger","TooltipContent"],"mappings":";;;;;;;;AA0BO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AACnB,MAAM;AACJ,QAAM,WAAWA,WAAAA,OAAyB,IAAI;AAC9C,QAAM,EAAE,aAAa,aAAa,OAAO,WAAA,IAAeC,eAAAA,eAAA;AACxD,QAAM,cAAc,QAAQ,cAAc;AAE1C,QAAM,cAAcC,WAAAA,YAAY,MAAM;;AACpC,QAAI,YAAa;AACjB,eAAA;AACA,mBAAS,YAAT,mBAAkB;AAAA,EACpB,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,QAAM,cAAcA,WAAAA;AAAAA,IAClB,OAAO,UAA2B;AAChC,UAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAElC,YAAM,SAAS,MAAM,YAAY,MAAM,KAAK,KAAK,GAAG,WAAW;AAC/D,UAAI,OAAO,SAAS,GAAG;AACrB,6CAAW;AAAA,MACb;AAGA,UAAI,SAAS,SAAS;AACpB,iBAAS,QAAQ,QAAQ;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,aAAa,QAAQ;AAAA,EAAA;AAGxB,QAAM,SACJC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,MAEV,iBAAe,eAAe;AAAA,MAC9B,oBAAkB,eAAe;AAAA,MACjC,WAAWC,OAAAA;AAAAA,QACT;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA,eACE;AAAA,MAAA;AAAA,MAEJ,OAAO,cAAc,SAAa,UAAU,cAAc,iBAAiB;AAAA,MAC3E,cAAY,cAAc,oBAAoB;AAAA,MAE7C,UAAA,cACCD,2BAAAA,IAACE,YAAAA,aAAA,EAAY,WAAU,uBAAsB,IAC3C,QACFF,2BAAAA,IAACG,YAAAA,iBAAA,EAAgB,WAAU,UAAS,IAEpCH,2BAAAA,IAACI,2BAAA,EAAc,WAAU,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAKxC,SACEC,2BAAAA,KAAAC,qBAAA,EACE,UAAA;AAAA,IAAAN,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,MAAK;AAAA,QACL,UAAQ;AAAA,QACR;AAAA,QACA,WAAU;AAAA,QACV,UAAU,CAAC,MAAM,YAAY,EAAE,OAAO,KAAK;AAAA,QAC3C,cAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ;AAAA;AAAA;AAAA,sCAGEO,QAAAA,SAAA,EACC,UAAA;AAAA,QAAAP,2BAAAA,IAACQ,QAAAA,gBAAA,EAAe,SAAO,MAAE,UAAA,QAAO;AAAA,QAChCR,2BAAAA,IAACS,QAAAA,gBAAA,EAAe,MAAK,UAAU,UAAA,eAAA,CAAe;AAAA,MAAA,EAAA,CAChD;AAAA,QAEA;AAAA,EAAA,GAEJ;AAEJ;;"}
|
|
@@ -6,6 +6,12 @@ export interface FileUploadButtonProps {
|
|
|
6
6
|
onUpload?: (assets: UploadedAsset[]) => void;
|
|
7
7
|
/** Accepted file types (MIME pattern). Defaults to all files. */
|
|
8
8
|
accept?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Why attaching is off right now, e.g. "Needs a connection…" while the host knows Athena can't be
|
|
11
|
+
* reached: the button shows disabled with this in its tooltip and the file picker does not open.
|
|
12
|
+
* It stays focusable, and the tooltip opens on keyboard focus as on hover. `null` or absent: on.
|
|
13
|
+
*/
|
|
14
|
+
disabledReason?: string | null;
|
|
9
15
|
}
|
|
10
16
|
/**
|
|
11
17
|
* Paperclip button that opens a file picker and uploads selected files to Athena.
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { jsxs, Fragment
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Loader2Icon, AlertCircleIcon, PaperclipIcon } from "lucide-react";
|
|
3
3
|
import { useRef, useCallback } from "react";
|
|
4
4
|
import { useAttachFiles } from "./useAttachFiles.js";
|
|
5
|
+
import { Tooltip, TooltipTrigger, TooltipContent } from "../ui/tooltip.js";
|
|
5
6
|
import { cn } from "cnfast";
|
|
6
7
|
const FileUploadButton = ({
|
|
7
8
|
className,
|
|
8
9
|
onUpload,
|
|
9
|
-
accept
|
|
10
|
+
accept,
|
|
11
|
+
disabledReason = null
|
|
10
12
|
}) => {
|
|
11
13
|
const inputRef = useRef(null);
|
|
12
14
|
const { attachFiles, isUploading, error, clearError } = useAttachFiles();
|
|
15
|
+
const unavailable = Boolean(disabledReason);
|
|
13
16
|
const handleClick = useCallback(() => {
|
|
14
17
|
var _a;
|
|
18
|
+
if (unavailable) return;
|
|
15
19
|
clearError();
|
|
16
20
|
(_a = inputRef.current) == null ? void 0 : _a.click();
|
|
17
|
-
}, [clearError]);
|
|
21
|
+
}, [clearError, unavailable]);
|
|
18
22
|
const handleFiles = useCallback(
|
|
19
23
|
async (files) => {
|
|
20
24
|
if (!files || files.length === 0) return;
|
|
@@ -28,6 +32,25 @@ const FileUploadButton = ({
|
|
|
28
32
|
},
|
|
29
33
|
[attachFiles, onUpload]
|
|
30
34
|
);
|
|
35
|
+
const button = /* @__PURE__ */ jsx(
|
|
36
|
+
"button",
|
|
37
|
+
{
|
|
38
|
+
type: "button",
|
|
39
|
+
onClick: handleClick,
|
|
40
|
+
disabled: isUploading,
|
|
41
|
+
"aria-disabled": unavailable || void 0,
|
|
42
|
+
"data-unavailable": unavailable || void 0,
|
|
43
|
+
className: cn(
|
|
44
|
+
"aui-file-upload-btn flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-50 disabled:pointer-events-none",
|
|
45
|
+
error && "text-destructive",
|
|
46
|
+
className,
|
|
47
|
+
unavailable && "cursor-not-allowed opacity-30 hover:bg-transparent hover:text-muted-foreground"
|
|
48
|
+
),
|
|
49
|
+
title: unavailable ? void 0 : error ?? (isUploading ? "Uploading..." : "Attach files"),
|
|
50
|
+
"aria-label": isUploading ? "Uploading files" : "Attach files",
|
|
51
|
+
children: isUploading ? /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" }) : error ? /* @__PURE__ */ jsx(AlertCircleIcon, { className: "size-4" }) : /* @__PURE__ */ jsx(PaperclipIcon, { className: "size-4" })
|
|
52
|
+
}
|
|
53
|
+
);
|
|
31
54
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
32
55
|
/* @__PURE__ */ jsx(
|
|
33
56
|
"input",
|
|
@@ -41,22 +64,14 @@ const FileUploadButton = ({
|
|
|
41
64
|
"aria-label": "Upload files"
|
|
42
65
|
}
|
|
43
66
|
),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
error && "text-destructive",
|
|
53
|
-
className
|
|
54
|
-
),
|
|
55
|
-
title: error ?? (isUploading ? "Uploading..." : "Attach files"),
|
|
56
|
-
"aria-label": isUploading ? "Uploading files" : "Attach files",
|
|
57
|
-
children: isUploading ? /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" }) : error ? /* @__PURE__ */ jsx(AlertCircleIcon, { className: "size-4" }) : /* @__PURE__ */ jsx(PaperclipIcon, { className: "size-4" })
|
|
58
|
-
}
|
|
59
|
-
)
|
|
67
|
+
unavailable ? (
|
|
68
|
+
// The reason in the SDK's tooltip, which opens on keyboard focus as well as on hover (a
|
|
69
|
+
// native title shows only to a pointer).
|
|
70
|
+
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
71
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button }),
|
|
72
|
+
/* @__PURE__ */ jsx(TooltipContent, { side: "bottom", children: disabledReason })
|
|
73
|
+
] })
|
|
74
|
+
) : button
|
|
60
75
|
] });
|
|
61
76
|
};
|
|
62
77
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadButton.js","sources":["../../src/composer/FileUploadButton.tsx"],"sourcesContent":["import { PaperclipIcon, Loader2Icon, AlertCircleIcon } from 'lucide-react';\nimport { useCallback, useRef, type FC } from 'react';\nimport { useAttachFiles } from './useAttachFiles';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\n\nexport interface FileUploadButtonProps {\n className?: string;\n /** Called after files are uploaded successfully. Receives the created assets. */\n onUpload?: (assets: UploadedAsset[]) => void;\n /** Accepted file types (MIME pattern). Defaults to all files. */\n accept?: string;\n}\n\n/**\n * Paperclip button that opens a file picker and uploads selected files to Athena.\n * After upload, adds files to the attachment context so they appear as pills\n * above the composer and get included when the message is sent.\n */\nexport const FileUploadButton: FC<FileUploadButtonProps> = ({\n className,\n onUpload,\n accept,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const { attachFiles, isUploading, error, clearError } = useAttachFiles();\n\n const handleClick = useCallback(() => {\n clearError();\n inputRef.current?.click();\n }, [clearError]);\n\n const handleFiles = useCallback(\n async (files: FileList | null) => {\n if (!files || files.length === 0) return;\n\n const assets = await attachFiles(Array.from(files), 'paperclip');\n if (assets.length > 0) {\n onUpload?.(assets);\n }\n\n // Reset input so the same file can be re-selected\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n },\n [attachFiles, onUpload],\n );\n\n
|
|
1
|
+
{"version":3,"file":"FileUploadButton.js","sources":["../../src/composer/FileUploadButton.tsx"],"sourcesContent":["import { PaperclipIcon, Loader2Icon, AlertCircleIcon } from 'lucide-react';\nimport { useCallback, useRef, type FC } from 'react';\nimport { useAttachFiles } from './useAttachFiles';\nimport type { UploadedAsset } from './useFileUpload';\nimport { cn } from '../lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip';\n\nexport interface FileUploadButtonProps {\n className?: string;\n /** Called after files are uploaded successfully. Receives the created assets. */\n onUpload?: (assets: UploadedAsset[]) => void;\n /** Accepted file types (MIME pattern). Defaults to all files. */\n accept?: string;\n /**\n * Why attaching is off right now, e.g. \"Needs a connection…\" while the host knows Athena can't be\n * reached: the button shows disabled with this in its tooltip and the file picker does not open.\n * It stays focusable, and the tooltip opens on keyboard focus as on hover. `null` or absent: on.\n */\n disabledReason?: string | null;\n}\n\n/**\n * Paperclip button that opens a file picker and uploads selected files to Athena.\n * After upload, adds files to the attachment context so they appear as pills\n * above the composer and get included when the message is sent.\n */\nexport const FileUploadButton: FC<FileUploadButtonProps> = ({\n className,\n onUpload,\n accept,\n disabledReason = null,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const { attachFiles, isUploading, error, clearError } = useAttachFiles();\n const unavailable = Boolean(disabledReason);\n\n const handleClick = useCallback(() => {\n if (unavailable) return;\n clearError();\n inputRef.current?.click();\n }, [clearError, unavailable]);\n\n const handleFiles = useCallback(\n async (files: FileList | null) => {\n if (!files || files.length === 0) return;\n\n const assets = await attachFiles(Array.from(files), 'paperclip');\n if (assets.length > 0) {\n onUpload?.(assets);\n }\n\n // Reset input so the same file can be re-selected\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n },\n [attachFiles, onUpload],\n );\n\n const button = (\n <button\n type=\"button\"\n onClick={handleClick}\n disabled={isUploading}\n // Off with a reason, it keeps its pointer and its focus: the reason has to be readable.\n aria-disabled={unavailable || undefined}\n data-unavailable={unavailable || undefined}\n className={cn(\n 'aui-file-upload-btn flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-50 disabled:pointer-events-none',\n error && 'text-destructive',\n className,\n unavailable &&\n 'cursor-not-allowed opacity-30 hover:bg-transparent hover:text-muted-foreground',\n )}\n title={unavailable ? undefined : (error ?? (isUploading ? 'Uploading...' : 'Attach files'))}\n aria-label={isUploading ? 'Uploading files' : 'Attach files'}\n >\n {isUploading ? (\n <Loader2Icon className=\"size-4 animate-spin\" />\n ) : error ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <PaperclipIcon className=\"size-4\" />\n )}\n </button>\n );\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n multiple\n accept={accept}\n className=\"hidden\"\n onChange={(e) => handleFiles(e.target.files)}\n aria-label=\"Upload files\"\n />\n {unavailable ? (\n // The reason in the SDK's tooltip, which opens on keyboard focus as well as on hover (a\n // native title shows only to a pointer).\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"bottom\">{disabledReason}</TooltipContent>\n </Tooltip>\n ) : (\n button\n )}\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;AA0BO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AACnB,MAAM;AACJ,QAAM,WAAW,OAAyB,IAAI;AAC9C,QAAM,EAAE,aAAa,aAAa,OAAO,WAAA,IAAe,eAAA;AACxD,QAAM,cAAc,QAAQ,cAAc;AAE1C,QAAM,cAAc,YAAY,MAAM;;AACpC,QAAI,YAAa;AACjB,eAAA;AACA,mBAAS,YAAT,mBAAkB;AAAA,EACpB,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,QAAM,cAAc;AAAA,IAClB,OAAO,UAA2B;AAChC,UAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAElC,YAAM,SAAS,MAAM,YAAY,MAAM,KAAK,KAAK,GAAG,WAAW;AAC/D,UAAI,OAAO,SAAS,GAAG;AACrB,6CAAW;AAAA,MACb;AAGA,UAAI,SAAS,SAAS;AACpB,iBAAS,QAAQ,QAAQ;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,aAAa,QAAQ;AAAA,EAAA;AAGxB,QAAM,SACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,MAEV,iBAAe,eAAe;AAAA,MAC9B,oBAAkB,eAAe;AAAA,MACjC,WAAW;AAAA,QACT;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA,eACE;AAAA,MAAA;AAAA,MAEJ,OAAO,cAAc,SAAa,UAAU,cAAc,iBAAiB;AAAA,MAC3E,cAAY,cAAc,oBAAoB;AAAA,MAE7C,UAAA,cACC,oBAAC,aAAA,EAAY,WAAU,uBAAsB,IAC3C,QACF,oBAAC,iBAAA,EAAgB,WAAU,UAAS,IAEpC,oBAAC,eAAA,EAAc,WAAU,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAKxC,SACE,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,MAAK;AAAA,QACL,UAAQ;AAAA,QACR;AAAA,QACA,WAAU;AAAA,QACV,UAAU,CAAC,MAAM,YAAY,EAAE,OAAO,KAAK;AAAA,QAC3C,cAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ;AAAA;AAAA;AAAA,2BAGE,SAAA,EACC,UAAA;AAAA,QAAA,oBAAC,gBAAA,EAAe,SAAO,MAAE,UAAA,QAAO;AAAA,QAChC,oBAAC,gBAAA,EAAe,MAAK,UAAU,UAAA,eAAA,CAAe;AAAA,MAAA,EAAA,CAChD;AAAA,QAEA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const
|
|
4
|
+
const require$$0 = require("react");
|
|
5
5
|
const zustand = require("zustand");
|
|
6
6
|
const vanilla = require("zustand/vanilla");
|
|
7
|
-
const QuoteCtx =
|
|
7
|
+
const QuoteCtx = require$$0.createContext(null);
|
|
8
8
|
function createQuoteStore() {
|
|
9
9
|
return vanilla.createStore(() => ({ quote: null }));
|
|
10
10
|
}
|
|
11
11
|
function QuoteProvider({ children, store }) {
|
|
12
|
-
const outer =
|
|
12
|
+
const outer = require$$0.useContext(QuoteCtx);
|
|
13
13
|
if (store) return /* @__PURE__ */ jsxRuntime.jsx(StoreQuoteProvider, { store, children });
|
|
14
14
|
if (outer) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
|
15
15
|
return /* @__PURE__ */ jsxRuntime.jsx(OwnQuoteProvider, { children });
|
|
16
16
|
}
|
|
17
17
|
function OwnQuoteProvider({ children }) {
|
|
18
|
-
const [store] =
|
|
18
|
+
const [store] = require$$0.useState(createQuoteStore);
|
|
19
19
|
return /* @__PURE__ */ jsxRuntime.jsx(StoreQuoteProvider, { store, children });
|
|
20
20
|
}
|
|
21
21
|
function StoreQuoteProvider({ children, store }) {
|
|
22
22
|
const quote = zustand.useStore(store, (state) => state.quote);
|
|
23
|
-
const actions =
|
|
23
|
+
const actions = require$$0.useMemo(
|
|
24
24
|
() => ({
|
|
25
25
|
setQuote: (next) => store.setState({ quote: next }),
|
|
26
26
|
clearQuote: () => store.setState({ quote: null })
|
|
27
27
|
}),
|
|
28
28
|
[store]
|
|
29
29
|
);
|
|
30
|
-
const value =
|
|
30
|
+
const value = require$$0.useMemo(() => ({ quote, ...actions }), [quote, actions]);
|
|
31
31
|
return /* @__PURE__ */ jsxRuntime.jsx(QuoteCtx.Provider, { value, children });
|
|
32
32
|
}
|
|
33
33
|
function useQuote() {
|
|
34
|
-
const ctx =
|
|
34
|
+
const ctx = require$$0.useContext(QuoteCtx);
|
|
35
35
|
if (!ctx) {
|
|
36
36
|
throw new Error("[AthenaSDK] useQuote must be used within <QuoteProvider>");
|
|
37
37
|
}
|
|
@@ -56,7 +56,7 @@ function elementOf(node) {
|
|
|
56
56
|
}
|
|
57
57
|
function useQuoteFromPostMessage({ scope } = {}) {
|
|
58
58
|
const { setQuote } = useQuote();
|
|
59
|
-
|
|
59
|
+
require$$0.useEffect(() => {
|
|
60
60
|
var _a;
|
|
61
61
|
const doc = ((_a = scope == null ? void 0 : scope.current) == null ? void 0 : _a.ownerDocument) ?? document;
|
|
62
62
|
const win = doc.defaultView ?? window;
|