@athenaintel/react 0.19.0 → 0.21.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 +171 -11
- package/dist/assets/AssetPanel.cjs +277 -0
- package/dist/assets/AssetPanel.cjs.map +1 -0
- package/dist/assets/AssetPanel.js +277 -0
- package/dist/assets/AssetPanel.js.map +1 -0
- package/dist/assets/AthenaAssetEmbed.cjs +151 -0
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -0
- package/dist/assets/AthenaAssetEmbed.js +151 -0
- package/dist/assets/AthenaAssetEmbed.js.map +1 -0
- package/dist/assets/AthenaLayout.cjs +69 -0
- package/dist/assets/AthenaLayout.cjs.map +1 -0
- package/dist/assets/AthenaLayout.js +69 -0
- package/dist/assets/AthenaLayout.js.map +1 -0
- package/dist/assets/asset-embed-messages.cjs +39 -0
- package/dist/assets/asset-embed-messages.cjs.map +1 -0
- package/dist/assets/asset-embed-messages.js +39 -0
- package/dist/assets/asset-embed-messages.js.map +1 -0
- package/dist/assets/asset-panel-store.cjs +124 -0
- package/dist/assets/asset-panel-store.cjs.map +1 -0
- package/dist/assets/asset-panel-store.js +124 -0
- package/dist/assets/asset-panel-store.js.map +1 -0
- package/dist/assets/asset-panel-url.cjs +40 -0
- package/dist/assets/asset-panel-url.cjs.map +1 -0
- package/dist/assets/asset-panel-url.js +40 -0
- package/dist/assets/asset-panel-url.js.map +1 -0
- package/dist/assets/use-asset-embed.cjs +370 -0
- package/dist/assets/use-asset-embed.cjs.map +1 -0
- package/dist/assets/use-asset-embed.js +370 -0
- package/dist/assets/use-asset-embed.js.map +1 -0
- package/dist/{AthenaAuthContext-B3AwLA5Z.cjs → auth/AthenaAuthContext.cjs} +5 -4
- package/dist/auth/AthenaAuthContext.cjs.map +1 -0
- package/dist/{AthenaAuthContext-DQsdayH2.js → auth/AthenaAuthContext.js} +3 -3
- package/dist/auth/AthenaAuthContext.js.map +1 -0
- package/dist/auth/AthenaAuthProvider.cjs +141 -0
- package/dist/auth/AthenaAuthProvider.cjs.map +1 -0
- package/dist/auth/AthenaAuthProvider.js +141 -0
- package/dist/auth/AthenaAuthProvider.js.map +1 -0
- package/dist/{auth.cjs → auth/AthenaSSOProvider.cjs} +14 -151
- package/dist/auth/AthenaSSOProvider.cjs.map +1 -0
- package/dist/{auth.js → auth/AthenaSSOProvider.js} +4 -142
- package/dist/auth/AthenaSSOProvider.js.map +1 -0
- package/dist/auth/index.cjs +10 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.js +10 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/chat/AthenaChat.cjs +753 -0
- package/dist/chat/AthenaChat.cjs.map +1 -0
- package/dist/chat/AthenaChat.d.ts +3 -2
- package/dist/chat/AthenaChat.js +753 -0
- package/dist/chat/AthenaChat.js.map +1 -0
- package/dist/chat/AthenaChatErrorBoundary.cjs +53 -0
- package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -0
- package/dist/chat/AthenaChatErrorBoundary.js +53 -0
- package/dist/chat/AthenaChatErrorBoundary.js.map +1 -0
- package/dist/chat/StatewireApprovalCard.cjs +189 -0
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -0
- package/dist/chat/StatewireApprovalCard.d.ts +14 -0
- package/dist/chat/StatewireApprovalCard.js +189 -0
- package/dist/chat/StatewireApprovalCard.js.map +1 -0
- package/dist/chat/StatewireClientToolBridge.cjs +51 -0
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -0
- package/dist/chat/StatewireClientToolBridge.js +51 -0
- package/dist/chat/StatewireClientToolBridge.js.map +1 -0
- package/dist/chat/StatewireQueuedMessages.cjs +433 -0
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -0
- package/dist/chat/StatewireQueuedMessages.d.ts +3 -4
- package/dist/chat/StatewireQueuedMessages.js +433 -0
- package/dist/chat/StatewireQueuedMessages.js.map +1 -0
- package/dist/chat/athena-citation-links.cjs +342 -0
- package/dist/chat/athena-citation-links.cjs.map +1 -0
- package/dist/chat/athena-citation-links.js +342 -0
- package/dist/chat/athena-citation-links.js.map +1 -0
- package/dist/chat/run-activity.cjs +28 -0
- package/dist/chat/run-activity.cjs.map +1 -0
- package/dist/chat/run-activity.js +28 -0
- package/dist/chat/run-activity.js.map +1 -0
- package/dist/chat/statewire-banners.cjs +83 -0
- package/dist/chat/statewire-banners.cjs.map +1 -0
- package/dist/chat/statewire-banners.js +83 -0
- package/dist/chat/statewire-banners.js.map +1 -0
- package/dist/chat/statewire-client-tools.cjs +74 -0
- package/dist/chat/statewire-client-tools.cjs.map +1 -0
- package/dist/chat/statewire-client-tools.js +74 -0
- package/dist/chat/statewire-client-tools.js.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.js +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +243 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +14 -7
- package/dist/chat/super-grouping/SuperGroupingCard.js +243 -0
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs +131 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.d.ts +16 -0
- package/dist/chat/super-grouping/ToolTimeline.js +131 -0
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.cjs +157 -0
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.d.ts +6 -3
- package/dist/chat/super-grouping/activity-timeline.js +157 -0
- package/dist/chat/super-grouping/activity-timeline.js.map +1 -0
- package/dist/chat/super-grouping/grouping-function.cjs +55 -0
- package/dist/chat/super-grouping/grouping-function.cjs.map +1 -0
- package/dist/chat/super-grouping/grouping-function.js +55 -0
- package/dist/chat/super-grouping/grouping-function.js.map +1 -0
- package/dist/chat/super-grouping/index.cjs +26 -0
- package/dist/chat/super-grouping/index.cjs.map +1 -0
- package/dist/chat/super-grouping/index.js +26 -0
- package/dist/chat/super-grouping/index.js.map +1 -0
- package/dist/chat/super-grouping/timeline-step.cjs +65 -0
- package/dist/chat/super-grouping/timeline-step.cjs.map +1 -0
- package/dist/chat/super-grouping/timeline-step.d.ts +17 -0
- package/dist/chat/super-grouping/timeline-step.js +65 -0
- package/dist/chat/super-grouping/timeline-step.js.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.cjs +96 -0
- package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.js +96 -0
- package/dist/chat/super-grouping/toolkit-map.js.map +1 -0
- package/dist/chat/tiptap-text.cjs +101 -0
- package/dist/chat/tiptap-text.cjs.map +1 -0
- package/dist/chat/tiptap-text.js +101 -0
- package/dist/chat/tiptap-text.js.map +1 -0
- package/dist/chat/tooltip-icon-button.cjs +32 -0
- package/dist/chat/tooltip-icon-button.cjs.map +1 -0
- package/dist/chat/tooltip-icon-button.js +32 -0
- package/dist/chat/tooltip-icon-button.js.map +1 -0
- package/dist/chat/use-athena-run-live.cjs +24 -0
- package/dist/chat/use-athena-run-live.cjs.map +1 -0
- package/dist/chat/use-athena-run-live.d.ts +10 -0
- package/dist/chat/use-athena-run-live.js +24 -0
- package/dist/chat/use-athena-run-live.js.map +1 -0
- package/dist/chat/use-statewire-approval-request.cjs +51 -0
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -0
- package/dist/chat/use-statewire-approval-request.d.ts +12 -2
- package/dist/chat/use-statewire-approval-request.js +51 -0
- package/dist/chat/use-statewire-approval-request.js.map +1 -0
- package/dist/chat-ui/auth/sign-in-card.cjs +128 -0
- package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -0
- package/dist/chat-ui/auth/sign-in-card.js +128 -0
- package/dist/chat-ui/auth/sign-in-card.js.map +1 -0
- package/dist/chat-ui/composer/composer-action.cjs +11 -0
- package/dist/chat-ui/composer/composer-action.cjs.map +1 -0
- package/dist/chat-ui/composer/composer-action.d.ts +5 -8
- package/dist/chat-ui/composer/composer-action.js +11 -0
- package/dist/chat-ui/composer/composer-action.js.map +1 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.cjs +25 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.cjs.map +1 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.js +25 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.js.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs +549 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.d.ts +44 -7
- package/dist/chat-ui/composer/tiptap-composer.js +549 -0
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -0
- package/dist/chat-ui/header/chat-header.cjs +33 -0
- package/dist/chat-ui/header/chat-header.cjs.map +1 -0
- package/dist/chat-ui/header/chat-header.js +33 -0
- package/dist/chat-ui/header/chat-header.js.map +1 -0
- package/dist/chat-ui/header/conversation-history-panel.cjs +369 -0
- package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -0
- package/dist/chat-ui/header/conversation-history-panel.js +369 -0
- package/dist/chat-ui/header/conversation-history-panel.js.map +1 -0
- package/dist/chat-ui/index.cjs +140 -0
- package/dist/chat-ui/index.cjs.map +1 -0
- package/dist/chat-ui/index.d.ts +4 -3
- package/dist/chat-ui/index.js +140 -0
- package/dist/chat-ui/index.js.map +1 -0
- package/dist/chat-ui/lib/asset-urls.cjs +18 -0
- package/dist/chat-ui/lib/asset-urls.cjs.map +1 -0
- package/dist/chat-ui/lib/asset-urls.js +18 -0
- package/dist/chat-ui/lib/asset-urls.js.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.cjs +253 -0
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.d.ts +11 -0
- package/dist/chat-ui/mentions/mention-chip.js +253 -0
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.cjs +196 -0
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.d.ts +26 -2
- package/dist/chat-ui/mentions/mention-extension.js +196 -0
- package/dist/chat-ui/mentions/mention-extension.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +35 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +35 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +95 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +5 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +95 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +116 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +116 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +31 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js +31 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs +27 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js +27 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +65 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.d.ts +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +65 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +63 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.d.ts +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js +63 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs +11 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js +11 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs +33 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.js +33 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +58 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js +58 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +81 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js +81 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.cjs +18 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.js +18 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +124 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +13 -2
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +124 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs +37 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.js +37 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +134 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +134 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs +91 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.js +91 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +137 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +137 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +375 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +16 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +375 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/types.cjs +9 -0
- package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/types.d.ts +14 -0
- package/dist/chat-ui/mentions/suggestions/data/types.js +9 -0
- package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +173 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +14 -4
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +173 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +45 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +45 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs +43 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js +43 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs +14 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js +14 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs +48 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js +48 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +71 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +71 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -0
- package/dist/chat-ui/messages/continue-pill.cjs +54 -0
- package/dist/chat-ui/messages/continue-pill.cjs.map +1 -0
- package/dist/chat-ui/messages/continue-pill.js +54 -0
- package/dist/chat-ui/messages/continue-pill.js.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.cjs +12 -0
- package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.js +12 -0
- package/dist/chat-ui/messages/message-actions-config.js.map +1 -0
- package/dist/chat-ui/messages/message-components.cjs +320 -0
- package/dist/chat-ui/messages/message-components.cjs.map +1 -0
- package/dist/chat-ui/messages/message-components.d.ts +1 -1
- package/dist/chat-ui/messages/message-components.js +320 -0
- package/dist/chat-ui/messages/message-components.js.map +1 -0
- package/dist/chat-ui/messages/running-indicator.cjs +49 -0
- package/dist/chat-ui/messages/running-indicator.cjs.map +1 -0
- package/dist/chat-ui/messages/running-indicator.js +49 -0
- package/dist/chat-ui/messages/running-indicator.js.map +1 -0
- package/dist/chat-ui/messages/runtime-message.cjs +66 -0
- package/dist/chat-ui/messages/runtime-message.cjs.map +1 -0
- package/dist/chat-ui/messages/runtime-message.js +66 -0
- package/dist/chat-ui/messages/runtime-message.js.map +1 -0
- package/dist/{statewire-continue-run-nE9VCKUh.cjs → chat-ui/messages/statewire-continue-run.cjs} +61 -23
- package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.d.ts +19 -5
- package/dist/{statewire-continue-run-D34gS7_1.js → chat-ui/messages/statewire-continue-run.js} +51 -14
- package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs +62 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.js +62 -0
- package/dist/chat-ui/messages/user-edit-composer.js.map +1 -0
- package/dist/chat-ui/messages/voice-delegation-card.cjs +51 -0
- package/dist/chat-ui/messages/voice-delegation-card.cjs.map +1 -0
- package/dist/chat-ui/messages/voice-delegation-card.d.ts +26 -0
- package/dist/chat-ui/messages/voice-delegation-card.js +51 -0
- package/dist/chat-ui/messages/voice-delegation-card.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-message-body.cjs +76 -0
- package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-message-body.d.ts +5 -0
- package/dist/chat-ui/rich-text/chat-message-body.js +76 -0
- package/dist/chat-ui/rich-text/chat-message-body.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.cjs +51 -0
- package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.d.ts +13 -0
- package/dist/chat-ui/rich-text/chat-node-views.js +51 -0
- package/dist/chat-ui/rich-text/chat-node-views.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-text-schema.cjs +70 -0
- package/dist/chat-ui/rich-text/chat-text-schema.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-text-schema.d.ts +7 -0
- package/dist/chat-ui/rich-text/chat-text-schema.js +70 -0
- package/dist/chat-ui/rich-text/chat-text-schema.js.map +1 -0
- package/dist/chat-ui/rich-text/dom-output-spec.cjs +83 -0
- package/dist/chat-ui/rich-text/dom-output-spec.cjs.map +1 -0
- package/dist/chat-ui/rich-text/dom-output-spec.d.ts +11 -0
- package/dist/chat-ui/rich-text/dom-output-spec.js +83 -0
- package/dist/chat-ui/rich-text/dom-output-spec.js.map +1 -0
- package/dist/chat-ui/statewire.cjs +40 -0
- package/dist/chat-ui/statewire.cjs.map +1 -0
- package/dist/chat-ui/statewire.js +40 -0
- package/dist/chat-ui/statewire.js.map +1 -0
- package/dist/chat-ui/thread/chat-composer-dock.cjs +37 -0
- package/dist/chat-ui/thread/chat-composer-dock.cjs.map +1 -0
- package/dist/chat-ui/thread/chat-composer-dock.js +37 -0
- package/dist/chat-ui/thread/chat-composer-dock.js.map +1 -0
- package/dist/chat-ui/thread/chat-thread-shell.cjs +102 -0
- package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -0
- package/dist/chat-ui/thread/chat-thread-shell.js +102 -0
- package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -0
- package/dist/chat-ui/thread/composer-send-or-stop.cjs +75 -0
- package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -0
- package/dist/chat-ui/thread/composer-send-or-stop.d.ts +0 -6
- package/dist/chat-ui/thread/composer-send-or-stop.js +75 -0
- package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs +135 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.js +135 -0
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -0
- package/dist/{collab.cjs → collab/client.cjs} +6 -166
- package/dist/collab/client.cjs.map +1 -0
- package/dist/{collab.js → collab/client.js} +5 -164
- package/dist/collab/client.js.map +1 -0
- package/dist/collab/close-policy.cjs +14 -0
- package/dist/collab/close-policy.cjs.map +1 -0
- package/dist/collab/close-policy.js +14 -0
- package/dist/collab/close-policy.js.map +1 -0
- package/dist/collab/index.cjs +17 -0
- package/dist/collab/index.cjs.map +1 -0
- package/dist/collab/index.js +17 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/mint.cjs +59 -0
- package/dist/collab/mint.cjs.map +1 -0
- package/dist/collab/mint.js +59 -0
- package/dist/collab/mint.js.map +1 -0
- package/dist/collab/react.cjs +58 -0
- package/dist/collab/react.cjs.map +1 -0
- package/dist/collab/react.js +58 -0
- package/dist/collab/react.js.map +1 -0
- package/dist/collab/shape.cjs +45 -0
- package/dist/collab/shape.cjs.map +1 -0
- package/dist/collab/shape.js +45 -0
- package/dist/collab/shape.js.map +1 -0
- package/dist/composer/AttachmentContext.cjs +40 -0
- package/dist/composer/AttachmentContext.cjs.map +1 -0
- package/dist/composer/AttachmentContext.js +40 -0
- package/dist/composer/AttachmentContext.js.map +1 -0
- package/dist/composer/ComposerAttachmentPreview.cjs +39 -0
- package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -0
- package/dist/composer/ComposerAttachmentPreview.js +39 -0
- package/dist/composer/ComposerAttachmentPreview.js.map +1 -0
- package/dist/composer/ComposerDropZone.cjs +61 -0
- package/dist/composer/ComposerDropZone.cjs.map +1 -0
- package/dist/composer/ComposerDropZone.d.ts +1 -1
- package/dist/composer/ComposerDropZone.js +61 -0
- package/dist/composer/ComposerDropZone.js.map +1 -0
- package/dist/composer/ComposerQuotePreview.cjs +42 -0
- package/dist/composer/ComposerQuotePreview.cjs.map +1 -0
- package/dist/composer/ComposerQuotePreview.js +42 -0
- package/dist/composer/ComposerQuotePreview.js.map +1 -0
- package/dist/composer/FileUploadButton.cjs +65 -0
- package/dist/composer/FileUploadButton.cjs.map +1 -0
- package/dist/composer/FileUploadButton.d.ts +1 -1
- package/dist/composer/FileUploadButton.js +65 -0
- package/dist/composer/FileUploadButton.js.map +1 -0
- package/dist/composer/QuoteContext.cjs +68 -0
- package/dist/composer/QuoteContext.cjs.map +1 -0
- package/dist/composer/QuoteContext.js +68 -0
- package/dist/composer/QuoteContext.js.map +1 -0
- package/dist/composer/build-composed-message.cjs +25 -0
- package/dist/composer/build-composed-message.cjs.map +1 -0
- package/dist/composer/build-composed-message.js +25 -0
- package/dist/composer/build-composed-message.js.map +1 -0
- package/dist/composer/clipboard.cjs +62 -0
- package/dist/composer/clipboard.cjs.map +1 -0
- package/dist/composer/clipboard.d.ts +27 -3
- package/dist/composer/clipboard.js +62 -0
- package/dist/composer/clipboard.js.map +1 -0
- package/dist/composer/useAppendToComposer.cjs +21 -0
- package/dist/composer/useAppendToComposer.cjs.map +1 -0
- package/dist/composer/useAppendToComposer.js +21 -0
- package/dist/composer/useAppendToComposer.js.map +1 -0
- package/dist/composer/useAttachFiles.cjs +40 -0
- package/dist/composer/useAttachFiles.cjs.map +1 -0
- package/dist/composer/useAttachFiles.d.ts +24 -0
- package/dist/composer/useAttachFiles.js +40 -0
- package/dist/composer/useAttachFiles.js.map +1 -0
- package/dist/composer/useComposerAttachment.cjs +25 -0
- package/dist/composer/useComposerAttachment.cjs.map +1 -0
- package/dist/composer/useComposerAttachment.js +25 -0
- package/dist/composer/useComposerAttachment.js.map +1 -0
- package/dist/composer/useFileUpload.cjs +123 -0
- package/dist/composer/useFileUpload.cjs.map +1 -0
- package/dist/composer/useFileUpload.js +123 -0
- package/dist/composer/useFileUpload.js.map +1 -0
- package/dist/composer/useSendMessage.cjs +22 -0
- package/dist/composer/useSendMessage.cjs.map +1 -0
- package/dist/composer/useSendMessage.js +22 -0
- package/dist/composer/useSendMessage.js.map +1 -0
- package/dist/diagnostics/athena-diagnostics.cjs +329 -0
- package/dist/diagnostics/athena-diagnostics.cjs.map +1 -0
- package/dist/diagnostics/athena-diagnostics.js +329 -0
- package/dist/diagnostics/athena-diagnostics.js.map +1 -0
- package/dist/diagnostics/errors.cjs +89 -0
- package/dist/diagnostics/errors.cjs.map +1 -0
- package/dist/diagnostics/errors.js +89 -0
- package/dist/diagnostics/errors.js.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.js +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.js.map +1 -0
- package/dist/index.cjs +275 -27882
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +162 -27759
- package/dist/index.js.map +1 -1
- package/dist/lib/athena-urls.cjs +194 -0
- package/dist/lib/athena-urls.cjs.map +1 -0
- package/dist/lib/athena-urls.d.ts +20 -5
- package/dist/lib/athena-urls.js +194 -0
- package/dist/lib/athena-urls.js.map +1 -0
- package/dist/lib/posthog/before-send.cjs +58 -0
- package/dist/lib/posthog/before-send.cjs.map +1 -0
- package/dist/lib/posthog/before-send.js +58 -0
- package/dist/lib/posthog/before-send.js.map +1 -0
- package/dist/lib/posthog/capture-gate.cjs +322 -0
- package/dist/lib/posthog/capture-gate.cjs.map +1 -0
- package/dist/lib/posthog/capture-gate.js +322 -0
- package/dist/lib/posthog/capture-gate.js.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs +163 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.js +163 -0
- package/dist/lib/posthog/wrap-posthog-client.js.map +1 -0
- package/dist/lib/utils.cjs +12 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +1 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.cjs +32 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.cjs.map +1 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.js +31 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs +44 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.js +44 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs +43 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +43 -0
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs +29 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +29 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs +871 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +871 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.cjs +570 -0
- package/dist/node_modules/zod/v4/core/api.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +570 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.cjs +411 -0
- package/dist/node_modules/zod/v4/core/checks.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +411 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.cjs +77 -0
- package/dist/node_modules/zod/v4/core/core.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +77 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.cjs +38 -0
- package/dist/node_modules/zod/v4/core/doc.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.cjs +76 -0
- package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +76 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +312 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +312 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.cjs +96 -0
- package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +96 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs +86 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +86 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.cjs +52 -0
- package/dist/node_modules/zod/v4/core/registries.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs +1412 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1413 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +370 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +370 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.cjs +444 -0
- package/dist/node_modules/zod/v4/core/util.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +444 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.cjs +9 -0
- package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/packages/agent-runtime/src/asset-attachment.cjs +19 -0
- package/dist/packages/agent-runtime/src/asset-attachment.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/asset-attachment.js +19 -0
- package/dist/packages/agent-runtime/src/asset-attachment.js.map +1 -0
- package/dist/packages/agent-runtime/src/auth-denial.cjs +28 -0
- package/dist/packages/agent-runtime/src/auth-denial.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/auth-denial.js +28 -0
- package/dist/packages/agent-runtime/src/auth-denial.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs +276 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js +276 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tools.cjs +137 -0
- package/dist/packages/agent-runtime/src/client-tools.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tools.js +137 -0
- package/dist/packages/agent-runtime/src/client-tools.js.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-index.cjs +80 -0
- package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-index.js +80 -0
- package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs +90 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.js +90 -0
- package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs +55 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js +55 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -0
- package/dist/packages/agent-runtime/src/edit-command.cjs +89 -0
- package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/edit-command.js +89 -0
- package/dist/packages/agent-runtime/src/edit-command.js.map +1 -0
- package/dist/packages/agent-runtime/src/errors.cjs +95 -0
- package/dist/packages/agent-runtime/src/errors.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/errors.js +95 -0
- package/dist/packages/agent-runtime/src/errors.js.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +238 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +238 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs +141 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.js +141 -0
- package/dist/packages/agent-runtime/src/interrupts.js.map +1 -0
- package/dist/packages/agent-runtime/src/message-author.cjs +31 -0
- package/dist/packages/agent-runtime/src/message-author.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/message-author.js +31 -0
- package/dist/packages/agent-runtime/src/message-author.js.map +1 -0
- package/dist/packages/agent-runtime/src/message-window.cjs +85 -0
- package/dist/packages/agent-runtime/src/message-window.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/message-window.js +85 -0
- package/dist/packages/agent-runtime/src/message-window.js.map +1 -0
- package/dist/packages/agent-runtime/src/messages.cjs +463 -0
- package/dist/packages/agent-runtime/src/messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/messages.js +463 -0
- package/dist/packages/agent-runtime/src/messages.js.map +1 -0
- package/dist/packages/agent-runtime/src/model-context.cjs +13 -0
- package/dist/packages/agent-runtime/src/model-context.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/model-context.js +13 -0
- package/dist/packages/agent-runtime/src/model-context.js.map +1 -0
- package/dist/packages/agent-runtime/src/optimistic-content.cjs +17 -0
- package/dist/packages/agent-runtime/src/optimistic-content.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/optimistic-content.js +17 -0
- package/dist/packages/agent-runtime/src/optimistic-content.js.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.cjs +31 -0
- package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.js +31 -0
- package/dist/packages/agent-runtime/src/protocol.js.map +1 -0
- package/dist/packages/agent-runtime/src/queue.cjs +67 -0
- package/dist/packages/agent-runtime/src/queue.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/queue.js +67 -0
- package/dist/packages/agent-runtime/src/queue.js.map +1 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +329 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +329 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -0
- package/dist/packages/agent-runtime/src/runtime-messages.cjs +187 -0
- package/dist/packages/agent-runtime/src/runtime-messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/runtime-messages.js +187 -0
- package/dist/packages/agent-runtime/src/runtime-messages.js.map +1 -0
- package/dist/packages/agent-runtime/src/screen-point.cjs +68 -0
- package/dist/packages/agent-runtime/src/screen-point.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/screen-point.js +68 -0
- package/dist/packages/agent-runtime/src/screen-point.js.map +1 -0
- package/dist/packages/agent-runtime/src/send-recovery.cjs +128 -0
- package/dist/packages/agent-runtime/src/send-recovery.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/send-recovery.js +128 -0
- package/dist/packages/agent-runtime/src/send-recovery.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs +249 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.js +249 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-state.cjs +16 -0
- package/dist/packages/agent-runtime/src/statewire-state.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-state.js +16 -0
- package/dist/packages/agent-runtime/src/statewire-state.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.cjs +41 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.js +41 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs +11 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js +11 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js.map +1 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.cjs +214 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.js +214 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-extras.cjs +38 -0
- package/dist/packages/agent-runtime/src/thread-extras.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-extras.js +38 -0
- package/dist/packages/agent-runtime/src/thread-extras.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-handoff.cjs +85 -0
- package/dist/packages/agent-runtime/src/thread-handoff.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-handoff.js +85 -0
- package/dist/packages/agent-runtime/src/thread-handoff.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs +90 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js +90 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-status.cjs +49 -0
- package/dist/packages/agent-runtime/src/thread-status.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-status.js +49 -0
- package/dist/packages/agent-runtime/src/thread-status.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs +1794 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js +1794 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-outputs.cjs +46 -0
- package/dist/packages/agent-runtime/src/tool-outputs.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-outputs.js +46 -0
- package/dist/packages/agent-runtime/src/tool-outputs.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-result.cjs +151 -0
- package/dist/packages/agent-runtime/src/tool-result.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-result.js +151 -0
- package/dist/packages/agent-runtime/src/tool-result.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.cjs +139 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.js +139 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs +14 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.js +14 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +44 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js +44 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs +148 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js +148 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +407 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +407 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs +133 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js +133 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -0
- package/dist/packages/agent-runtime/src/voice-presentation.cjs +37 -0
- package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/voice-presentation.js +37 -0
- package/dist/packages/agent-runtime/src/voice-presentation.js.map +1 -0
- package/dist/packages/react/package.json.cjs +9 -0
- package/dist/packages/react/package.json.cjs.map +1 -0
- package/dist/packages/react/package.json.js +9 -0
- package/dist/packages/react/package.json.js.map +1 -0
- package/dist/{AthenaContext-B1QMhIP-.cjs → provider/AthenaContext.cjs} +5 -4
- package/dist/provider/AthenaContext.cjs.map +1 -0
- package/dist/{AthenaContext-MOslgOmE.js → provider/AthenaContext.js} +3 -3
- package/dist/provider/AthenaContext.js.map +1 -0
- package/dist/provider/AthenaProvider.cjs +404 -0
- package/dist/provider/AthenaProvider.cjs.map +1 -0
- package/dist/provider/AthenaProvider.js +404 -0
- package/dist/provider/AthenaProvider.js.map +1 -0
- package/dist/provider/PostHogProvider.cjs +81 -0
- package/dist/provider/PostHogProvider.cjs.map +1 -0
- package/dist/provider/PostHogProvider.js +59 -0
- package/dist/provider/PostHogProvider.js.map +1 -0
- package/dist/provider/config.d.ts +8 -7
- package/dist/provider/statewire-lifecycle-context.cjs +10 -0
- package/dist/provider/statewire-lifecycle-context.cjs.map +1 -0
- package/dist/provider/statewire-lifecycle-context.js +10 -0
- package/dist/provider/statewire-lifecycle-context.js.map +1 -0
- package/dist/provider/statewire-window-context.cjs +10 -0
- package/dist/provider/statewire-window-context.cjs.map +1 -0
- package/dist/provider/statewire-window-context.js +10 -0
- package/dist/provider/statewire-window-context.js.map +1 -0
- package/dist/runtime/auth.cjs +309 -0
- package/dist/runtime/auth.cjs.map +1 -0
- package/dist/runtime/auth.d.ts +19 -18
- package/dist/runtime/auth.js +309 -0
- package/dist/runtime/auth.js.map +1 -0
- package/dist/runtime/statewire-auth-headers.cjs +18 -0
- package/dist/runtime/statewire-auth-headers.cjs.map +1 -0
- package/dist/runtime/statewire-auth-headers.js +18 -0
- package/dist/runtime/statewire-auth-headers.js.map +1 -0
- package/dist/runtime/statewire-lifecycle.cjs +68 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -0
- package/dist/runtime/statewire-lifecycle.js +68 -0
- package/dist/runtime/statewire-lifecycle.js.map +1 -0
- package/dist/runtime/statewire-run-config.cjs +68 -0
- package/dist/runtime/statewire-run-config.cjs.map +1 -0
- package/dist/runtime/statewire-run-config.js +68 -0
- package/dist/runtime/statewire-run-config.js.map +1 -0
- package/dist/runtime/statewire-session-key.cjs +11 -0
- package/dist/runtime/statewire-session-key.cjs.map +1 -0
- package/dist/runtime/statewire-session-key.js +11 -0
- package/dist/runtime/statewire-session-key.js.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs +180 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.js +181 -0
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/theme/index.cjs +182 -0
- package/dist/theme/index.cjs.map +1 -0
- package/dist/theme/index.js +182 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/threads/ThreadList.cjs +55 -0
- package/dist/threads/ThreadList.cjs.map +1 -0
- package/dist/threads/ThreadList.js +55 -0
- package/dist/threads/ThreadList.js.map +1 -0
- package/dist/threads/api.cjs +208 -0
- package/dist/threads/api.cjs.map +1 -0
- package/dist/threads/api.js +208 -0
- package/dist/threads/api.js.map +1 -0
- package/dist/threads/conversation-list-fetcher.cjs +74 -0
- package/dist/threads/conversation-list-fetcher.cjs.map +1 -0
- package/dist/threads/conversation-list-fetcher.js +74 -0
- package/dist/threads/conversation-list-fetcher.js.map +1 -0
- package/dist/threads/mint-thread-id.cjs +7 -0
- package/dist/threads/mint-thread-id.cjs.map +1 -0
- package/dist/threads/mint-thread-id.js +7 -0
- package/dist/threads/mint-thread-id.js.map +1 -0
- package/dist/threads/statewire-thread-list.cjs +232 -0
- package/dist/threads/statewire-thread-list.cjs.map +1 -0
- package/dist/threads/statewire-thread-list.js +232 -0
- package/dist/threads/statewire-thread-list.js.map +1 -0
- package/dist/threads/thread-id-context.cjs +22 -0
- package/dist/threads/thread-id-context.cjs.map +1 -0
- package/dist/threads/thread-id-context.d.ts +9 -0
- package/dist/threads/thread-id-context.js +22 -0
- package/dist/threads/thread-id-context.js.map +1 -0
- package/dist/threads/title.cjs +95 -0
- package/dist/threads/title.cjs.map +1 -0
- package/dist/threads/title.js +95 -0
- package/dist/threads/title.js.map +1 -0
- package/dist/threads/use-rest-conversation-history.cjs +80 -0
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -0
- package/dist/threads/use-rest-conversation-history.js +80 -0
- package/dist/threads/use-rest-conversation-history.js.map +1 -0
- package/dist/threads/use-statewire-conversation-history.cjs +244 -0
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -0
- package/dist/threads/use-statewire-conversation-history.d.ts +1 -0
- package/dist/threads/use-statewire-conversation-history.js +244 -0
- package/dist/threads/use-statewire-conversation-history.js.map +1 -0
- package/dist/threads/useAthenaThreadManager.cjs +24 -0
- package/dist/threads/useAthenaThreadManager.cjs.map +1 -0
- package/dist/threads/useAthenaThreadManager.js +24 -0
- package/dist/threads/useAthenaThreadManager.js.map +1 -0
- package/dist/toolkits/index.cjs +279 -0
- package/dist/toolkits/index.cjs.map +1 -0
- package/dist/toolkits/index.js +279 -0
- package/dist/toolkits/index.js.map +1 -0
- package/dist/tools/NestedPtcMessages.cjs +46 -0
- package/dist/tools/NestedPtcMessages.cjs.map +1 -0
- package/dist/tools/NestedPtcMessages.js +46 -0
- package/dist/tools/NestedPtcMessages.js.map +1 -0
- package/dist/tools/append-document-tool-ui.cjs +145 -0
- package/dist/tools/append-document-tool-ui.cjs.map +1 -0
- package/dist/tools/append-document-tool-ui.js +145 -0
- package/dist/tools/append-document-tool-ui.js.map +1 -0
- package/dist/tools/asset-utils.cjs +16 -0
- package/dist/tools/asset-utils.cjs.map +1 -0
- package/dist/tools/asset-utils.js +16 -0
- package/dist/tools/asset-utils.js.map +1 -0
- package/dist/tools/auto-open-tools.cjs +121 -0
- package/dist/tools/auto-open-tools.cjs.map +1 -0
- package/dist/tools/auto-open-tools.js +121 -0
- package/dist/tools/auto-open-tools.js.map +1 -0
- package/dist/tools/file-tool-uis.cjs +108 -0
- package/dist/tools/file-tool-uis.cjs.map +1 -0
- package/dist/tools/file-tool-uis.js +108 -0
- package/dist/tools/file-tool-uis.js.map +1 -0
- package/dist/tools/index.cjs +57 -0
- package/dist/tools/index.cjs.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +57 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/misc-tool-uis.cjs +55 -0
- package/dist/tools/misc-tool-uis.cjs.map +1 -0
- package/dist/{misc-tool-uis-gAiQw0Yl.js → tools/misc-tool-uis.js} +18 -7
- package/dist/tools/misc-tool-uis.js.map +1 -0
- package/dist/tools/primitives.cjs +167 -0
- package/dist/tools/primitives.cjs.map +1 -0
- package/dist/tools/primitives.js +167 -0
- package/dist/tools/primitives.js.map +1 -0
- package/dist/tools/read-asset-tool-ui.cjs +284 -0
- package/dist/tools/read-asset-tool-ui.cjs.map +1 -0
- package/dist/tools/read-asset-tool-ui.js +284 -0
- package/dist/tools/read-asset-tool-ui.js.map +1 -0
- package/dist/tools/todo-plan-store.cjs +88 -0
- package/dist/tools/todo-plan-store.cjs.map +1 -0
- package/dist/tools/todo-plan-store.js +88 -0
- package/dist/tools/todo-plan-store.js.map +1 -0
- package/dist/tools/tool-fallback.cjs +668 -0
- package/dist/tools/tool-fallback.cjs.map +1 -0
- package/dist/tools/tool-fallback.js +668 -0
- package/dist/tools/tool-fallback.js.map +1 -0
- package/dist/tools/tool-icons.cjs +61 -0
- package/dist/tools/tool-icons.cjs.map +1 -0
- package/dist/tools/tool-icons.js +61 -0
- package/dist/tools/tool-icons.js.map +1 -0
- package/dist/tools/tool-uis.cjs +3049 -0
- package/dist/tools/tool-uis.cjs.map +1 -0
- package/dist/tools/tool-uis.js +3049 -0
- package/dist/tools/tool-uis.js.map +1 -0
- package/dist/tools/voice-update-tool-ui.cjs +90 -0
- package/dist/tools/voice-update-tool-ui.cjs.map +1 -0
- package/dist/tools/voice-update-tool-ui.d.ts +27 -0
- package/dist/tools/voice-update-tool-ui.js +90 -0
- package/dist/tools/voice-update-tool-ui.js.map +1 -0
- package/dist/tools/write-todos-tool-ui.cjs +270 -0
- package/dist/tools/write-todos-tool-ui.cjs.map +1 -0
- package/dist/tools/write-todos-tool-ui.js +270 -0
- package/dist/tools/write-todos-tool-ui.js.map +1 -0
- package/dist/ui/button.cjs +57 -0
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.js +57 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/collapsible.cjs +17 -0
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.js +17 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/tooltip.cjs +48 -0
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.js +48 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/version.cjs +6 -0
- package/dist/version.cjs.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/dist/voice/index.cjs +6 -0
- package/dist/voice/index.cjs.map +1 -0
- package/dist/voice/index.d.ts +2 -0
- package/dist/voice/index.js +6 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/use-athena-voice-session.cjs +315 -0
- package/dist/voice/use-athena-voice-session.cjs.map +1 -0
- package/dist/voice/use-athena-voice-session.d.ts +145 -0
- package/dist/voice/use-athena-voice-session.js +315 -0
- package/dist/voice/use-athena-voice-session.js.map +1 -0
- package/package.json +32 -20
- package/dist/AthenaAuthContext-B3AwLA5Z.cjs.map +0 -1
- package/dist/AthenaAuthContext-DQsdayH2.js.map +0 -1
- package/dist/AthenaContext-B1QMhIP-.cjs.map +0 -1
- package/dist/AthenaContext-MOslgOmE.js.map +0 -1
- package/dist/SuperGroupingCard-BsWbHyV_.js +0 -795
- package/dist/SuperGroupingCard-BsWbHyV_.js.map +0 -1
- package/dist/SuperGroupingCard-CRRFUgjN.cjs +0 -794
- package/dist/SuperGroupingCard-CRRFUgjN.cjs.map +0 -1
- package/dist/auth.cjs.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/chat/ComposerEditorContext.d.ts +0 -36
- package/dist/chat/tiptap-composer.d.ts +0 -7
- package/dist/chat-ui-statewire.cjs +0 -25
- package/dist/chat-ui-statewire.cjs.map +0 -1
- package/dist/chat-ui-statewire.js +0 -25
- package/dist/chat-ui-statewire.js.map +0 -1
- package/dist/chat-ui.cjs +0 -2484
- package/dist/chat-ui.cjs.map +0 -1
- package/dist/chat-ui.js +0 -2486
- package/dist/chat-ui.js.map +0 -1
- package/dist/collab.cjs.map +0 -1
- package/dist/collab.js.map +0 -1
- package/dist/mentions/composer-keybinds.d.ts +0 -5
- package/dist/mentions/mention-extension.d.ts +0 -6
- package/dist/mentions/mention-icons.d.ts +0 -4
- package/dist/mentions/mention-node-view.d.ts +0 -2
- package/dist/mentions/mention-suggestion-list.d.ts +0 -14
- package/dist/mentions/mention-suggestion-popup.d.ts +0 -15
- package/dist/mentions/mention-suggestions-extension.d.ts +0 -11
- package/dist/mentions/mention-types.d.ts +0 -21
- package/dist/mentions/mention-utils.d.ts +0 -23
- package/dist/mentions/use-mention-suggestions.d.ts +0 -29
- package/dist/misc-tool-uis-B2e0Okkn.cjs +0 -43
- package/dist/misc-tool-uis-B2e0Okkn.cjs.map +0 -1
- package/dist/misc-tool-uis-gAiQw0Yl.js.map +0 -1
- package/dist/statewire-continue-run-D34gS7_1.js.map +0 -1
- package/dist/statewire-continue-run-nE9VCKUh.cjs.map +0 -1
- package/dist/statewire-history-edge-C8uyTEjX.cjs +0 -1711
- package/dist/statewire-history-edge-C8uyTEjX.cjs.map +0 -1
- package/dist/statewire-history-edge-CPohUKMt.js +0 -1712
- package/dist/statewire-history-edge-CPohUKMt.js.map +0 -1
- package/dist/super-grouping.cjs +0 -22
- package/dist/super-grouping.cjs.map +0 -1
- package/dist/super-grouping.js +0 -22
- package/dist/super-grouping.js.map +0 -1
- package/dist/tool-fallback-DkQ3DLkn.js +0 -4281
- package/dist/tool-fallback-DkQ3DLkn.js.map +0 -1
- package/dist/tool-fallback-kfhpJQZa.cjs +0 -4297
- package/dist/tool-fallback-kfhpJQZa.cjs.map +0 -1
- package/dist/tools.cjs +0 -41
- package/dist/tools.cjs.map +0 -1
- package/dist/tools.js +0 -41
- package/dist/tools.js.map +0 -1
- package/dist/trash-2-B5OaNAL7.cjs +0 -5096
- package/dist/trash-2-B5OaNAL7.cjs.map +0 -1
- package/dist/trash-2-CCwSURL-.js +0 -5081
- package/dist/trash-2-CCwSURL-.js.map +0 -1
- package/dist/use-rest-conversation-history-Cm8qMRxp.cjs +0 -32397
- package/dist/use-rest-conversation-history-Cm8qMRxp.cjs.map +0 -1
- package/dist/use-rest-conversation-history-veDZS-oL.js +0 -32361
- package/dist/use-rest-conversation-history-veDZS-oL.js.map +0 -1
- package/dist/wrench-BEf72cyP.cjs +0 -417
- package/dist/wrench-BEf72cyP.cjs.map +0 -1
- package/dist/wrench-CbrOlVYm.js +0 -418
- package/dist/wrench-CbrOlVYm.js.map +0 -1
- package/dist/x-Dfd2NzK0.cjs +0 -42
- package/dist/x-Dfd2NzK0.cjs.map +0 -1
- package/dist/x-_DntAa_a.js +0 -43
- package/dist/x-_DntAa_a.js.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const types = require("../data/types.cjs");
|
|
6
|
+
const menuItem = require("./menu-item.cjs");
|
|
7
|
+
const menuSkeleton = require("./menu-skeleton.cjs");
|
|
8
|
+
function MenuList({
|
|
9
|
+
items,
|
|
10
|
+
selectedIndex,
|
|
11
|
+
isLoading,
|
|
12
|
+
hasMore,
|
|
13
|
+
onSelect,
|
|
14
|
+
onMouseMove,
|
|
15
|
+
onLoadMore
|
|
16
|
+
}) {
|
|
17
|
+
const selectedRef = react.useRef(null);
|
|
18
|
+
react.useEffect(() => {
|
|
19
|
+
var _a;
|
|
20
|
+
(_a = selectedRef.current) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
|
|
21
|
+
}, [selectedIndex]);
|
|
22
|
+
if (isLoading && items.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(menuSkeleton.MenuSkeleton, {});
|
|
23
|
+
if (items.length === 0) {
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-1 py-1", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-2 py-9 text-center text-sm text-gray-500", children: [
|
|
25
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: "No results found" }),
|
|
26
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-gray-400", children: "Try a different search or go back" })
|
|
27
|
+
] }) });
|
|
28
|
+
}
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-1 py-1", children: [
|
|
30
|
+
items.map((item, index) => {
|
|
31
|
+
var _a;
|
|
32
|
+
const previousSection = (_a = items[index - 1]) == null ? void 0 : _a.menuSection;
|
|
33
|
+
const startsOtherWebpages = item.menuSection === types.MentionMenuSection.OTHER_WEBPAGES && previousSection !== types.MentionMenuSection.OTHER_WEBPAGES;
|
|
34
|
+
const startsLibrary = item.menuSection === types.MentionMenuSection.LIBRARY && (previousSection === types.MentionMenuSection.CURRENT_WEBPAGE || previousSection === types.MentionMenuSection.OTHER_WEBPAGES);
|
|
35
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
|
|
36
|
+
startsOtherWebpages && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 pb-1 pt-2 text-[11px] font-medium uppercase tracking-wide text-gray-400", children: "Other webpages in this group" }),
|
|
37
|
+
startsLibrary && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-2 my-1 border-t border-gray-100" }),
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: index === selectedIndex ? selectedRef : void 0, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
39
|
+
menuItem.MenuItemRow,
|
|
40
|
+
{
|
|
41
|
+
item,
|
|
42
|
+
isSelected: index === selectedIndex,
|
|
43
|
+
onMouseMove: () => onMouseMove(index),
|
|
44
|
+
onClick: () => onSelect(item),
|
|
45
|
+
showArrow: !!item.navigatesToScope
|
|
46
|
+
}
|
|
47
|
+
) })
|
|
48
|
+
] }, item.id);
|
|
49
|
+
}),
|
|
50
|
+
isLoading && items.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-2 text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-gray-400", children: "Loading more..." }) }),
|
|
51
|
+
hasMore && !isLoading && onLoadMore && /* @__PURE__ */ jsxRuntime.jsx(
|
|
52
|
+
"button",
|
|
53
|
+
{
|
|
54
|
+
type: "button",
|
|
55
|
+
onClick: onLoadMore,
|
|
56
|
+
className: "w-full px-2 py-1.5 text-xs text-gray-500 hover:text-gray-700 hover:bg-gray-50 rounded transition-colors text-center",
|
|
57
|
+
children: "··· Load more"
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
] });
|
|
61
|
+
}
|
|
62
|
+
exports.MenuList = MenuList;
|
|
63
|
+
//# sourceMappingURL=menu-list.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-list.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/menu-list.tsx"],"sourcesContent":["/**\n * Scrollable list of menu items with loading and empty states.\n */\n\nimport { Fragment, useEffect, useRef } from \"react\";\nimport { MentionMenuSection, type MenuItem } from \"../data/types\";\nimport { MenuItemRow } from \"./menu-item\";\nimport { MenuSkeleton } from \"./menu-skeleton\";\n\nexport function MenuList({\n items,\n selectedIndex,\n isLoading,\n hasMore,\n onSelect,\n onMouseMove,\n onLoadMore,\n}: {\n items: MenuItem[];\n selectedIndex: number;\n isLoading?: boolean;\n hasMore?: boolean;\n onSelect: (item: MenuItem) => void;\n onMouseMove: (index: number) => void;\n onLoadMore?: () => void;\n}) {\n const selectedRef = useRef<HTMLDivElement>(null);\n\n // Auto-scroll selected item into view\n useEffect(() => {\n selectedRef.current?.scrollIntoView({ block: \"nearest\" });\n }, [selectedIndex]);\n\n if (isLoading && items.length === 0) return <MenuSkeleton />;\n\n if (items.length === 0) {\n return (\n <div className=\"px-1 py-1\">\n <div className=\"px-2 py-9 text-center text-sm text-gray-500\">\n <div className=\"mb-1\">No results found</div>\n <div className=\"text-xs text-gray-400\">Try a different search or go back</div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-1 py-1\">\n {items.map((item, index) => {\n const previousSection = items[index - 1]?.menuSection;\n const startsOtherWebpages =\n item.menuSection === MentionMenuSection.OTHER_WEBPAGES &&\n previousSection !== MentionMenuSection.OTHER_WEBPAGES;\n const startsLibrary =\n item.menuSection === MentionMenuSection.LIBRARY &&\n (previousSection === MentionMenuSection.CURRENT_WEBPAGE ||\n previousSection === MentionMenuSection.OTHER_WEBPAGES);\n\n return (\n <Fragment key={item.id}>\n {startsOtherWebpages && (\n <div className=\"px-2 pb-1 pt-2 text-[11px] font-medium uppercase tracking-wide text-gray-400\">\n Other webpages in this group\n </div>\n )}\n {startsLibrary && <div className=\"mx-2 my-1 border-t border-gray-100\" />}\n <div ref={index === selectedIndex ? selectedRef : undefined}>\n <MenuItemRow\n item={item}\n isSelected={index === selectedIndex}\n onMouseMove={() => onMouseMove(index)}\n onClick={() => onSelect(item)}\n showArrow={!!item.navigatesToScope}\n />\n </div>\n </Fragment>\n );\n })}\n\n {/* Loading more indicator */}\n {isLoading && items.length > 0 && (\n <div className=\"px-2 py-2 text-center\">\n <span className=\"text-xs text-gray-400\">Loading more...</span>\n </div>\n )}\n\n {/* Load more sentinel */}\n {hasMore && !isLoading && onLoadMore && (\n <button\n type=\"button\"\n onClick={onLoadMore}\n className=\"w-full px-2 py-1.5 text-xs text-gray-500 hover:text-gray-700 hover:bg-gray-50 rounded transition-colors text-center\"\n >\n ··· Load more\n </button>\n )}\n </div>\n );\n}\n"],"names":["useRef","useEffect","MenuSkeleton","jsxs","jsx","MentionMenuSection","Fragment","MenuItemRow"],"mappings":";;;;;;;AASO,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,cAAcA,MAAAA,OAAuB,IAAI;AAG/CC,QAAAA,UAAU,MAAM;;AACd,sBAAY,YAAZ,mBAAqB,eAAe,EAAE,OAAO;EAC/C,GAAG,CAAC,aAAa,CAAC;AAElB,MAAI,aAAa,MAAM,WAAW,EAAG,uCAAQC,aAAAA,cAAA,EAAa;AAE1D,MAAI,MAAM,WAAW,GAAG;AACtB,0CACG,OAAA,EAAI,WAAU,aACb,UAAAC,2BAAAA,KAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,MAAAC,2BAAAA,IAAC,OAAA,EAAI,WAAU,QAAO,UAAA,oBAAgB;AAAA,MACtCA,2BAAAA,IAAC,OAAA,EAAI,WAAU,yBAAwB,UAAA,oCAAA,CAAiC;AAAA,IAAA,EAAA,CAC1E,EAAA,CACF;AAAA,EAEJ;AAEA,SACED,2BAAAA,KAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,IAAA,MAAM,IAAI,CAAC,MAAM,UAAU;;AAC1B,YAAM,mBAAkB,WAAM,QAAQ,CAAC,MAAf,mBAAkB;AAC1C,YAAM,sBACJ,KAAK,gBAAgBE,MAAAA,mBAAmB,kBACxC,oBAAoBA,MAAAA,mBAAmB;AACzC,YAAM,gBACJ,KAAK,gBAAgBA,MAAAA,mBAAmB,YACvC,oBAAoBA,MAAAA,mBAAmB,mBACtC,oBAAoBA,MAAAA,mBAAmB;AAE3C,6CACGC,gBAAA,EACE,UAAA;AAAA,QAAA,uBACCF,2BAAAA,IAAC,OAAA,EAAI,WAAU,gFAA+E,UAAA,gCAE9F;AAAA,QAED,iBAAiBA,2BAAAA,IAAC,OAAA,EAAI,WAAU,qCAAA,CAAqC;AAAA,uCACrE,OAAA,EAAI,KAAK,UAAU,gBAAgB,cAAc,QAChD,UAAAA,2BAAAA;AAAAA,UAACG,SAAAA;AAAAA,UAAA;AAAA,YACC;AAAA,YACA,YAAY,UAAU;AAAA,YACtB,aAAa,MAAM,YAAY,KAAK;AAAA,YACpC,SAAS,MAAM,SAAS,IAAI;AAAA,YAC5B,WAAW,CAAC,CAAC,KAAK;AAAA,UAAA;AAAA,QAAA,EACpB,CACF;AAAA,MAAA,EAAA,GAfa,KAAK,EAgBpB;AAAA,IAEJ,CAAC;AAAA,IAGA,aAAa,MAAM,SAAS,KAC3BH,2BAAAA,IAAC,OAAA,EAAI,WAAU,yBACb,UAAAA,2BAAAA,IAAC,QAAA,EAAK,WAAU,yBAAwB,6BAAe,GACzD;AAAA,IAID,WAAW,CAAC,aAAa,cACxBA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACX,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GAEJ;AAEJ;;"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Scrollable list of menu items with loading and empty states.
|
|
3
3
|
*/
|
|
4
4
|
import { type MenuItem } from "../data/types";
|
|
5
|
-
export declare function MenuList({ items, selectedIndex, isLoading, hasMore, onSelect,
|
|
5
|
+
export declare function MenuList({ items, selectedIndex, isLoading, hasMore, onSelect, onMouseMove, onLoadMore, }: {
|
|
6
6
|
items: MenuItem[];
|
|
7
7
|
selectedIndex: number;
|
|
8
8
|
isLoading?: boolean;
|
|
9
9
|
hasMore?: boolean;
|
|
10
10
|
onSelect: (item: MenuItem) => void;
|
|
11
|
-
|
|
11
|
+
onMouseMove: (index: number) => void;
|
|
12
12
|
onLoadMore?: () => void;
|
|
13
13
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useEffect, Fragment } from "react";
|
|
3
|
+
import { MentionMenuSection } from "../data/types.js";
|
|
4
|
+
import { MenuItemRow } from "./menu-item.js";
|
|
5
|
+
import { MenuSkeleton } from "./menu-skeleton.js";
|
|
6
|
+
function MenuList({
|
|
7
|
+
items,
|
|
8
|
+
selectedIndex,
|
|
9
|
+
isLoading,
|
|
10
|
+
hasMore,
|
|
11
|
+
onSelect,
|
|
12
|
+
onMouseMove,
|
|
13
|
+
onLoadMore
|
|
14
|
+
}) {
|
|
15
|
+
const selectedRef = useRef(null);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
var _a;
|
|
18
|
+
(_a = selectedRef.current) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
|
|
19
|
+
}, [selectedIndex]);
|
|
20
|
+
if (isLoading && items.length === 0) return /* @__PURE__ */ jsx(MenuSkeleton, {});
|
|
21
|
+
if (items.length === 0) {
|
|
22
|
+
return /* @__PURE__ */ jsx("div", { className: "px-1 py-1", children: /* @__PURE__ */ jsxs("div", { className: "px-2 py-9 text-center text-sm text-gray-500", children: [
|
|
23
|
+
/* @__PURE__ */ jsx("div", { className: "mb-1", children: "No results found" }),
|
|
24
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-gray-400", children: "Try a different search or go back" })
|
|
25
|
+
] }) });
|
|
26
|
+
}
|
|
27
|
+
return /* @__PURE__ */ jsxs("div", { className: "px-1 py-1", children: [
|
|
28
|
+
items.map((item, index) => {
|
|
29
|
+
var _a;
|
|
30
|
+
const previousSection = (_a = items[index - 1]) == null ? void 0 : _a.menuSection;
|
|
31
|
+
const startsOtherWebpages = item.menuSection === MentionMenuSection.OTHER_WEBPAGES && previousSection !== MentionMenuSection.OTHER_WEBPAGES;
|
|
32
|
+
const startsLibrary = item.menuSection === MentionMenuSection.LIBRARY && (previousSection === MentionMenuSection.CURRENT_WEBPAGE || previousSection === MentionMenuSection.OTHER_WEBPAGES);
|
|
33
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
34
|
+
startsOtherWebpages && /* @__PURE__ */ jsx("div", { className: "px-2 pb-1 pt-2 text-[11px] font-medium uppercase tracking-wide text-gray-400", children: "Other webpages in this group" }),
|
|
35
|
+
startsLibrary && /* @__PURE__ */ jsx("div", { className: "mx-2 my-1 border-t border-gray-100" }),
|
|
36
|
+
/* @__PURE__ */ jsx("div", { ref: index === selectedIndex ? selectedRef : void 0, children: /* @__PURE__ */ jsx(
|
|
37
|
+
MenuItemRow,
|
|
38
|
+
{
|
|
39
|
+
item,
|
|
40
|
+
isSelected: index === selectedIndex,
|
|
41
|
+
onMouseMove: () => onMouseMove(index),
|
|
42
|
+
onClick: () => onSelect(item),
|
|
43
|
+
showArrow: !!item.navigatesToScope
|
|
44
|
+
}
|
|
45
|
+
) })
|
|
46
|
+
] }, item.id);
|
|
47
|
+
}),
|
|
48
|
+
isLoading && items.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-2 py-2 text-center", children: /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-400", children: "Loading more..." }) }),
|
|
49
|
+
hasMore && !isLoading && onLoadMore && /* @__PURE__ */ jsx(
|
|
50
|
+
"button",
|
|
51
|
+
{
|
|
52
|
+
type: "button",
|
|
53
|
+
onClick: onLoadMore,
|
|
54
|
+
className: "w-full px-2 py-1.5 text-xs text-gray-500 hover:text-gray-700 hover:bg-gray-50 rounded transition-colors text-center",
|
|
55
|
+
children: "··· Load more"
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] });
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
MenuList
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=menu-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-list.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/menu-list.tsx"],"sourcesContent":["/**\n * Scrollable list of menu items with loading and empty states.\n */\n\nimport { Fragment, useEffect, useRef } from \"react\";\nimport { MentionMenuSection, type MenuItem } from \"../data/types\";\nimport { MenuItemRow } from \"./menu-item\";\nimport { MenuSkeleton } from \"./menu-skeleton\";\n\nexport function MenuList({\n items,\n selectedIndex,\n isLoading,\n hasMore,\n onSelect,\n onMouseMove,\n onLoadMore,\n}: {\n items: MenuItem[];\n selectedIndex: number;\n isLoading?: boolean;\n hasMore?: boolean;\n onSelect: (item: MenuItem) => void;\n onMouseMove: (index: number) => void;\n onLoadMore?: () => void;\n}) {\n const selectedRef = useRef<HTMLDivElement>(null);\n\n // Auto-scroll selected item into view\n useEffect(() => {\n selectedRef.current?.scrollIntoView({ block: \"nearest\" });\n }, [selectedIndex]);\n\n if (isLoading && items.length === 0) return <MenuSkeleton />;\n\n if (items.length === 0) {\n return (\n <div className=\"px-1 py-1\">\n <div className=\"px-2 py-9 text-center text-sm text-gray-500\">\n <div className=\"mb-1\">No results found</div>\n <div className=\"text-xs text-gray-400\">Try a different search or go back</div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-1 py-1\">\n {items.map((item, index) => {\n const previousSection = items[index - 1]?.menuSection;\n const startsOtherWebpages =\n item.menuSection === MentionMenuSection.OTHER_WEBPAGES &&\n previousSection !== MentionMenuSection.OTHER_WEBPAGES;\n const startsLibrary =\n item.menuSection === MentionMenuSection.LIBRARY &&\n (previousSection === MentionMenuSection.CURRENT_WEBPAGE ||\n previousSection === MentionMenuSection.OTHER_WEBPAGES);\n\n return (\n <Fragment key={item.id}>\n {startsOtherWebpages && (\n <div className=\"px-2 pb-1 pt-2 text-[11px] font-medium uppercase tracking-wide text-gray-400\">\n Other webpages in this group\n </div>\n )}\n {startsLibrary && <div className=\"mx-2 my-1 border-t border-gray-100\" />}\n <div ref={index === selectedIndex ? selectedRef : undefined}>\n <MenuItemRow\n item={item}\n isSelected={index === selectedIndex}\n onMouseMove={() => onMouseMove(index)}\n onClick={() => onSelect(item)}\n showArrow={!!item.navigatesToScope}\n />\n </div>\n </Fragment>\n );\n })}\n\n {/* Loading more indicator */}\n {isLoading && items.length > 0 && (\n <div className=\"px-2 py-2 text-center\">\n <span className=\"text-xs text-gray-400\">Loading more...</span>\n </div>\n )}\n\n {/* Load more sentinel */}\n {hasMore && !isLoading && onLoadMore && (\n <button\n type=\"button\"\n onClick={onLoadMore}\n className=\"w-full px-2 py-1.5 text-xs text-gray-500 hover:text-gray-700 hover:bg-gray-50 rounded transition-colors text-center\"\n >\n ··· Load more\n </button>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AASO,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,cAAc,OAAuB,IAAI;AAG/C,YAAU,MAAM;;AACd,sBAAY,YAAZ,mBAAqB,eAAe,EAAE,OAAO;EAC/C,GAAG,CAAC,aAAa,CAAC;AAElB,MAAI,aAAa,MAAM,WAAW,EAAG,4BAAQ,cAAA,EAAa;AAE1D,MAAI,MAAM,WAAW,GAAG;AACtB,+BACG,OAAA,EAAI,WAAU,aACb,UAAA,qBAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,QAAO,UAAA,oBAAgB;AAAA,MACtC,oBAAC,OAAA,EAAI,WAAU,yBAAwB,UAAA,oCAAA,CAAiC;AAAA,IAAA,EAAA,CAC1E,EAAA,CACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,IAAA,MAAM,IAAI,CAAC,MAAM,UAAU;;AAC1B,YAAM,mBAAkB,WAAM,QAAQ,CAAC,MAAf,mBAAkB;AAC1C,YAAM,sBACJ,KAAK,gBAAgB,mBAAmB,kBACxC,oBAAoB,mBAAmB;AACzC,YAAM,gBACJ,KAAK,gBAAgB,mBAAmB,YACvC,oBAAoB,mBAAmB,mBACtC,oBAAoB,mBAAmB;AAE3C,kCACG,UAAA,EACE,UAAA;AAAA,QAAA,uBACC,oBAAC,OAAA,EAAI,WAAU,gFAA+E,UAAA,gCAE9F;AAAA,QAED,iBAAiB,oBAAC,OAAA,EAAI,WAAU,qCAAA,CAAqC;AAAA,4BACrE,OAAA,EAAI,KAAK,UAAU,gBAAgB,cAAc,QAChD,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,YAAY,UAAU;AAAA,YACtB,aAAa,MAAM,YAAY,KAAK;AAAA,YACpC,SAAS,MAAM,SAAS,IAAI;AAAA,YAC5B,WAAW,CAAC,CAAC,KAAK;AAAA,UAAA;AAAA,QAAA,EACpB,CACF;AAAA,MAAA,EAAA,GAfa,KAAK,EAgBpB;AAAA,IAEJ,CAAC;AAAA,IAGA,aAAa,MAAM,SAAS,KAC3B,oBAAC,OAAA,EAAI,WAAU,yBACb,UAAA,oBAAC,QAAA,EAAK,WAAU,yBAAwB,6BAAe,GACzD;AAAA,IAID,WAAW,CAAC,aAAa,cACxB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACX,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
function MenuSkeleton() {
|
|
5
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-1 py-1", children: [1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 px-2 py-1.5 rounded animate-pulse", children: [
|
|
6
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-4 h-4 bg-gray-200 rounded flex-shrink-0" }),
|
|
7
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3.5 bg-gray-200 rounded flex-1", style: { maxWidth: `${50 + i * 10}%` } })
|
|
8
|
+
] }, i)) });
|
|
9
|
+
}
|
|
10
|
+
exports.MenuSkeleton = MenuSkeleton;
|
|
11
|
+
//# sourceMappingURL=menu-skeleton.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-skeleton.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/menu-skeleton.tsx"],"sourcesContent":["/**\n * Loading skeleton for the mention menu.\n */\n\nexport function MenuSkeleton() {\n return (\n <div className=\"px-1 py-1\">\n {[1, 2, 3, 4].map((i) => (\n <div key={i} className=\"flex items-center gap-2 px-2 py-1.5 rounded animate-pulse\">\n <div className=\"w-4 h-4 bg-gray-200 rounded flex-shrink-0\" />\n <div className=\"h-3.5 bg-gray-200 rounded flex-1\" style={{ maxWidth: `${50 + i * 10}%` }} />\n </div>\n ))}\n </div>\n );\n}\n"],"names":["jsxs","jsx"],"mappings":";;;AAIO,SAAS,eAAe;AAC7B,wCACG,OAAA,EAAI,WAAU,aACZ,UAAA,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MACjBA,2BAAAA,KAAC,OAAA,EAAY,WAAU,6DACrB,UAAA;AAAA,IAAAC,2BAAAA,IAAC,OAAA,EAAI,WAAU,4CAAA,CAA4C;AAAA,IAC3DA,2BAAAA,IAAC,OAAA,EAAI,WAAU,oCAAmC,OAAO,EAAE,UAAU,GAAG,KAAK,IAAI,EAAE,IAAA,EAAI,CAAG;AAAA,EAAA,KAFlF,CAGV,CACD,GACH;AAEJ;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
function MenuSkeleton() {
|
|
3
|
+
return /* @__PURE__ */ jsx("div", { className: "px-1 py-1", children: [1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-2 py-1.5 rounded animate-pulse", children: [
|
|
4
|
+
/* @__PURE__ */ jsx("div", { className: "w-4 h-4 bg-gray-200 rounded flex-shrink-0" }),
|
|
5
|
+
/* @__PURE__ */ jsx("div", { className: "h-3.5 bg-gray-200 rounded flex-1", style: { maxWidth: `${50 + i * 10}%` } })
|
|
6
|
+
] }, i)) });
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
MenuSkeleton
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=menu-skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-skeleton.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/menu-skeleton.tsx"],"sourcesContent":["/**\n * Loading skeleton for the mention menu.\n */\n\nexport function MenuSkeleton() {\n return (\n <div className=\"px-1 py-1\">\n {[1, 2, 3, 4].map((i) => (\n <div key={i} className=\"flex items-center gap-2 px-2 py-1.5 rounded animate-pulse\">\n <div className=\"w-4 h-4 bg-gray-200 rounded flex-shrink-0\" />\n <div className=\"h-3.5 bg-gray-200 rounded flex-1\" style={{ maxWidth: `${50 + i * 10}%` }} />\n </div>\n ))}\n </div>\n );\n}\n"],"names":[],"mappings":";AAIO,SAAS,eAAe;AAC7B,6BACG,OAAA,EAAI,WAAU,aACZ,UAAA,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MACjB,qBAAC,OAAA,EAAY,WAAU,6DACrB,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,4CAAA,CAA4C;AAAA,IAC3D,oBAAC,OAAA,EAAI,WAAU,oCAAmC,OAAO,EAAE,UAAU,GAAG,KAAK,IAAI,EAAE,IAAA,EAAI,CAAG;AAAA,EAAA,KAFlF,CAGV,CACD,GACH;AAEJ;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const menuBreadcrumbs = require("./menu-breadcrumbs.cjs");
|
|
5
|
+
function MenuSummary({
|
|
6
|
+
scopePath,
|
|
7
|
+
onNavigate,
|
|
8
|
+
onBackClick,
|
|
9
|
+
isFetching
|
|
10
|
+
}) {
|
|
11
|
+
if (scopePath.length <= 1 && !isFetching) return null;
|
|
12
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-gray-200 px-2 py-2 bg-gray-50", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
13
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 flex-1 min-w-0", children: [
|
|
14
|
+
scopePath.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(menuBreadcrumbs.MenuBreadcrumbs, { scopePath, onNavigate }),
|
|
15
|
+
isFetching && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 inline-block w-3 h-3 border border-gray-400 border-t-transparent rounded-full animate-spin" })
|
|
16
|
+
] }),
|
|
17
|
+
onBackClick && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
18
|
+
"button",
|
|
19
|
+
{
|
|
20
|
+
type: "button",
|
|
21
|
+
onClick: onBackClick,
|
|
22
|
+
className: "text-xs text-gray-600 hover:text-gray-800 px-2 py-1 rounded hover:bg-gray-200 transition-colors flex items-center gap-1 flex-shrink-0",
|
|
23
|
+
title: "Go back (or press ←)",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "←" }),
|
|
26
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Back" })
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
] }) });
|
|
31
|
+
}
|
|
32
|
+
exports.MenuSummary = MenuSummary;
|
|
33
|
+
//# sourceMappingURL=menu-summary.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-summary.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/menu-summary.tsx"],"sourcesContent":["/**\n * Summary bar at the bottom of the mention menu.\n * Shows breadcrumbs + back button + optional loading spinner.\n */\n\nimport { MenuBreadcrumbs } from \"./menu-breadcrumbs\";\n\nexport function MenuSummary({\n scopePath,\n onNavigate,\n onBackClick,\n isFetching,\n}: {\n scopePath: { id: string; name: string }[];\n onNavigate: (scopeId: string) => void;\n onBackClick?: () => void;\n isFetching?: boolean;\n}) {\n // Don't show summary at root scope (unless fetching)\n if (scopePath.length <= 1 && !isFetching) return null;\n\n return (\n <div className=\"border-t border-gray-200 px-2 py-2 bg-gray-50\">\n <div className=\"flex items-center justify-between gap-2\">\n <div className=\"flex items-center gap-2 flex-1 min-w-0\">\n {scopePath.length > 1 && (\n <MenuBreadcrumbs scopePath={scopePath} onNavigate={onNavigate} />\n )}\n {isFetching && (\n <span className=\"flex-shrink-0 inline-block w-3 h-3 border border-gray-400 border-t-transparent rounded-full animate-spin\" />\n )}\n </div>\n {onBackClick && (\n <button\n type=\"button\"\n onClick={onBackClick}\n className=\"text-xs text-gray-600 hover:text-gray-800 px-2 py-1 rounded hover:bg-gray-200 transition-colors flex items-center gap-1 flex-shrink-0\"\n title=\"Go back (or press ←)\"\n >\n <span>←</span>\n <span>Back</span>\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["jsxs","jsx","MenuBreadcrumbs"],"mappings":";;;;AAOO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AAED,MAAI,UAAU,UAAU,KAAK,CAAC,WAAY,QAAO;AAEjD,wCACG,OAAA,EAAI,WAAU,iDACb,UAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,IAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,0CACZ,UAAA;AAAA,MAAA,UAAU,SAAS,KAClBC,2BAAAA,IAACC,gBAAAA,iBAAA,EAAgB,WAAsB,YAAwB;AAAA,MAEhE,cACCD,2BAAAA,IAAC,QAAA,EAAK,WAAU,2GAAA,CAA2G;AAAA,IAAA,GAE/H;AAAA,IACC,eACCD,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACV,OAAM;AAAA,QAEN,UAAA;AAAA,UAAAC,2BAAAA,IAAC,UAAK,UAAA,IAAA,CAAC;AAAA,UACPA,2BAAAA,IAAC,UAAK,UAAA,OAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,EAAA,CAEJ,EAAA,CACF;AAEJ;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { MenuBreadcrumbs } from "./menu-breadcrumbs.js";
|
|
3
|
+
function MenuSummary({
|
|
4
|
+
scopePath,
|
|
5
|
+
onNavigate,
|
|
6
|
+
onBackClick,
|
|
7
|
+
isFetching
|
|
8
|
+
}) {
|
|
9
|
+
if (scopePath.length <= 1 && !isFetching) return null;
|
|
10
|
+
return /* @__PURE__ */ jsx("div", { className: "border-t border-gray-200 px-2 py-2 bg-gray-50", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
11
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-1 min-w-0", children: [
|
|
12
|
+
scopePath.length > 1 && /* @__PURE__ */ jsx(MenuBreadcrumbs, { scopePath, onNavigate }),
|
|
13
|
+
isFetching && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 inline-block w-3 h-3 border border-gray-400 border-t-transparent rounded-full animate-spin" })
|
|
14
|
+
] }),
|
|
15
|
+
onBackClick && /* @__PURE__ */ jsxs(
|
|
16
|
+
"button",
|
|
17
|
+
{
|
|
18
|
+
type: "button",
|
|
19
|
+
onClick: onBackClick,
|
|
20
|
+
className: "text-xs text-gray-600 hover:text-gray-800 px-2 py-1 rounded hover:bg-gray-200 transition-colors flex items-center gap-1 flex-shrink-0",
|
|
21
|
+
title: "Go back (or press ←)",
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ jsx("span", { children: "←" }),
|
|
24
|
+
/* @__PURE__ */ jsx("span", { children: "Back" })
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
)
|
|
28
|
+
] }) });
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
MenuSummary
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=menu-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-summary.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/menu-summary.tsx"],"sourcesContent":["/**\n * Summary bar at the bottom of the mention menu.\n * Shows breadcrumbs + back button + optional loading spinner.\n */\n\nimport { MenuBreadcrumbs } from \"./menu-breadcrumbs\";\n\nexport function MenuSummary({\n scopePath,\n onNavigate,\n onBackClick,\n isFetching,\n}: {\n scopePath: { id: string; name: string }[];\n onNavigate: (scopeId: string) => void;\n onBackClick?: () => void;\n isFetching?: boolean;\n}) {\n // Don't show summary at root scope (unless fetching)\n if (scopePath.length <= 1 && !isFetching) return null;\n\n return (\n <div className=\"border-t border-gray-200 px-2 py-2 bg-gray-50\">\n <div className=\"flex items-center justify-between gap-2\">\n <div className=\"flex items-center gap-2 flex-1 min-w-0\">\n {scopePath.length > 1 && (\n <MenuBreadcrumbs scopePath={scopePath} onNavigate={onNavigate} />\n )}\n {isFetching && (\n <span className=\"flex-shrink-0 inline-block w-3 h-3 border border-gray-400 border-t-transparent rounded-full animate-spin\" />\n )}\n </div>\n {onBackClick && (\n <button\n type=\"button\"\n onClick={onBackClick}\n className=\"text-xs text-gray-600 hover:text-gray-800 px-2 py-1 rounded hover:bg-gray-200 transition-colors flex items-center gap-1 flex-shrink-0\"\n title=\"Go back (or press ←)\"\n >\n <span>←</span>\n <span>Back</span>\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;AAOO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AAED,MAAI,UAAU,UAAU,KAAK,CAAC,WAAY,QAAO;AAEjD,6BACG,OAAA,EAAI,WAAU,iDACb,UAAA,qBAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,0CACZ,UAAA;AAAA,MAAA,UAAU,SAAS,KAClB,oBAAC,iBAAA,EAAgB,WAAsB,YAAwB;AAAA,MAEhE,cACC,oBAAC,QAAA,EAAK,WAAU,2GAAA,CAA2G;AAAA,IAAA,GAE/H;AAAA,IACC,eACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACV,OAAM;AAAA,QAEN,UAAA;AAAA,UAAA,oBAAC,UAAK,UAAA,IAAA,CAAC;AAAA,UACP,oBAAC,UAAK,UAAA,OAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,EAAA,CAEJ,EAAA,CACF;AAEJ;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
function useKeyboardNavigation(ref, opts) {
|
|
5
|
+
const { items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose } = opts;
|
|
6
|
+
react.useImperativeHandle(
|
|
7
|
+
ref,
|
|
8
|
+
() => ({
|
|
9
|
+
onKeyDown: (event) => {
|
|
10
|
+
if (items.length === 0 && event.key !== "Escape") return false;
|
|
11
|
+
switch (event.key) {
|
|
12
|
+
case "ArrowDown": {
|
|
13
|
+
const next = (selectedIndex + 1) % items.length;
|
|
14
|
+
setSelectedIndex(next);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
case "ArrowUp": {
|
|
18
|
+
const prev = (selectedIndex - 1 + items.length) % items.length;
|
|
19
|
+
setSelectedIndex(prev);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
case "Enter": {
|
|
23
|
+
const item = items[selectedIndex];
|
|
24
|
+
if (item) onSelect(item);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
case "ArrowLeft": {
|
|
28
|
+
if (onBack) {
|
|
29
|
+
onBack();
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
case "Backspace": {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
case "ArrowRight": {
|
|
38
|
+
const item = items[selectedIndex];
|
|
39
|
+
if (item == null ? void 0 : item.navigatesToScope) {
|
|
40
|
+
onSelect(item);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
case "Escape": {
|
|
46
|
+
onClose();
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
default:
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}),
|
|
54
|
+
[items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose]
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
exports.useKeyboardNavigation = useKeyboardNavigation;
|
|
58
|
+
//# sourceMappingURL=use-keyboard-navigation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-keyboard-navigation.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/use-keyboard-navigation.ts"],"sourcesContent":["/**\n * Keyboard navigation for the mention menu.\n *\n * Exposes an imperative handle so MentionSuggestionList can forward keystrokes\n * from the editor into the menu.\n */\n\nimport type { ForwardedRef } from \"react\";\nimport { useImperativeHandle } from \"react\";\nimport type { MenuItem } from \"../data/types\";\n\nexport interface KeyboardNavigationHandle {\n onKeyDown: (event: KeyboardEvent) => boolean;\n}\n\nexport function useKeyboardNavigation(\n ref: ForwardedRef<KeyboardNavigationHandle>,\n opts: {\n items: MenuItem[];\n selectedIndex: number;\n setSelectedIndex: (index: number) => void;\n onSelect: (item: MenuItem) => void;\n onBack?: () => void;\n onClose: () => void;\n },\n) {\n const { items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose } = opts;\n\n useImperativeHandle(\n ref,\n () => ({\n onKeyDown: (event: KeyboardEvent): boolean => {\n if (items.length === 0 && event.key !== \"Escape\") return false;\n\n switch (event.key) {\n case \"ArrowDown\": {\n const next = (selectedIndex + 1) % items.length;\n setSelectedIndex(next);\n return true;\n }\n case \"ArrowUp\": {\n const prev = (selectedIndex - 1 + items.length) % items.length;\n setSelectedIndex(prev);\n return true;\n }\n case \"Enter\": {\n const item = items[selectedIndex];\n if (item) onSelect(item);\n return true;\n }\n case \"ArrowLeft\": {\n if (onBack) {\n onBack();\n return true;\n }\n return false;\n }\n case \"Backspace\": {\n // Never capture Backspace — let Tiptap handle it naturally.\n // The suggestion plugin closes the popup when you backspace past @.\n return false;\n }\n case \"ArrowRight\": {\n const item = items[selectedIndex];\n if (item?.navigatesToScope) {\n onSelect(item);\n return true;\n }\n return false;\n }\n case \"Escape\": {\n onClose();\n return true;\n }\n default:\n return false;\n }\n },\n }),\n [items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose],\n );\n}\n"],"names":["useImperativeHandle"],"mappings":";;;AAeO,SAAS,sBACd,KACA,MAQA;AACA,QAAM,EAAE,OAAO,eAAe,kBAAkB,UAAU,QAAQ,YAAY;AAE9EA,QAAAA;AAAAA,IACE;AAAA,IACA,OAAO;AAAA,MACL,WAAW,CAAC,UAAkC;AAC5C,YAAI,MAAM,WAAW,KAAK,MAAM,QAAQ,SAAU,QAAO;AAEzD,gBAAQ,MAAM,KAAA;AAAA,UACZ,KAAK,aAAa;AAChB,kBAAM,QAAQ,gBAAgB,KAAK,MAAM;AACzC,6BAAiB,IAAI;AACrB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,WAAW;AACd,kBAAM,QAAQ,gBAAgB,IAAI,MAAM,UAAU,MAAM;AACxD,6BAAiB,IAAI;AACrB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,SAAS;AACZ,kBAAM,OAAO,MAAM,aAAa;AAChC,gBAAI,eAAe,IAAI;AACvB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,aAAa;AAChB,gBAAI,QAAQ;AACV,qBAAA;AACA,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,aAAa;AAGhB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,cAAc;AACjB,kBAAM,OAAO,MAAM,aAAa;AAChC,gBAAI,6BAAM,kBAAkB;AAC1B,uBAAS,IAAI;AACb,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,UAAU;AACb,oBAAA;AACA,mBAAO;AAAA,UACT;AAAA,UACA;AACE,mBAAO;AAAA,QAAA;AAAA,MAEb;AAAA,IAAA;AAAA,IAEF,CAAC,OAAO,eAAe,kBAAkB,UAAU,QAAQ,OAAO;AAAA,EAAA;AAEtE;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useImperativeHandle } from "react";
|
|
2
|
+
function useKeyboardNavigation(ref, opts) {
|
|
3
|
+
const { items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose } = opts;
|
|
4
|
+
useImperativeHandle(
|
|
5
|
+
ref,
|
|
6
|
+
() => ({
|
|
7
|
+
onKeyDown: (event) => {
|
|
8
|
+
if (items.length === 0 && event.key !== "Escape") return false;
|
|
9
|
+
switch (event.key) {
|
|
10
|
+
case "ArrowDown": {
|
|
11
|
+
const next = (selectedIndex + 1) % items.length;
|
|
12
|
+
setSelectedIndex(next);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
case "ArrowUp": {
|
|
16
|
+
const prev = (selectedIndex - 1 + items.length) % items.length;
|
|
17
|
+
setSelectedIndex(prev);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
case "Enter": {
|
|
21
|
+
const item = items[selectedIndex];
|
|
22
|
+
if (item) onSelect(item);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
case "ArrowLeft": {
|
|
26
|
+
if (onBack) {
|
|
27
|
+
onBack();
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
case "Backspace": {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
case "ArrowRight": {
|
|
36
|
+
const item = items[selectedIndex];
|
|
37
|
+
if (item == null ? void 0 : item.navigatesToScope) {
|
|
38
|
+
onSelect(item);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
case "Escape": {
|
|
44
|
+
onClose();
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}),
|
|
52
|
+
[items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose]
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
useKeyboardNavigation
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=use-keyboard-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-keyboard-navigation.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/use-keyboard-navigation.ts"],"sourcesContent":["/**\n * Keyboard navigation for the mention menu.\n *\n * Exposes an imperative handle so MentionSuggestionList can forward keystrokes\n * from the editor into the menu.\n */\n\nimport type { ForwardedRef } from \"react\";\nimport { useImperativeHandle } from \"react\";\nimport type { MenuItem } from \"../data/types\";\n\nexport interface KeyboardNavigationHandle {\n onKeyDown: (event: KeyboardEvent) => boolean;\n}\n\nexport function useKeyboardNavigation(\n ref: ForwardedRef<KeyboardNavigationHandle>,\n opts: {\n items: MenuItem[];\n selectedIndex: number;\n setSelectedIndex: (index: number) => void;\n onSelect: (item: MenuItem) => void;\n onBack?: () => void;\n onClose: () => void;\n },\n) {\n const { items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose } = opts;\n\n useImperativeHandle(\n ref,\n () => ({\n onKeyDown: (event: KeyboardEvent): boolean => {\n if (items.length === 0 && event.key !== \"Escape\") return false;\n\n switch (event.key) {\n case \"ArrowDown\": {\n const next = (selectedIndex + 1) % items.length;\n setSelectedIndex(next);\n return true;\n }\n case \"ArrowUp\": {\n const prev = (selectedIndex - 1 + items.length) % items.length;\n setSelectedIndex(prev);\n return true;\n }\n case \"Enter\": {\n const item = items[selectedIndex];\n if (item) onSelect(item);\n return true;\n }\n case \"ArrowLeft\": {\n if (onBack) {\n onBack();\n return true;\n }\n return false;\n }\n case \"Backspace\": {\n // Never capture Backspace — let Tiptap handle it naturally.\n // The suggestion plugin closes the popup when you backspace past @.\n return false;\n }\n case \"ArrowRight\": {\n const item = items[selectedIndex];\n if (item?.navigatesToScope) {\n onSelect(item);\n return true;\n }\n return false;\n }\n case \"Escape\": {\n onClose();\n return true;\n }\n default:\n return false;\n }\n },\n }),\n [items, selectedIndex, setSelectedIndex, onSelect, onBack, onClose],\n );\n}\n"],"names":[],"mappings":";AAeO,SAAS,sBACd,KACA,MAQA;AACA,QAAM,EAAE,OAAO,eAAe,kBAAkB,UAAU,QAAQ,YAAY;AAE9E;AAAA,IACE;AAAA,IACA,OAAO;AAAA,MACL,WAAW,CAAC,UAAkC;AAC5C,YAAI,MAAM,WAAW,KAAK,MAAM,QAAQ,SAAU,QAAO;AAEzD,gBAAQ,MAAM,KAAA;AAAA,UACZ,KAAK,aAAa;AAChB,kBAAM,QAAQ,gBAAgB,KAAK,MAAM;AACzC,6BAAiB,IAAI;AACrB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,WAAW;AACd,kBAAM,QAAQ,gBAAgB,IAAI,MAAM,UAAU,MAAM;AACxD,6BAAiB,IAAI;AACrB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,SAAS;AACZ,kBAAM,OAAO,MAAM,aAAa;AAChC,gBAAI,eAAe,IAAI;AACvB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,aAAa;AAChB,gBAAI,QAAQ;AACV,qBAAA;AACA,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,aAAa;AAGhB,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,cAAc;AACjB,kBAAM,OAAO,MAAM,aAAa;AAChC,gBAAI,6BAAM,kBAAkB;AAC1B,uBAAS,IAAI;AACb,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,UAAU;AACb,oBAAA;AACA,mBAAO;AAAA,UACT;AAAA,UACA;AACE,mBAAO;AAAA,QAAA;AAAA,MAEb;AAAA,IAAA;AAAA,IAEF,CAAC,OAAO,eAAe,kBAAkB,UAAU,QAAQ,OAAO;AAAA,EAAA;AAEtE;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const store = require("@tanstack/store");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
function getCurrentScope(state) {
|
|
6
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
7
|
+
return (lastEntry == null ? void 0 : lastEntry.scope) ?? "root";
|
|
8
|
+
}
|
|
9
|
+
function getSelectedIndex(state) {
|
|
10
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
11
|
+
return (lastEntry == null ? void 0 : lastEntry.selectedIndex) ?? 0;
|
|
12
|
+
}
|
|
13
|
+
function useMenuNavigation() {
|
|
14
|
+
const [store$1] = react.useState(() => {
|
|
15
|
+
const baseStore = new store.Store({
|
|
16
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
17
|
+
query: "",
|
|
18
|
+
isActive: false
|
|
19
|
+
});
|
|
20
|
+
const navigationStore = baseStore;
|
|
21
|
+
navigationStore.navigateTo = (scope, currentSelectedIndex, options) => {
|
|
22
|
+
const state = baseStore.state;
|
|
23
|
+
const updatedStack = [...state.scopeStack];
|
|
24
|
+
if (updatedStack.length > 0) {
|
|
25
|
+
updatedStack[updatedStack.length - 1] = {
|
|
26
|
+
...updatedStack[updatedStack.length - 1],
|
|
27
|
+
selectedIndex: currentSelectedIndex
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const newStack = [
|
|
31
|
+
...updatedStack,
|
|
32
|
+
{
|
|
33
|
+
scope,
|
|
34
|
+
selectedIndex: 0,
|
|
35
|
+
breadcrumbLabel: options == null ? void 0 : options.breadcrumbLabel,
|
|
36
|
+
parentScope: options == null ? void 0 : options.parentScope
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
baseStore.setState((prev) => ({
|
|
40
|
+
...prev,
|
|
41
|
+
scopeStack: newStack,
|
|
42
|
+
query: ""
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
navigationStore.navigateBack = () => {
|
|
46
|
+
const state = baseStore.state;
|
|
47
|
+
if (state.scopeStack.length <= 1) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const newStack = state.scopeStack.slice(0, -1);
|
|
51
|
+
baseStore.setState((prev) => ({
|
|
52
|
+
...prev,
|
|
53
|
+
scopeStack: newStack,
|
|
54
|
+
query: ""
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
navigationStore.setQuery = (query) => {
|
|
58
|
+
baseStore.setState((prev) => ({ ...prev, query }));
|
|
59
|
+
};
|
|
60
|
+
navigationStore.open = () => {
|
|
61
|
+
baseStore.setState(() => ({
|
|
62
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
63
|
+
query: "",
|
|
64
|
+
isActive: true
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
navigationStore.close = () => {
|
|
68
|
+
baseStore.setState(() => ({
|
|
69
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
70
|
+
query: "",
|
|
71
|
+
isActive: false
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
return navigationStore;
|
|
75
|
+
});
|
|
76
|
+
return store$1;
|
|
77
|
+
}
|
|
78
|
+
exports.getCurrentScope = getCurrentScope;
|
|
79
|
+
exports.getSelectedIndex = getSelectedIndex;
|
|
80
|
+
exports.useMenuNavigation = useMenuNavigation;
|
|
81
|
+
//# sourceMappingURL=use-menu-navigation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-navigation.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/use-menu-navigation.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\nimport { useState } from 'react';\nimport type { MenuScope } from '../data/types';\n\n/**\n * Stack entry with scope and selected item position\n *\n * When navigating forward, we save the current selectedIndex so we can restore\n * it when navigating back (like browser history).\n */\nexport interface ScopeStackEntry {\n scope: MenuScope;\n selectedIndex: number; // Position of selected item when we left this scope\n breadcrumbLabel?: string; // Display name for this scope, when it isn't a known category\n parentScope?: MenuScope; // Scope we navigated from\n}\n\n/**\n * Menu navigation state - tracks current navigation context\n *\n * This is the \"current UI state\" that changes as user navigates and types.\n * Cleared when menu opens/closes.\n *\n * Uses a navigation stack for proper back button behavior:\n * - Forward navigation: push to stack (with current selectedIndex)\n * - Back navigation: pop from stack (restore selectedIndex)\n * - Current scope: last item in stack\n * - Parent scope: second-to-last item in stack\n */\nexport interface MenuNavigationState {\n // Navigation stack (browser-like history)\n // Example: [{ scope: 'root', selectedIndex: 2 }, { scope: 'folder_123', selectedIndex: 0 }]\n // Current scope = scopeStack[scopeStack.length - 1].scope\n // Parent scope = scopeStack[scopeStack.length - 2].scope\n scopeStack: ScopeStackEntry[];\n\n // Current search query\n query: string;\n\n // Is menu currently active?\n isActive: boolean;\n}\n\n/**\n * Menu navigation store with helper methods\n */\nexport interface MenuNavigationStore extends Store<MenuNavigationState> {\n navigateTo: (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => void;\n navigateBack: () => void;\n setQuery: (query: string) => void;\n open: () => void;\n close: () => void;\n}\n\n/**\n * Get current scope from state\n */\nexport function getCurrentScope(state: MenuNavigationState): MenuScope {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.scope ?? \"root\";\n}\n\n/**\n * Get parent scope from state (for source inheritance)\n */\nexport function getParentScope(state: MenuNavigationState): MenuScope | undefined {\n if (state.scopeStack.length <= 1) return undefined;\n const parentEntry = state.scopeStack[state.scopeStack.length - 2];\n return parentEntry?.scope;\n}\n\n/**\n * Get selected index from current scope stack entry\n */\nexport function getSelectedIndex(state: MenuNavigationState): number {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.selectedIndex ?? 0;\n}\n\n/**\n * useMenuNavigation - Creates per-editor navigation state\n *\n * This is a UI concern - each editor instance gets its own navigation state.\n *\n * Returns a TanStack Store with navigation helper methods.\n */\nexport function useMenuNavigation(): MenuNavigationStore {\n const [store] = useState(() => {\n const baseStore = new Store<MenuNavigationState>({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n });\n\n // Extend store with navigation methods\n const navigationStore = baseStore as MenuNavigationStore;\n\n navigationStore.navigateTo = (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => {\n const state = baseStore.state;\n\n // Save current selectedIndex in the current entry before navigating forward\n const updatedStack = [...state.scopeStack];\n if (updatedStack.length > 0) {\n updatedStack[updatedStack.length - 1] = {\n ...updatedStack[updatedStack.length - 1],\n selectedIndex: currentSelectedIndex,\n };\n }\n\n // Push new scope with selectedIndex = 0 (start at top of new scope)\n const newStack = [\n ...updatedStack,\n {\n scope,\n selectedIndex: 0,\n breadcrumbLabel: options?.breadcrumbLabel,\n parentScope: options?.parentScope,\n },\n ];\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.navigateBack = () => {\n const state = baseStore.state;\n\n if (state.scopeStack.length <= 1) {\n return;\n }\n\n const newStack = state.scopeStack.slice(0, -1);\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.setQuery = (query: string) => {\n baseStore.setState((prev) => ({ ...prev, query }));\n };\n\n navigationStore.open = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: true,\n }));\n };\n\n navigationStore.close = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n }));\n };\n\n return navigationStore;\n });\n\n return store;\n}\n"],"names":["store","useState","Store"],"mappings":";;;;AA6DO,SAAS,gBAAgB,OAAuC;AACrE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,UAAS;AAC7B;AAcO,SAAS,iBAAiB,OAAoC;AACnE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,kBAAiB;AACrC;AASO,SAAS,oBAAyC;AACvD,QAAM,CAACA,OAAK,IAAIC,MAAAA,SAAS,MAAM;AAC7B,UAAM,YAAY,IAAIC,YAA2B;AAAA,MAC/C,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,MAChD,OAAO;AAAA,MACP,UAAU;AAAA,IAAA,CACX;AAGD,UAAM,kBAAkB;AAExB,oBAAgB,aAAa,CAC3B,OACA,sBACA,YACG;AACH,YAAM,QAAQ,UAAU;AAGxB,YAAM,eAAe,CAAC,GAAG,MAAM,UAAU;AACzC,UAAI,aAAa,SAAS,GAAG;AAC3B,qBAAa,aAAa,SAAS,CAAC,IAAI;AAAA,UACtC,GAAG,aAAa,aAAa,SAAS,CAAC;AAAA,UACvC,eAAe;AAAA,QAAA;AAAA,MAEnB;AAGA,YAAM,WAAW;AAAA,QACf,GAAG;AAAA,QACH;AAAA,UACE;AAAA,UACA,eAAe;AAAA,UACf,iBAAiB,mCAAS;AAAA,UAC1B,aAAa,mCAAS;AAAA,QAAA;AAAA,MACxB;AAGF,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,eAAe,MAAM;AACnC,YAAM,QAAQ,UAAU;AAExB,UAAI,MAAM,WAAW,UAAU,GAAG;AAChC;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,WAAW,MAAM,GAAG,EAAE;AAE7C,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,WAAW,CAAC,UAAkB;AAC5C,gBAAU,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ;AAAA,IACnD;AAEA,oBAAgB,OAAO,MAAM;AAC3B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,oBAAgB,QAAQ,MAAM;AAC5B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAOF;AACT;;;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Store } from "@tanstack/store";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
function getCurrentScope(state) {
|
|
4
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
5
|
+
return (lastEntry == null ? void 0 : lastEntry.scope) ?? "root";
|
|
6
|
+
}
|
|
7
|
+
function getSelectedIndex(state) {
|
|
8
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
9
|
+
return (lastEntry == null ? void 0 : lastEntry.selectedIndex) ?? 0;
|
|
10
|
+
}
|
|
11
|
+
function useMenuNavigation() {
|
|
12
|
+
const [store] = useState(() => {
|
|
13
|
+
const baseStore = new Store({
|
|
14
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
15
|
+
query: "",
|
|
16
|
+
isActive: false
|
|
17
|
+
});
|
|
18
|
+
const navigationStore = baseStore;
|
|
19
|
+
navigationStore.navigateTo = (scope, currentSelectedIndex, options) => {
|
|
20
|
+
const state = baseStore.state;
|
|
21
|
+
const updatedStack = [...state.scopeStack];
|
|
22
|
+
if (updatedStack.length > 0) {
|
|
23
|
+
updatedStack[updatedStack.length - 1] = {
|
|
24
|
+
...updatedStack[updatedStack.length - 1],
|
|
25
|
+
selectedIndex: currentSelectedIndex
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const newStack = [
|
|
29
|
+
...updatedStack,
|
|
30
|
+
{
|
|
31
|
+
scope,
|
|
32
|
+
selectedIndex: 0,
|
|
33
|
+
breadcrumbLabel: options == null ? void 0 : options.breadcrumbLabel,
|
|
34
|
+
parentScope: options == null ? void 0 : options.parentScope
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
baseStore.setState((prev) => ({
|
|
38
|
+
...prev,
|
|
39
|
+
scopeStack: newStack,
|
|
40
|
+
query: ""
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
navigationStore.navigateBack = () => {
|
|
44
|
+
const state = baseStore.state;
|
|
45
|
+
if (state.scopeStack.length <= 1) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const newStack = state.scopeStack.slice(0, -1);
|
|
49
|
+
baseStore.setState((prev) => ({
|
|
50
|
+
...prev,
|
|
51
|
+
scopeStack: newStack,
|
|
52
|
+
query: ""
|
|
53
|
+
}));
|
|
54
|
+
};
|
|
55
|
+
navigationStore.setQuery = (query) => {
|
|
56
|
+
baseStore.setState((prev) => ({ ...prev, query }));
|
|
57
|
+
};
|
|
58
|
+
navigationStore.open = () => {
|
|
59
|
+
baseStore.setState(() => ({
|
|
60
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
61
|
+
query: "",
|
|
62
|
+
isActive: true
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
navigationStore.close = () => {
|
|
66
|
+
baseStore.setState(() => ({
|
|
67
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
68
|
+
query: "",
|
|
69
|
+
isActive: false
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
return navigationStore;
|
|
73
|
+
});
|
|
74
|
+
return store;
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
getCurrentScope,
|
|
78
|
+
getSelectedIndex,
|
|
79
|
+
useMenuNavigation
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=use-menu-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-navigation.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/use-menu-navigation.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\nimport { useState } from 'react';\nimport type { MenuScope } from '../data/types';\n\n/**\n * Stack entry with scope and selected item position\n *\n * When navigating forward, we save the current selectedIndex so we can restore\n * it when navigating back (like browser history).\n */\nexport interface ScopeStackEntry {\n scope: MenuScope;\n selectedIndex: number; // Position of selected item when we left this scope\n breadcrumbLabel?: string; // Display name for this scope, when it isn't a known category\n parentScope?: MenuScope; // Scope we navigated from\n}\n\n/**\n * Menu navigation state - tracks current navigation context\n *\n * This is the \"current UI state\" that changes as user navigates and types.\n * Cleared when menu opens/closes.\n *\n * Uses a navigation stack for proper back button behavior:\n * - Forward navigation: push to stack (with current selectedIndex)\n * - Back navigation: pop from stack (restore selectedIndex)\n * - Current scope: last item in stack\n * - Parent scope: second-to-last item in stack\n */\nexport interface MenuNavigationState {\n // Navigation stack (browser-like history)\n // Example: [{ scope: 'root', selectedIndex: 2 }, { scope: 'folder_123', selectedIndex: 0 }]\n // Current scope = scopeStack[scopeStack.length - 1].scope\n // Parent scope = scopeStack[scopeStack.length - 2].scope\n scopeStack: ScopeStackEntry[];\n\n // Current search query\n query: string;\n\n // Is menu currently active?\n isActive: boolean;\n}\n\n/**\n * Menu navigation store with helper methods\n */\nexport interface MenuNavigationStore extends Store<MenuNavigationState> {\n navigateTo: (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => void;\n navigateBack: () => void;\n setQuery: (query: string) => void;\n open: () => void;\n close: () => void;\n}\n\n/**\n * Get current scope from state\n */\nexport function getCurrentScope(state: MenuNavigationState): MenuScope {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.scope ?? \"root\";\n}\n\n/**\n * Get parent scope from state (for source inheritance)\n */\nexport function getParentScope(state: MenuNavigationState): MenuScope | undefined {\n if (state.scopeStack.length <= 1) return undefined;\n const parentEntry = state.scopeStack[state.scopeStack.length - 2];\n return parentEntry?.scope;\n}\n\n/**\n * Get selected index from current scope stack entry\n */\nexport function getSelectedIndex(state: MenuNavigationState): number {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.selectedIndex ?? 0;\n}\n\n/**\n * useMenuNavigation - Creates per-editor navigation state\n *\n * This is a UI concern - each editor instance gets its own navigation state.\n *\n * Returns a TanStack Store with navigation helper methods.\n */\nexport function useMenuNavigation(): MenuNavigationStore {\n const [store] = useState(() => {\n const baseStore = new Store<MenuNavigationState>({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n });\n\n // Extend store with navigation methods\n const navigationStore = baseStore as MenuNavigationStore;\n\n navigationStore.navigateTo = (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => {\n const state = baseStore.state;\n\n // Save current selectedIndex in the current entry before navigating forward\n const updatedStack = [...state.scopeStack];\n if (updatedStack.length > 0) {\n updatedStack[updatedStack.length - 1] = {\n ...updatedStack[updatedStack.length - 1],\n selectedIndex: currentSelectedIndex,\n };\n }\n\n // Push new scope with selectedIndex = 0 (start at top of new scope)\n const newStack = [\n ...updatedStack,\n {\n scope,\n selectedIndex: 0,\n breadcrumbLabel: options?.breadcrumbLabel,\n parentScope: options?.parentScope,\n },\n ];\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.navigateBack = () => {\n const state = baseStore.state;\n\n if (state.scopeStack.length <= 1) {\n return;\n }\n\n const newStack = state.scopeStack.slice(0, -1);\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.setQuery = (query: string) => {\n baseStore.setState((prev) => ({ ...prev, query }));\n };\n\n navigationStore.open = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: true,\n }));\n };\n\n navigationStore.close = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n }));\n };\n\n return navigationStore;\n });\n\n return store;\n}\n"],"names":[],"mappings":";;AA6DO,SAAS,gBAAgB,OAAuC;AACrE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,UAAS;AAC7B;AAcO,SAAS,iBAAiB,OAAoC;AACnE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,kBAAiB;AACrC;AASO,SAAS,oBAAyC;AACvD,QAAM,CAAC,KAAK,IAAI,SAAS,MAAM;AAC7B,UAAM,YAAY,IAAI,MAA2B;AAAA,MAC/C,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,MAChD,OAAO;AAAA,MACP,UAAU;AAAA,IAAA,CACX;AAGD,UAAM,kBAAkB;AAExB,oBAAgB,aAAa,CAC3B,OACA,sBACA,YACG;AACH,YAAM,QAAQ,UAAU;AAGxB,YAAM,eAAe,CAAC,GAAG,MAAM,UAAU;AACzC,UAAI,aAAa,SAAS,GAAG;AAC3B,qBAAa,aAAa,SAAS,CAAC,IAAI;AAAA,UACtC,GAAG,aAAa,aAAa,SAAS,CAAC;AAAA,UACvC,eAAe;AAAA,QAAA;AAAA,MAEnB;AAGA,YAAM,WAAW;AAAA,QACf,GAAG;AAAA,QACH;AAAA,UACE;AAAA,UACA,eAAe;AAAA,UACf,iBAAiB,mCAAS;AAAA,UAC1B,aAAa,mCAAS;AAAA,QAAA;AAAA,MACxB;AAGF,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,eAAe,MAAM;AACnC,YAAM,QAAQ,UAAU;AAExB,UAAI,MAAM,WAAW,UAAU,GAAG;AAChC;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,WAAW,MAAM,GAAG,EAAE;AAE7C,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,WAAW,CAAC,UAAkB;AAC5C,gBAAU,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ;AAAA,IACnD;AAEA,oBAAgB,OAAO,MAAM;AAC3B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,oBAAgB,QAAQ,MAAM;AAC5B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;"}
|