@opencode-ai/ui 0.0.0-next-17428 → 0.0.0-next-17444
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/components/icon.d.ts +1 -0
- package/dist/context/i18n.d.ts +10 -7
- package/dist/i18n/en.d.ts +202 -1
- package/dist/i18n/he.d.ts +197 -0
- package/dist/v2/components/icon.d.ts +12 -0
- package/package.json +1 -5
- package/src/components/icon.tsx +1 -0
- package/src/context/i18n.tsx +17 -14
- package/src/hooks/create-auto-scroll.tsx +20 -0
- package/src/i18n/en.ts +11 -2
- package/src/i18n/he.ts +199 -0
- package/src/v2/components/dialog-v2.css +3 -0
- package/src/v2/components/icon.tsx +13 -0
- package/src/v2/components/tooltip-v2.tsx +3 -2
package/dist/context/i18n.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { type Accessor, type ParentProps } from "solid-js";
|
|
2
|
-
import {
|
|
3
|
-
export type UiI18nKey =
|
|
4
|
-
export
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
7
|
-
export type
|
|
2
|
+
import type { Key, LocaleKey, PluralCategory, PluralKey, PluralLookupKey } from "../i18n/en";
|
|
3
|
+
export type UiI18nKey = Key;
|
|
4
|
+
export type UiI18nPluralKey = PluralKey;
|
|
5
|
+
export type UiPluralCategory = PluralCategory;
|
|
6
|
+
export type UiI18nPluralLookupKey = PluralLookupKey;
|
|
7
|
+
export type UiI18nLocaleKey = LocaleKey;
|
|
8
|
+
type UiTranslationKey<Value extends string> = Value extends UiI18nPluralLookupKey ? never : Value;
|
|
8
9
|
export type UiI18nParams = Record<string, string | number | boolean>;
|
|
10
|
+
export type UiTranslate = <Value extends string>(key: UiTranslationKey<Value>, params?: UiI18nParams) => string;
|
|
9
11
|
export type UiI18n = {
|
|
10
12
|
locale: Accessor<string>;
|
|
11
13
|
layoutLocale?: Accessor<string>;
|
|
12
|
-
t:
|
|
14
|
+
t: UiTranslate;
|
|
13
15
|
plural: (key: UiI18nPluralKey, count: number, params?: UiI18nParams) => string;
|
|
16
|
+
pluralForm?: (key: UiI18nPluralKey, category: UiPluralCategory, params?: UiI18nParams) => string;
|
|
14
17
|
};
|
|
15
18
|
export declare function pluralCategory(locale: string, count: number): UiPluralCategory;
|
|
16
19
|
export declare function pluralKey(key: UiI18nPluralKey, category: UiPluralCategory): UiI18nPluralLookupKey;
|
package/dist/i18n/en.d.ts
CHANGED
|
@@ -1 +1,202 @@
|
|
|
1
|
-
|
|
1
|
+
declare const source: {
|
|
2
|
+
"ui.sessionReview.title": string;
|
|
3
|
+
"ui.sessionReview.title.git": string;
|
|
4
|
+
"ui.sessionReview.title.branch": string;
|
|
5
|
+
"ui.sessionReview.title.lastTurn": string;
|
|
6
|
+
"ui.sessionReview.diffStyle.unified": string;
|
|
7
|
+
"ui.sessionReview.diffStyle.split": string;
|
|
8
|
+
"ui.sessionReview.expandAll": string;
|
|
9
|
+
"ui.sessionReview.collapseAll": string;
|
|
10
|
+
"ui.sessionReview.change.added": string;
|
|
11
|
+
"ui.sessionReview.change.removed": string;
|
|
12
|
+
"ui.sessionReview.change.modified": string;
|
|
13
|
+
"ui.sessionReview.image.loading": string;
|
|
14
|
+
"ui.sessionReview.image.placeholder": string;
|
|
15
|
+
"ui.sessionReview.largeDiff.title": string;
|
|
16
|
+
"ui.sessionReview.largeDiff.meta": string;
|
|
17
|
+
"ui.sessionReview.largeDiff.renderAnyway": string;
|
|
18
|
+
"ui.sessionReviewV2.expandMode": string;
|
|
19
|
+
"ui.sessionReviewV2.filterFiles": string;
|
|
20
|
+
"ui.sessionReviewV2.toggleSidebar": string;
|
|
21
|
+
"ui.sessionReviewV2.showAllLines": string;
|
|
22
|
+
"ui.sessionReviewV2.hideNonDiffLines": string;
|
|
23
|
+
"ui.sessionReviewV2.unifiedDiff": string;
|
|
24
|
+
"ui.sessionReviewV2.splitDiff": string;
|
|
25
|
+
"ui.sessionReviewV2.previousFile": string;
|
|
26
|
+
"ui.sessionReviewV2.nextFile": string;
|
|
27
|
+
"ui.sessionReviewV2.diffView": string;
|
|
28
|
+
"ui.sessionReviewV2.empty.noGit.title": string;
|
|
29
|
+
"ui.sessionReviewV2.empty.noGit.description": string;
|
|
30
|
+
"ui.sessionReviewV2.empty.noGit.action": string;
|
|
31
|
+
"ui.sessionReviewV2.empty.noGit.actionLoading": string;
|
|
32
|
+
"ui.sessionReviewV2.empty.changes.title": string;
|
|
33
|
+
"ui.sessionReviewV2.empty.changes.description": string;
|
|
34
|
+
"ui.sessionReview.openFile": string;
|
|
35
|
+
"ui.sessionReview.selection.line": string;
|
|
36
|
+
"ui.sessionReview.selection.lines": string;
|
|
37
|
+
"ui.fileMedia.kind.image": string;
|
|
38
|
+
"ui.fileMedia.kind.audio": string;
|
|
39
|
+
"ui.fileMedia.state.removed": string;
|
|
40
|
+
"ui.fileMedia.state.loading": string;
|
|
41
|
+
"ui.fileMedia.state.error": string;
|
|
42
|
+
"ui.fileMedia.state.unavailable": string;
|
|
43
|
+
"ui.fileMedia.binary.title": string;
|
|
44
|
+
"ui.fileMedia.binary.description.path": string;
|
|
45
|
+
"ui.fileMedia.binary.description.default": string;
|
|
46
|
+
"ui.lineComment.label.prefix": string;
|
|
47
|
+
"ui.lineComment.label.suffix": string;
|
|
48
|
+
"ui.lineComment.editorLabel.prefix": string;
|
|
49
|
+
"ui.lineComment.editorLabel.suffix": string;
|
|
50
|
+
"ui.lineComment.placeholder": string;
|
|
51
|
+
"ui.lineComment.contextPlaceholder": string;
|
|
52
|
+
"ui.lineComment.submit": string;
|
|
53
|
+
"ui.lineComment.cancel": string;
|
|
54
|
+
"ui.sessionTurn.steps.show": string;
|
|
55
|
+
"ui.sessionTurn.steps.hide": string;
|
|
56
|
+
"ui.sessionTurn.summary.response": string;
|
|
57
|
+
"ui.sessionTurn.diff.showMore": string;
|
|
58
|
+
"ui.sessionTurn.diffs.changed.one": string;
|
|
59
|
+
"ui.sessionTurn.diffs.changed.other": string;
|
|
60
|
+
"ui.sessionTurn.diffs.showAll": string;
|
|
61
|
+
"ui.sessionTurn.diffs.showLess": string;
|
|
62
|
+
"ui.sessionTurn.diffs.more": string;
|
|
63
|
+
"ui.sessionTurn.retry.retrying": string;
|
|
64
|
+
"ui.sessionTurn.retry.inSeconds": string;
|
|
65
|
+
"ui.sessionTurn.retry.attempt": string;
|
|
66
|
+
"ui.sessionTurn.retry.attemptLine": string;
|
|
67
|
+
"ui.sessionTurn.retry.geminiHot": string;
|
|
68
|
+
"ui.sessionTurn.error.freeUsageExceeded": string;
|
|
69
|
+
"ui.sessionTurn.error.addCredits": string;
|
|
70
|
+
"dialog.usageExceeded.freeTier.title": string;
|
|
71
|
+
"dialog.usageExceeded.freeTier.description": string;
|
|
72
|
+
"dialog.usageExceeded.freeTier.actionLabel": string;
|
|
73
|
+
"dialog.usageExceeded.accountRateLimit.title": string;
|
|
74
|
+
"dialog.usageExceeded.accountRateLimit.description": string;
|
|
75
|
+
"dialog.usageExceeded.accountRateLimit.actionLabel": string;
|
|
76
|
+
"ui.sessionTurn.status.delegating": string;
|
|
77
|
+
"ui.sessionTurn.status.planning": string;
|
|
78
|
+
"ui.sessionTurn.status.gatheringContext": string;
|
|
79
|
+
"ui.sessionTurn.status.gatheredContext": string;
|
|
80
|
+
"ui.sessionTurn.status.searchingCodebase": string;
|
|
81
|
+
"ui.sessionTurn.status.searchingWeb": string;
|
|
82
|
+
"ui.sessionTurn.status.makingEdits": string;
|
|
83
|
+
"ui.sessionTurn.status.runningCommands": string;
|
|
84
|
+
"ui.sessionTurn.status.thinking": string;
|
|
85
|
+
"ui.sessionTurn.status.thinkingWithTopic": string;
|
|
86
|
+
"ui.sessionTurn.status.gatheringThoughts": string;
|
|
87
|
+
"ui.sessionTurn.status.consideringNextSteps": string;
|
|
88
|
+
"ui.messagePart.diagnostic.error": string;
|
|
89
|
+
"ui.messagePart.title.edit": string;
|
|
90
|
+
"ui.messagePart.title.write": string;
|
|
91
|
+
"ui.messagePart.option.typeOwnAnswer": string;
|
|
92
|
+
"ui.messagePart.review.title": string;
|
|
93
|
+
"ui.messagePart.questions.dismissed": string;
|
|
94
|
+
"ui.messagePart.compaction": string;
|
|
95
|
+
"ui.messagePart.context.read.one": string;
|
|
96
|
+
"ui.messagePart.context.read.other": string;
|
|
97
|
+
"ui.messagePart.context.search.one": string;
|
|
98
|
+
"ui.messagePart.context.search.other": string;
|
|
99
|
+
"ui.messagePart.context.list.one": string;
|
|
100
|
+
"ui.messagePart.context.list.other": string;
|
|
101
|
+
"ui.list.loading": string;
|
|
102
|
+
"ui.list.empty": string;
|
|
103
|
+
"ui.list.clearFilter": string;
|
|
104
|
+
"ui.list.emptyWithFilter.prefix": string;
|
|
105
|
+
"ui.list.emptyWithFilter.suffix": string;
|
|
106
|
+
"ui.fileSearch.placeholder": string;
|
|
107
|
+
"ui.fileSearch.previousMatch": string;
|
|
108
|
+
"ui.fileSearch.nextMatch": string;
|
|
109
|
+
"ui.fileSearch.close": string;
|
|
110
|
+
"ui.messageNav.newMessage": string;
|
|
111
|
+
"ui.promptInput.noMatchingItems": string;
|
|
112
|
+
"ui.promptInput.commands": string;
|
|
113
|
+
"ui.promptInput.dropFiles": string;
|
|
114
|
+
"ui.promptInput.removeAttachment": string;
|
|
115
|
+
"ui.promptInput.label": string;
|
|
116
|
+
"ui.promptInput.placeholder.shell": string;
|
|
117
|
+
"ui.promptInput.placeholder.normal": string;
|
|
118
|
+
"ui.promptInput.add": string;
|
|
119
|
+
"ui.promptInput.attachments": string;
|
|
120
|
+
"ui.promptInput.context": string;
|
|
121
|
+
"ui.promptInput.shell": string;
|
|
122
|
+
"ui.promptInput.chooseAgent": string;
|
|
123
|
+
"ui.promptInput.chooseModel": string;
|
|
124
|
+
"ui.promptInput.chooseVariant": string;
|
|
125
|
+
"ui.promptInput.send": string;
|
|
126
|
+
"ui.promptInput.stop": string;
|
|
127
|
+
"ui.tabs.close": string;
|
|
128
|
+
"ui.textField.copyToClipboard": string;
|
|
129
|
+
"ui.textField.copyLink": string;
|
|
130
|
+
"ui.textField.copied": string;
|
|
131
|
+
"ui.imagePreview.alt": string;
|
|
132
|
+
"ui.scrollView.ariaLabel": string;
|
|
133
|
+
"ui.tool.read": string;
|
|
134
|
+
"ui.tool.loaded": string;
|
|
135
|
+
"ui.tool.list": string;
|
|
136
|
+
"ui.tool.glob": string;
|
|
137
|
+
"ui.tool.grep": string;
|
|
138
|
+
"ui.tool.task": string;
|
|
139
|
+
"ui.tool.webfetch": string;
|
|
140
|
+
"ui.tool.websearch": string;
|
|
141
|
+
"ui.tool.websearch.provider": string;
|
|
142
|
+
"ui.tool.shell": string;
|
|
143
|
+
"ui.tool.patch": string;
|
|
144
|
+
"ui.tool.questions": string;
|
|
145
|
+
"ui.tool.questions.numbered": string;
|
|
146
|
+
"ui.tool.agent": string;
|
|
147
|
+
"ui.tool.agent.default": string;
|
|
148
|
+
"ui.tool.skill": string;
|
|
149
|
+
"ui.basicTool.called": string;
|
|
150
|
+
"ui.toolErrorCard.failed": string;
|
|
151
|
+
"ui.toolErrorCard.copyError": string;
|
|
152
|
+
"ui.common.file.one": string;
|
|
153
|
+
"ui.common.file.other": string;
|
|
154
|
+
"ui.common.question.one": string;
|
|
155
|
+
"ui.common.question.other": string;
|
|
156
|
+
"ui.common.add": string;
|
|
157
|
+
"ui.common.clear": string;
|
|
158
|
+
"ui.common.file": string;
|
|
159
|
+
"ui.common.back": string;
|
|
160
|
+
"ui.common.cancel": string;
|
|
161
|
+
"ui.common.confirm": string;
|
|
162
|
+
"ui.common.dismiss": string;
|
|
163
|
+
"ui.common.close": string;
|
|
164
|
+
"ui.common.next": string;
|
|
165
|
+
"ui.common.submit": string;
|
|
166
|
+
"ui.common.showMore": string;
|
|
167
|
+
"ui.permission.deny": string;
|
|
168
|
+
"ui.permission.allowAlways": string;
|
|
169
|
+
"ui.permission.allowOnce": string;
|
|
170
|
+
"ui.message.expand": string;
|
|
171
|
+
"ui.message.collapse": string;
|
|
172
|
+
"ui.message.copy": string;
|
|
173
|
+
"ui.message.copyMessage": string;
|
|
174
|
+
"ui.message.forkMessage": string;
|
|
175
|
+
"ui.message.revertMessage": string;
|
|
176
|
+
"ui.message.copyResponse": string;
|
|
177
|
+
"ui.message.copied": string;
|
|
178
|
+
"ui.message.duration.seconds": string;
|
|
179
|
+
"ui.message.duration.minutesSeconds": string;
|
|
180
|
+
"ui.message.interrupted": string;
|
|
181
|
+
"ui.message.queued": string;
|
|
182
|
+
"ui.message.attachment.alt": string;
|
|
183
|
+
"ui.patch.action.deleted": string;
|
|
184
|
+
"ui.patch.action.created": string;
|
|
185
|
+
"ui.patch.action.moved": string;
|
|
186
|
+
"ui.patch.action.patched": string;
|
|
187
|
+
"ui.question.subtitle.answered": string;
|
|
188
|
+
"ui.question.answer.none": string;
|
|
189
|
+
"ui.question.review.notAnswered": string;
|
|
190
|
+
"ui.question.multiHint": string;
|
|
191
|
+
"ui.question.singleHint": string;
|
|
192
|
+
"ui.question.custom.placeholder": string;
|
|
193
|
+
};
|
|
194
|
+
export type Key = keyof typeof source;
|
|
195
|
+
export type PluralCategory = "zero" | "one" | "two" | "few" | "many" | "other";
|
|
196
|
+
export type PluralKey = {
|
|
197
|
+
[Entry in Key]: Entry extends `${infer Base}.other` ? (`${Base}.one` extends Key ? Base : never) : never;
|
|
198
|
+
}[Key];
|
|
199
|
+
export type PluralLookupKey = `${PluralKey}.${PluralCategory}`;
|
|
200
|
+
export type LocaleKey = Key | PluralLookupKey;
|
|
201
|
+
export declare const dict: typeof source & Record<string, string>;
|
|
202
|
+
export {};
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
export declare const dict: {
|
|
2
|
+
"ui.sessionReview.title": string;
|
|
3
|
+
"ui.sessionReview.title.git": string;
|
|
4
|
+
"ui.sessionReview.title.branch": string;
|
|
5
|
+
"ui.sessionReview.title.lastTurn": string;
|
|
6
|
+
"ui.sessionReview.diffStyle.unified": string;
|
|
7
|
+
"ui.sessionReview.diffStyle.split": string;
|
|
8
|
+
"ui.sessionReview.expandAll": string;
|
|
9
|
+
"ui.sessionReview.collapseAll": string;
|
|
10
|
+
"ui.sessionReview.change.added": string;
|
|
11
|
+
"ui.sessionReview.change.removed": string;
|
|
12
|
+
"ui.sessionReview.change.modified": string;
|
|
13
|
+
"ui.sessionReview.image.loading": string;
|
|
14
|
+
"ui.sessionReview.image.placeholder": string;
|
|
15
|
+
"ui.sessionReview.largeDiff.title": string;
|
|
16
|
+
"ui.sessionReview.largeDiff.meta": string;
|
|
17
|
+
"ui.sessionReview.largeDiff.renderAnyway": string;
|
|
18
|
+
"ui.sessionReviewV2.expandMode": string;
|
|
19
|
+
"ui.sessionReviewV2.filterFiles": string;
|
|
20
|
+
"ui.sessionReviewV2.toggleSidebar": string;
|
|
21
|
+
"ui.sessionReviewV2.showAllLines": string;
|
|
22
|
+
"ui.sessionReviewV2.hideNonDiffLines": string;
|
|
23
|
+
"ui.sessionReviewV2.unifiedDiff": string;
|
|
24
|
+
"ui.sessionReviewV2.splitDiff": string;
|
|
25
|
+
"ui.sessionReviewV2.previousFile": string;
|
|
26
|
+
"ui.sessionReviewV2.nextFile": string;
|
|
27
|
+
"ui.sessionReviewV2.diffView": string;
|
|
28
|
+
"ui.sessionReviewV2.empty.noGit.title": string;
|
|
29
|
+
"ui.sessionReviewV2.empty.noGit.description": string;
|
|
30
|
+
"ui.sessionReviewV2.empty.noGit.action": string;
|
|
31
|
+
"ui.sessionReviewV2.empty.noGit.actionLoading": string;
|
|
32
|
+
"ui.sessionReviewV2.empty.changes.title": string;
|
|
33
|
+
"ui.sessionReviewV2.empty.changes.description": string;
|
|
34
|
+
"ui.sessionReview.openFile": string;
|
|
35
|
+
"ui.sessionReview.selection.line": string;
|
|
36
|
+
"ui.sessionReview.selection.lines": string;
|
|
37
|
+
"ui.fileMedia.kind.image": string;
|
|
38
|
+
"ui.fileMedia.kind.audio": string;
|
|
39
|
+
"ui.fileMedia.state.removed": string;
|
|
40
|
+
"ui.fileMedia.state.loading": string;
|
|
41
|
+
"ui.fileMedia.state.error": string;
|
|
42
|
+
"ui.fileMedia.state.unavailable": string;
|
|
43
|
+
"ui.fileMedia.binary.title": string;
|
|
44
|
+
"ui.fileMedia.binary.description.path": string;
|
|
45
|
+
"ui.fileMedia.binary.description.default": string;
|
|
46
|
+
"ui.lineComment.label.prefix": string;
|
|
47
|
+
"ui.lineComment.label.suffix": string;
|
|
48
|
+
"ui.lineComment.editorLabel.prefix": string;
|
|
49
|
+
"ui.lineComment.editorLabel.suffix": string;
|
|
50
|
+
"ui.lineComment.placeholder": string;
|
|
51
|
+
"ui.lineComment.contextPlaceholder": string;
|
|
52
|
+
"ui.lineComment.submit": string;
|
|
53
|
+
"ui.lineComment.cancel": string;
|
|
54
|
+
"ui.sessionTurn.steps.show": string;
|
|
55
|
+
"ui.sessionTurn.steps.hide": string;
|
|
56
|
+
"ui.sessionTurn.summary.response": string;
|
|
57
|
+
"ui.sessionTurn.diff.showMore": string;
|
|
58
|
+
"ui.sessionTurn.diffs.changed.one": string;
|
|
59
|
+
"ui.sessionTurn.diffs.changed.other": string;
|
|
60
|
+
"ui.sessionTurn.diffs.showAll": string;
|
|
61
|
+
"ui.sessionTurn.diffs.showLess": string;
|
|
62
|
+
"ui.sessionTurn.diffs.more": string;
|
|
63
|
+
"ui.sessionTurn.retry.retrying": string;
|
|
64
|
+
"ui.sessionTurn.retry.inSeconds": string;
|
|
65
|
+
"ui.sessionTurn.retry.attempt": string;
|
|
66
|
+
"ui.sessionTurn.retry.attemptLine": string;
|
|
67
|
+
"ui.sessionTurn.retry.geminiHot": string;
|
|
68
|
+
"ui.sessionTurn.error.freeUsageExceeded": string;
|
|
69
|
+
"ui.sessionTurn.error.addCredits": string;
|
|
70
|
+
"dialog.usageExceeded.freeTier.title": string;
|
|
71
|
+
"dialog.usageExceeded.freeTier.description": string;
|
|
72
|
+
"dialog.usageExceeded.freeTier.actionLabel": string;
|
|
73
|
+
"dialog.usageExceeded.accountRateLimit.title": string;
|
|
74
|
+
"dialog.usageExceeded.accountRateLimit.description": string;
|
|
75
|
+
"dialog.usageExceeded.accountRateLimit.actionLabel": string;
|
|
76
|
+
"ui.sessionTurn.status.delegating": string;
|
|
77
|
+
"ui.sessionTurn.status.planning": string;
|
|
78
|
+
"ui.sessionTurn.status.gatheringContext": string;
|
|
79
|
+
"ui.sessionTurn.status.gatheredContext": string;
|
|
80
|
+
"ui.sessionTurn.status.searchingCodebase": string;
|
|
81
|
+
"ui.sessionTurn.status.searchingWeb": string;
|
|
82
|
+
"ui.sessionTurn.status.makingEdits": string;
|
|
83
|
+
"ui.sessionTurn.status.runningCommands": string;
|
|
84
|
+
"ui.sessionTurn.status.thinking": string;
|
|
85
|
+
"ui.sessionTurn.status.thinkingWithTopic": string;
|
|
86
|
+
"ui.sessionTurn.status.gatheringThoughts": string;
|
|
87
|
+
"ui.sessionTurn.status.consideringNextSteps": string;
|
|
88
|
+
"ui.messagePart.diagnostic.error": string;
|
|
89
|
+
"ui.messagePart.title.edit": string;
|
|
90
|
+
"ui.messagePart.title.write": string;
|
|
91
|
+
"ui.messagePart.option.typeOwnAnswer": string;
|
|
92
|
+
"ui.messagePart.review.title": string;
|
|
93
|
+
"ui.messagePart.questions.dismissed": string;
|
|
94
|
+
"ui.messagePart.compaction": string;
|
|
95
|
+
"ui.messagePart.context.read.one": string;
|
|
96
|
+
"ui.messagePart.context.read.other": string;
|
|
97
|
+
"ui.messagePart.context.search.one": string;
|
|
98
|
+
"ui.messagePart.context.search.other": string;
|
|
99
|
+
"ui.messagePart.context.list.one": string;
|
|
100
|
+
"ui.messagePart.context.list.other": string;
|
|
101
|
+
"ui.list.loading": string;
|
|
102
|
+
"ui.list.empty": string;
|
|
103
|
+
"ui.list.clearFilter": string;
|
|
104
|
+
"ui.list.emptyWithFilter.prefix": string;
|
|
105
|
+
"ui.list.emptyWithFilter.suffix": string;
|
|
106
|
+
"ui.fileSearch.placeholder": string;
|
|
107
|
+
"ui.fileSearch.previousMatch": string;
|
|
108
|
+
"ui.fileSearch.nextMatch": string;
|
|
109
|
+
"ui.fileSearch.close": string;
|
|
110
|
+
"ui.messageNav.newMessage": string;
|
|
111
|
+
"ui.promptInput.noMatchingItems": string;
|
|
112
|
+
"ui.promptInput.commands": string;
|
|
113
|
+
"ui.promptInput.dropFiles": string;
|
|
114
|
+
"ui.promptInput.removeAttachment": string;
|
|
115
|
+
"ui.promptInput.label": string;
|
|
116
|
+
"ui.promptInput.placeholder.shell": string;
|
|
117
|
+
"ui.promptInput.placeholder.normal": string;
|
|
118
|
+
"ui.promptInput.add": string;
|
|
119
|
+
"ui.promptInput.attachments": string;
|
|
120
|
+
"ui.promptInput.context": string;
|
|
121
|
+
"ui.promptInput.shell": string;
|
|
122
|
+
"ui.promptInput.chooseAgent": string;
|
|
123
|
+
"ui.promptInput.chooseModel": string;
|
|
124
|
+
"ui.promptInput.chooseVariant": string;
|
|
125
|
+
"ui.promptInput.send": string;
|
|
126
|
+
"ui.promptInput.stop": string;
|
|
127
|
+
"ui.tabs.close": string;
|
|
128
|
+
"ui.textField.copyToClipboard": string;
|
|
129
|
+
"ui.textField.copyLink": string;
|
|
130
|
+
"ui.textField.copied": string;
|
|
131
|
+
"ui.imagePreview.alt": string;
|
|
132
|
+
"ui.scrollView.ariaLabel": string;
|
|
133
|
+
"ui.tool.read": string;
|
|
134
|
+
"ui.tool.loaded": string;
|
|
135
|
+
"ui.tool.list": string;
|
|
136
|
+
"ui.tool.glob": string;
|
|
137
|
+
"ui.tool.grep": string;
|
|
138
|
+
"ui.tool.task": string;
|
|
139
|
+
"ui.tool.webfetch": string;
|
|
140
|
+
"ui.tool.websearch": string;
|
|
141
|
+
"ui.tool.websearch.provider": string;
|
|
142
|
+
"ui.tool.shell": string;
|
|
143
|
+
"ui.tool.patch": string;
|
|
144
|
+
"ui.tool.questions": string;
|
|
145
|
+
"ui.tool.questions.numbered": string;
|
|
146
|
+
"ui.tool.agent": string;
|
|
147
|
+
"ui.tool.agent.default": string;
|
|
148
|
+
"ui.tool.skill": string;
|
|
149
|
+
"ui.basicTool.called": string;
|
|
150
|
+
"ui.toolErrorCard.failed": string;
|
|
151
|
+
"ui.toolErrorCard.copyError": string;
|
|
152
|
+
"ui.common.file.one": string;
|
|
153
|
+
"ui.common.file.other": string;
|
|
154
|
+
"ui.common.question.one": string;
|
|
155
|
+
"ui.common.question.other": string;
|
|
156
|
+
"ui.common.add": string;
|
|
157
|
+
"ui.common.clear": string;
|
|
158
|
+
"ui.common.file": string;
|
|
159
|
+
"ui.common.back": string;
|
|
160
|
+
"ui.common.cancel": string;
|
|
161
|
+
"ui.common.confirm": string;
|
|
162
|
+
"ui.common.dismiss": string;
|
|
163
|
+
"ui.common.close": string;
|
|
164
|
+
"ui.common.next": string;
|
|
165
|
+
"ui.common.submit": string;
|
|
166
|
+
"ui.common.showMore": string;
|
|
167
|
+
"ui.permission.deny": string;
|
|
168
|
+
"ui.permission.allowAlways": string;
|
|
169
|
+
"ui.permission.allowOnce": string;
|
|
170
|
+
"ui.message.expand": string;
|
|
171
|
+
"ui.message.collapse": string;
|
|
172
|
+
"ui.message.copy": string;
|
|
173
|
+
"ui.message.copyMessage": string;
|
|
174
|
+
"ui.message.forkMessage": string;
|
|
175
|
+
"ui.message.revertMessage": string;
|
|
176
|
+
"ui.message.copyResponse": string;
|
|
177
|
+
"ui.message.copied": string;
|
|
178
|
+
"ui.message.duration.seconds": string;
|
|
179
|
+
"ui.message.duration.minutesSeconds": string;
|
|
180
|
+
"ui.message.interrupted": string;
|
|
181
|
+
"ui.message.queued": string;
|
|
182
|
+
"ui.message.attachment.alt": string;
|
|
183
|
+
"ui.patch.action.deleted": string;
|
|
184
|
+
"ui.patch.action.created": string;
|
|
185
|
+
"ui.patch.action.moved": string;
|
|
186
|
+
"ui.patch.action.patched": string;
|
|
187
|
+
"ui.question.subtitle.answered": string;
|
|
188
|
+
"ui.question.answer.none": string;
|
|
189
|
+
"ui.question.review.notAnswered": string;
|
|
190
|
+
"ui.question.multiHint": string;
|
|
191
|
+
"ui.question.singleHint": string;
|
|
192
|
+
"ui.question.custom.placeholder": string;
|
|
193
|
+
"ui.sessionTurn.diffs.changed.two": string;
|
|
194
|
+
"ui.messagePart.context.read.two": string;
|
|
195
|
+
"ui.messagePart.context.search.two": string;
|
|
196
|
+
"ui.messagePart.context.list.two": string;
|
|
197
|
+
};
|
|
@@ -16,6 +16,10 @@ declare const icons: {
|
|
|
16
16
|
viewBox: string;
|
|
17
17
|
body: string;
|
|
18
18
|
};
|
|
19
|
+
"branch-out": {
|
|
20
|
+
viewBox: string;
|
|
21
|
+
body: string;
|
|
22
|
+
};
|
|
19
23
|
"grid-plus": {
|
|
20
24
|
viewBox: string;
|
|
21
25
|
body: string;
|
|
@@ -120,6 +124,14 @@ declare const icons: {
|
|
|
120
124
|
viewBox: string;
|
|
121
125
|
body: string;
|
|
122
126
|
};
|
|
127
|
+
"window-analytics": {
|
|
128
|
+
viewBox: string;
|
|
129
|
+
body: string;
|
|
130
|
+
};
|
|
131
|
+
trash: {
|
|
132
|
+
viewBox: string;
|
|
133
|
+
body: string;
|
|
134
|
+
};
|
|
123
135
|
"outline-sliders": {
|
|
124
136
|
viewBox: string;
|
|
125
137
|
body: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opencode-ai/ui",
|
|
3
|
-
"version": "0.0.0-next-
|
|
3
|
+
"version": "0.0.0-next-17444",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -124,8 +124,6 @@
|
|
|
124
124
|
"dependencies": {
|
|
125
125
|
"@kobalte/core": "0.13.11",
|
|
126
126
|
"@pierre/diffs": "1.2.10",
|
|
127
|
-
"@shikijs/transformers": "3.9.2",
|
|
128
|
-
"@solid-primitives/bounds": "0.1.3",
|
|
129
127
|
"@solid-primitives/event-listener": "2.4.5",
|
|
130
128
|
"@solid-primitives/media": "2.3.3",
|
|
131
129
|
"@solid-primitives/resize-observer": "2.1.3",
|
|
@@ -139,8 +137,6 @@
|
|
|
139
137
|
"marked-shiki": "1.2.1",
|
|
140
138
|
"morphdom": "2.7.8",
|
|
141
139
|
"motion": "12.34.5",
|
|
142
|
-
"motion-dom": "12.34.3",
|
|
143
|
-
"motion-utils": "12.29.2",
|
|
144
140
|
"remeda": "2.26.0",
|
|
145
141
|
"remend": "1.3.0",
|
|
146
142
|
"shiki": "4.2.0",
|
package/src/components/icon.tsx
CHANGED
|
@@ -10,6 +10,7 @@ const icons = {
|
|
|
10
10
|
prompt: `<path d="M14.5841 12.0807H17.9193V2.91406H5.6276V6.2474M14.5859 6.2474H2.08594V15.4141H5.0026V17.4974L8.7526 15.4141H14.5859V6.2474Z" stroke="currentColor" stroke-linecap="square"/>`,
|
|
11
11
|
brain: `<path d="M13.332 8.7487C11.4911 8.7487 9.9987 7.25631 9.9987 5.41536M6.66536 11.2487C8.50631 11.2487 9.9987 12.7411 9.9987 14.582M9.9987 2.78209L9.9987 17.0658M16.004 15.0475C17.1255 14.5876 17.9154 13.4849 17.9154 12.1978C17.9154 11.3363 17.5615 10.5575 16.9913 9.9987C17.5615 9.43991 17.9154 8.66108 17.9154 7.79962C17.9154 6.21199 16.7136 4.90504 15.1702 4.73878C14.7858 3.21216 13.4039 2.08203 11.758 2.08203C11.1171 2.08203 10.5162 2.25337 9.9987 2.55275C9.48117 2.25337 8.88032 2.08203 8.23944 2.08203C6.59353 2.08203 5.21157 3.21216 4.82722 4.73878C3.28377 4.90504 2.08203 6.21199 2.08203 7.79962C2.08203 8.66108 2.43585 9.43991 3.00609 9.9987C2.43585 10.5575 2.08203 11.3363 2.08203 12.1978C2.08203 13.4849 2.87191 14.5876 3.99339 15.0475C4.46688 16.7033 5.9917 17.9154 7.79962 17.9154C8.61335 17.9154 9.36972 17.6698 9.9987 17.2488C10.6277 17.6698 11.384 17.9154 12.1978 17.9154C14.0057 17.9154 15.5305 16.7033 16.004 15.0475Z" stroke="currentColor"/>`,
|
|
12
12
|
fork: `<path d="M2.91602 7.91406L2.91602 2.91406H7.91602M12.0827 2.91406H17.0827L17.0827 7.91406M9.99935 9.9974L9.99935 17.0807M9.99935 9.9974L3.33268 3.33073M9.99935 9.9974L16.666 3.33073" stroke="currentColor" stroke-linecap="square"/>`,
|
|
13
|
+
"workspace-isolated": `<g transform="translate(2 2)"><path d="M10.5 10.5V5.5H5.5V10.5H10.5Z" fill="currentColor"/><rect x="2.5" y="2.5" width="11" height="11" stroke="currentColor"/></g>`,
|
|
13
14
|
"bullet-list": `<path d="M9.58329 13.7497H17.0833M9.58329 6.24967H17.0833M6.24996 6.24967C6.24996 7.17015 5.50377 7.91634 4.58329 7.91634C3.66282 7.91634 2.91663 7.17015 2.91663 6.24967C2.91663 5.3292 3.66282 4.58301 4.58329 4.58301C5.50377 4.58301 6.24996 5.3292 6.24996 6.24967ZM6.24996 13.7497C6.24996 14.6701 5.50377 15.4163 4.58329 15.4163C3.66282 15.4163 2.91663 14.6701 2.91663 13.7497C2.91663 12.8292 3.66282 12.083 4.58329 12.083C5.50377 12.083 6.24996 12.8292 6.24996 13.7497Z" stroke="currentColor" stroke-linecap="square"/>`,
|
|
14
15
|
"check-small": `<path d="M6.5 11.4412L8.97059 13.5L13.5 6.5" stroke="currentColor" stroke-linecap="square"/>`,
|
|
15
16
|
"chevron-down": `<path d="M6.6665 8.33325L9.99984 11.6666L13.3332 8.33325" stroke="currentColor" stroke-linecap="square"/>`,
|
package/src/context/i18n.tsx
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import { createContext, useContext, type Accessor, type ParentProps } from "solid-js"
|
|
2
2
|
import { I18nProvider } from "@kobalte/core/i18n"
|
|
3
3
|
import { dict as en } from "../i18n/en"
|
|
4
|
+
import type { Key, LocaleKey, PluralCategory, PluralKey, PluralLookupKey } from "../i18n/en"
|
|
4
5
|
|
|
5
|
-
export type UiI18nKey =
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"ui.messagePart.context.list",
|
|
12
|
-
] as const
|
|
13
|
-
export type UiI18nPluralKey = (typeof UI_PLURAL_KEYS)[number]
|
|
14
|
-
export type UiPluralCategory = "zero" | "one" | "two" | "few" | "many" | "other"
|
|
15
|
-
export type UiI18nPluralLookupKey = `${UiI18nPluralKey}.${UiPluralCategory}`
|
|
6
|
+
export type UiI18nKey = Key
|
|
7
|
+
export type UiI18nPluralKey = PluralKey
|
|
8
|
+
export type UiPluralCategory = PluralCategory
|
|
9
|
+
export type UiI18nPluralLookupKey = PluralLookupKey
|
|
10
|
+
export type UiI18nLocaleKey = LocaleKey
|
|
11
|
+
type UiTranslationKey<Value extends string> = Value extends UiI18nPluralLookupKey ? never : Value
|
|
16
12
|
|
|
17
13
|
export type UiI18nParams = Record<string, string | number | boolean>
|
|
14
|
+
export type UiTranslate = <Value extends string>(key: UiTranslationKey<Value>, params?: UiI18nParams) => string
|
|
18
15
|
|
|
19
16
|
export type UiI18n = {
|
|
20
17
|
locale: Accessor<string>
|
|
21
18
|
layoutLocale?: Accessor<string>
|
|
22
|
-
t:
|
|
19
|
+
t: UiTranslate
|
|
23
20
|
plural: (key: UiI18nPluralKey, count: number, params?: UiI18nParams) => string
|
|
21
|
+
pluralForm?: (key: UiI18nPluralKey, category: UiPluralCategory, params?: UiI18nParams) => string
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
const rules = new Map<string, Intl.PluralRules>()
|
|
@@ -50,11 +48,16 @@ function resolveTemplate(text: string, params?: UiI18nParams) {
|
|
|
50
48
|
const fallback: UiI18n = {
|
|
51
49
|
locale: () => "en",
|
|
52
50
|
t: (key, params) => {
|
|
53
|
-
const value = en[key] ?? String(key)
|
|
51
|
+
const value = en[key as UiI18nKey] ?? String(key)
|
|
54
52
|
return resolveTemplate(value, params)
|
|
55
53
|
},
|
|
56
54
|
plural: (key, count, params) =>
|
|
57
|
-
fallback.
|
|
55
|
+
fallback.pluralForm!(key, pluralCategory(fallback.locale(), count), { ...params, count }),
|
|
56
|
+
pluralForm: (key, category, params) => {
|
|
57
|
+
const values = en as Partial<Record<UiI18nLocaleKey, string>>
|
|
58
|
+
const value = values[pluralKey(key, category)] ?? values[`${key}.other`] ?? `${key}.other`
|
|
59
|
+
return resolveTemplate(value, params)
|
|
60
|
+
},
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
const Context = createContext<UiI18n>(fallback)
|
|
@@ -186,6 +186,26 @@ export function createAutoScroll(options: AutoScrollOptions) {
|
|
|
186
186
|
},
|
|
187
187
|
)
|
|
188
188
|
|
|
189
|
+
createEffect(() => {
|
|
190
|
+
const el = store.scrollRef
|
|
191
|
+
if (!el) return
|
|
192
|
+
const root = el.closest("main")
|
|
193
|
+
if (!root) return
|
|
194
|
+
let connected = el.isConnected
|
|
195
|
+
const contains = (node: Node) => node === el || (node instanceof Element && node.contains(el))
|
|
196
|
+
const observer = new MutationObserver((records) => {
|
|
197
|
+
records.forEach((record) => {
|
|
198
|
+
if ([...record.removedNodes].some(contains)) connected = false
|
|
199
|
+
if (!record.addedNodes.length || ![...record.addedNodes].some(contains)) return
|
|
200
|
+
const reattached = !connected
|
|
201
|
+
connected = true
|
|
202
|
+
if (reattached) scrollToBottom(false)
|
|
203
|
+
})
|
|
204
|
+
})
|
|
205
|
+
observer.observe(root, { childList: true })
|
|
206
|
+
onCleanup(() => observer.disconnect())
|
|
207
|
+
})
|
|
208
|
+
|
|
189
209
|
createEffect(
|
|
190
210
|
on(options.working, (working: boolean) => {
|
|
191
211
|
settling = false
|
package/src/i18n/en.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const source = {
|
|
2
2
|
"ui.sessionReview.title": "Session changes",
|
|
3
3
|
"ui.sessionReview.title.git": "Git changes",
|
|
4
4
|
"ui.sessionReview.title.branch": "Branch changes",
|
|
@@ -215,4 +215,13 @@ export const dict: Record<string, string> = {
|
|
|
215
215
|
"ui.question.multiHint": "Select all answers that apply",
|
|
216
216
|
"ui.question.singleHint": "Select one answer",
|
|
217
217
|
"ui.question.custom.placeholder": "Type your answer...",
|
|
218
|
-
}
|
|
218
|
+
} satisfies Record<string, string>
|
|
219
|
+
|
|
220
|
+
export type Key = keyof typeof source
|
|
221
|
+
export type PluralCategory = "zero" | "one" | "two" | "few" | "many" | "other"
|
|
222
|
+
export type PluralKey = {
|
|
223
|
+
[Entry in Key]: Entry extends `${infer Base}.other` ? (`${Base}.one` extends Key ? Base : never) : never
|
|
224
|
+
}[Key]
|
|
225
|
+
export type PluralLookupKey = `${PluralKey}.${PluralCategory}`
|
|
226
|
+
export type LocaleKey = Key | PluralLookupKey
|
|
227
|
+
export const dict: typeof source & Record<string, string> = source
|
package/src/i18n/he.ts
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
export const dict = {
|
|
2
|
+
"ui.sessionReview.title": "שינויים בהפעלה",
|
|
3
|
+
"ui.sessionReview.title.git": "שינויים ב-Git",
|
|
4
|
+
"ui.sessionReview.title.branch": "שינויים בענף",
|
|
5
|
+
"ui.sessionReview.title.lastTurn": "שינויים בתור האחרון",
|
|
6
|
+
"ui.sessionReview.diffStyle.unified": "מאוחד",
|
|
7
|
+
"ui.sessionReview.diffStyle.split": "מפוצל",
|
|
8
|
+
"ui.sessionReview.expandAll": "הרחב הכל",
|
|
9
|
+
"ui.sessionReview.collapseAll": "כווץ הכל",
|
|
10
|
+
"ui.sessionReview.change.added": "נוסף",
|
|
11
|
+
"ui.sessionReview.change.removed": "הוסר",
|
|
12
|
+
"ui.sessionReview.change.modified": "שונה",
|
|
13
|
+
"ui.sessionReview.image.loading": "טוען...",
|
|
14
|
+
"ui.sessionReview.image.placeholder": "תמונה",
|
|
15
|
+
"ui.sessionReview.largeDiff.title": "ה-diff גדול מדי להצגה",
|
|
16
|
+
"ui.sessionReview.largeDiff.meta": "המגבלה היא {{limit}} שורות שהשתנו. כעת יש {{current}} שורות שהשתנו.",
|
|
17
|
+
"ui.sessionReview.largeDiff.renderAnyway": "הצג בכל זאת",
|
|
18
|
+
"ui.sessionReviewV2.expandMode": "הרחבה או כיווץ של ה-diff",
|
|
19
|
+
"ui.sessionReviewV2.filterFiles": "סינון קבצים",
|
|
20
|
+
"ui.sessionReviewV2.toggleSidebar": "הצגה או הסתרה של עץ הקבצים",
|
|
21
|
+
"ui.sessionReviewV2.showAllLines": "הצג את כל השורות",
|
|
22
|
+
"ui.sessionReviewV2.hideNonDiffLines": "הסתרת שורות שאינן חלק מה-diff",
|
|
23
|
+
"ui.sessionReviewV2.unifiedDiff": "diff מאוחד",
|
|
24
|
+
"ui.sessionReviewV2.splitDiff": "diff מפוצל",
|
|
25
|
+
"ui.sessionReviewV2.previousFile": "הקובץ הקודם",
|
|
26
|
+
"ui.sessionReviewV2.nextFile": "הקובץ הבא",
|
|
27
|
+
"ui.sessionReviewV2.diffView": "תצוגת diff",
|
|
28
|
+
"ui.sessionReviewV2.empty.noGit.title": "אין שינויים במעקב",
|
|
29
|
+
"ui.sessionReviewV2.empty.noGit.description": "עקוב, סקור ובטל שינויים בפרויקט הזה",
|
|
30
|
+
"ui.sessionReviewV2.empty.noGit.action": "צור מאגר Git",
|
|
31
|
+
"ui.sessionReviewV2.empty.noGit.actionLoading": "יוצר מאגר Git...",
|
|
32
|
+
"ui.sessionReviewV2.empty.changes.title": "אין עדיין שינויים בקובץ",
|
|
33
|
+
"ui.sessionReviewV2.empty.changes.description": "שינויים בפרויקט יופיעו כאן",
|
|
34
|
+
"ui.sessionReview.openFile": "פתיחת קובץ",
|
|
35
|
+
"ui.sessionReview.selection.line": "שורה {{line}}",
|
|
36
|
+
"ui.sessionReview.selection.lines": "שורות {{start}}-{{end}}",
|
|
37
|
+
"ui.fileMedia.kind.image": "תמונה",
|
|
38
|
+
"ui.fileMedia.kind.audio": "אודיו",
|
|
39
|
+
"ui.fileMedia.state.removed": "הוסר קובץ {{kind}}.",
|
|
40
|
+
"ui.fileMedia.state.loading": "טוען {{kind}}...",
|
|
41
|
+
"ui.fileMedia.state.error": "לא ניתן לטעון {{kind}}.",
|
|
42
|
+
"ui.fileMedia.state.unavailable": "תצוגה מקדימה של {{kind}} אינה זמינה.",
|
|
43
|
+
"ui.fileMedia.binary.title": "קובץ בינארי",
|
|
44
|
+
"ui.fileMedia.binary.description.path": "{{path}} הוא קובץ בינארי.",
|
|
45
|
+
"ui.fileMedia.binary.description.default": "תוכן בינארי",
|
|
46
|
+
"ui.lineComment.label.prefix": "תגובה על ",
|
|
47
|
+
"ui.lineComment.label.suffix": "",
|
|
48
|
+
"ui.lineComment.editorLabel.prefix": "תגובה על ",
|
|
49
|
+
"ui.lineComment.editorLabel.suffix": "",
|
|
50
|
+
"ui.lineComment.placeholder": "הוסף תגובה",
|
|
51
|
+
"ui.lineComment.contextPlaceholder": "הוסף הקשר לשינוי זה",
|
|
52
|
+
"ui.lineComment.submit": "שלח תגובה",
|
|
53
|
+
"ui.lineComment.cancel": "בטל",
|
|
54
|
+
"ui.sessionTurn.steps.show": "הצג צעדים",
|
|
55
|
+
"ui.sessionTurn.steps.hide": "הסתר צעדים",
|
|
56
|
+
"ui.sessionTurn.summary.response": "תגובה",
|
|
57
|
+
"ui.sessionTurn.diff.showMore": "הצג שינויים נוספים ({{count}})",
|
|
58
|
+
"ui.sessionTurn.diffs.changed.one": "{{count}} קובץ השתנה",
|
|
59
|
+
"ui.sessionTurn.diffs.changed.other": "{{count}} קבצים השתנו",
|
|
60
|
+
"ui.sessionTurn.diffs.showAll": "הצג הכל",
|
|
61
|
+
"ui.sessionTurn.diffs.showLess": "הצג פחות",
|
|
62
|
+
"ui.sessionTurn.diffs.more": "+{{count}} קבצים נוספים",
|
|
63
|
+
"ui.sessionTurn.retry.retrying": "מנסה שוב",
|
|
64
|
+
"ui.sessionTurn.retry.inSeconds": "בעוד {{seconds}} שניות",
|
|
65
|
+
"ui.sessionTurn.retry.attempt": "ניסיון #{{attempt}}",
|
|
66
|
+
"ui.sessionTurn.retry.attemptLine": "{{line}} - ניסיון #{{attempt}}",
|
|
67
|
+
"ui.sessionTurn.retry.geminiHot": "העומס על Gemini גבוה מדי כרגע",
|
|
68
|
+
"ui.sessionTurn.error.freeUsageExceeded": "חריגה מהשימוש בחינם",
|
|
69
|
+
"ui.sessionTurn.error.addCredits": "הוסף קרדיטים",
|
|
70
|
+
"dialog.usageExceeded.freeTier.title": "הגעת למגבלה החינמית",
|
|
71
|
+
"dialog.usageExceeded.freeTier.description":
|
|
72
|
+
"הירשם ל-OpenCode Go לקבלת גישה אמינה למודלי הקוד הפתוח הטובים ביותר, החל מ-$5 לחודש.",
|
|
73
|
+
"dialog.usageExceeded.freeTier.actionLabel": "הירשם",
|
|
74
|
+
"dialog.usageExceeded.accountRateLimit.title": "הגעת למגבלת Go",
|
|
75
|
+
"dialog.usageExceeded.accountRateLimit.description":
|
|
76
|
+
"הגעת למגבלת השימוש. כדי להמשיך להשתמש במודל זה כעת, הפעל שימוש מהיתרה הזמינה שלך",
|
|
77
|
+
"dialog.usageExceeded.accountRateLimit.actionLabel": "פתח את ההגדרות",
|
|
78
|
+
"ui.sessionTurn.status.delegating": "מעביר את העבודה לסוכן אחר",
|
|
79
|
+
"ui.sessionTurn.status.planning": "תכנון השלבים הבאים",
|
|
80
|
+
"ui.sessionTurn.status.gatheringContext": "בודק את הפרויקט",
|
|
81
|
+
"ui.sessionTurn.status.gatheredContext": "בדיקת הפרויקט הסתיימה",
|
|
82
|
+
"ui.sessionTurn.status.searchingCodebase": "חיפוש בבסיס הקוד",
|
|
83
|
+
"ui.sessionTurn.status.searchingWeb": "חיפוש באינטרנט",
|
|
84
|
+
"ui.sessionTurn.status.makingEdits": "ביצוע עריכות",
|
|
85
|
+
"ui.sessionTurn.status.runningCommands": "הפעלת פקודות",
|
|
86
|
+
"ui.sessionTurn.status.thinking": "חושב",
|
|
87
|
+
"ui.sessionTurn.status.thinkingWithTopic": "חשיבה - {{topic}}",
|
|
88
|
+
"ui.sessionTurn.status.gatheringThoughts": "מגבש מחשבות",
|
|
89
|
+
"ui.sessionTurn.status.consideringNextSteps": "בוחן את הצעדים הבאים",
|
|
90
|
+
"ui.messagePart.diagnostic.error": "שגיאה",
|
|
91
|
+
"ui.messagePart.title.edit": "ערוך",
|
|
92
|
+
"ui.messagePart.title.write": "כתוב",
|
|
93
|
+
"ui.messagePart.option.typeOwnAnswer": "הקלד את התשובה שלך",
|
|
94
|
+
"ui.messagePart.review.title": "בדיקת התשובות",
|
|
95
|
+
"ui.messagePart.questions.dismissed": "השאלות נדחו",
|
|
96
|
+
"ui.messagePart.compaction": "ההפעלה נדחסה",
|
|
97
|
+
"ui.messagePart.context.read.one": "{{count}} קריאה",
|
|
98
|
+
"ui.messagePart.context.read.other": "{{count}} קריאות",
|
|
99
|
+
"ui.messagePart.context.search.one": "{{count}} חיפוש",
|
|
100
|
+
"ui.messagePart.context.search.other": "{{count}} חיפושים",
|
|
101
|
+
"ui.messagePart.context.list.one": "{{count}} הצגה",
|
|
102
|
+
"ui.messagePart.context.list.other": "{{count}} הצגות",
|
|
103
|
+
"ui.list.loading": "טוען",
|
|
104
|
+
"ui.list.empty": "אין תוצאות",
|
|
105
|
+
"ui.list.clearFilter": "נקה מסנן",
|
|
106
|
+
"ui.list.emptyWithFilter.prefix": "אין תוצאות עבור",
|
|
107
|
+
"ui.list.emptyWithFilter.suffix": "",
|
|
108
|
+
"ui.fileSearch.placeholder": "מצא",
|
|
109
|
+
"ui.fileSearch.previousMatch": "התוצאה הקודמת",
|
|
110
|
+
"ui.fileSearch.nextMatch": "התוצאה הבאה",
|
|
111
|
+
"ui.fileSearch.close": "סגור חיפוש",
|
|
112
|
+
"ui.messageNav.newMessage": "הודעה חדשה",
|
|
113
|
+
"ui.promptInput.noMatchingItems": "אין פריטים תואמים",
|
|
114
|
+
"ui.promptInput.commands": "פקודות",
|
|
115
|
+
"ui.promptInput.dropFiles": "שחרר קבצים לצירוף",
|
|
116
|
+
"ui.promptInput.removeAttachment": "הסר את הקובץ המצורף",
|
|
117
|
+
"ui.promptInput.label": "פרומפט",
|
|
118
|
+
"ui.promptInput.placeholder.shell": "הזן פקודת מעטפת...",
|
|
119
|
+
"ui.promptInput.placeholder.normal": "שאל כל דבר, {{slash}} עבור פקודות, {{at}} עבור הקשר...",
|
|
120
|
+
"ui.promptInput.add": "הוסף תמונות וקבצים",
|
|
121
|
+
"ui.promptInput.attachments": "תמונות וקבצים",
|
|
122
|
+
"ui.promptInput.context": "הקשר",
|
|
123
|
+
"ui.promptInput.shell": "פקודת מעטפת",
|
|
124
|
+
"ui.promptInput.chooseAgent": "בחר סוכן",
|
|
125
|
+
"ui.promptInput.chooseModel": "בחר מודל",
|
|
126
|
+
"ui.promptInput.chooseVariant": "בחר גרסה של מודל",
|
|
127
|
+
"ui.promptInput.send": "שלח",
|
|
128
|
+
"ui.promptInput.stop": "עצור",
|
|
129
|
+
"ui.tabs.close": "סגור כרטיסייה",
|
|
130
|
+
"ui.textField.copyToClipboard": "העתק ללוח",
|
|
131
|
+
"ui.textField.copyLink": "העתק קישור",
|
|
132
|
+
"ui.textField.copied": "הועתק",
|
|
133
|
+
"ui.imagePreview.alt": "תצוגה מקדימה של תמונה",
|
|
134
|
+
"ui.scrollView.ariaLabel": "תוכן שניתן לגלול",
|
|
135
|
+
"ui.tool.read": "קרא",
|
|
136
|
+
"ui.tool.loaded": "טעון",
|
|
137
|
+
"ui.tool.list": "רשימה",
|
|
138
|
+
"ui.tool.glob": "Glob",
|
|
139
|
+
"ui.tool.grep": "Grep",
|
|
140
|
+
"ui.tool.task": "משימה",
|
|
141
|
+
"ui.tool.webfetch": "Webfetch",
|
|
142
|
+
"ui.tool.websearch": "Web Search",
|
|
143
|
+
"ui.tool.websearch.provider": "{{provider}} Web Search",
|
|
144
|
+
"ui.tool.shell": "Shell",
|
|
145
|
+
"ui.tool.patch": "Patch",
|
|
146
|
+
"ui.tool.questions": "שאלות",
|
|
147
|
+
"ui.tool.questions.numbered": "שאלות {{number}}",
|
|
148
|
+
"ui.tool.agent": "סוכן {{type}}",
|
|
149
|
+
"ui.tool.agent.default": "סוכן",
|
|
150
|
+
"ui.tool.skill": "מיומנות",
|
|
151
|
+
"ui.basicTool.called": "בוצעה קריאה אל `{{tool}}`",
|
|
152
|
+
"ui.toolErrorCard.failed": "נכשל",
|
|
153
|
+
"ui.toolErrorCard.copyError": "שגיאת העתקה",
|
|
154
|
+
"ui.common.file.one": "קובץ",
|
|
155
|
+
"ui.common.file.other": "קבצים",
|
|
156
|
+
"ui.common.question.one": "שאלה",
|
|
157
|
+
"ui.common.question.other": "שאלות",
|
|
158
|
+
"ui.common.add": "הוסף",
|
|
159
|
+
"ui.common.clear": "נקה",
|
|
160
|
+
"ui.common.file": "קובץ",
|
|
161
|
+
"ui.common.back": "חזרה",
|
|
162
|
+
"ui.common.cancel": "בטל",
|
|
163
|
+
"ui.common.confirm": "אשר",
|
|
164
|
+
"ui.common.dismiss": "סגור",
|
|
165
|
+
"ui.common.close": "סגור",
|
|
166
|
+
"ui.common.next": "הבא",
|
|
167
|
+
"ui.common.submit": "שלח",
|
|
168
|
+
"ui.common.showMore": "הצג עוד",
|
|
169
|
+
"ui.permission.deny": "דחה",
|
|
170
|
+
"ui.permission.allowAlways": "אפשר תמיד",
|
|
171
|
+
"ui.permission.allowOnce": "אפשר פעם אחת",
|
|
172
|
+
"ui.message.expand": "הרחב את ההודעה",
|
|
173
|
+
"ui.message.collapse": "כווץ הודעה",
|
|
174
|
+
"ui.message.copy": "העתק",
|
|
175
|
+
"ui.message.copyMessage": "העתק הודעה",
|
|
176
|
+
"ui.message.forkMessage": "יצירת הפעלה חדשה מכאן",
|
|
177
|
+
"ui.message.revertMessage": "ביטול ההודעה",
|
|
178
|
+
"ui.message.copyResponse": "העתק את התגובה",
|
|
179
|
+
"ui.message.copied": "הועתק",
|
|
180
|
+
"ui.message.duration.seconds": "{{count}}s",
|
|
181
|
+
"ui.message.duration.minutesSeconds": "{{minutes}}m {{seconds}}s",
|
|
182
|
+
"ui.message.interrupted": "נקטע",
|
|
183
|
+
"ui.message.queued": "בתור",
|
|
184
|
+
"ui.message.attachment.alt": "קובץ מצורף",
|
|
185
|
+
"ui.patch.action.deleted": "נמחק",
|
|
186
|
+
"ui.patch.action.created": "נוצר",
|
|
187
|
+
"ui.patch.action.moved": "הועבר",
|
|
188
|
+
"ui.patch.action.patched": "עודכן",
|
|
189
|
+
"ui.question.subtitle.answered": "שאלות שנענו: {{count}}",
|
|
190
|
+
"ui.question.answer.none": "(אין תשובה)",
|
|
191
|
+
"ui.question.review.notAnswered": "(ללא תשובה)",
|
|
192
|
+
"ui.question.multiHint": "בחר את כל התשובות המתאימות",
|
|
193
|
+
"ui.question.singleHint": "בחר תשובה אחת",
|
|
194
|
+
"ui.question.custom.placeholder": "הקלד את תשובתך...",
|
|
195
|
+
"ui.sessionTurn.diffs.changed.two": "{{count}} קבצים השתנו",
|
|
196
|
+
"ui.messagePart.context.read.two": "{{count}} קריאות",
|
|
197
|
+
"ui.messagePart.context.search.two": "{{count}} חיפושים",
|
|
198
|
+
"ui.messagePart.context.list.two": "{{count}} הצגות",
|
|
199
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { onMount, type ComponentProps, splitProps } from "solid-js"
|
|
2
2
|
|
|
3
|
+
// Consumers center the SVG viewport, so each icon must center its artwork within its viewBox.
|
|
3
4
|
const icons = {
|
|
4
5
|
edit: {
|
|
5
6
|
viewBox: "0 0 16 16",
|
|
@@ -17,6 +18,10 @@ const icons = {
|
|
|
17
18
|
viewBox: "0 0 16 16",
|
|
18
19
|
body: `<path d="M5.118 5.686V10.314M5.118 5.686C5.97 5.686 6.661 4.995 6.661 4.143C6.661 3.291 5.97 2.6 5.118 2.6C4.266 2.6 3.575 3.291 3.575 4.143C3.575 4.995 4.266 5.686 5.118 5.686ZM5.118 10.314C4.266 10.314 3.575 11.005 3.575 11.857C3.575 12.709 4.266 13.4 5.118 13.4C5.97 13.4 6.661 12.709 6.661 11.857M5.118 10.314C5.97 10.314 6.661 11.005 6.661 11.857M10.882 5.686C11.734 5.686 12.425 4.995 12.425 4.143C12.425 3.291 11.734 2.6 10.882 2.6C10.03 2.6 9.339 3.291 9.339 4.143C9.339 4.995 10.03 5.686 10.882 5.686ZM10.882 5.686V9.457C10.882 10.783 9.807 11.857 8.482 11.857H6.661" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>`,
|
|
19
20
|
},
|
|
21
|
+
"branch-out": {
|
|
22
|
+
viewBox: "0 0 16 16",
|
|
23
|
+
body: `<path d="M10.4225 3.35355L12.9024 5.83344L10.4225 8.31333" stroke="currentColor"/><path d="M1 12.2852H4.23042C4.89912 12.2852 5.52359 11.951 5.89452 11.3946L9.00783 6.72462C8.37877 6.16823 10.0032 5.83402 10.6719 5.83402H12.9024" stroke="currentColor"/><path d="M8.5 12.2852H14" stroke="currentColor" stroke-linejoin="round"/>`,
|
|
24
|
+
},
|
|
20
25
|
"grid-plus": {
|
|
21
26
|
viewBox: "0 0 16 16",
|
|
22
27
|
body: `<path d="M13.9948 11.668H9.32812M11.6641 9.33203V13.9987M6.66667 9.33203V13.9987H2V9.33203H6.66667ZM6.66667 2V6.66667H2V2H6.66667ZM13.9948 2V6.66667H9.32812V2H13.9948Z" stroke="currentColor" stroke-miterlimit="10" stroke-linecap="square"/>`,
|
|
@@ -121,6 +126,14 @@ const icons = {
|
|
|
121
126
|
viewBox: "0 0 20 20",
|
|
122
127
|
body: `<path d="M7 14.5H13M7 7.99512H10.0049M10.0049 7.99512H13M10.0049 7.99512V5M10.0049 7.99512V11M18 18V2L2 2L2 18H18Z" stroke="currentColor"/>`,
|
|
123
128
|
},
|
|
129
|
+
"window-analytics": {
|
|
130
|
+
viewBox: "0 0 16 16",
|
|
131
|
+
body: `<g transform="translate(1 2)"><path d="M7 4H11M7 8H11M0.5 0.5V11.5H13.5V0.5H0.5ZM3.5 3.5H4.5V4.5H3.5V3.5ZM3.5 7.5H4.5V8.5H3.5V7.5Z" stroke="currentColor" stroke-miterlimit="10" stroke-linecap="square"/></g>`,
|
|
132
|
+
},
|
|
133
|
+
trash: {
|
|
134
|
+
viewBox: "0 0 20 20",
|
|
135
|
+
body: `<path d="M4.58342 17.9134L4.58369 17.4134L4.22787 17.5384L4.22766 18.0384H4.58342V17.9134ZM15.4167 17.9134V18.0384H15.7725L15.7723 17.5384L15.4167 17.9134ZM2.08342 3.95508V3.45508H1.58342V3.95508H2.08342V4.45508V3.95508ZM17.9167 4.45508V4.95508H18.4167V4.45508H17.9167V3.95508V4.45508ZM4.16677 4.58008L3.66701 4.5996L4.22816 17.5379L4.72792 17.4934L5.22767 17.4489L4.66652 4.54055L4.16677 4.58008ZM4.58342 18.0384V17.9134H15.4167V18.0384V18.5384H4.58342V18.0384ZM15.4167 17.9134L15.8332 17.5379L16.2498 4.5996L15.7501 4.58008L15.2503 4.56055L14.8337 17.4989L15.4167 17.9134ZM15.8334 4.58008V4.08008H4.16677V4.58008V5.08008H15.8334V4.58008ZM2.08342 4.45508V4.95508H4.16677V4.58008V4.08008H2.08342V4.45508ZM15.8334 4.58008V5.08008H17.9167V4.45508V3.95508H15.8334V4.58008ZM6.83951 4.35149L7.432 4.55047C7.79251 3.47701 8.80699 2.70508 10.0001 2.70508V2.20508V1.70508C8.25392 1.70508 6.77335 2.83539 6.24702 4.15251L6.83951 4.35149ZM10.0001 2.20508V2.70508C11.1932 2.70508 12.2077 3.47701 12.5682 4.55047L13.1607 4.35149L13.7532 4.15251C13.2269 2.83539 11.7463 1.70508 10.0001 1.70508V2.20508Z" fill="currentColor"/>`,
|
|
136
|
+
},
|
|
124
137
|
"outline-sliders": {
|
|
125
138
|
viewBox: "0 0 16 16",
|
|
126
139
|
body: `<path d="M11.7779 4.66675H14.4446M11.7779 4.66675C11.7779 5.77132 10.8825 6.66675 9.77789 6.66675C8.67332 6.66675 7.77789 5.77132 7.77789 4.66675M11.7779 4.66675C11.7779 3.56218 10.8825 2.66675 9.77789 2.66675C8.67332 2.66675 7.77789 3.56218 7.77789 4.66675M1.55566 4.66675H7.77789M4.22233 11.3334H1.55566M4.22233 11.3334C4.22233 12.438 5.11776 13.3334 6.22233 13.3334C7.3269 13.3334 8.22233 12.438 8.22233 11.3334M4.22233 11.3334C4.22233 10.2288 5.11776 9.33341 6.22233 9.33341C7.3269 9.33341 8.22233 10.2288 8.22233 11.3334M14.4446 11.3334H8.22233" stroke="currentColor"/>`,
|
|
@@ -32,6 +32,7 @@ export function TooltipV2(props: TooltipV2Props) {
|
|
|
32
32
|
])
|
|
33
33
|
|
|
34
34
|
const close = () => setState("open", false)
|
|
35
|
+
const controlled = () => local.forceOpen !== undefined
|
|
35
36
|
|
|
36
37
|
const inside = () => {
|
|
37
38
|
const active = document.activeElement
|
|
@@ -93,9 +94,9 @@ export function TooltipV2(props: TooltipV2Props) {
|
|
|
93
94
|
{...others}
|
|
94
95
|
closeDelay={0}
|
|
95
96
|
ignoreSafeArea={local.ignoreSafeArea ?? true}
|
|
96
|
-
open={local.forceOpen
|
|
97
|
+
open={controlled() ? local.forceOpen : state.open}
|
|
97
98
|
onOpenChange={(open) => {
|
|
98
|
-
if (
|
|
99
|
+
if (controlled()) return
|
|
99
100
|
if (state.block && open) return
|
|
100
101
|
if (justClickedTrigger) {
|
|
101
102
|
justClickedTrigger = false
|