@memberjunction/ng-conversations 5.43.0 → 5.44.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/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +0 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js +56 -52
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +37 -41
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +10 -14
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +41 -45
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +22 -36
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -0
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +134 -166
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +73 -8
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +487 -123
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.js +6 -9
- package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +20 -24
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +10 -11
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.js +49 -28
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +24 -10
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts +11 -16
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +52 -46
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +83 -18
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +238 -151
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +10 -1
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +67 -15
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.js +6 -9
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts +3 -0
- package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.js +9 -4
- package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +45 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +10 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts +46 -0
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/channels/client-context-channel.js +174 -0
- package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts +123 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js +397 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-state.d.ts +103 -0
- package/dist/lib/components/realtime/media/media-channel-state.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-state.js +143 -0
- package/dist/lib/components/realtime/media/media-channel-state.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-tools.d.ts +24 -0
- package/dist/lib/components/realtime/media/media-channel-tools.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-tools.js +107 -0
- package/dist/lib/components/realtime/media/media-channel-tools.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts +89 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.js +253 -0
- package/dist/lib/components/realtime/media/media-channel.js.map +1 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts +141 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.js +574 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +59 -14
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +277 -74
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +28 -27
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.js +144 -143
- package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +12 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.js +105 -43
- package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.d.ts +41 -7
- package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.js +216 -102
- package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +0 -2
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.js +67 -71
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +364 -44
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +839 -153
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.d.ts +5 -5
- package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts +70 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.js +115 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +55 -57
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +165 -143
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +80 -71
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +83 -113
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.d.ts +270 -0
- package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-ui-config.js +212 -0
- package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -0
- package/dist/lib/components/search/search-panel.component.d.ts +2 -0
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +92 -101
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +10 -11
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +12 -15
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +18 -7
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +29 -26
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +37 -6
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/conversation-state.model.d.ts +6 -3
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/models/conversation-state.model.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +2 -2
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +6 -2
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts +17 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +58 -2
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.d.ts +143 -0
- package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -0
- package/dist/lib/services/realtime-audio-recorder.js +379 -0
- package/dist/lib/services/realtime-audio-recorder.js.map +1 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts +75 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -0
- package/dist/lib/services/realtime-pcm-wav.js +205 -0
- package/dist/lib/services/realtime-pcm-wav.js.map +1 -0
- package/dist/lib/services/realtime-session-review.service.d.ts +28 -1
- package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session-review.service.js +12 -3
- package/dist/lib/services/realtime-session-review.service.js.map +1 -1
- package/dist/lib/services/realtime-session.service.d.ts +210 -20
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session.service.js +452 -21
- package/dist/lib/services/realtime-session.service.js.map +1 -1
- package/dist/lib/services/realtime-sessions-adapter.js +1 -1
- package/dist/lib/services/realtime-sessions-adapter.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.d.ts +7 -2
- package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
- package/dist/lib/services/ui-command-handler.service.js +6 -2
- package/dist/lib/services/ui-command-handler.service.js.map +1 -1
- package/dist/lib/utils/plan-mode-preference.d.ts +62 -0
- package/dist/lib/utils/plan-mode-preference.d.ts.map +1 -0
- package/dist/lib/utils/plan-mode-preference.js +130 -0
- package/dist/lib/utils/plan-mode-preference.js.map +1 -0
- package/dist/public-api.d.ts +6 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +8 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +28 -26
- package/dist/__tests__/attachment-badge.test.d.ts +0 -2
- package/dist/__tests__/attachment-badge.test.d.ts.map +0 -1
- package/dist/__tests__/attachment-badge.test.js +0 -66
- package/dist/__tests__/attachment-badge.test.js.map +0 -1
- package/dist/__tests__/channel-optional-surface.test.d.ts +0 -2
- package/dist/__tests__/channel-optional-surface.test.d.ts.map +0 -1
- package/dist/__tests__/channel-optional-surface.test.js +0 -53
- package/dist/__tests__/channel-optional-surface.test.js.map +0 -1
- package/dist/__tests__/chat-events.test.d.ts +0 -14
- package/dist/__tests__/chat-events.test.d.ts.map +0 -1
- package/dist/__tests__/chat-events.test.js +0 -109
- package/dist/__tests__/chat-events.test.js.map +0 -1
- package/dist/__tests__/collections-full-view.test.d.ts +0 -2
- package/dist/__tests__/collections-full-view.test.d.ts.map +0 -1
- package/dist/__tests__/collections-full-view.test.js +0 -225
- package/dist/__tests__/collections-full-view.test.js.map +0 -1
- package/dist/__tests__/conversation-cache.test.d.ts +0 -2
- package/dist/__tests__/conversation-cache.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-cache.test.js +0 -233
- package/dist/__tests__/conversation-cache.test.js.map +0 -1
- package/dist/__tests__/conversation-naming.test.d.ts +0 -2
- package/dist/__tests__/conversation-naming.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-naming.test.js +0 -110
- package/dist/__tests__/conversation-naming.test.js.map +0 -1
- package/dist/__tests__/delegation-result-parser.test.d.ts +0 -2
- package/dist/__tests__/delegation-result-parser.test.d.ts.map +0 -1
- package/dist/__tests__/delegation-result-parser.test.js +0 -107
- package/dist/__tests__/delegation-result-parser.test.js.map +0 -1
- package/dist/__tests__/distinct-artifacts.test.d.ts +0 -2
- package/dist/__tests__/distinct-artifacts.test.d.ts.map +0 -1
- package/dist/__tests__/distinct-artifacts.test.js +0 -56
- package/dist/__tests__/distinct-artifacts.test.js.map +0 -1
- package/dist/__tests__/event-wiring.test.d.ts +0 -15
- package/dist/__tests__/event-wiring.test.d.ts.map +0 -1
- package/dist/__tests__/event-wiring.test.js +0 -100
- package/dist/__tests__/event-wiring.test.js.map +0 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.d.ts.map +0 -1
- package/dist/__tests__/index.test.js +0 -7
- package/dist/__tests__/index.test.js.map +0 -1
- package/dist/__tests__/narration-template.test.d.ts +0 -2
- package/dist/__tests__/narration-template.test.d.ts.map +0 -1
- package/dist/__tests__/narration-template.test.js +0 -76
- package/dist/__tests__/narration-template.test.js.map +0 -1
- package/dist/__tests__/notification-model.test.d.ts +0 -2
- package/dist/__tests__/notification-model.test.d.ts.map +0 -1
- package/dist/__tests__/notification-model.test.js +0 -68
- package/dist/__tests__/notification-model.test.js.map +0 -1
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts +0 -2
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-agent-picker-models.test.js +0 -49
- package/dist/__tests__/realtime-agent-picker-models.test.js.map +0 -1
- package/dist/__tests__/realtime-audio-visuals.test.d.ts +0 -2
- package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-audio-visuals.test.js +0 -123
- package/dist/__tests__/realtime-audio-visuals.test.js.map +0 -1
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +0 -2
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-delegation-card-cancel.test.js +0 -48
- package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +0 -1
- package/dist/__tests__/realtime-disclosure.test.d.ts +0 -2
- package/dist/__tests__/realtime-disclosure.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-disclosure.test.js +0 -164
- package/dist/__tests__/realtime-disclosure.test.js.map +0 -1
- package/dist/__tests__/realtime-pairing.test.d.ts +0 -2
- package/dist/__tests__/realtime-pairing.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-pairing.test.js +0 -207
- package/dist/__tests__/realtime-pairing.test.js.map +0 -1
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts +0 -2
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-review-lifecycle.test.js +0 -154
- package/dist/__tests__/realtime-review-lifecycle.test.js.map +0 -1
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-cancel-usage.test.js +0 -230
- package/dist/__tests__/realtime-session-cancel-usage.test.js.map +0 -1
- package/dist/__tests__/realtime-session-channels.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-channels.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-channels.test.js +0 -252
- package/dist/__tests__/realtime-session-channels.test.js.map +0 -1
- package/dist/__tests__/realtime-session-client-tools.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-client-tools.test.js +0 -103
- package/dist/__tests__/realtime-session-client-tools.test.js.map +0 -1
- package/dist/__tests__/realtime-session-minimized.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-minimized.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-minimized.test.js +0 -32
- package/dist/__tests__/realtime-session-minimized.test.js.map +0 -1
- package/dist/__tests__/realtime-session-mint.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-mint.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-mint.test.js +0 -69
- package/dist/__tests__/realtime-session-mint.test.js.map +0 -1
- package/dist/__tests__/realtime-session-policy.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-policy.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-policy.test.js +0 -303
- package/dist/__tests__/realtime-session-policy.test.js.map +0 -1
- package/dist/__tests__/realtime-session-review.service.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-review.service.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-review.service.test.js +0 -743
- package/dist/__tests__/realtime-session-review.service.test.js.map +0 -1
- package/dist/__tests__/realtime-session-state.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-state.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-state.test.js +0 -83
- package/dist/__tests__/realtime-session-state.test.js.map +0 -1
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-timeline-card.test.js +0 -106
- package/dist/__tests__/realtime-session-timeline-card.test.js.map +0 -1
- package/dist/__tests__/realtime-session-timeline.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-timeline.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-timeline.test.js +0 -142
- package/dist/__tests__/realtime-session-timeline.test.js.map +0 -1
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts +0 -19
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-sessions-adapter.test.js +0 -188
- package/dist/__tests__/realtime-sessions-adapter.test.js.map +0 -1
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +0 -2
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-surface-panel-prefs.test.js +0 -100
- package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +0 -1
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +0 -2
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-surface-tabs-model.test.js +0 -193
- package/dist/__tests__/realtime-surface-tabs-model.test.js.map +0 -1
- package/dist/__tests__/remote-browser-audio-player.test.d.ts +0 -2
- package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +0 -1
- package/dist/__tests__/remote-browser-audio-player.test.js +0 -137
- package/dist/__tests__/remote-browser-audio-player.test.js.map +0 -1
- package/dist/__tests__/remote-browser-channel.test.d.ts +0 -2
- package/dist/__tests__/remote-browser-channel.test.d.ts.map +0 -1
- package/dist/__tests__/remote-browser-channel.test.js +0 -585
- package/dist/__tests__/remote-browser-channel.test.js.map +0 -1
- package/dist/__tests__/search-service.test.d.ts +0 -2
- package/dist/__tests__/search-service.test.d.ts.map +0 -1
- package/dist/__tests__/search-service.test.js +0 -114
- package/dist/__tests__/search-service.test.js.map +0 -1
- package/dist/__tests__/slot-defaults.test.d.ts +0 -24
- package/dist/__tests__/slot-defaults.test.d.ts.map +0 -1
- package/dist/__tests__/slot-defaults.test.js +0 -63
- package/dist/__tests__/slot-defaults.test.js.map +0 -1
- package/dist/__tests__/toast-service.test.d.ts +0 -2
- package/dist/__tests__/toast-service.test.d.ts.map +0 -1
- package/dist/__tests__/toast-service.test.js +0 -143
- package/dist/__tests__/toast-service.test.js.map +0 -1
- package/dist/__tests__/user-authorization.test.d.ts +0 -2
- package/dist/__tests__/user-authorization.test.d.ts.map +0 -1
- package/dist/__tests__/user-authorization.test.js +0 -97
- package/dist/__tests__/user-authorization.test.js.map +0 -1
- package/dist/__tests__/voice-session-narration.test.d.ts +0 -2
- package/dist/__tests__/voice-session-narration.test.d.ts.map +0 -1
- package/dist/__tests__/voice-session-narration.test.js +0 -609
- package/dist/__tests__/voice-session-narration.test.js.map +0 -1
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-artifact-viewer.test.js +0 -101
- package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +0 -1
- package/dist/__tests__/whiteboard-channel.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-channel.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-channel.test.js +0 -260
- package/dist/__tests__/whiteboard-channel.test.js.map +0 -1
- package/dist/__tests__/whiteboard-restore-state.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-restore-state.test.js +0 -108
- package/dist/__tests__/whiteboard-restore-state.test.js.map +0 -1
|
@@ -30,9 +30,9 @@ function SearchPanelComponent_Conditional_0_Conditional_34_Template(rf, ctx) { i
|
|
|
30
30
|
} }
|
|
31
31
|
function SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
32
32
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
33
|
-
i0.ɵɵelementStart(0, "button",
|
|
33
|
+
i0.ɵɵelementStart(0, "button", 40);
|
|
34
34
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_For_8_Template_button_click_0_listener() { const search_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.useRecentSearch(search_r7)); });
|
|
35
|
-
i0.ɵɵelement(1, "i",
|
|
35
|
+
i0.ɵɵelement(1, "i", 41);
|
|
36
36
|
i0.ɵɵelementStart(2, "span");
|
|
37
37
|
i0.ɵɵtext(3);
|
|
38
38
|
i0.ɵɵelementEnd()();
|
|
@@ -43,15 +43,15 @@ function SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_For_8_T
|
|
|
43
43
|
} }
|
|
44
44
|
function SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
45
45
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
46
|
-
i0.ɵɵelementStart(0, "div", 33)(1, "div",
|
|
46
|
+
i0.ɵɵelementStart(0, "div", 33)(1, "div", 36)(2, "h3");
|
|
47
47
|
i0.ɵɵtext(3, "Recent Searches");
|
|
48
48
|
i0.ɵɵelementEnd();
|
|
49
|
-
i0.ɵɵelementStart(4, "button",
|
|
49
|
+
i0.ɵɵelementStart(4, "button", 37);
|
|
50
50
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clearRecentSearches()); });
|
|
51
51
|
i0.ɵɵtext(5, " Clear ");
|
|
52
52
|
i0.ɵɵelementEnd()();
|
|
53
|
-
i0.ɵɵelementStart(6, "div",
|
|
54
|
-
i0.ɵɵrepeaterCreate(7, SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_For_8_Template, 4, 1, "button",
|
|
53
|
+
i0.ɵɵelementStart(6, "div", 38);
|
|
54
|
+
i0.ɵɵrepeaterCreate(7, SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_For_8_Template, 4, 1, "button", 39, i0.ɵɵrepeaterTrackByIdentity);
|
|
55
55
|
i0.ɵɵelementEnd()();
|
|
56
56
|
} if (rf & 2) {
|
|
57
57
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -60,43 +60,30 @@ function SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_Templat
|
|
|
60
60
|
} }
|
|
61
61
|
function SearchPanelComponent_Conditional_0_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
62
62
|
i0.ɵɵconditionalCreate(0, SearchPanelComponent_Conditional_0_Conditional_35_Conditional_0_Template, 9, 0, "div", 33);
|
|
63
|
-
i0.ɵɵelementStart(1, "
|
|
64
|
-
i0.ɵɵ
|
|
65
|
-
i0.ɵɵelementStart(3, "p");
|
|
66
|
-
i0.ɵɵtext(4, "Search across all your conversations, messages, artifacts, collections, and tasks");
|
|
63
|
+
i0.ɵɵelementStart(1, "mj-empty-state", 34)(2, "div", 35)(3, "h4");
|
|
64
|
+
i0.ɵɵtext(4, "Tips:");
|
|
67
65
|
i0.ɵɵelementEnd();
|
|
68
|
-
i0.ɵɵelementStart(5, "
|
|
69
|
-
i0.ɵɵtext(7, "
|
|
66
|
+
i0.ɵɵelementStart(5, "ul")(6, "li");
|
|
67
|
+
i0.ɵɵtext(7, "Use filters to narrow results");
|
|
70
68
|
i0.ɵɵelementEnd();
|
|
71
|
-
i0.ɵɵelementStart(8, "
|
|
72
|
-
i0.ɵɵtext(
|
|
69
|
+
i0.ɵɵelementStart(8, "li");
|
|
70
|
+
i0.ɵɵtext(9, "Set date range to find recent content");
|
|
73
71
|
i0.ɵɵelementEnd();
|
|
74
|
-
i0.ɵɵelementStart(
|
|
75
|
-
i0.ɵɵtext(
|
|
76
|
-
i0.ɵɵelementEnd();
|
|
77
|
-
i0.ɵɵelementStart(13, "li");
|
|
78
|
-
i0.ɵɵtext(14, "Use keyboard shortcuts to navigate");
|
|
72
|
+
i0.ɵɵelementStart(10, "li");
|
|
73
|
+
i0.ɵɵtext(11, "Use keyboard shortcuts to navigate");
|
|
79
74
|
i0.ɵɵelementEnd()()()();
|
|
80
75
|
} if (rf & 2) {
|
|
81
76
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
82
77
|
i0.ɵɵconditional(ctx_r1.recentSearches.length > 0 ? 0 : -1);
|
|
83
78
|
} }
|
|
84
79
|
function SearchPanelComponent_Conditional_0_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
-
i0.ɵɵ
|
|
86
|
-
i0.ɵɵelement(1, "i", 43);
|
|
87
|
-
i0.ɵɵelementStart(2, "p");
|
|
88
|
-
i0.ɵɵtext(3);
|
|
89
|
-
i0.ɵɵelementEnd();
|
|
90
|
-
i0.ɵɵelementStart(4, "p", 44);
|
|
91
|
-
i0.ɵɵtext(5, "Try adjusting your filters or search terms");
|
|
92
|
-
i0.ɵɵelementEnd()();
|
|
80
|
+
i0.ɵɵelement(0, "mj-empty-state", 25);
|
|
93
81
|
} if (rf & 2) {
|
|
94
82
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
95
|
-
i0.ɵɵ
|
|
96
|
-
i0.ɵɵtextInterpolate1("No results found for \"", ctx_r1.searchQuery, "\"");
|
|
83
|
+
i0.ɵɵproperty("Title", ctx_r1.NoResultsMessage);
|
|
97
84
|
} }
|
|
98
85
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
-
i0.ɵɵelement(0, "div",
|
|
86
|
+
i0.ɵɵelement(0, "div", 53);
|
|
100
87
|
} if (rf & 2) {
|
|
101
88
|
const result_r9 = i0.ɵɵnextContext().$implicit;
|
|
102
89
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -104,16 +91,16 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_C
|
|
|
104
91
|
} }
|
|
105
92
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
106
93
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
107
|
-
i0.ɵɵelementStart(0, "button",
|
|
94
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
108
95
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Template_button_click_0_listener() { const result_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.selectResult(result_r9)); });
|
|
109
|
-
i0.ɵɵelementStart(1, "div",
|
|
110
|
-
i0.ɵɵelement(2, "i",
|
|
96
|
+
i0.ɵɵelementStart(1, "div", 48);
|
|
97
|
+
i0.ɵɵelement(2, "i", 49);
|
|
111
98
|
i0.ɵɵelementEnd();
|
|
112
|
-
i0.ɵɵelementStart(3, "div",
|
|
113
|
-
i0.ɵɵelement(4, "div",
|
|
114
|
-
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Conditional_6_Template, 1, 1, "div",
|
|
99
|
+
i0.ɵɵelementStart(3, "div", 50);
|
|
100
|
+
i0.ɵɵelement(4, "div", 51)(5, "div", 52);
|
|
101
|
+
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Conditional_6_Template, 1, 1, "div", 53);
|
|
115
102
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelementStart(7, "div",
|
|
103
|
+
i0.ɵɵelementStart(7, "div", 54)(8, "span", 55);
|
|
117
104
|
i0.ɵɵtext(9);
|
|
118
105
|
i0.ɵɵelementEnd()()();
|
|
119
106
|
} if (rf & 2) {
|
|
@@ -132,12 +119,12 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_T
|
|
|
132
119
|
i0.ɵɵtextInterpolate(ctx_r1.formatDate(result_r9.createdAt));
|
|
133
120
|
} }
|
|
134
121
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
135
|
-
i0.ɵɵelementStart(0, "div",
|
|
122
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "h3", 44);
|
|
136
123
|
i0.ɵɵelement(2, "i", 14);
|
|
137
124
|
i0.ɵɵtext(3);
|
|
138
125
|
i0.ɵɵelementEnd();
|
|
139
|
-
i0.ɵɵelementStart(4, "div",
|
|
140
|
-
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Template, 10, 8, "button",
|
|
126
|
+
i0.ɵɵelementStart(4, "div", 45);
|
|
127
|
+
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_For_6_Template, 10, 8, "button", 46, _forTrack0);
|
|
141
128
|
i0.ɵɵelementEnd()();
|
|
142
129
|
} if (rf & 2) {
|
|
143
130
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -147,7 +134,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_Templat
|
|
|
147
134
|
i0.ɵɵrepeater(ctx_r1.results.conversations);
|
|
148
135
|
} }
|
|
149
136
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
-
i0.ɵɵelementStart(0, "div",
|
|
137
|
+
i0.ɵɵelementStart(0, "div", 56);
|
|
151
138
|
i0.ɵɵelement(1, "i", 14);
|
|
152
139
|
i0.ɵɵtext(2);
|
|
153
140
|
i0.ɵɵelementEnd();
|
|
@@ -157,7 +144,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_C
|
|
|
157
144
|
i0.ɵɵtextInterpolate1(" ", result_r11.conversationName, " ");
|
|
158
145
|
} }
|
|
159
146
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
-
i0.ɵɵelement(0, "div",
|
|
147
|
+
i0.ɵɵelement(0, "div", 53);
|
|
161
148
|
} if (rf & 2) {
|
|
162
149
|
const result_r11 = i0.ɵɵnextContext().$implicit;
|
|
163
150
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -165,17 +152,17 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_C
|
|
|
165
152
|
} }
|
|
166
153
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
167
154
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
168
|
-
i0.ɵɵelementStart(0, "button",
|
|
155
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
169
156
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Template_button_click_0_listener() { const result_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.selectResult(result_r11)); });
|
|
170
|
-
i0.ɵɵelementStart(1, "div",
|
|
171
|
-
i0.ɵɵelement(2, "i",
|
|
157
|
+
i0.ɵɵelementStart(1, "div", 48);
|
|
158
|
+
i0.ɵɵelement(2, "i", 49);
|
|
172
159
|
i0.ɵɵelementEnd();
|
|
173
|
-
i0.ɵɵelementStart(3, "div",
|
|
174
|
-
i0.ɵɵconditionalCreate(4, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Conditional_4_Template, 3, 1, "div",
|
|
175
|
-
i0.ɵɵelement(5, "div",
|
|
176
|
-
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Conditional_6_Template, 1, 1, "div",
|
|
160
|
+
i0.ɵɵelementStart(3, "div", 50);
|
|
161
|
+
i0.ɵɵconditionalCreate(4, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Conditional_4_Template, 3, 1, "div", 56);
|
|
162
|
+
i0.ɵɵelement(5, "div", 52);
|
|
163
|
+
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Conditional_6_Template, 1, 1, "div", 53);
|
|
177
164
|
i0.ɵɵelementEnd();
|
|
178
|
-
i0.ɵɵelementStart(7, "div",
|
|
165
|
+
i0.ɵɵelementStart(7, "div", 54)(8, "span", 55);
|
|
179
166
|
i0.ɵɵtext(9);
|
|
180
167
|
i0.ɵɵelementEnd()()();
|
|
181
168
|
} if (rf & 2) {
|
|
@@ -194,12 +181,12 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_T
|
|
|
194
181
|
i0.ɵɵtextInterpolate(ctx_r1.formatDate(result_r11.createdAt));
|
|
195
182
|
} }
|
|
196
183
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
197
|
-
i0.ɵɵelementStart(0, "div",
|
|
184
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "h3", 44);
|
|
198
185
|
i0.ɵɵelement(2, "i", 15);
|
|
199
186
|
i0.ɵɵtext(3);
|
|
200
187
|
i0.ɵɵelementEnd();
|
|
201
|
-
i0.ɵɵelementStart(4, "div",
|
|
202
|
-
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Template, 10, 8, "button",
|
|
188
|
+
i0.ɵɵelementStart(4, "div", 45);
|
|
189
|
+
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_For_6_Template, 10, 8, "button", 46, _forTrack0);
|
|
203
190
|
i0.ɵɵelementEnd()();
|
|
204
191
|
} if (rf & 2) {
|
|
205
192
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -209,7 +196,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_Templat
|
|
|
209
196
|
i0.ɵɵrepeater(ctx_r1.results.messages);
|
|
210
197
|
} }
|
|
211
198
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
212
|
-
i0.ɵɵelementStart(0, "div",
|
|
199
|
+
i0.ɵɵelementStart(0, "div", 57)(1, "span", 58);
|
|
213
200
|
i0.ɵɵtext(2);
|
|
214
201
|
i0.ɵɵelementEnd()();
|
|
215
202
|
} if (rf & 2) {
|
|
@@ -218,7 +205,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_C
|
|
|
218
205
|
i0.ɵɵtextInterpolate(result_r13.artifactType);
|
|
219
206
|
} }
|
|
220
207
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
221
|
-
i0.ɵɵelementStart(0, "div",
|
|
208
|
+
i0.ɵɵelementStart(0, "div", 56);
|
|
222
209
|
i0.ɵɵelement(1, "i", 14);
|
|
223
210
|
i0.ɵɵtext(2);
|
|
224
211
|
i0.ɵɵelementEnd();
|
|
@@ -228,7 +215,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_C
|
|
|
228
215
|
i0.ɵɵtextInterpolate1(" ", result_r13.conversationName, " ");
|
|
229
216
|
} }
|
|
230
217
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
231
|
-
i0.ɵɵelement(0, "div",
|
|
218
|
+
i0.ɵɵelement(0, "div", 53);
|
|
232
219
|
} if (rf & 2) {
|
|
233
220
|
const result_r13 = i0.ɵɵnextContext().$implicit;
|
|
234
221
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -236,19 +223,19 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_C
|
|
|
236
223
|
} }
|
|
237
224
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
238
225
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
239
|
-
i0.ɵɵelementStart(0, "button",
|
|
226
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
240
227
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Template_button_click_0_listener() { const result_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.selectResult(result_r13)); });
|
|
241
|
-
i0.ɵɵelementStart(1, "div",
|
|
242
|
-
i0.ɵɵelement(2, "i",
|
|
228
|
+
i0.ɵɵelementStart(1, "div", 48);
|
|
229
|
+
i0.ɵɵelement(2, "i", 49);
|
|
243
230
|
i0.ɵɵelementEnd();
|
|
244
|
-
i0.ɵɵelementStart(3, "div",
|
|
245
|
-
i0.ɵɵelement(4, "div",
|
|
246
|
-
i0.ɵɵconditionalCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_5_Template, 3, 1, "div",
|
|
247
|
-
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_6_Template, 3, 1, "div",
|
|
248
|
-
i0.ɵɵelement(7, "div",
|
|
249
|
-
i0.ɵɵconditionalCreate(8, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_8_Template, 1, 1, "div",
|
|
231
|
+
i0.ɵɵelementStart(3, "div", 50);
|
|
232
|
+
i0.ɵɵelement(4, "div", 51);
|
|
233
|
+
i0.ɵɵconditionalCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_5_Template, 3, 1, "div", 57);
|
|
234
|
+
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_6_Template, 3, 1, "div", 56);
|
|
235
|
+
i0.ɵɵelement(7, "div", 52);
|
|
236
|
+
i0.ɵɵconditionalCreate(8, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Conditional_8_Template, 1, 1, "div", 53);
|
|
250
237
|
i0.ɵɵelementEnd();
|
|
251
|
-
i0.ɵɵelementStart(9, "div",
|
|
238
|
+
i0.ɵɵelementStart(9, "div", 54)(10, "span", 55);
|
|
252
239
|
i0.ɵɵtext(11);
|
|
253
240
|
i0.ɵɵelementEnd()()();
|
|
254
241
|
} if (rf & 2) {
|
|
@@ -271,12 +258,12 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_T
|
|
|
271
258
|
i0.ɵɵtextInterpolate(ctx_r1.formatDate(result_r13.createdAt));
|
|
272
259
|
} }
|
|
273
260
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
274
|
-
i0.ɵɵelementStart(0, "div",
|
|
261
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "h3", 44);
|
|
275
262
|
i0.ɵɵelement(2, "i", 16);
|
|
276
263
|
i0.ɵɵtext(3);
|
|
277
264
|
i0.ɵɵelementEnd();
|
|
278
|
-
i0.ɵɵelementStart(4, "div",
|
|
279
|
-
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Template, 12, 10, "button",
|
|
265
|
+
i0.ɵɵelementStart(4, "div", 45);
|
|
266
|
+
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_For_6_Template, 12, 10, "button", 46, _forTrack0);
|
|
280
267
|
i0.ɵɵelementEnd()();
|
|
281
268
|
} if (rf & 2) {
|
|
282
269
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -286,7 +273,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_Templat
|
|
|
286
273
|
i0.ɵɵrepeater(ctx_r1.results.artifacts);
|
|
287
274
|
} }
|
|
288
275
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
289
|
-
i0.ɵɵelement(0, "div",
|
|
276
|
+
i0.ɵɵelement(0, "div", 53);
|
|
290
277
|
} if (rf & 2) {
|
|
291
278
|
const result_r15 = i0.ɵɵnextContext().$implicit;
|
|
292
279
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -294,16 +281,16 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_C
|
|
|
294
281
|
} }
|
|
295
282
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
296
283
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
297
|
-
i0.ɵɵelementStart(0, "button",
|
|
284
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
298
285
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Template_button_click_0_listener() { const result_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.selectResult(result_r15)); });
|
|
299
|
-
i0.ɵɵelementStart(1, "div",
|
|
300
|
-
i0.ɵɵelement(2, "i",
|
|
286
|
+
i0.ɵɵelementStart(1, "div", 48);
|
|
287
|
+
i0.ɵɵelement(2, "i", 49);
|
|
301
288
|
i0.ɵɵelementEnd();
|
|
302
|
-
i0.ɵɵelementStart(3, "div",
|
|
303
|
-
i0.ɵɵelement(4, "div",
|
|
304
|
-
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Conditional_6_Template, 1, 1, "div",
|
|
289
|
+
i0.ɵɵelementStart(3, "div", 50);
|
|
290
|
+
i0.ɵɵelement(4, "div", 51)(5, "div", 52);
|
|
291
|
+
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Conditional_6_Template, 1, 1, "div", 53);
|
|
305
292
|
i0.ɵɵelementEnd();
|
|
306
|
-
i0.ɵɵelementStart(7, "div",
|
|
293
|
+
i0.ɵɵelementStart(7, "div", 54)(8, "span", 55);
|
|
307
294
|
i0.ɵɵtext(9);
|
|
308
295
|
i0.ɵɵelementEnd()()();
|
|
309
296
|
} if (rf & 2) {
|
|
@@ -322,12 +309,12 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_T
|
|
|
322
309
|
i0.ɵɵtextInterpolate(ctx_r1.formatDate(result_r15.createdAt));
|
|
323
310
|
} }
|
|
324
311
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
325
|
-
i0.ɵɵelementStart(0, "div",
|
|
312
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "h3", 44);
|
|
326
313
|
i0.ɵɵelement(2, "i", 17);
|
|
327
314
|
i0.ɵɵtext(3);
|
|
328
315
|
i0.ɵɵelementEnd();
|
|
329
|
-
i0.ɵɵelementStart(4, "div",
|
|
330
|
-
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Template, 10, 8, "button",
|
|
316
|
+
i0.ɵɵelementStart(4, "div", 45);
|
|
317
|
+
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_For_6_Template, 10, 8, "button", 46, _forTrack0);
|
|
331
318
|
i0.ɵɵelementEnd()();
|
|
332
319
|
} if (rf & 2) {
|
|
333
320
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -337,7 +324,7 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_Templat
|
|
|
337
324
|
i0.ɵɵrepeater(ctx_r1.results.collections);
|
|
338
325
|
} }
|
|
339
326
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
340
|
-
i0.ɵɵelement(0, "div",
|
|
327
|
+
i0.ɵɵelement(0, "div", 53);
|
|
341
328
|
} if (rf & 2) {
|
|
342
329
|
const result_r17 = i0.ɵɵnextContext().$implicit;
|
|
343
330
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -345,16 +332,16 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_C
|
|
|
345
332
|
} }
|
|
346
333
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
347
334
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
348
|
-
i0.ɵɵelementStart(0, "button",
|
|
335
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
349
336
|
i0.ɵɵlistener("click", function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Template_button_click_0_listener() { const result_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.selectResult(result_r17)); });
|
|
350
|
-
i0.ɵɵelementStart(1, "div",
|
|
351
|
-
i0.ɵɵelement(2, "i",
|
|
337
|
+
i0.ɵɵelementStart(1, "div", 48);
|
|
338
|
+
i0.ɵɵelement(2, "i", 49);
|
|
352
339
|
i0.ɵɵelementEnd();
|
|
353
|
-
i0.ɵɵelementStart(3, "div",
|
|
354
|
-
i0.ɵɵelement(4, "div",
|
|
355
|
-
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Conditional_6_Template, 1, 1, "div",
|
|
340
|
+
i0.ɵɵelementStart(3, "div", 50);
|
|
341
|
+
i0.ɵɵelement(4, "div", 51)(5, "div", 52);
|
|
342
|
+
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Conditional_6_Template, 1, 1, "div", 53);
|
|
356
343
|
i0.ɵɵelementEnd();
|
|
357
|
-
i0.ɵɵelementStart(7, "div",
|
|
344
|
+
i0.ɵɵelementStart(7, "div", 54)(8, "span", 55);
|
|
358
345
|
i0.ɵɵtext(9);
|
|
359
346
|
i0.ɵɵelementEnd()()();
|
|
360
347
|
} if (rf & 2) {
|
|
@@ -373,12 +360,12 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_T
|
|
|
373
360
|
i0.ɵɵtextInterpolate(ctx_r1.formatDate(result_r17.createdAt));
|
|
374
361
|
} }
|
|
375
362
|
function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
376
|
-
i0.ɵɵelementStart(0, "div",
|
|
363
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "h3", 44);
|
|
377
364
|
i0.ɵɵelement(2, "i", 18);
|
|
378
365
|
i0.ɵɵtext(3);
|
|
379
366
|
i0.ɵɵelementEnd();
|
|
380
|
-
i0.ɵɵelementStart(4, "div",
|
|
381
|
-
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Template, 10, 8, "button",
|
|
367
|
+
i0.ɵɵelementStart(4, "div", 45);
|
|
368
|
+
i0.ɵɵrepeaterCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_For_6_Template, 10, 8, "button", 46, _forTrack0);
|
|
382
369
|
i0.ɵɵelementEnd()();
|
|
383
370
|
} if (rf & 2) {
|
|
384
371
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -388,14 +375,14 @@ function SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_Templat
|
|
|
388
375
|
i0.ɵɵrepeater(ctx_r1.results.tasks);
|
|
389
376
|
} }
|
|
390
377
|
function SearchPanelComponent_Conditional_0_Conditional_37_Template(rf, ctx) { if (rf & 1) {
|
|
391
|
-
i0.ɵɵelementStart(0, "div",
|
|
378
|
+
i0.ɵɵelementStart(0, "div", 42);
|
|
392
379
|
i0.ɵɵtext(1);
|
|
393
380
|
i0.ɵɵelementEnd();
|
|
394
|
-
i0.ɵɵconditionalCreate(2, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_Template, 7, 1, "div",
|
|
395
|
-
i0.ɵɵconditionalCreate(3, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_Template, 7, 1, "div",
|
|
396
|
-
i0.ɵɵconditionalCreate(4, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_Template, 7, 1, "div",
|
|
397
|
-
i0.ɵɵconditionalCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_Template, 7, 1, "div",
|
|
398
|
-
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_Template, 7, 1, "div",
|
|
381
|
+
i0.ɵɵconditionalCreate(2, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_2_Template, 7, 1, "div", 43);
|
|
382
|
+
i0.ɵɵconditionalCreate(3, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_3_Template, 7, 1, "div", 43);
|
|
383
|
+
i0.ɵɵconditionalCreate(4, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_4_Template, 7, 1, "div", 43);
|
|
384
|
+
i0.ɵɵconditionalCreate(5, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_5_Template, 7, 1, "div", 43);
|
|
385
|
+
i0.ɵɵconditionalCreate(6, SearchPanelComponent_Conditional_0_Conditional_37_Conditional_6_Template, 7, 1, "div", 43);
|
|
399
386
|
} if (rf & 2) {
|
|
400
387
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
401
388
|
i0.ɵɵadvance();
|
|
@@ -469,7 +456,7 @@ function SearchPanelComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
469
456
|
i0.ɵɵconditionalCreate(32, SearchPanelComponent_Conditional_0_Conditional_32_Template, 2, 0, "button", 22);
|
|
470
457
|
i0.ɵɵelementEnd()();
|
|
471
458
|
i0.ɵɵelementStart(33, "div", 23);
|
|
472
|
-
i0.ɵɵconditionalCreate(34, SearchPanelComponent_Conditional_0_Conditional_34_Template, 2, 0, "div", 24)(35, SearchPanelComponent_Conditional_0_Conditional_35_Template,
|
|
459
|
+
i0.ɵɵconditionalCreate(34, SearchPanelComponent_Conditional_0_Conditional_34_Template, 2, 0, "div", 24)(35, SearchPanelComponent_Conditional_0_Conditional_35_Template, 12, 1)(36, SearchPanelComponent_Conditional_0_Conditional_36_Template, 1, 1, "mj-empty-state", 25)(37, SearchPanelComponent_Conditional_0_Conditional_37_Template, 7, 7);
|
|
473
460
|
i0.ɵɵelementEnd();
|
|
474
461
|
i0.ɵɵelementStart(38, "div", 26)(39, "div", 27)(40, "span", 28)(41, "kbd");
|
|
475
462
|
i0.ɵɵtext(42, "\u2191");
|
|
@@ -543,6 +530,10 @@ export class SearchPanelComponent {
|
|
|
543
530
|
};
|
|
544
531
|
recentSearches = [];
|
|
545
532
|
selectedIndex = -1;
|
|
533
|
+
/** Message for the "no results" empty state, echoing the search term. */
|
|
534
|
+
get NoResultsMessage() {
|
|
535
|
+
return `No results found for "${this.searchQuery}"`;
|
|
536
|
+
}
|
|
546
537
|
destroy$ = new Subject();
|
|
547
538
|
constructor(searchService) {
|
|
548
539
|
this.searchService = searchService;
|
|
@@ -809,15 +800,15 @@ export class SearchPanelComponent {
|
|
|
809
800
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);
|
|
810
801
|
} }, hostBindings: function SearchPanelComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
811
802
|
i0.ɵɵlistener("keydown", function SearchPanelComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyboard($event); });
|
|
812
|
-
} }, inputs: { environmentId: "environmentId", currentUser: "currentUser", isOpen: "isOpen" }, outputs: { close: "close", resultSelected: "resultSelected" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["searchInput", ""], [1, "search-panel-overlay"], [1, "search-panel-overlay", 3, "click"], [1, "search-panel", 3, "click"], [1, "search-header"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search conversations, messages, artifacts, collections, and tasks...", "autocomplete", "off", 1, "search-input", 3, "ngModelChange", "input", "ngModel"], ["type", "button", "title", "Clear search", 1, "clear-button"], ["type", "button", "title", "Close (Esc)", 1, "close-button", 3, "click"], [1, "fa-solid", "fa-times"], [1, "search-filters"], [1, "filter-buttons"], ["type", "button", 1, "filter-button", 3, "click"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-comment"], [1, "fa-solid", "fa-file-alt"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-tasks"], [1, "date-filter"], ["Placeholder", "From", 3, "ngModelChange", "ngModel"], ["Placeholder", "To", 3, "ngModelChange", "ngModel"], ["type", "button", "title", "Clear date range", 1, "clear-date-button"], [1, "search-results"], [1, "search-loading"], [
|
|
803
|
+
} }, inputs: { environmentId: "environmentId", currentUser: "currentUser", isOpen: "isOpen" }, outputs: { close: "close", resultSelected: "resultSelected" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["searchInput", ""], [1, "search-panel-overlay"], [1, "search-panel-overlay", 3, "click"], [1, "search-panel", 3, "click"], [1, "search-header"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search conversations, messages, artifacts, collections, and tasks...", "autocomplete", "off", 1, "search-input", 3, "ngModelChange", "input", "ngModel"], ["type", "button", "title", "Clear search", 1, "clear-button"], ["type", "button", "title", "Close (Esc)", 1, "close-button", 3, "click"], [1, "fa-solid", "fa-times"], [1, "search-filters"], [1, "filter-buttons"], ["type", "button", 1, "filter-button", 3, "click"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-comment"], [1, "fa-solid", "fa-file-alt"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-tasks"], [1, "date-filter"], ["Placeholder", "From", 3, "ngModelChange", "ngModel"], ["Placeholder", "To", 3, "ngModelChange", "ngModel"], ["type", "button", "title", "Clear date range", 1, "clear-date-button"], [1, "search-results"], [1, "search-loading"], ["Variant", "no-results", "Message", "Try adjusting your filters or search terms", 3, "Title"], [1, "search-footer"], [1, "keyboard-hints"], [1, "hint"], ["type", "button", "title", "Clear search", 1, "clear-button", 3, "click"], ["type", "button", "title", "Clear date range", 1, "clear-date-button", 3, "click"], [1, "fa-solid", "fa-times-circle"], ["text", "Searching...", "size", "medium"], [1, "recent-searches"], ["Icon", "fa-solid fa-magnifying-glass", "Message", "Search across all your conversations, messages, artifacts, collections, and tasks"], [1, "search-tips"], [1, "recent-searches-header"], ["type", "button", "title", "Clear recent searches", 1, "clear-recent-button", 3, "click"], [1, "recent-searches-list"], ["type", "button", 1, "recent-search-item"], ["type", "button", 1, "recent-search-item", 3, "click"], [1, "fa-solid", "fa-history"], [1, "results-summary"], [1, "results-group"], [1, "results-group-title"], [1, "results-list"], ["type", "button", 1, "result-item", 3, "selected"], ["type", "button", 1, "result-item", 3, "click"], [1, "result-icon"], [1, "fa-solid"], [1, "result-content"], [1, "result-title", 3, "innerHTML"], [1, "result-preview", 3, "innerHTML"], [1, "result-match", 3, "innerHTML"], [1, "result-meta"], [1, "result-date"], [1, "result-conversation"], [1, "result-type"], [1, "type-badge"]], template: function SearchPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
813
804
|
i0.ɵɵconditionalCreate(0, SearchPanelComponent_Conditional_0_Template, 54, 18, "div", 1);
|
|
814
805
|
} if (rf & 2) {
|
|
815
806
|
i0.ɵɵconditional(ctx.isOpen ? 0 : -1);
|
|
816
|
-
} }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJDatepickerComponent, i4.LoadingComponent], styles: [".search-panel-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n z-index: 10000;\n padding-top: 10vh;\n backdrop-filter: blur(2px);\n}\n\n.search-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-xl);\n width: 90%;\n max-width: 800px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n\n\n.search-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.search-input-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n padding: 8px 12px;\n}\n\n.search-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 16px;\n}\n\n.search-input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n font-size: 16px;\n outline: none;\n color: var(--mj-text-primary);\n}\n\n.search-input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n}\n\n.clear-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n.close-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.close-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n}\n\n\n\n.search-filters[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.filter-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-button[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n}\n\n.filter-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n}\n\n.filter-button.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n}\n\n.date-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n}\n\n.clear-date-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s;\n}\n\n.clear-date-button[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n}\n\n\n\n.search-results[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n.search-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n gap: 16px;\n color: var(--mj-text-secondary);\n}\n\n.results-summary[_ngcontent-%COMP%] {\n padding: 8px 0 16px;\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n}\n\n.results-group[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.results-group-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.results-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.result-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n}\n\n.result-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateX(2px);\n}\n\n.result-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.result-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-brand-primary);\n flex-shrink: 0;\n}\n\n.result-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.result-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.result-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-match[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n padding: 4px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n font-style: italic;\n}\n\n.result-conversation[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.result-type[_ngcontent-%COMP%] {\n margin-top: 4px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.result-meta[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.result-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n.result-item[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(mark) {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-text-primary);\n padding: 2px 0;\n border-radius: 2px;\n font-weight: 600;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.no-results[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n color: var(--mj-text-secondary);\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.no-results[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 8px 0;\n font-size: 14px;\n}\n\n.no-results-hint[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.search-tips[_ngcontent-%COMP%] {\n margin-top: 24px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n padding: 16px;\n border-radius: 6px;\n max-width: 400px;\n}\n\n.search-tips[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.search-tips[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] {\n margin: 0;\n padding-left: 20px;\n font-size: 13px;\n}\n\n.search-tips[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin: 4px 0;\n}\n\n\n\n.recent-searches[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.recent-searches-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.recent-searches-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.clear-recent-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 13px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-recent-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.recent-searches-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.recent-search-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.recent-search-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.recent-search-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.search-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n}\n\n.keyboard-hints[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n justify-content: center;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\nkbd[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 3px 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 11px;\n color: var(--mj-text-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n\n\n@media (max-width: 768px) {\n .search-panel[_ngcontent-%COMP%] {\n width: 95%;\n max-height: 90vh;\n }\n\n .search-filters[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .date-filter[_ngcontent-%COMP%] {\n margin-left: 0;\n }\n\n .keyboard-hints[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n}"] });
|
|
807
|
+
} }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJDatepickerComponent, i3.MJEmptyStateComponent, i4.LoadingComponent], styles: [".search-panel-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n z-index: 10000;\n padding-top: 10vh;\n backdrop-filter: blur(2px);\n}\n\n.search-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-xl);\n width: 90%;\n max-width: 800px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n\n\n.search-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.search-input-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n padding: 8px 12px;\n}\n\n.search-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 16px;\n}\n\n.search-input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n font-size: 16px;\n outline: none;\n color: var(--mj-text-primary);\n}\n\n.search-input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n}\n\n.clear-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n.close-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.close-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n}\n\n\n\n.search-filters[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.filter-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-button[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n}\n\n.filter-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n}\n\n.filter-button.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n}\n\n.date-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n}\n\n.clear-date-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s;\n}\n\n.clear-date-button[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n}\n\n\n\n.search-results[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n.search-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n gap: 16px;\n color: var(--mj-text-secondary);\n}\n\n.results-summary[_ngcontent-%COMP%] {\n padding: 8px 0 16px;\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n}\n\n.results-group[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.results-group-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.results-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.result-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n}\n\n.result-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateX(2px);\n}\n\n.result-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.result-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-brand-primary);\n flex-shrink: 0;\n}\n\n.result-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.result-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.result-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-match[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n padding: 4px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n font-style: italic;\n}\n\n.result-conversation[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.result-type[_ngcontent-%COMP%] {\n margin-top: 4px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.result-meta[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.result-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n.result-item[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(mark) {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-text-primary);\n padding: 2px 0;\n border-radius: 2px;\n font-weight: 600;\n}\n\n\n\n.search-tips[_ngcontent-%COMP%] {\n margin-top: 24px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n padding: 16px;\n border-radius: 6px;\n max-width: 400px;\n}\n\n.search-tips[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.search-tips[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] {\n margin: 0;\n padding-left: 20px;\n font-size: 13px;\n}\n\n.search-tips[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin: 4px 0;\n}\n\n\n\n.recent-searches[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.recent-searches-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.recent-searches-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.clear-recent-button[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 13px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-recent-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.recent-searches-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.recent-search-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.recent-search-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.recent-search-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.search-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n}\n\n.keyboard-hints[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n justify-content: center;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\nkbd[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 3px 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 11px;\n color: var(--mj-text-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n\n\n@media (max-width: 768px) {\n .search-panel[_ngcontent-%COMP%] {\n width: 95%;\n max-height: 90vh;\n }\n\n .search-filters[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .date-filter[_ngcontent-%COMP%] {\n margin-left: 0;\n }\n\n .keyboard-hints[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n}"] });
|
|
817
808
|
}
|
|
818
809
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchPanelComponent, [{
|
|
819
810
|
type: Component,
|
|
820
|
-
args: [{ standalone: false, selector: 'mj-search-panel', template: "@if (isOpen) {\n<div class=\"search-panel-overlay\" (click)=\"closePanel()\">\n <div class=\"search-panel\" (click)=\"$event.stopPropagation()\">\n <!-- Search Header -->\n <div class=\"search-header\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input\n #searchInput\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search conversations, messages, artifacts, collections, and tasks...\"\n [(ngModel)]=\"searchQuery\"\n (input)=\"onSearchInput()\"\n autocomplete=\"off\"\n />\n @if (searchQuery) {\n <button\n type=\"button\"\n class=\"clear-button\"\n (click)=\"clearSearch()\"\n title=\"Clear search\"\n >\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n\n <button\n type=\"button\"\n class=\"close-button\"\n (click)=\"closePanel()\"\n title=\"Close (Esc)\"\n >\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Filters -->\n <div class=\"search-filters\">\n <div class=\"filter-buttons\">\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'all'\"\n (click)=\"setFilter('all')\"\n >\n All\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'conversations'\"\n (click)=\"setFilter('conversations')\"\n >\n <i class=\"fa-solid fa-comments\"></i>\n Conversations\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'messages'\"\n (click)=\"setFilter('messages')\"\n >\n <i class=\"fa-solid fa-comment\"></i>\n Messages\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'artifacts'\"\n (click)=\"setFilter('artifacts')\"\n >\n <i class=\"fa-solid fa-file-alt\"></i>\n Artifacts\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'collections'\"\n (click)=\"setFilter('collections')\"\n >\n <i class=\"fa-solid fa-folder\"></i>\n Collections\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'tasks'\"\n (click)=\"setFilter('tasks')\"\n >\n <i class=\"fa-solid fa-tasks\"></i>\n Tasks\n </button>\n </div>\n\n <!-- Date Range Filter -->\n <div class=\"date-filter\">\n <mj-datepicker\n [(ngModel)]=\"dateRange.start\"\n (ngModelChange)=\"onDateRangeChange()\"\n Placeholder=\"From\"\n ></mj-datepicker>\n <mj-datepicker\n [(ngModel)]=\"dateRange.end\"\n (ngModelChange)=\"onDateRangeChange()\"\n Placeholder=\"To\"\n ></mj-datepicker>\n @if (dateRange.start || dateRange.end) {\n <button\n type=\"button\"\n class=\"clear-date-button\"\n (click)=\"clearDateRange()\"\n title=\"Clear date range\"\n >\n <i class=\"fa-solid fa-times-circle\"></i>\n </button>\n }\n </div>\n </div>\n\n <!-- Search Results -->\n <div class=\"search-results\">\n @if (isSearching) {\n <div class=\"search-loading\">\n <mj-loading text=\"Searching...\" size=\"medium\"></mj-loading>\n </div>\n } @else if (!searchQuery) {\n <!-- Recent Searches -->\n @if (recentSearches.length > 0) {\n <div class=\"recent-searches\">\n <div class=\"recent-searches-header\">\n <h3>Recent Searches</h3>\n <button\n type=\"button\"\n class=\"clear-recent-button\"\n (click)=\"clearRecentSearches()\"\n title=\"Clear recent searches\"\n >\n Clear\n </button>\n </div>\n <div class=\"recent-searches-list\">\n @for (search of recentSearches; track search) {\n <button\n type=\"button\"\n class=\"recent-search-item\"\n (click)=\"useRecentSearch(search)\"\n >\n <i class=\"fa-solid fa-history\"></i>\n <span>{{ search }}</span>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Empty State -->\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search empty-icon\"></i>\n <p>Search across all your conversations, messages, artifacts, collections, and tasks</p>\n <div class=\"search-tips\">\n <h4>Tips:</h4>\n <ul>\n <li>Use filters to narrow results</li>\n <li>Set date range to find recent content</li>\n <li>Use keyboard shortcuts to navigate</li>\n </ul>\n </div>\n </div>\n } @else if (results.total === 0) {\n <!-- No Results -->\n <div class=\"no-results\">\n <i class=\"fa-solid fa-search-minus empty-icon\"></i>\n <p>No results found for \"{{ searchQuery }}\"</p>\n <p class=\"no-results-hint\">Try adjusting your filters or search terms</p>\n </div>\n } @else {\n <!-- Results Summary -->\n <div class=\"results-summary\">\n Found {{ results.total }} result{{ results.total === 1 ? '' : 's' }}\n </div>\n\n <!-- Conversations Results -->\n @if (results.conversations.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Conversations ({{ results.conversations.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.conversations; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Messages Results -->\n @if (results.messages.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-comment\"></i>\n Messages ({{ results.messages.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.messages; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n @if (result.conversationName) {\n <div class=\"result-conversation\">\n <i class=\"fa-solid fa-comments\"></i>\n {{ result.conversationName }}\n </div>\n }\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Artifacts Results -->\n @if (results.artifacts.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-file-alt\"></i>\n Artifacts ({{ results.artifacts.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.artifacts; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n @if (result.artifactType) {\n <div class=\"result-type\">\n <span class=\"type-badge\">{{ result.artifactType }}</span>\n </div>\n }\n @if (result.conversationName) {\n <div class=\"result-conversation\">\n <i class=\"fa-solid fa-comments\"></i>\n {{ result.conversationName }}\n </div>\n }\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Collections Results -->\n @if (results.collections.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-folder\"></i>\n Collections ({{ results.collections.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.collections; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Tasks Results -->\n @if (results.tasks.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-tasks\"></i>\n Tasks ({{ results.tasks.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.tasks; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n }\n </div>\n\n <!-- Footer with keyboard hints -->\n <div class=\"search-footer\">\n <div class=\"keyboard-hints\">\n <span class=\"hint\"><kbd>\u2191</kbd><kbd>\u2193</kbd> Navigate</span>\n <span class=\"hint\"><kbd>\u21B5</kbd> Select</span>\n <span class=\"hint\"><kbd>Esc</kbd> Close</span>\n </div>\n </div>\n </div>\n</div>\n}\n", styles: [".search-panel-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n z-index: 10000;\n padding-top: 10vh;\n backdrop-filter: blur(2px);\n}\n\n.search-panel {\n background: var(--mj-bg-surface);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-xl);\n width: 90%;\n max-width: 800px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Header */\n.search-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.search-input-wrapper {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n padding: 8px 12px;\n}\n\n.search-icon {\n color: var(--mj-text-secondary);\n font-size: 16px;\n}\n\n.search-input {\n flex: 1;\n border: none;\n background: transparent;\n font-size: 16px;\n outline: none;\n color: var(--mj-text-primary);\n}\n\n.search-input::placeholder {\n color: var(--mj-text-muted);\n}\n\n.clear-button {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-button:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n.close-button {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.close-button:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n}\n\n/* Filters */\n.search-filters {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.filter-buttons {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-button {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n}\n\n.filter-button:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n}\n\n.filter-button.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n}\n\n.date-filter {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n}\n\n.clear-date-button {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s;\n}\n\n.clear-date-button:hover {\n color: var(--mj-text-primary);\n}\n\n/* Results */\n.search-results {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n.search-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n gap: 16px;\n color: var(--mj-text-secondary);\n}\n\n.results-summary {\n padding: 8px 0 16px;\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n}\n\n.results-group {\n margin-bottom: 24px;\n}\n\n.results-group-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-title i {\n color: var(--mj-brand-primary);\n}\n\n.results-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.result-item {\n display: flex;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n}\n\n.result-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateX(2px);\n}\n\n.result-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.result-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-brand-primary);\n flex-shrink: 0;\n}\n\n.result-content {\n flex: 1;\n min-width: 0;\n}\n\n.result-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.result-preview {\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-match {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n padding: 4px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n font-style: italic;\n}\n\n.result-conversation {\n font-size: 12px;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.result-type {\n margin-top: 4px;\n}\n\n.type-badge {\n display: inline-block;\n padding: 2px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.result-meta {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.result-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Highlight */\n.result-item :deep(mark) {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-text-primary);\n padding: 2px 0;\n border-radius: 2px;\n font-weight: 600;\n}\n\n/* Empty States */\n.empty-state,\n.no-results {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n color: var(--mj-text-secondary);\n}\n\n.empty-icon {\n font-size: 48px;\n color: var(--mj-border-default);\n margin-bottom: 16px;\n}\n\n.empty-state p,\n.no-results p {\n margin: 8px 0;\n font-size: 14px;\n}\n\n.no-results-hint {\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.search-tips {\n margin-top: 24px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n padding: 16px;\n border-radius: 6px;\n max-width: 400px;\n}\n\n.search-tips h4 {\n margin: 0 0 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.search-tips ul {\n margin: 0;\n padding-left: 20px;\n font-size: 13px;\n}\n\n.search-tips li {\n margin: 4px 0;\n}\n\n/* Recent Searches */\n.recent-searches {\n margin-bottom: 24px;\n}\n\n.recent-searches-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.recent-searches-header h3 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.clear-recent-button {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 13px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-recent-button:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.recent-searches-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.recent-search-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.recent-search-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.recent-search-item i {\n color: var(--mj-text-muted);\n}\n\n/* Footer */\n.search-footer {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n}\n\n.keyboard-hints {\n display: flex;\n gap: 16px;\n justify-content: center;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.hint {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\nkbd {\n display: inline-block;\n padding: 3px 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 11px;\n color: var(--mj-text-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .search-panel {\n width: 95%;\n max-height: 90vh;\n }\n\n .search-filters {\n flex-direction: column;\n align-items: stretch;\n }\n\n .date-filter {\n margin-left: 0;\n }\n\n .keyboard-hints {\n flex-wrap: wrap;\n }\n}\n"] }]
|
|
811
|
+
args: [{ standalone: false, selector: 'mj-search-panel', template: "@if (isOpen) {\n<div class=\"search-panel-overlay\" (click)=\"closePanel()\">\n <div class=\"search-panel\" (click)=\"$event.stopPropagation()\">\n <!-- Search Header -->\n <div class=\"search-header\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input\n #searchInput\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search conversations, messages, artifacts, collections, and tasks...\"\n [(ngModel)]=\"searchQuery\"\n (input)=\"onSearchInput()\"\n autocomplete=\"off\"\n />\n @if (searchQuery) {\n <button\n type=\"button\"\n class=\"clear-button\"\n (click)=\"clearSearch()\"\n title=\"Clear search\"\n >\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n\n <button\n type=\"button\"\n class=\"close-button\"\n (click)=\"closePanel()\"\n title=\"Close (Esc)\"\n >\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Filters -->\n <div class=\"search-filters\">\n <div class=\"filter-buttons\">\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'all'\"\n (click)=\"setFilter('all')\"\n >\n All\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'conversations'\"\n (click)=\"setFilter('conversations')\"\n >\n <i class=\"fa-solid fa-comments\"></i>\n Conversations\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'messages'\"\n (click)=\"setFilter('messages')\"\n >\n <i class=\"fa-solid fa-comment\"></i>\n Messages\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'artifacts'\"\n (click)=\"setFilter('artifacts')\"\n >\n <i class=\"fa-solid fa-file-alt\"></i>\n Artifacts\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'collections'\"\n (click)=\"setFilter('collections')\"\n >\n <i class=\"fa-solid fa-folder\"></i>\n Collections\n </button>\n <button\n type=\"button\"\n class=\"filter-button\"\n [class.active]=\"activeFilter === 'tasks'\"\n (click)=\"setFilter('tasks')\"\n >\n <i class=\"fa-solid fa-tasks\"></i>\n Tasks\n </button>\n </div>\n\n <!-- Date Range Filter -->\n <div class=\"date-filter\">\n <mj-datepicker\n [(ngModel)]=\"dateRange.start\"\n (ngModelChange)=\"onDateRangeChange()\"\n Placeholder=\"From\"\n ></mj-datepicker>\n <mj-datepicker\n [(ngModel)]=\"dateRange.end\"\n (ngModelChange)=\"onDateRangeChange()\"\n Placeholder=\"To\"\n ></mj-datepicker>\n @if (dateRange.start || dateRange.end) {\n <button\n type=\"button\"\n class=\"clear-date-button\"\n (click)=\"clearDateRange()\"\n title=\"Clear date range\"\n >\n <i class=\"fa-solid fa-times-circle\"></i>\n </button>\n }\n </div>\n </div>\n\n <!-- Search Results -->\n <div class=\"search-results\">\n @if (isSearching) {\n <div class=\"search-loading\">\n <mj-loading text=\"Searching...\" size=\"medium\"></mj-loading>\n </div>\n } @else if (!searchQuery) {\n <!-- Recent Searches -->\n @if (recentSearches.length > 0) {\n <div class=\"recent-searches\">\n <div class=\"recent-searches-header\">\n <h3>Recent Searches</h3>\n <button\n type=\"button\"\n class=\"clear-recent-button\"\n (click)=\"clearRecentSearches()\"\n title=\"Clear recent searches\"\n >\n Clear\n </button>\n </div>\n <div class=\"recent-searches-list\">\n @for (search of recentSearches; track search) {\n <button\n type=\"button\"\n class=\"recent-search-item\"\n (click)=\"useRecentSearch(search)\"\n >\n <i class=\"fa-solid fa-history\"></i>\n <span>{{ search }}</span>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Empty State -->\n <mj-empty-state\n Icon=\"fa-solid fa-magnifying-glass\"\n Message=\"Search across all your conversations, messages, artifacts, collections, and tasks\">\n <div class=\"search-tips\">\n <h4>Tips:</h4>\n <ul>\n <li>Use filters to narrow results</li>\n <li>Set date range to find recent content</li>\n <li>Use keyboard shortcuts to navigate</li>\n </ul>\n </div>\n </mj-empty-state>\n } @else if (results.total === 0) {\n <!-- No Results -->\n <mj-empty-state\n Variant=\"no-results\"\n [Title]=\"NoResultsMessage\"\n Message=\"Try adjusting your filters or search terms\" />\n } @else {\n <!-- Results Summary -->\n <div class=\"results-summary\">\n Found {{ results.total }} result{{ results.total === 1 ? '' : 's' }}\n </div>\n\n <!-- Conversations Results -->\n @if (results.conversations.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Conversations ({{ results.conversations.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.conversations; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Messages Results -->\n @if (results.messages.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-comment\"></i>\n Messages ({{ results.messages.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.messages; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n @if (result.conversationName) {\n <div class=\"result-conversation\">\n <i class=\"fa-solid fa-comments\"></i>\n {{ result.conversationName }}\n </div>\n }\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Artifacts Results -->\n @if (results.artifacts.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-file-alt\"></i>\n Artifacts ({{ results.artifacts.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.artifacts; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n @if (result.artifactType) {\n <div class=\"result-type\">\n <span class=\"type-badge\">{{ result.artifactType }}</span>\n </div>\n }\n @if (result.conversationName) {\n <div class=\"result-conversation\">\n <i class=\"fa-solid fa-comments\"></i>\n {{ result.conversationName }}\n </div>\n }\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Collections Results -->\n @if (results.collections.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-folder\"></i>\n Collections ({{ results.collections.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.collections; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Tasks Results -->\n @if (results.tasks.length > 0) {\n <div class=\"results-group\">\n <h3 class=\"results-group-title\">\n <i class=\"fa-solid fa-tasks\"></i>\n Tasks ({{ results.tasks.length }})\n </h3>\n <div class=\"results-list\">\n @for (result of results.tasks; track result.id) {\n <button\n type=\"button\"\n class=\"result-item\"\n [class.selected]=\"isResultSelected(result)\"\n (click)=\"selectResult(result)\"\n >\n <div class=\"result-icon\">\n <i class=\"fa-solid\" [class]=\"getResultIcon(result.type)\"></i>\n </div>\n <div class=\"result-content\">\n <div class=\"result-title\" [innerHTML]=\"highlightMatch(result.title, searchQuery)\"></div>\n <div class=\"result-preview\" [innerHTML]=\"highlightMatch(result.preview, searchQuery)\"></div>\n @if (result.matchedText) {\n <div class=\"result-match\" [innerHTML]=\"highlightMatch(result.matchedText, searchQuery)\"></div>\n }\n </div>\n <div class=\"result-meta\">\n <span class=\"result-date\">{{ formatDate(result.createdAt) }}</span>\n </div>\n </button>\n }\n </div>\n </div>\n }\n }\n </div>\n\n <!-- Footer with keyboard hints -->\n <div class=\"search-footer\">\n <div class=\"keyboard-hints\">\n <span class=\"hint\"><kbd>\u2191</kbd><kbd>\u2193</kbd> Navigate</span>\n <span class=\"hint\"><kbd>\u21B5</kbd> Select</span>\n <span class=\"hint\"><kbd>Esc</kbd> Close</span>\n </div>\n </div>\n </div>\n</div>\n}\n", styles: [".search-panel-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n z-index: 10000;\n padding-top: 10vh;\n backdrop-filter: blur(2px);\n}\n\n.search-panel {\n background: var(--mj-bg-surface);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-xl);\n width: 90%;\n max-width: 800px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Header */\n.search-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.search-input-wrapper {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n padding: 8px 12px;\n}\n\n.search-icon {\n color: var(--mj-text-secondary);\n font-size: 16px;\n}\n\n.search-input {\n flex: 1;\n border: none;\n background: transparent;\n font-size: 16px;\n outline: none;\n color: var(--mj-text-primary);\n}\n\n.search-input::placeholder {\n color: var(--mj-text-muted);\n}\n\n.clear-button {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-button:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n.close-button {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.close-button:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n}\n\n/* Filters */\n.search-filters {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.filter-buttons {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-button {\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n}\n\n.filter-button:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n}\n\n.filter-button.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n}\n\n.date-filter {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n}\n\n.clear-date-button {\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s;\n}\n\n.clear-date-button:hover {\n color: var(--mj-text-primary);\n}\n\n/* Results */\n.search-results {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n.search-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n gap: 16px;\n color: var(--mj-text-secondary);\n}\n\n.results-summary {\n padding: 8px 0 16px;\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n}\n\n.results-group {\n margin-bottom: 24px;\n}\n\n.results-group-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-title i {\n color: var(--mj-brand-primary);\n}\n\n.results-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.result-item {\n display: flex;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n}\n\n.result-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateX(2px);\n}\n\n.result-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.result-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-brand-primary);\n flex-shrink: 0;\n}\n\n.result-content {\n flex: 1;\n min-width: 0;\n}\n\n.result-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.result-preview {\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-match {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n padding: 4px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n font-style: italic;\n}\n\n.result-conversation {\n font-size: 12px;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.result-type {\n margin-top: 4px;\n}\n\n.type-badge {\n display: inline-block;\n padding: 2px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.result-meta {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.result-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Highlight */\n.result-item :deep(mark) {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-text-primary);\n padding: 2px 0;\n border-radius: 2px;\n font-weight: 600;\n}\n\n/* Search tips \u2014 projected into the initial empty state's content slot */\n.search-tips {\n margin-top: 24px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n padding: 16px;\n border-radius: 6px;\n max-width: 400px;\n}\n\n.search-tips h4 {\n margin: 0 0 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.search-tips ul {\n margin: 0;\n padding-left: 20px;\n font-size: 13px;\n}\n\n.search-tips li {\n margin: 4px 0;\n}\n\n/* Recent Searches */\n.recent-searches {\n margin-bottom: 24px;\n}\n\n.recent-searches-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.recent-searches-header h3 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.clear-recent-button {\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 13px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.clear-recent-button:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.recent-searches-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.recent-search-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n text-align: left;\n transition: all 0.2s;\n width: 100%;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.recent-search-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.recent-search-item i {\n color: var(--mj-text-muted);\n}\n\n/* Footer */\n.search-footer {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n}\n\n.keyboard-hints {\n display: flex;\n gap: 16px;\n justify-content: center;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.hint {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\nkbd {\n display: inline-block;\n padding: 3px 6px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 11px;\n color: var(--mj-text-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .search-panel {\n width: 95%;\n max-height: 90vh;\n }\n\n .search-filters {\n flex-direction: column;\n align-items: stretch;\n }\n\n .date-filter {\n margin-left: 0;\n }\n\n .keyboard-hints {\n flex-wrap: wrap;\n }\n}\n"] }]
|
|
821
812
|
}], () => [{ type: i1.SearchService }], { environmentId: [{
|
|
822
813
|
type: Input
|
|
823
814
|
}], currentUser: [{
|