@opensumi/ide-ai-native 3.9.1-next-1749007675.0 → 3.9.1-next-1749022016.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/lib/browser/chat/chat-manager.service.d.ts +0 -1
- package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-manager.service.js +3 -8
- package/lib/browser/chat/chat-manager.service.js.map +1 -1
- package/lib/browser/chat/chat-model.d.ts +1 -3
- package/lib/browser/chat/chat-model.d.ts.map +1 -1
- package/lib/browser/chat/chat-model.js +17 -48
- package/lib/browser/chat/chat-model.js.map +1 -1
- package/lib/browser/chat/chat-proxy.service.d.ts +0 -2
- package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-proxy.service.js +50 -57
- package/lib/browser/chat/chat-proxy.service.js.map +1 -1
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +11 -7
- package/lib/browser/chat/chat.view.js.map +1 -1
- package/lib/browser/components/ChatMentionInput.d.ts.map +1 -1
- package/lib/browser/components/ChatMentionInput.js +141 -30
- package/lib/browser/components/ChatMentionInput.js.map +1 -1
- package/lib/browser/components/ChatReply.js +2 -2
- package/lib/browser/components/ChatReply.js.map +1 -1
- package/lib/browser/components/ChatToolRender.module.less +1 -0
- package/lib/browser/components/components.module.less +37 -8
- package/lib/browser/components/mention-input/mention-input.d.ts.map +1 -1
- package/lib/browser/components/mention-input/mention-input.js +161 -14
- package/lib/browser/components/mention-input/mention-input.js.map +1 -1
- package/lib/browser/components/mention-input/mention-input.module.less +165 -1
- package/lib/browser/components/mention-input/mention-select.d.ts +28 -0
- package/lib/browser/components/mention-input/mention-select.d.ts.map +1 -0
- package/lib/browser/components/mention-input/mention-select.js +136 -0
- package/lib/browser/components/mention-input/mention-select.js.map +1 -0
- package/lib/browser/components/mention-input/mention-select.module.less +297 -0
- package/lib/browser/components/mention-input/types.d.ts +16 -1
- package/lib/browser/components/mention-input/types.d.ts.map +1 -1
- package/lib/browser/components/mention-input/types.js +1 -0
- package/lib/browser/components/mention-input/types.js.map +1 -1
- package/lib/browser/components/utils.d.ts +2 -2
- package/lib/browser/context/llm-context.service.d.ts +21 -2
- package/lib/browser/context/llm-context.service.d.ts.map +1 -1
- package/lib/browser/context/llm-context.service.js +162 -20
- package/lib/browser/context/llm-context.service.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/decoration/additions-deletions.decoration.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/decoration/additions-deletions.decoration.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/diff-computer.js +1 -1
- package/lib/browser/contrib/intelligent-completions/diff-computer.js.map +1 -1
- package/lib/browser/contrib/terminal/terminal.feature.registry.js.map +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +7 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/mcp/base-apply.service.d.ts +2 -2
- package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
- package/lib/browser/mcp/base-apply.service.js.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
- package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
- package/lib/browser/model/msg-history-manager.d.ts +1 -39
- package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
- package/lib/browser/model/msg-history-manager.js +3 -170
- package/lib/browser/model/msg-history-manager.js.map +1 -1
- package/lib/browser/preferences/schema.d.ts.map +1 -1
- package/lib/browser/preferences/schema.js +5 -0
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/rules/rules.contribution.d.ts +29 -0
- package/lib/browser/rules/rules.contribution.d.ts.map +1 -0
- package/lib/browser/rules/rules.contribution.js +94 -0
- package/lib/browser/rules/rules.contribution.js.map +1 -0
- package/lib/browser/rules/rules.module.less +175 -0
- package/lib/browser/rules/rules.service.d.ts +25 -0
- package/lib/browser/rules/rules.service.d.ts.map +1 -0
- package/lib/browser/rules/rules.service.js +180 -0
- package/lib/browser/rules/rules.service.js.map +1 -0
- package/lib/browser/rules/rules.view.d.ts +3 -0
- package/lib/browser/rules/rules.view.d.ts.map +1 -0
- package/lib/browser/rules/rules.view.js +76 -0
- package/lib/browser/rules/rules.view.js.map +1 -0
- package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.component.js.map +1 -1
- package/lib/common/MDC_PARSER_README.md +171 -0
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/llm-context.d.ts +19 -0
- package/lib/common/llm-context.d.ts.map +1 -1
- package/lib/common/llm-context.js.map +1 -1
- package/lib/common/mdc-parser.d.ts +60 -0
- package/lib/common/mdc-parser.d.ts.map +1 -0
- package/lib/common/mdc-parser.js +246 -0
- package/lib/common/mdc-parser.js.map +1 -0
- package/lib/common/model.d.ts +1 -0
- package/lib/common/model.d.ts.map +1 -1
- package/lib/common/model.js.map +1 -1
- package/lib/common/prompts/context-prompt-provider.d.ts +0 -2
- package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
- package/lib/common/prompts/context-prompt-provider.js +35 -29
- package/lib/common/prompts/context-prompt-provider.js.map +1 -1
- package/lib/common/prompts/system-prompt.d.ts +2 -0
- package/lib/common/prompts/system-prompt.d.ts.map +1 -0
- package/lib/common/prompts/system-prompt.js +5 -0
- package/lib/common/prompts/system-prompt.js.map +1 -0
- package/lib/common/types.d.ts +7 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/node/base-language-model.d.ts.map +1 -1
- package/lib/node/base-language-model.js +2 -1
- package/lib/node/base-language-model.js.map +1 -1
- package/package.json +25 -24
- package/src/browser/chat/chat-manager.service.ts +6 -15
- package/src/browser/chat/chat-model.ts +19 -56
- package/src/browser/chat/chat-proxy.service.ts +68 -81
- package/src/browser/chat/chat.view.tsx +19 -7
- package/src/browser/components/ChatMentionInput.tsx +169 -35
- package/src/browser/components/ChatReply.tsx +4 -4
- package/src/browser/components/ChatToolRender.module.less +1 -0
- package/src/browser/components/components.module.less +37 -8
- package/src/browser/components/mention-input/mention-input.module.less +165 -1
- package/src/browser/components/mention-input/mention-input.tsx +257 -32
- package/src/browser/components/mention-input/mention-select.module.less +297 -0
- package/src/browser/components/mention-input/mention-select.tsx +256 -0
- package/src/browser/components/mention-input/types.ts +16 -0
- package/src/browser/context/llm-context.service.ts +182 -21
- package/src/browser/contrib/intelligent-completions/decoration/additions-deletions.decoration.ts +1 -1
- package/src/browser/contrib/intelligent-completions/diff-computer.ts +1 -1
- package/src/browser/contrib/terminal/terminal.feature.registry.ts +1 -1
- package/src/browser/index.ts +8 -0
- package/src/browser/mcp/base-apply.service.ts +0 -1
- package/src/browser/mcp/tools/getDiagnosticsByPath.ts +1 -1
- package/src/browser/mcp/tools/getOpenEditorFileDiagnostics.ts +1 -1
- package/src/browser/mcp/tools/handlers/ListDir.ts +1 -1
- package/src/browser/mcp/tools/runTerminalCmd.ts +1 -1
- package/src/browser/model/msg-history-manager.ts +3 -230
- package/src/browser/preferences/schema.ts +5 -0
- package/src/browser/rules/rules.contribution.ts +105 -0
- package/src/browser/rules/rules.module.less +175 -0
- package/src/browser/rules/rules.service.ts +189 -0
- package/src/browser/rules/rules.view.tsx +127 -0
- package/src/browser/widget/inline-stream-diff/live-preview.component.tsx +0 -1
- package/src/common/MDC_PARSER_README.md +171 -0
- package/src/common/index.ts +3 -0
- package/src/common/llm-context.ts +23 -0
- package/src/common/mdc-parser.ts +295 -0
- package/src/common/model.ts +1 -0
- package/src/common/prompts/context-prompt-provider.ts +55 -40
- package/src/common/prompts/system-prompt.ts +2 -0
- package/src/common/types.ts +8 -0
- package/src/node/base-language-model.ts +1 -2
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
|
|
7
7
|
.model_selector {
|
|
8
8
|
margin-right: 5px;
|
|
9
|
-
min-width: 150px;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
.editor_area {
|
|
@@ -29,7 +28,9 @@
|
|
|
29
28
|
word-break: break-word;
|
|
30
29
|
|
|
31
30
|
.mention_tag {
|
|
31
|
+
height: 20px;
|
|
32
32
|
margin: 0 2px;
|
|
33
|
+
margin-top: -3px;
|
|
33
34
|
vertical-align: middle;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -95,11 +96,13 @@
|
|
|
95
96
|
.stop_logo {
|
|
96
97
|
background-color: var(--badge-background);
|
|
97
98
|
color: var(--badge-foreground);
|
|
99
|
+
|
|
98
100
|
.stop_logo_icon {
|
|
99
101
|
line-height: 16px;
|
|
100
102
|
color: var(--kt-dangerButton-background);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
105
|
+
|
|
103
106
|
.send_logo {
|
|
104
107
|
&:hover {
|
|
105
108
|
background-color: var(--kt-primaryButton-background);
|
|
@@ -140,31 +143,38 @@
|
|
|
140
143
|
display: flex;
|
|
141
144
|
justify-content: center;
|
|
142
145
|
}
|
|
146
|
+
|
|
143
147
|
.context_container {
|
|
144
148
|
display: flex;
|
|
145
149
|
align-items: center;
|
|
146
150
|
justify-content: center;
|
|
147
151
|
cursor: pointer;
|
|
152
|
+
|
|
148
153
|
.context_icon {
|
|
149
154
|
flex-grow: 0;
|
|
150
155
|
flex-shrink: 0;
|
|
156
|
+
|
|
151
157
|
:global(.kt-icon) {
|
|
152
158
|
font-size: 12px;
|
|
153
159
|
}
|
|
160
|
+
|
|
154
161
|
:global(.kticon-close) {
|
|
155
162
|
display: none;
|
|
156
163
|
}
|
|
157
164
|
}
|
|
165
|
+
|
|
158
166
|
&:hover {
|
|
159
167
|
.context_icon {
|
|
160
168
|
:global(.kticon-close) {
|
|
161
169
|
display: block;
|
|
162
170
|
}
|
|
171
|
+
|
|
163
172
|
:global(.kticon-out-link) {
|
|
164
173
|
display: none;
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
176
|
}
|
|
177
|
+
|
|
168
178
|
.context_description {
|
|
169
179
|
flex: 1;
|
|
170
180
|
margin-left: 3px;
|
|
@@ -254,6 +264,7 @@
|
|
|
254
264
|
display: inline;
|
|
255
265
|
flex: 1;
|
|
256
266
|
direction: rtl;
|
|
267
|
+
unicode-bidi: plaintext;
|
|
257
268
|
text-overflow: ellipsis;
|
|
258
269
|
overflow: hidden;
|
|
259
270
|
white-space: nowrap;
|
|
@@ -341,6 +352,10 @@
|
|
|
341
352
|
justify-content: center;
|
|
342
353
|
margin-right: 3px;
|
|
343
354
|
font-size: 12px;
|
|
355
|
+
&::before {
|
|
356
|
+
font-size: 12px;
|
|
357
|
+
background-size: 12px !important;
|
|
358
|
+
}
|
|
344
359
|
}
|
|
345
360
|
|
|
346
361
|
.empty_state {
|
|
@@ -404,3 +419,152 @@
|
|
|
404
419
|
color: #666;
|
|
405
420
|
font-style: italic;
|
|
406
421
|
}
|
|
422
|
+
|
|
423
|
+
.context_preview_container {
|
|
424
|
+
background-color: var(--kt-editorWidget-background);
|
|
425
|
+
border: 1px solid var(--kt-editorWidget-border);
|
|
426
|
+
margin: 0 16px;
|
|
427
|
+
animation: slideIn 0.3s ease-out;
|
|
428
|
+
display: flex;
|
|
429
|
+
flex-wrap: wrap;
|
|
430
|
+
gap: 4px;
|
|
431
|
+
align-items: flex-start;
|
|
432
|
+
margin-bottom: 3px;
|
|
433
|
+
width: calc(100% - 32px);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.context_preview_title {
|
|
437
|
+
cursor: pointer;
|
|
438
|
+
display: flex;
|
|
439
|
+
align-items: center;
|
|
440
|
+
justify-content: center;
|
|
441
|
+
padding: 2px 3px;
|
|
442
|
+
height: 18px;
|
|
443
|
+
width: auto;
|
|
444
|
+
box-sizing: border-box;
|
|
445
|
+
border-radius: 4px;
|
|
446
|
+
border: 1px solid color-mix(in srgb, var(--editor-foreground) 10%, transparent);
|
|
447
|
+
outline: none;
|
|
448
|
+
flex-shrink: 0;
|
|
449
|
+
color: var(--descriptionForeground);
|
|
450
|
+
font-size: 11px;
|
|
451
|
+
|
|
452
|
+
&::before {
|
|
453
|
+
content: '@';
|
|
454
|
+
margin-right: 4px;
|
|
455
|
+
}
|
|
456
|
+
&.has_context {
|
|
457
|
+
width: 18px;
|
|
458
|
+
&::before {
|
|
459
|
+
content: '@';
|
|
460
|
+
margin-right: 0;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
&:hover {
|
|
465
|
+
color: var(--badge-foreground);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.context_preview_item {
|
|
470
|
+
cursor: pointer;
|
|
471
|
+
display: flex;
|
|
472
|
+
align-items: center;
|
|
473
|
+
justify-content: flex-start;
|
|
474
|
+
padding: 2px 4px;
|
|
475
|
+
height: 18px;
|
|
476
|
+
width: auto;
|
|
477
|
+
min-width: fit-content;
|
|
478
|
+
max-width: 300px;
|
|
479
|
+
box-sizing: border-box;
|
|
480
|
+
border-radius: 4px;
|
|
481
|
+
border: 1px solid color-mix(in srgb, var(--badge-background) 30%, transparent);
|
|
482
|
+
outline: none;
|
|
483
|
+
flex: 0 1 auto;
|
|
484
|
+
margin-left: 3px;
|
|
485
|
+
|
|
486
|
+
.icon {
|
|
487
|
+
width: 12px !important;
|
|
488
|
+
height: 12px !important;
|
|
489
|
+
line-height: 12px !important;
|
|
490
|
+
margin-right: 2px;
|
|
491
|
+
flex-shrink: 0;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.close_icon {
|
|
495
|
+
margin-right: 2px;
|
|
496
|
+
display: none !important;
|
|
497
|
+
width: 12px !important;
|
|
498
|
+
height: 12px !important;
|
|
499
|
+
line-height: 12px !important;
|
|
500
|
+
flex-shrink: 0;
|
|
501
|
+
opacity: 0.8;
|
|
502
|
+
|
|
503
|
+
&:hover {
|
|
504
|
+
opacity: 1;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
&:hover {
|
|
509
|
+
opacity: 1;
|
|
510
|
+
.icon {
|
|
511
|
+
display: none;
|
|
512
|
+
}
|
|
513
|
+
.close_icon {
|
|
514
|
+
display: inline-block !important;
|
|
515
|
+
font-size: 12px !important;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.context_preview_item_icon {
|
|
521
|
+
display: flex;
|
|
522
|
+
align-items: center;
|
|
523
|
+
justify-content: center;
|
|
524
|
+
flex-shrink: 0;
|
|
525
|
+
opacity: 0.8;
|
|
526
|
+
&::before {
|
|
527
|
+
background-position: 2px !important;
|
|
528
|
+
font-size: 12px;
|
|
529
|
+
background-size: 11px !important;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.context_preview_item_text {
|
|
534
|
+
flex: 1;
|
|
535
|
+
overflow: hidden;
|
|
536
|
+
text-overflow: ellipsis;
|
|
537
|
+
color: var(--descriptionForeground);
|
|
538
|
+
white-space: nowrap;
|
|
539
|
+
font-weight: 400;
|
|
540
|
+
line-height: 1.2;
|
|
541
|
+
font-size: 11px;
|
|
542
|
+
max-width: 200px;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.context_preview_item_remove {
|
|
546
|
+
cursor: pointer;
|
|
547
|
+
opacity: 0.5;
|
|
548
|
+
font-size: 12px;
|
|
549
|
+
margin-left: 4px;
|
|
550
|
+
padding: 2px;
|
|
551
|
+
border-radius: 50%;
|
|
552
|
+
display: flex;
|
|
553
|
+
align-items: center;
|
|
554
|
+
justify-content: center;
|
|
555
|
+
flex-shrink: 0;
|
|
556
|
+
transition: all 0.2s ease;
|
|
557
|
+
width: 16px;
|
|
558
|
+
height: 16px;
|
|
559
|
+
|
|
560
|
+
&:hover {
|
|
561
|
+
opacity: 1;
|
|
562
|
+
background-color: var(--kt-dangerButton-background);
|
|
563
|
+
color: var(--kt-dangerButton-foreground);
|
|
564
|
+
transform: scale(1.1);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
&:active {
|
|
568
|
+
transform: scale(0.9);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ExtendedModelOption {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
iconClass?: string;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
features?: string[];
|
|
9
|
+
description?: string;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
badge?: string;
|
|
12
|
+
badgeColor?: string;
|
|
13
|
+
selected?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface MentionSelectProps {
|
|
16
|
+
options: ExtendedModelOption[];
|
|
17
|
+
value?: string;
|
|
18
|
+
onChange?: (value: string) => void;
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
className?: string;
|
|
22
|
+
size?: 'small' | 'medium' | 'large';
|
|
23
|
+
showThinking?: boolean;
|
|
24
|
+
thinkingEnabled?: boolean;
|
|
25
|
+
onThinkingChange?: (enabled: boolean) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare const MentionSelect: React.FC<MentionSelectProps>;
|
|
28
|
+
//# sourceMappingURL=mention-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mention-select.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/mention-input/mention-select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAO3D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAiBD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6MtD,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MentionSelect = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
6
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
const click_outside_1 = require("@opensumi/ide-components/lib/click-outside");
|
|
8
|
+
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
9
|
+
const mention_select_module_less_1 = tslib_1.__importDefault(require("./mention-select.module.less"));
|
|
10
|
+
const ThinkingToggle = ({ enabled, onChange }) => (react_1.default.createElement("div", { className: mention_select_module_less_1.default.thinking_toggle, onClick: () => onChange(!enabled) },
|
|
11
|
+
react_1.default.createElement(components_1.Icon, { iconClass: (0, components_1.getIcon)(enabled ? 'check' : 'circle-outline'), className: (0, classnames_1.default)(mention_select_module_less_1.default.thinking_icon, {
|
|
12
|
+
[mention_select_module_less_1.default.enabled]: enabled,
|
|
13
|
+
}) }),
|
|
14
|
+
react_1.default.createElement("span", { className: mention_select_module_less_1.default.thinking_label }, "Thinking")));
|
|
15
|
+
const MentionSelect = ({ options, value, onChange, placeholder, disabled = false, className, size = 'small', showThinking = false, thinkingEnabled = false, onThinkingChange, }) => {
|
|
16
|
+
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
17
|
+
const [activeIndex, setActiveIndex] = (0, react_1.useState)(-1);
|
|
18
|
+
const [dropdownDirection, setDropdownDirection] = (0, react_1.useState)('up');
|
|
19
|
+
const selectRef = (0, react_1.useRef)(null);
|
|
20
|
+
const dropdownRef = (0, react_1.useRef)(null);
|
|
21
|
+
const selectedOption = options.find((option) => option.selected) || options.find((option) => option.value === value);
|
|
22
|
+
const handleToggle = () => {
|
|
23
|
+
if (!disabled) {
|
|
24
|
+
setIsOpen(!isOpen);
|
|
25
|
+
setActiveIndex(-1);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const handleSelect = (option) => {
|
|
29
|
+
if (!option.disabled) {
|
|
30
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(option.value);
|
|
31
|
+
setIsOpen(false);
|
|
32
|
+
setActiveIndex(-1);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const handleKeyDown = (e) => {
|
|
36
|
+
if (disabled) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
switch (e.key) {
|
|
40
|
+
case 'Enter':
|
|
41
|
+
case ' ':
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
if (!isOpen) {
|
|
44
|
+
setIsOpen(true);
|
|
45
|
+
}
|
|
46
|
+
else if (activeIndex >= 0) {
|
|
47
|
+
handleSelect(options[activeIndex]);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case 'Escape':
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
setIsOpen(false);
|
|
53
|
+
setActiveIndex(-1);
|
|
54
|
+
break;
|
|
55
|
+
case 'ArrowDown':
|
|
56
|
+
e.preventDefault();
|
|
57
|
+
if (!isOpen) {
|
|
58
|
+
setIsOpen(true);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
setActiveIndex((prev) => (prev < options.length - 1 ? prev + 1 : 0));
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
case 'ArrowUp':
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
if (isOpen) {
|
|
67
|
+
setActiveIndex((prev) => (prev > 0 ? prev - 1 : options.length - 1));
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const handleClickOutside = () => {
|
|
73
|
+
setIsOpen(false);
|
|
74
|
+
setActiveIndex(-1);
|
|
75
|
+
};
|
|
76
|
+
(0, react_1.useEffect)(() => {
|
|
77
|
+
if (isOpen && selectRef.current) {
|
|
78
|
+
const selectRect = selectRef.current.getBoundingClientRect();
|
|
79
|
+
const viewportHeight = window.innerHeight;
|
|
80
|
+
const dropdownHeight = Math.min(400, options.length * 60);
|
|
81
|
+
const spaceAbove = selectRect.top;
|
|
82
|
+
const spaceBelow = viewportHeight - selectRect.bottom;
|
|
83
|
+
if (spaceAbove < dropdownHeight && spaceBelow > spaceAbove) {
|
|
84
|
+
setDropdownDirection('down');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
setDropdownDirection('up');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}, [isOpen, options.length]);
|
|
91
|
+
(0, react_1.useEffect)(() => {
|
|
92
|
+
if (isOpen && activeIndex >= 0 && dropdownRef.current) {
|
|
93
|
+
const activeElement = dropdownRef.current.children[activeIndex];
|
|
94
|
+
if (activeElement) {
|
|
95
|
+
activeElement.scrollIntoView({
|
|
96
|
+
behavior: 'smooth',
|
|
97
|
+
block: 'nearest',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}, [isOpen, activeIndex]);
|
|
102
|
+
return (react_1.default.createElement(click_outside_1.ClickOutside, { onOutsideClick: handleClickOutside },
|
|
103
|
+
react_1.default.createElement("div", { ref: selectRef, className: (0, classnames_1.default)(mention_select_module_less_1.default.mention_select, mention_select_module_less_1.default[`size_${size}`], {
|
|
104
|
+
[mention_select_module_less_1.default.disabled]: disabled,
|
|
105
|
+
[mention_select_module_less_1.default.open]: isOpen,
|
|
106
|
+
[mention_select_module_less_1.default.dropdown_up]: dropdownDirection === 'up',
|
|
107
|
+
[mention_select_module_less_1.default.dropdown_down]: dropdownDirection === 'down',
|
|
108
|
+
}, className), onClick: handleToggle, onKeyDown: handleKeyDown, tabIndex: disabled ? -1 : 0, role: 'combobox', "aria-expanded": isOpen, "aria-haspopup": 'listbox' },
|
|
109
|
+
react_1.default.createElement("div", { className: mention_select_module_less_1.default.select_trigger },
|
|
110
|
+
react_1.default.createElement("div", { className: mention_select_module_less_1.default.select_content }, selectedOption ? (react_1.default.createElement("div", { className: mention_select_module_less_1.default.selected_option },
|
|
111
|
+
react_1.default.createElement("span", { className: mention_select_module_less_1.default.option_label }, selectedOption.label),
|
|
112
|
+
selectedOption.badge && (react_1.default.createElement("span", { className: mention_select_module_less_1.default.option_badge, style: { backgroundColor: selectedOption.badgeColor } }, selectedOption.badge)))) : (react_1.default.createElement("span", { className: mention_select_module_less_1.default.placeholder }, placeholder))),
|
|
113
|
+
react_1.default.createElement(components_1.Icon, { iconClass: (0, components_1.getIcon)('down-arrow'), className: (0, classnames_1.default)(mention_select_module_less_1.default.dropdown_arrow, {
|
|
114
|
+
[mention_select_module_less_1.default.open]: isOpen,
|
|
115
|
+
}) })),
|
|
116
|
+
isOpen && (react_1.default.createElement("div", { ref: dropdownRef, className: mention_select_module_less_1.default.dropdown, role: 'listbox' },
|
|
117
|
+
showThinking && onThinkingChange && (react_1.default.createElement("div", { className: mention_select_module_less_1.default.thinking_section },
|
|
118
|
+
react_1.default.createElement(ThinkingToggle, { enabled: thinkingEnabled, onChange: onThinkingChange }),
|
|
119
|
+
react_1.default.createElement("div", { className: mention_select_module_less_1.default.divider }))),
|
|
120
|
+
options.map((option, index) => (react_1.default.createElement("div", { key: option.value, className: (0, classnames_1.default)(mention_select_module_less_1.default.option, {
|
|
121
|
+
[mention_select_module_less_1.default.active]: index === activeIndex,
|
|
122
|
+
[mention_select_module_less_1.default.selected]: option.selected || option.value === value,
|
|
123
|
+
[mention_select_module_less_1.default.disabled]: option.disabled,
|
|
124
|
+
}), onClick: () => handleSelect(option), role: 'option', "aria-selected": option.selected || option.value === value },
|
|
125
|
+
react_1.default.createElement("div", { className: mention_select_module_less_1.default.option_main },
|
|
126
|
+
react_1.default.createElement("div", { className: mention_select_module_less_1.default.option_header },
|
|
127
|
+
react_1.default.createElement("div", { className: mention_select_module_less_1.default.option_title },
|
|
128
|
+
option.icon && react_1.default.createElement(components_1.Icon, { icon: option.icon, className: mention_select_module_less_1.default.option_icon }),
|
|
129
|
+
option.iconClass && react_1.default.createElement(components_1.Icon, { iconClass: option.iconClass, className: mention_select_module_less_1.default.option_icon }),
|
|
130
|
+
react_1.default.createElement("span", { className: mention_select_module_less_1.default.option_label }, option.label),
|
|
131
|
+
option.badge && (react_1.default.createElement("span", { className: mention_select_module_less_1.default.option_badge, style: { backgroundColor: option.badgeColor } }, option.badge)))),
|
|
132
|
+
option.description && react_1.default.createElement("div", { className: mention_select_module_less_1.default.option_description }, option.description),
|
|
133
|
+
option.tags && option.tags.length > 0 && (react_1.default.createElement("div", { className: mention_select_module_less_1.default.option_tags }, option.tags.map((tag, idx) => (react_1.default.createElement("span", { key: idx, className: mention_select_module_less_1.default.tag }, tag))))))))))))));
|
|
134
|
+
};
|
|
135
|
+
exports.MentionSelect = MentionSelect;
|
|
136
|
+
//# sourceMappingURL=mention-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mention-select.js","sourceRoot":"","sources":["../../../../src/browser/components/mention-input/mention-select.tsx"],"names":[],"mappings":"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"}
|