@sparkelf/dsh-client-ui-skill-center 0.2.0-rc.13 → 0.2.0-rc.15
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/client.js +67 -61
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -4,9 +4,9 @@ window.__ModuleLoader__.load({
|
|
|
4
4
|
var module = { exports: {} };
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
8
|
let react = require("react");
|
|
8
9
|
let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
9
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
10
|
//#region \0dsh-css:/root/projects/deepseek-harness-plus/packages/plus/ui-skill-center/src/client/SkillCenterPage.module.css.mjs
|
|
11
11
|
const css = ".DGiSta_page{box-sizing:border-box;height:100%;color:var(--dsw-alias-label-primary);flex-direction:column;align-items:center;gap:32px;padding:28px clamp(24px,4vw,48px) 48px;display:flex;overflow:auto}.DGiSta_page>*{width:100%;max-width:960px}.DGiSta_pageHead{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.DGiSta_pageTitle{margin:0;font-size:20px;font-weight:500;line-height:28px}.DGiSta_pageIntro{color:var(--dsw-alias-label-secondary);margin:4px 0 0;font-size:13px;line-height:20px}.DGiSta_toolbar{justify-content:flex-end;align-items:center;gap:16px;display:flex}.DGiSta_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-caption);cursor:pointer;background:0 0;border:0;border-radius:28px;justify-content:center;align-items:center;display:inline-flex}.DGiSta_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.DGiSta_iconButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.DGiSta_iconWrap{display:inline-flex}.DGiSta_button{border:.5px solid var(--dsw-alias-border-l3);height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;padding:0 12px;font-size:13px}.DGiSta_button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.DGiSta_button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.DGiSta_search{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);width:100%;height:36px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:10px;padding:0 12px;font-size:13px}.DGiSta_search::placeholder{color:var(--dsw-alias-label-tertiary)}.DGiSta_group{margin-top:32px}.DGiSta_groupTitle{align-items:baseline;gap:8px;margin:0 0 4px;font-size:15px;font-weight:500;line-height:22px;display:flex}.DGiSta_groupCount{color:var(--dsw-alias-label-tertiary);font-size:13px;font-weight:400}.DGiSta_groupHint{color:var(--dsw-alias-label-caption);font-size:12px;font-weight:400}.DGiSta_cards{margin:0;padding:0;list-style:none}.DGiSta_card{border-radius:12px;min-width:0;margin:0 -8px}.DGiSta_card:hover{background:var(--dsw-alias-interactive-bg-hover)}.DGiSta_cardHead{align-items:center;gap:14px;padding:8px;display:flex}.DGiSta_cardIcon{border:.5px solid var(--dsw-alias-border-l3);width:48px;height:48px;color:var(--dsw-alias-label-secondary);border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.DGiSta_cardMain{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.DGiSta_cardTitle{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;overflow:hidden}.DGiSta_cardDesc{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:18px;display:-webkit-box;overflow:hidden}.DGiSta_cardWhenToUse{color:var(--dsw-alias-label-caption);font-size:12px;line-height:18px}.DGiSta_cardMarks{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.DGiSta_mark{border:.5px solid var(--dsw-alias-border-l3);color:var(--dsw-alias-label-tertiary);border-radius:4px;padding:1px 6px;font-size:11px;line-height:16px}.DGiSta_markOn{border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-alias-state-business-primary)}.DGiSta_markOff{border-color:var(--dsw-alias-border-l4);color:var(--dsw-alias-label-caption)}.DGiSta_markDanger{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.DGiSta_cardEnd{flex:none;align-items:center;gap:8px;display:flex}.DGiSta_switch{background:var(--dsw-alias-border-l3);cursor:pointer;border:none;border-radius:10px;width:36px;height:20px;transition:background .12s;position:relative}.DGiSta_switch:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.DGiSta_switchOn{background:var(--dsw-alias-state-success-primary)}.DGiSta_switch:after{content:\"\";background:var(--dsw-alias-bg-layer-1);border-radius:50%;width:16px;height:16px;transition:transform .12s;position:absolute;top:2px;left:2px}.DGiSta_switchOn:after{transform:translate(16px)}.DGiSta_dialog{width:min(560px,100%)}.DGiSta_form{flex-direction:column;gap:12px;display:flex}.DGiSta_field{flex-direction:column;gap:4px;display:flex}.DGiSta_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.DGiSta_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);height:32px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;padding:0 10px;font-size:13px}.DGiSta_textarea{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);min-height:80px;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-markdown-code-block-small);resize:vertical;background:0 0;border-radius:8px;padding:8px 10px;font-size:12px}.DGiSta_status{text-align:center;color:var(--dsw-alias-label-tertiary);padding:32px 0;font-size:13px}.DGiSta_statusError{color:var(--dsw-alias-state-error-primary)}";
|
|
12
12
|
const tagId = "@sparkelf/dsh-client-ui-skill-center/SkillCenterPage.module.css";
|
|
@@ -57,7 +57,7 @@ window.__ModuleLoader__.load({
|
|
|
57
57
|
"toolbar": "DGiSta_toolbar"
|
|
58
58
|
};
|
|
59
59
|
//#endregion
|
|
60
|
-
//#region
|
|
60
|
+
//#region lib/types/client/api.js
|
|
61
61
|
/**
|
|
62
62
|
* Skill center API client. Talks to the host route family over same-origin
|
|
63
63
|
* fetch; the host owns the trust fence.
|
|
@@ -129,7 +129,7 @@ window.__ModuleLoader__.load({
|
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
//#endregion
|
|
132
|
-
//#region
|
|
132
|
+
//#region lib/types/client/SkillCenterPage.js
|
|
133
133
|
/**
|
|
134
134
|
* Skill center page. Browses the loaded skills grouped by source, toggles model
|
|
135
135
|
* invocation, creates a skill, and deletes one into a recoverable trash.
|
|
@@ -145,9 +145,9 @@ window.__ModuleLoader__.load({
|
|
|
145
145
|
* @returns the labelled field.
|
|
146
146
|
*/
|
|
147
147
|
function DraftField({ label, children }) {
|
|
148
|
-
return
|
|
148
|
+
return (0, react_jsx_runtime.jsxs)("div", {
|
|
149
149
|
className: SkillCenterPage_module_css_default.field,
|
|
150
|
-
children: [
|
|
150
|
+
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
151
151
|
className: SkillCenterPage_module_css_default.fieldLabel,
|
|
152
152
|
children: label
|
|
153
153
|
}), children]
|
|
@@ -159,42 +159,42 @@ window.__ModuleLoader__.load({
|
|
|
159
159
|
* @returns the row.
|
|
160
160
|
*/
|
|
161
161
|
function SkillCard({ skill, t, onToggle, onDelete }) {
|
|
162
|
-
return
|
|
162
|
+
return (0, react_jsx_runtime.jsx)("li", {
|
|
163
163
|
className: SkillCenterPage_module_css_default.card,
|
|
164
|
-
children:
|
|
164
|
+
children: (0, react_jsx_runtime.jsxs)("div", {
|
|
165
165
|
className: SkillCenterPage_module_css_default.cardHead,
|
|
166
166
|
children: [
|
|
167
|
-
|
|
167
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
168
168
|
className: SkillCenterPage_module_css_default.cardIcon,
|
|
169
|
-
children:
|
|
169
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSkillOutline16, { size: 22 })
|
|
170
170
|
}),
|
|
171
|
-
|
|
171
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
172
172
|
className: SkillCenterPage_module_css_default.cardMain,
|
|
173
173
|
children: [
|
|
174
|
-
|
|
174
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
175
175
|
className: SkillCenterPage_module_css_default.cardTitle,
|
|
176
176
|
children: skill.name
|
|
177
177
|
}),
|
|
178
|
-
|
|
178
|
+
(0, react_jsx_runtime.jsx)("div", {
|
|
179
179
|
className: SkillCenterPage_module_css_default.cardDesc,
|
|
180
180
|
children: skill.description
|
|
181
181
|
}),
|
|
182
|
-
skill.whenToUse === void 0 ? null :
|
|
182
|
+
skill.whenToUse === void 0 ? null : (0, react_jsx_runtime.jsx)("div", {
|
|
183
183
|
className: SkillCenterPage_module_css_default.cardWhenToUse,
|
|
184
184
|
children: skill.whenToUse
|
|
185
185
|
}),
|
|
186
|
-
|
|
186
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
187
187
|
className: SkillCenterPage_module_css_default.cardMarks,
|
|
188
188
|
children: [
|
|
189
|
-
|
|
189
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
190
190
|
className: skill.modelInvocable ? SkillCenterPage_module_css_default.mark + " " + SkillCenterPage_module_css_default.markOn : SkillCenterPage_module_css_default.mark + " " + SkillCenterPage_module_css_default.markOff,
|
|
191
191
|
children: t("skill.modelInvocable")
|
|
192
192
|
}),
|
|
193
|
-
|
|
193
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
194
194
|
className: skill.userInvocable ? SkillCenterPage_module_css_default.mark + " " + SkillCenterPage_module_css_default.markOn : SkillCenterPage_module_css_default.mark + " " + SkillCenterPage_module_css_default.markOff,
|
|
195
195
|
children: t("skill.userInvocable")
|
|
196
196
|
}),
|
|
197
|
-
skill.linked === true ?
|
|
197
|
+
skill.linked === true ? (0, react_jsx_runtime.jsx)("span", {
|
|
198
198
|
className: SkillCenterPage_module_css_default.mark + " " + SkillCenterPage_module_css_default.markDanger,
|
|
199
199
|
children: t("skill.linked")
|
|
200
200
|
}) : null
|
|
@@ -202,9 +202,9 @@ window.__ModuleLoader__.load({
|
|
|
202
202
|
})
|
|
203
203
|
]
|
|
204
204
|
}),
|
|
205
|
-
|
|
205
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
206
206
|
className: SkillCenterPage_module_css_default.cardEnd,
|
|
207
|
-
children: [
|
|
207
|
+
children: [(0, react_jsx_runtime.jsx)("button", {
|
|
208
208
|
type: "button",
|
|
209
209
|
className: skill.modelInvocable ? SkillCenterPage_module_css_default.switch + " " + SkillCenterPage_module_css_default.switchOn : SkillCenterPage_module_css_default.switch,
|
|
210
210
|
"aria-label": skill.modelInvocable ? t("skill.disabled") : t("skill.enabled"),
|
|
@@ -212,7 +212,7 @@ window.__ModuleLoader__.load({
|
|
|
212
212
|
onClick: () => {
|
|
213
213
|
onToggle(skill, !skill.modelInvocable);
|
|
214
214
|
}
|
|
215
|
-
}), skill.path === void 0 || skill.linked === true ? null :
|
|
215
|
+
}), skill.path === void 0 || skill.linked === true ? null : (0, react_jsx_runtime.jsx)("button", {
|
|
216
216
|
type: "button",
|
|
217
217
|
className: SkillCenterPage_module_css_default.button,
|
|
218
218
|
onClick: () => {
|
|
@@ -334,20 +334,20 @@ window.__ModuleLoader__.load({
|
|
|
334
334
|
load
|
|
335
335
|
]);
|
|
336
336
|
const total = state.kind === "ready" ? state.payload.groups.reduce((n, g) => n + g.skills.length, 0) : 0;
|
|
337
|
-
return
|
|
337
|
+
return (0, react_jsx_runtime.jsxs)("div", {
|
|
338
338
|
className: SkillCenterPage_module_css_default.page,
|
|
339
339
|
children: [
|
|
340
|
-
|
|
340
|
+
(0, react_jsx_runtime.jsxs)("header", {
|
|
341
341
|
className: SkillCenterPage_module_css_default.pageHead,
|
|
342
|
-
children: [
|
|
342
|
+
children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("h1", {
|
|
343
343
|
className: SkillCenterPage_module_css_default.pageTitle,
|
|
344
344
|
children: t("panel")
|
|
345
|
-
}),
|
|
345
|
+
}), (0, react_jsx_runtime.jsx)("p", {
|
|
346
346
|
className: SkillCenterPage_module_css_default.pageIntro,
|
|
347
347
|
children: t("panel.intro")
|
|
348
|
-
})] }),
|
|
348
|
+
})] }), (0, react_jsx_runtime.jsxs)("div", {
|
|
349
349
|
className: SkillCenterPage_module_css_default.toolbar,
|
|
350
|
-
children: [
|
|
350
|
+
children: [(0, react_jsx_runtime.jsx)("button", {
|
|
351
351
|
type: "button",
|
|
352
352
|
className: SkillCenterPage_module_css_default.iconButton,
|
|
353
353
|
"aria-label": t("action.refresh"),
|
|
@@ -355,15 +355,15 @@ window.__ModuleLoader__.load({
|
|
|
355
355
|
onClick: () => {
|
|
356
356
|
load();
|
|
357
357
|
},
|
|
358
|
-
children:
|
|
358
|
+
children: (0, react_jsx_runtime.jsx)("span", {
|
|
359
359
|
className: SkillCenterPage_module_css_default.iconWrap,
|
|
360
360
|
"aria-hidden": "true",
|
|
361
|
-
children:
|
|
361
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutline16, {})
|
|
362
362
|
})
|
|
363
|
-
}),
|
|
363
|
+
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
364
364
|
variant: "primary",
|
|
365
365
|
size: "sm",
|
|
366
|
-
icon:
|
|
366
|
+
icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 13 }),
|
|
367
367
|
onClick: () => {
|
|
368
368
|
setCreating((v) => !v);
|
|
369
369
|
},
|
|
@@ -371,7 +371,7 @@ window.__ModuleLoader__.load({
|
|
|
371
371
|
})]
|
|
372
372
|
})]
|
|
373
373
|
}),
|
|
374
|
-
|
|
374
|
+
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
|
|
375
375
|
open: creating,
|
|
376
376
|
onClose: () => {
|
|
377
377
|
setCreating(false);
|
|
@@ -379,58 +379,58 @@ window.__ModuleLoader__.load({
|
|
|
379
379
|
title: t("create.title"),
|
|
380
380
|
closeLabel: t("action.cancel"),
|
|
381
381
|
className: SkillCenterPage_module_css_default.dialog,
|
|
382
|
-
footer:
|
|
382
|
+
footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
383
383
|
variant: "outline",
|
|
384
384
|
autoFocus: true,
|
|
385
385
|
onClick: () => {
|
|
386
386
|
setCreating(false);
|
|
387
387
|
},
|
|
388
388
|
children: t("action.cancel")
|
|
389
|
-
}),
|
|
389
|
+
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
390
390
|
variant: "primary",
|
|
391
391
|
onClick: () => {
|
|
392
392
|
submit();
|
|
393
393
|
},
|
|
394
394
|
children: t("action.confirm")
|
|
395
395
|
})] }),
|
|
396
|
-
children:
|
|
396
|
+
children: (0, react_jsx_runtime.jsxs)("div", {
|
|
397
397
|
className: SkillCenterPage_module_css_default.form,
|
|
398
398
|
children: [
|
|
399
|
-
|
|
399
|
+
(0, react_jsx_runtime.jsx)(DraftField, {
|
|
400
400
|
label: t("create.name"),
|
|
401
|
-
children:
|
|
401
|
+
children: (0, react_jsx_runtime.jsx)("input", {
|
|
402
402
|
className: SkillCenterPage_module_css_default.input,
|
|
403
403
|
value: draft.name,
|
|
404
404
|
onChange: set("name")
|
|
405
405
|
})
|
|
406
406
|
}),
|
|
407
|
-
|
|
407
|
+
(0, react_jsx_runtime.jsx)(DraftField, {
|
|
408
408
|
label: t("create.description"),
|
|
409
|
-
children:
|
|
409
|
+
children: (0, react_jsx_runtime.jsx)("input", {
|
|
410
410
|
className: SkillCenterPage_module_css_default.input,
|
|
411
411
|
value: draft.description,
|
|
412
412
|
onChange: set("description")
|
|
413
413
|
})
|
|
414
414
|
}),
|
|
415
|
-
|
|
415
|
+
(0, react_jsx_runtime.jsx)(DraftField, {
|
|
416
416
|
label: t("create.whenToUse"),
|
|
417
|
-
children:
|
|
417
|
+
children: (0, react_jsx_runtime.jsx)("input", {
|
|
418
418
|
className: SkillCenterPage_module_css_default.input,
|
|
419
419
|
value: draft.whenToUse,
|
|
420
420
|
onChange: set("whenToUse")
|
|
421
421
|
})
|
|
422
422
|
}),
|
|
423
|
-
|
|
423
|
+
(0, react_jsx_runtime.jsx)(DraftField, {
|
|
424
424
|
label: t("create.content"),
|
|
425
|
-
children:
|
|
425
|
+
children: (0, react_jsx_runtime.jsx)("textarea", {
|
|
426
426
|
className: SkillCenterPage_module_css_default.textarea,
|
|
427
427
|
value: draft.content,
|
|
428
428
|
onChange: set("content")
|
|
429
429
|
})
|
|
430
430
|
}),
|
|
431
|
-
|
|
431
|
+
(0, react_jsx_runtime.jsx)(DraftField, {
|
|
432
432
|
label: t("create.root"),
|
|
433
|
-
children:
|
|
433
|
+
children: (0, react_jsx_runtime.jsxs)("select", {
|
|
434
434
|
className: SkillCenterPage_module_css_default.input,
|
|
435
435
|
value: draft.root,
|
|
436
436
|
onChange: (e) => {
|
|
@@ -439,10 +439,10 @@ window.__ModuleLoader__.load({
|
|
|
439
439
|
root: e.target.value === "project" ? "project" : "user"
|
|
440
440
|
}));
|
|
441
441
|
},
|
|
442
|
-
children: [
|
|
442
|
+
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
443
443
|
value: "user",
|
|
444
444
|
children: t("create.rootUser")
|
|
445
|
-
}),
|
|
445
|
+
}), (0, react_jsx_runtime.jsx)("option", {
|
|
446
446
|
value: "project",
|
|
447
447
|
children: t("create.rootProject")
|
|
448
448
|
})]
|
|
@@ -451,7 +451,7 @@ window.__ModuleLoader__.load({
|
|
|
451
451
|
]
|
|
452
452
|
})
|
|
453
453
|
}),
|
|
454
|
-
|
|
454
|
+
(0, react_jsx_runtime.jsx)("input", {
|
|
455
455
|
className: SkillCenterPage_module_css_default.search,
|
|
456
456
|
placeholder: t("search.placeholder"),
|
|
457
457
|
value: query,
|
|
@@ -459,11 +459,11 @@ window.__ModuleLoader__.load({
|
|
|
459
459
|
setQuery(e.target.value);
|
|
460
460
|
}
|
|
461
461
|
}),
|
|
462
|
-
state.kind === "loading" ?
|
|
462
|
+
state.kind === "loading" ? (0, react_jsx_runtime.jsx)("div", {
|
|
463
463
|
className: SkillCenterPage_module_css_default.status,
|
|
464
464
|
children: t("state.loading")
|
|
465
465
|
}) : null,
|
|
466
|
-
state.kind === "failed" ?
|
|
466
|
+
state.kind === "failed" ? (0, react_jsx_runtime.jsxs)("div", {
|
|
467
467
|
className: SkillCenterPage_module_css_default.status + " " + SkillCenterPage_module_css_default.statusError,
|
|
468
468
|
children: [
|
|
469
469
|
t("state.failed"),
|
|
@@ -471,32 +471,32 @@ window.__ModuleLoader__.load({
|
|
|
471
471
|
state.message
|
|
472
472
|
]
|
|
473
473
|
}) : null,
|
|
474
|
-
state.kind === "ready" && groups.length === 0 ?
|
|
474
|
+
state.kind === "ready" && groups.length === 0 ? (0, react_jsx_runtime.jsx)("div", {
|
|
475
475
|
className: SkillCenterPage_module_css_default.status,
|
|
476
476
|
children: query.trim() === "" ? t("state.empty") : t("search.noMatches")
|
|
477
477
|
}) : null,
|
|
478
|
-
state.kind === "ready" && groups.length > 0 && total === 0 ?
|
|
478
|
+
state.kind === "ready" && groups.length > 0 && total === 0 ? (0, react_jsx_runtime.jsx)("div", {
|
|
479
479
|
className: SkillCenterPage_module_css_default.status,
|
|
480
480
|
children: t("state.empty")
|
|
481
481
|
}) : null,
|
|
482
|
-
groups.map((group) =>
|
|
482
|
+
groups.map((group) => (0, react_jsx_runtime.jsxs)("div", {
|
|
483
483
|
className: SkillCenterPage_module_css_default.group,
|
|
484
|
-
children: [
|
|
484
|
+
children: [(0, react_jsx_runtime.jsxs)("h2", {
|
|
485
485
|
className: SkillCenterPage_module_css_default.groupTitle,
|
|
486
486
|
children: [
|
|
487
487
|
group.title,
|
|
488
|
-
|
|
488
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
489
489
|
className: SkillCenterPage_module_css_default.groupCount,
|
|
490
490
|
children: group.skills.length
|
|
491
491
|
}),
|
|
492
|
-
|
|
492
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
493
493
|
className: SkillCenterPage_module_css_default.groupHint,
|
|
494
494
|
children: group.hint
|
|
495
495
|
})
|
|
496
496
|
]
|
|
497
|
-
}),
|
|
497
|
+
}), (0, react_jsx_runtime.jsx)("ul", {
|
|
498
498
|
className: SkillCenterPage_module_css_default.cards,
|
|
499
|
-
children: group.skills.map((skill) =>
|
|
499
|
+
children: group.skills.map((skill) => (0, react_jsx_runtime.jsx)(SkillCard, {
|
|
500
500
|
skill,
|
|
501
501
|
t,
|
|
502
502
|
onToggle: (s, enabled) => {
|
|
@@ -512,17 +512,23 @@ window.__ModuleLoader__.load({
|
|
|
512
512
|
});
|
|
513
513
|
}
|
|
514
514
|
//#endregion
|
|
515
|
-
//#region
|
|
515
|
+
//#region lib/types/client/SkillCenterPanelIcon.js
|
|
516
516
|
/**
|
|
517
517
|
* Render the glyph at the size the sidebar asks for.
|
|
518
518
|
* @param props - the sidebar's icon share: requested edge and selected state.
|
|
519
519
|
* @returns the icon element.
|
|
520
520
|
*/
|
|
521
521
|
function SkillCenterPanelIcon({ size }) {
|
|
522
|
-
return
|
|
522
|
+
return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSkillOutline16, { size });
|
|
523
523
|
}
|
|
524
524
|
//#endregion
|
|
525
|
-
//#region
|
|
525
|
+
//#region lib/types/client/locales.js
|
|
526
|
+
/**
|
|
527
|
+
* Skill center dictionaries. Keys are typed so the panel and the sidebar entry
|
|
528
|
+
* cannot reference a string that does not exist in both languages.
|
|
529
|
+
*
|
|
530
|
+
* @module @sparkelf/dsh-client-ui-skill-center/client/locales
|
|
531
|
+
*/
|
|
526
532
|
/** Simplified Chinese dictionary. */
|
|
527
533
|
const zh = {
|
|
528
534
|
"panel": "技能中心",
|
|
@@ -584,7 +590,7 @@ window.__ModuleLoader__.load({
|
|
|
584
590
|
"delete.confirm": "Deleting moves it into .trash, where it can be restored. Delete?"
|
|
585
591
|
};
|
|
586
592
|
//#endregion
|
|
587
|
-
//#region
|
|
593
|
+
//#region lib/types/client/index.js
|
|
588
594
|
/** Dictionary namespace owned by this plugin. */
|
|
589
595
|
const NS = "skillCenter";
|
|
590
596
|
/** The id shared by the sidebar entry and the main panel it opens. */
|
package/package.json
CHANGED