@dawn0608/dsh-skill-manager 0.0.0-stage → 0.1.1
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/LICENSE +21 -0
- package/README.md +35 -2
- package/README.zh.md +36 -0
- package/cordis.patch.yml +3 -0
- package/icon.svg +5 -0
- package/lib/client.js +667 -0
- package/lib/client.js.map +7 -0
- package/lib/index.js +8344 -0
- package/lib/index.js.map +7 -0
- package/locale/en.json +7 -0
- package/locale/zh.json +7 -0
- package/package.json +72 -4
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/client/index.js", "../src/client/i18n.js", "../src/client/page.js", "../src/client/api.js", "../src/client/catalog.js", "../src/client/dialog.js", "../src/client/style.css"],
|
|
4
|
+
"sourcesContent": ["import { createElement as h } from 'react';\nimport {\n Button, DetailDocument, IconChevronDownOutlineRegular, IconSearchOutlineRegular, IconTrashOutlineRegular,\n Input, StateDot, Switch, Tag, detailDocumentState, useDetailDocumentLabels,\n} from '@deepseek-ai/dsh-client-ui-primitives';\nimport skillEmblem from '../../icon.svg';\nimport { createTranslator, DICTS, NS } from './i18n.js';\nimport { createPage } from './page.js';\nimport css from './style.css';\n\nexport const inject = ['slots', 'locale'];\n\nfunction SkillEmblem({ size = 16, branded = false } = {}) {\n if (branded) return h('img', { src: skillEmblem, width: size, height: size, alt: '' });\n return h('span', {\n className: 'dshskill_emblem',\n 'aria-hidden': true,\n style: { width: size, height: size, maskImage: `url(${JSON.stringify(skillEmblem)})` },\n });\n}\n\n// Skill previews receive Markdown only, without an authorized image resolver.\nconst skillDocumentImages = { resolve: () => undefined };\n\nfunction SkillDocument({ preview, translate: t, onRetry }) {\n const labels = useDetailDocumentLabels({\n title: t('preview'), loading: t('loadingPreview'), retry: t('retry'),\n copy: t('copy'), copied: t('copied'), codeBlock: t('codeBlock'),\n wrap: t('wrap'), unwrap: t('unwrap'), footnotes: t('footnotes'),\n });\n const state = preview === null ? undefined : preview.error\n ? { status: 'error', message: t(preview.error) }\n : { status: 'ready', markdown: preview.body };\n return h(DetailDocument, { state: detailDocumentState(state), labels, images: skillDocumentImages, onRetry });\n}\n\nexport function apply(ctx) {\n ctx.effect(() => ctx.locale.register(NS, DICTS), 'skill-manager: dictionaries');\n ctx.effect(() => {\n const style = document.createElement('style');\n style.dataset.plugin = '@dawn0608/dsh-skill-manager';\n style.textContent = css;\n document.head.appendChild(style);\n return () => style.remove();\n }, 'skill-manager: styles');\n\n const translate = createTranslator(ctx.locale);\n ctx.slots.inject('sidebar.panellist', () => ctx.slots.register({\n name: 'sidebar.panellist', id: 'skill-manager', order: 5, label: () => translate('title'), locale: NS,\n }, SkillEmblem));\n ctx.slots.inject('main', () => ctx.slots.register({\n name: 'main', key: 'skill-manager', locale: NS,\n }, createPage(ctx.locale, {\n BackIcon: IconChevronDownOutlineRegular, Button, Input, SearchIcon: IconSearchOutlineRegular,\n SkillDocument, SkillEmblem, StateDot, Switch, Tag, TrashIcon: IconTrashOutlineRegular,\n })));\n}\n", "export const NS = 'skillManager';\n\nexport const DICTS = {\n en: {\n title: 'Skills',\n search: 'Search skills',\n imported: 'Imported',\n builtin: 'Built-in skills',\n self: 'Self-authored skills',\n 'third-party': 'Third-party skills',\n loading: 'Loading skills\u2026',\n empty: 'No skills to display.',\n noMatch: 'No skills match your search.',\n shadowed: 'Shadowed',\n openDetail: 'View {name}',\n switchLabel: 'Enable {name}',\n back: 'Back to Skills',\n 'origin-builtin': 'Built-in',\n 'origin-self': 'Self-authored',\n 'origin-third-party': 'Third-party',\n unknownOrigin: 'Origin unconfirmed',\n openRepository: 'Open original repository {repository}',\n preview: 'SKILL.md preview',\n loadingPreview: 'Loading SKILL.md\u2026',\n retry: 'Retry',\n copy: 'Copy',\n copied: 'Copied',\n codeBlock: 'Code block',\n wrap: 'Wrap lines',\n unwrap: 'Stop wrapping lines',\n footnotes: 'Footnotes',\n uninstall: 'Uninstall',\n uninstallLabel: 'Uninstall {name}',\n uninstallTitle: 'Uninstall skill?',\n uninstallHint: 'Remove the imported copy of \u201C{name}\u201D from Harness?',\n cancel: 'Cancel',\n saving: 'Saving\u2026',\n invalid: 'The request is invalid.',\n conflict: 'The skill catalog changed. Wait for the list to refresh and try again.',\n sharedConflict: 'A shared skill has conflicting settings or a matching name in another location.',\n sharedUnavailable: 'Could not sync a shared skill. The background service will retry.',\n 'not-found': 'This skill could not be found.',\n unavailable: 'Could not read from or connect to Harness.',\n forbidden: 'This page does not have permission to perform the action.',\n internal: 'The operation failed. Check the Harness logs.',\n incomplete: 'The skill catalog is incomplete. This page will retry automatically.',\n },\n zh: {\n title: '\u6280\u80FD',\n search: '\u641C\u7D22\u6280\u80FD',\n imported: '\u5DF2\u5BFC\u5165',\n builtin: '\u5185\u7F6E\u6280\u80FD',\n self: '\u81EA\u5EFA\u6280\u80FD',\n 'third-party': '\u7B2C\u4E09\u65B9\u6280\u80FD',\n loading: '\u6B63\u5728\u52A0\u8F7D\u6280\u80FD\u2026',\n empty: '\u6682\u65E0\u53EF\u663E\u793A\u7684\u6280\u80FD\u3002',\n noMatch: '\u6CA1\u6709\u7B26\u5408\u641C\u7D22\u6761\u4EF6\u7684\u6280\u80FD\u3002',\n shadowed: '\u5DF2\u88AB\u8986\u76D6',\n openDetail: '\u67E5\u770B {name}',\n switchLabel: '\u542F\u7528 {name}',\n back: '\u8FD4\u56DE\u6280\u80FD\u5217\u8868',\n 'origin-builtin': '\u5185\u7F6E',\n 'origin-self': '\u81EA\u5EFA',\n 'origin-third-party': '\u7B2C\u4E09\u65B9',\n unknownOrigin: '\u5F52\u5C5E\u5F85\u786E\u8BA4',\n openRepository: '\u67E5\u770B\u539F\u4ED3\u5E93 {repository}',\n preview: 'SKILL.md \u9884\u89C8',\n loadingPreview: '\u6B63\u5728\u52A0\u8F7D SKILL.md\u2026',\n retry: '\u91CD\u8BD5',\n copy: '\u590D\u5236',\n copied: '\u5DF2\u590D\u5236',\n codeBlock: '\u4EE3\u7801\u5757',\n wrap: '\u81EA\u52A8\u6362\u884C',\n unwrap: '\u53D6\u6D88\u81EA\u52A8\u6362\u884C',\n footnotes: '\u811A\u6CE8',\n uninstall: '\u5378\u8F7D',\n uninstallLabel: '\u5378\u8F7D {name}',\n uninstallTitle: '\u5378\u8F7D\u6280\u80FD\uFF1F',\n uninstallHint: '\u4ECE Harness \u4E2D\u79FB\u9664\u6280\u80FD\u300C{name}\u300D\u7684\u5BFC\u5165\u526F\u672C\uFF1F',\n cancel: '\u53D6\u6D88',\n saving: '\u6B63\u5728\u4FDD\u5B58\u2026',\n invalid: '\u8BF7\u6C42\u65E0\u6548\u3002',\n conflict: '\u6280\u80FD\u5217\u8868\u5DF2\u53D8\u5316\u3002\u8BF7\u7B49\u5F85\u5217\u8868\u5237\u65B0\u540E\u91CD\u8BD5\u3002',\n sharedConflict: '\u5171\u4EAB\u6280\u80FD\u5B58\u5728\u8BBE\u7F6E\u51B2\u7A81\u6216\u540C\u540D\u6761\u76EE\u3002',\n sharedUnavailable: '\u5171\u4EAB\u6280\u80FD\u540C\u6B65\u5931\u8D25\u3002\u540E\u53F0\u4F1A\u81EA\u52A8\u91CD\u8BD5\u3002',\n 'not-found': '\u627E\u4E0D\u5230\u6B64\u6280\u80FD\u3002',\n unavailable: '\u65E0\u6CD5\u8FDE\u63A5 Harness \u6216\u8BFB\u53D6\u6570\u636E\u3002',\n forbidden: '\u5F53\u524D\u9875\u9762\u6CA1\u6709\u6267\u884C\u6B64\u64CD\u4F5C\u7684\u6743\u9650\u3002',\n internal: '\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u67E5\u770B Harness \u65E5\u5FD7\u3002',\n incomplete: '\u6280\u80FD\u5217\u8868\u4E0D\u5B8C\u6574\u3002\u9875\u9762\u4F1A\u81EA\u52A8\u91CD\u8BD5\u3002',\n },\n};\n\nexport function translateFrom(dict, key, params) {\n const template = Object.hasOwn(dict, key) ? dict[key] : DICTS.en.internal;\n return template.replace(/\\{(\\w+)\\}/g, (match, name) => params?.[name] ?? match);\n}\n\nexport function createTranslator(locale) {\n const translate = locale.bind(NS);\n return (key, params) => {\n const value = translate(key, params);\n if (typeof value === 'string' && value !== key && value !== NS + '.' + key) return value;\n const language = locale.getSnapshot().active?.toLowerCase().startsWith('zh') ? 'zh' : 'en';\n return translateFrom(DICTS[language], key, params);\n };\n}\n", "import { createElement as h, useEffect, useId, useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\nimport { request } from './api.js';\nimport { createCatalog } from './catalog.js';\nimport { RemoveDialog } from './dialog.js';\nimport { createTranslator } from './i18n.js';\n\nconst GROUPS = ['builtin', 'self', 'third-party'];\n\nfunction SkillToggle({ skill, busy, saving, store, translate: t, controls }) {\n const { StateDot, Switch } = controls;\n return h('span', { className: 'dshskill_toggle' },\n h('span', { className: 'dshskill_toggleProgress', role: 'status' },\n h('span', { className: 'dshskill_progressAnnouncement' }, saving ? t('saving') : ''),\n saving && h(StateDot, { state: 'ongoing' })),\n h(Switch, {\n checked: skill.enabled, label: t('switchLabel', { name: skill.name }), disabled: busy,\n onChange: enabled => { void store.mutate({ action: 'setEnabled', id: skill.id, enabled }); },\n }));\n}\n\nfunction CatalogRows({ skills, query, translate: t, busy, savingId, store, openDetail, controls }) {\n const { SkillEmblem, Tag } = controls;\n const headingId = useId();\n const term = query.trim().toLocaleLowerCase();\n const visible = skills.filter(skill => !term || [skill.name, skill.description]\n .some(text => text?.toLocaleLowerCase().includes(term)));\n if (!visible.length) return h('p', { className: 'dshskill_muted', role: 'status' }, t(term ? 'noMatch' : 'empty'));\n\n return h('div', { className: 'dshskill_groups' }, GROUPS.map(group => {\n const entries = visible.filter(skill => (skill.origin ?? 'third-party') === group);\n if (!entries.length) return null;\n const id = headingId + group;\n return h('section', { key: group, className: 'dshskill_group', 'aria-labelledby': id },\n h('h2', { id }, t(group)),\n h('ul', { className: 'dshskill_rows' }, entries.map(skill => {\n const descriptionId = skill.description ? headingId + '-' + skill.id : undefined;\n const saving = savingId === skill.id;\n return h('li', { key: skill.id, className: 'dshskill_row' },\n h('span', { className: 'dshskill_icon' }, h(SkillEmblem, { size: 24 })),\n h('div', { className: 'dshskill_rowText' },\n h('div', { className: 'dshskill_titleRow' },\n h('button', {\n type: 'button', className: 'dshskill_rowButton', 'data-skill-id': skill.id,\n 'aria-label': t('openDetail', { name: skill.name }), 'aria-describedby': descriptionId,\n onClick: () => openDetail(skill),\n }, skill.name),\n skill.shadowed && h(Tag, { className: 'dshskill_badge' }, t('shadowed'))),\n descriptionId && h('span', { className: 'dshskill_description', id: descriptionId }, skill.description)),\n typeof skill.enabled === 'boolean' && h(SkillToggle, { skill, busy, saving, store, translate: t, controls }));\n })));\n }));\n}\n\nfunction SkillDetail({ skill, titleRef, translate: t, busy, saving, back, openRemove, controls, store }) {\n const { BackIcon, Button, SkillDocument, SkillEmblem, Tag, TrashIcon } = controls;\n const [preview, setPreview] = useState(null);\n const [attempt, setAttempt] = useState(0);\n useEffect(() => {\n const pending = new AbortController();\n request({ action: 'detail', workspaceId: null, id: skill.id },\n AbortSignal.any([pending.signal, AbortSignal.timeout(8000)]))\n .then(result => { if (!pending.signal.aborted) setPreview(result); })\n .catch(error => { if (!pending.signal.aborted) setPreview({ error: error.code ?? 'unavailable' }); });\n return () => pending.abort();\n }, [skill.id, attempt]);\n\n const imported = skill.group === 'imported';\n const canToggle = typeof skill.enabled === 'boolean';\n const origin = preview?.origin ?? skill.origin;\n const repository = origin === 'third-party' ? preview?.repository : undefined;\n const repositoryLabel = repository?.replace(/^https:\\/\\/(?:github\\.com\\/)?/, '').replace(/\\/$/, '');\n const originLabel = t(origin ? 'origin-' + origin : imported ? 'imported' : 'unknownOrigin');\n return h('div', { className: 'dshskill_detail' },\n h('header', { className: 'dshskill_detailTop' },\n h('button', { type: 'button', className: 'dshskill_back', 'aria-label': t('back'), onClick: back },\n h(BackIcon, { className: 'dshskill_backIcon', 'aria-hidden': true }), h('span', null, t('title'))),\n h('div', { className: 'dshskill_detailHead' },\n h('span', { className: 'dshskill_icon', 'aria-hidden': true }, h(SkillEmblem, { branded: true, size: 36 })),\n (imported || canToggle) && h('div', { className: 'dshskill_detailActions' },\n imported && h(Button, {\n type: 'button', variant: 'outline', size: 'sm', className: 'dshskill_detailUninstall',\n icon: h(TrashIcon, { size: 13 }), disabled: busy,\n 'aria-label': t('uninstallLabel', { name: skill.name }), onClick: openRemove,\n }, t('uninstall')),\n canToggle && h(SkillToggle, { skill, busy, saving, store, translate: t, controls })))),\n h('div', { className: 'dshskill_detailMain' },\n h('div', { className: 'dshskill_detailTitleRow' },\n h('h1', { ref: titleRef, tabIndex: -1, title: skill.name }, skill.name),\n repository ? h('a', {\n className: 'dshskill_detailAttribution dshskill_repository', href: repository, target: '_blank', rel: 'noopener noreferrer',\n title: repositoryLabel, 'aria-label': t('openRepository', { repository: repositoryLabel }),\n }, h('span', { className: 'dshskill_attributionText' }, repositoryLabel),\n h('span', { 'aria-hidden': true }, '\u2197')) : h(Tag, { className: 'dshskill_detailAttribution', tone: 'neutral' },\n h('span', { className: 'dshskill_attributionText', title: originLabel }, originLabel))),\n skill.description && h('p', { className: 'dshskill_detailDescription' }, skill.description)),\n h('div', { className: 'dshskill_detailSections' },\n h(SkillDocument, { preview, translate: t, onRetry: () => { setPreview(null); setAttempt(value => value + 1); } })));\n}\n\nexport function createPage(locale, controls, createStore = createCatalog) {\n const t = createTranslator(locale);\n const subscribeLocale = listener => locale.subscribe(listener);\n const localeVersion = () => locale.getSnapshot().revision;\n\n return function SkillsPage() {\n useSyncExternalStore(subscribeLocale, localeVersion, localeVersion);\n const [store] = useState(createStore);\n const state = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n const [query, setQuery] = useState('');\n const [detail, setDetail] = useState(null);\n const [confirmRemoval, setConfirmRemoval] = useState(false);\n const pageRef = useRef(null);\n const titleRef = useRef(null);\n const returnTo = useRef(null);\n\n useEffect(() => {\n store.start();\n return () => store.stop();\n }, [store]);\n\n useLayoutEffect(() => {\n if (detail) {\n pageRef.current.scrollTop = 0;\n titleRef.current.focus({ preventScroll: true });\n } else if (returnTo.current !== null) {\n const { id, scrollTop } = returnTo.current;\n const row = Array.from(pageRef.current.querySelectorAll('[data-skill-id]'))\n .find(button => button.dataset.skillId === id);\n if (row) {\n pageRef.current.scrollTop = scrollTop;\n row.focus({ preventScroll: true });\n } else {\n titleRef.current.focus();\n }\n returnTo.current = null;\n }\n }, [detail]);\n\n function openDetail(skill) {\n returnTo.current = { id: skill.id, scrollTop: pageRef.current.scrollTop };\n setDetail(skill);\n store.clearMutationError();\n }\n\n function closeDialog() {\n setConfirmRemoval(false);\n store.clearMutationError();\n }\n\n function removed() {\n closeDialog();\n setDetail(null);\n }\n\n const { skills, busy, savingId, listError, mutationError } = state;\n const currentSkill = detail && (skills?.find(skill => skill.id === detail.id) ?? detail);\n return h('div', { className: 'dshskill_page', 'data-detail': currentSkill ? '' : undefined, ref: pageRef },\n h('div', { className: 'dshskill_content' },\n currentSkill\n ? h(SkillDetail, {\n skill: currentSkill, titleRef, translate: t, busy, saving: savingId === currentSkill.id, controls, store,\n back: () => setDetail(null), openRemove: () => { store.clearMutationError(); setConfirmRemoval(true); },\n })\n : h('div', { className: 'dshskill_catalog' },\n h('header', { className: 'dshskill_header' },\n h('h1', { ref: titleRef, tabIndex: -1 }, t('title')),\n h(controls.Input, {\n className: 'dshskill_search', type: 'search', icon: h(controls.SearchIcon, { size: 14 }),\n 'aria-label': t('search'), placeholder: t('search'), value: query,\n onChange: event => setQuery(event.currentTarget.value),\n })),\n listError && h('p', { role: 'alert', className: 'dshskill_error' }, t(listError)),\n skills === null\n ? !listError && h('p', { role: 'status', className: 'dshskill_muted' }, t('loading'))\n : h(CatalogRows, { skills, query, translate: t, busy, savingId, store, openDetail, controls })),\n !confirmRemoval && busy && !savingId && h('p', { role: 'status', className: 'dshskill_muted' }, t('saving')),\n !confirmRemoval && mutationError && h('p', { role: 'alert', className: 'dshskill_error' }, t(mutationError)),\n confirmRemoval && h(RemoveDialog, { skill: currentSkill, translate: t, store, busy, error: mutationError, close: closeDialog, removed })));\n };\n}\n", "export class SkillError extends Error {\n constructor(code) {\n super(code);\n this.code = code;\n }\n}\n\nconst HOST_ERRORS = new Set([\n 'invalid', 'conflict', 'not-found',\n 'unavailable', 'forbidden', 'internal', 'incomplete',\n]);\n\nexport async function request(body, signal, fetchImpl = globalThis.fetch) {\n let response;\n try {\n response = await fetchImpl('api/skill-manager', {\n method: 'POST',\n headers: {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'x-dsh-skill-manager': '1',\n },\n cache: 'no-store',\n credentials: 'same-origin',\n body: JSON.stringify(body),\n signal,\n });\n } catch {\n throw new SkillError('unavailable');\n }\n const result = await response.json().catch(() => null);\n if (result?.ok === false && HOST_ERRORS.has(result.code)) throw new SkillError(result.code);\n if (response.ok && result?.ok === true) return result.value;\n throw new SkillError([401, 403].includes(response.status) ? 'forbidden' : 'unavailable');\n}\n", "import { request, SkillError } from './api.js';\n\nexport function createCatalog(send = request) {\n const listeners = new Set();\n let snapshot = {\n skills: null, listError: null, mutationError: null, busy: false, savingId: null,\n };\n let reading;\n let timer;\n let stopped = false;\n let hasCompleteCatalog = false;\n\n function publish(patch) {\n snapshot = { ...snapshot, ...patch };\n for (const listener of listeners) listener();\n }\n\n function cancelRefresh() {\n reading?.abort();\n reading = undefined;\n }\n\n async function refresh() {\n if (snapshot.busy || stopped) return;\n cancelRefresh();\n const pending = new AbortController();\n reading = pending;\n try {\n const result = await send({ action: 'list', workspaceId: null },\n AbortSignal.any([pending.signal, AbortSignal.timeout(8000)]));\n if (reading !== pending) return;\n if (!Array.isArray(result?.skills) || typeof result.complete !== 'boolean') {\n throw new SkillError('unavailable');\n }\n if (result.complete) {\n hasCompleteCatalog = true;\n publish({ skills: result.skills, listError: result.syncError ?? null });\n } else if (!hasCompleteCatalog) {\n publish({ skills: result.skills, listError: 'incomplete' });\n } else {\n publish({ listError: 'incomplete' });\n }\n } catch (error) {\n if (reading === pending) publish({ listError: error.code ?? 'unavailable' });\n } finally {\n if (reading === pending) reading = undefined;\n }\n }\n\n async function mutate(action) {\n if (snapshot.busy || stopped) return false;\n cancelRefresh();\n publish({ busy: true, savingId: action.action === 'setEnabled' ? action.id : null, mutationError: null });\n try {\n await send({ ...action, workspaceId: null }, AbortSignal.timeout(30000));\n let { skills } = snapshot;\n if (skills && action.action === 'setEnabled') {\n skills = skills.map(skill => skill.id === action.id ? { ...skill, enabled: action.enabled } : skill);\n } else if (skills && action.action === 'remove') {\n skills = skills.filter(skill => skill.id !== action.id);\n }\n publish({ skills, busy: false, savingId: null });\n void refresh();\n return true;\n } catch (error) {\n publish({ mutationError: error.code ?? 'unavailable', busy: false, savingId: null });\n if (error.code === 'conflict' || error.code === 'not-found') void refresh();\n return false;\n }\n }\n\n return {\n getSnapshot: () => snapshot,\n subscribe(listener) {\n listeners.add(listener);\n return () => { listeners.delete(listener); };\n },\n refresh,\n mutate,\n clearMutationError() {\n if (snapshot.mutationError) publish({ mutationError: null });\n },\n start() {\n if (timer !== undefined) return;\n stopped = false;\n void refresh();\n timer = setInterval(() => {\n if (!reading) void refresh();\n }, 4000);\n },\n stop() {\n stopped = true;\n clearInterval(timer);\n timer = undefined;\n cancelRefresh();\n },\n };\n}\n", "import { createElement as h, useId, useLayoutEffect, useRef } from 'react';\n\nfunction Modal({ title, busy, close, children }) {\n const ref = useRef(null);\n const titleId = useId();\n useLayoutEffect(() => {\n const dialog = ref.current;\n dialog.showModal();\n dialog.querySelector('[data-initial-focus]')?.focus();\n return () => dialog.close();\n }, []);\n return h('dialog', {\n className: 'dshskill_dialog', ref, 'aria-labelledby': titleId,\n onCancel(event) {\n event.preventDefault();\n if (!busy) close();\n },\n }, h('h2', { id: titleId }, title), children);\n}\n\nfunction Feedback({ error, busy, translate }) {\n return h('div', { className: 'dshskill_feedback' },\n busy && h('p', { role: 'status' }, translate('saving')),\n error && h('p', { className: 'dshskill_error', role: 'alert' }, translate(error)));\n}\n\nexport function RemoveDialog({ skill, translate: t, store, busy, error, close, removed }) {\n async function remove() {\n if (busy) return;\n const ok = await store.mutate({ action: 'remove', id: skill.id });\n if (ok) removed();\n }\n return h(Modal, { title: t('uninstallTitle'), busy, close },\n h('p', { className: 'dshskill_muted' }, t('uninstallHint', { name: skill.name })),\n h(Feedback, { error, busy, translate: t }),\n h('div', { className: 'dshskill_dialogActions' },\n h('button', {\n type: 'button', className: 'dshskill_control', 'data-initial-focus': '',\n 'aria-disabled': busy || undefined, onClick: () => { if (!busy) close(); },\n }, t('cancel')),\n h('button', { type: 'button', className: 'dshskill_control dshskill_danger', 'aria-disabled': busy || undefined, onClick: remove }, t('uninstall'))));\n}\n", ".dshskill_emblem {\n display: inline-block;\n flex-shrink: 0;\n background-color: currentColor;\n mask-position: center;\n mask-repeat: no-repeat;\n mask-size: 150%;\n}\n\n.dshskill_page {\n --skill-hover: var(--dsw-alias-interactive-bg-hover);\n height: 100%;\n min-width: 0;\n min-height: 0;\n overflow: auto;\n padding: 28px clamp(24px, 4vw, 48px) 48px;\n box-sizing: border-box;\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n font-size: 13px;\n line-height: 20px;\n}\n\nhtml[data-platform='darwin'] .dshskill_page {\n padding-top: calc(28px + var(--dsh-frame-top-clearance, 0px));\n}\n\n.dshskill_page[data-detail] {\n scrollbar-gutter: stable;\n}\n\n.dshskill_content {\n max-width: 960px;\n margin-inline: auto;\n}\n\n.dshskill_page :where(h1, h2, p, ul):not(:where(.dshskill_detailSections *)) {\n margin: 0;\n}\n\n.dshskill_header h1,\n.dshskill_detailMain h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n.dshskill_group h2,\n.dshskill_dialog h2 {\n font-size: 14px;\n line-height: 22px;\n font-weight: 500;\n}\n\n.dshskill_catalog {\n display: flex;\n flex-direction: column;\n gap: 32px;\n}\n\n.dshskill_header {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.dshskill_header > div {\n min-width: 0;\n max-width: 100%;\n}\n\n.dshskill_control {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-height: 32px;\n min-width: 0;\n box-sizing: border-box;\n padding: 4px 10px;\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg, 8px);\n background: var(--dsw-alias-bg-base);\n color: inherit;\n font: inherit;\n}\n\n.dshskill_control {\n cursor: pointer;\n}\n\n.dshskill_control:not([aria-disabled='true']):hover,\n.dshskill_row:hover {\n background: var(--skill-hover);\n}\n\n.dshskill_control[aria-disabled='true'] {\n opacity: 0.55;\n cursor: default;\n}\n\n.dshskill_search {\n box-sizing: border-box;\n width: 200px;\n max-width: 100%;\n min-width: 0;\n}\n\n.dshskill_search input::placeholder {\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshskill_page :where(.dshskill_control, .dshskill_back, .dshskill_header h1, .dshskill_detailMain h1, .dshskill_repository):focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.dshskill_groups,\n.dshskill_group,\n.dshskill_rows {\n display: flex;\n flex-direction: column;\n}\n\n.dshskill_groups {\n gap: 32px;\n}\n\n.dshskill_group {\n gap: 8px;\n}\n\n.dshskill_rows {\n gap: 2px;\n padding: 0;\n list-style: none;\n}\n\n.dshskill_row {\n position: relative;\n display: flex;\n align-items: center;\n gap: 14px;\n min-width: 0;\n margin-inline: -8px;\n padding: 8px;\n border-radius: var(--dsw-radius-xl, 12px);\n line-height: normal;\n}\n\n.dshskill_row:active {\n background: var(--dsw-alias-interactive-bg-active);\n}\n\n.dshskill_rowButton {\n max-width: 100%;\n border: 0;\n padding: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: 14px;\n line-height: 20px;\n font-weight: 500;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.dshskill_rowButton::after {\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl, 12px);\n content: '';\n}\n\n.dshskill_rowButton:focus-visible {\n outline: none;\n}\n\n.dshskill_rowButton:focus-visible::after {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.dshskill_icon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg, 8px);\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshskill_rowText {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.dshskill_titleRow {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n\n.dshskill_muted {\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshskill_description {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n font-size: 13px;\n line-height: 18px;\n}\n\n.dshskill_badge {\n height: 18px;\n padding: 0 7px;\n font-size: 10px;\n line-height: 1;\n}\n\n.dshskill_toggle {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 8px;\n}\n\n.dshskill_row .dshskill_toggle {\n position: relative;\n z-index: 1;\n}\n\n.dshskill_toggleProgress {\n display: inline-flex;\n width: 14px;\n height: 14px;\n}\n\n.dshskill_toggleProgress > svg {\n width: 100%;\n height: 100%;\n}\n\n.dshskill_progressAnnouncement {\n position: absolute;\n clip-path: inset(50%);\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.dshskill_error,\n.dshskill_danger {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.dshskill_detailTop,\n.dshskill_detailMain,\n.dshskill_detailSections {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.dshskill_back {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: 12.5px;\n line-height: normal;\n cursor: pointer;\n}\n\n.dshskill_back:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshskill_backIcon {\n transform: rotate(90deg);\n}\n\n.dshskill_detailHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 32px;\n}\n\n.dshskill_detailActions {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.dshskill_detailActions .dshskill_detailUninstall {\n color: var(--dsw-alias-state-error-primary);\n --dsh-button-outline-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n\n.dshskill_detailMain {\n gap: 8px;\n margin-top: 20px;\n}\n\n.dshskill_detailTitleRow {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n white-space: nowrap;\n}\n\n.dshskill_detailTitleRow h1,\n.dshskill_attributionText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.dshskill_detailTitleRow .dshskill_detailAttribution {\n box-sizing: border-box;\n flex: none;\n min-width: 0;\n max-width: 45%;\n /* Balance the smaller attribution text against the title's visible glyphs. */\n translate: 0 1px;\n}\n\n.dshskill_repository {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n line-height: 18px;\n text-decoration: underline;\n text-underline-offset: 0.15em;\n}\n\n.dshskill_detailDescription {\n color: var(--dsw-alias-label-secondary);\n font-size: 14px;\n line-height: 22px;\n overflow-wrap: anywhere;\n}\n\n.dshskill_detailSections {\n gap: 32px;\n margin-top: 32px;\n}\n\n.dshskill_dialog {\n position: fixed;\n width: min(440px, calc(100vw - 32px));\n max-width: none;\n max-height: calc(100vh - 32px);\n margin: auto;\n padding: 20px;\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl, 12px);\n background: var(--dsw-alias-bg-base);\n color: var(--dsw-alias-label-primary);\n box-shadow: 0 12px 40px rgb(0 0 0 / 16%);\n}\n\n.dshskill_dialog[open] {\n display: grid;\n gap: 12px;\n}\n\n.dshskill_dialog::backdrop {\n background: rgb(0 0 0 / 26%);\n}\n\n.dshskill_dialogActions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: flex-end;\n}\n\n.dshskill_feedback:empty {\n display: none;\n}\n\n@media (max-width: 767px) {\n .dshskill_page:not([data-detail]) {\n padding-inline: 20px;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_react", "h", "StateDot", "Switch", "h", "SkillEmblem", "Tag", "Button", "SkillDocument", "h"]
|
|
7
|
+
}
|