@mdwrk/extension-manager 1.0.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/README.md +38 -0
- package/dist/components/ExtensionCard.d.ts +13 -0
- package/dist/components/ExtensionCard.d.ts.map +1 -0
- package/dist/components/ExtensionCard.js +72 -0
- package/dist/components/ExtensionCard.js.map +1 -0
- package/dist/components/ExtensionManagerView.d.ts +13 -0
- package/dist/components/ExtensionManagerView.d.ts.map +1 -0
- package/dist/components/ExtensionManagerView.js +16 -0
- package/dist/components/ExtensionManagerView.js.map +1 -0
- package/dist/components/ExtensionManifestIcon.d.ts +7 -0
- package/dist/components/ExtensionManifestIcon.d.ts.map +1 -0
- package/dist/components/ExtensionManifestIcon.js +15 -0
- package/dist/components/ExtensionManifestIcon.js.map +1 -0
- package/dist/components/ExtensionStatusBadge.d.ts +6 -0
- package/dist/components/ExtensionStatusBadge.d.ts.map +1 -0
- package/dist/components/ExtensionStatusBadge.js +12 -0
- package/dist/components/ExtensionStatusBadge.js.map +1 -0
- package/dist/components/SettingsSchemaForm.d.ts +10 -0
- package/dist/components/SettingsSchemaForm.d.ts.map +1 -0
- package/dist/components/SettingsSchemaForm.js +130 -0
- package/dist/components/SettingsSchemaForm.js.map +1 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -0
- package/dist/createExtensionManagerBundledEntry.d.ts +4 -0
- package/dist/createExtensionManagerBundledEntry.d.ts.map +1 -0
- package/dist/createExtensionManagerBundledEntry.js +59 -0
- package/dist/createExtensionManagerBundledEntry.js.map +1 -0
- package/dist/i18n.d.ts +52 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +63 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/locales/en.d.ts +3 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/en.js +51 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/locales/es.d.ts +3 -0
- package/dist/locales/es.d.ts.map +1 -0
- package/dist/locales/es.js +51 -0
- package/dist/locales/es.js.map +1 -0
- package/dist/manifest.d.ts +4 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +102 -0
- package/dist/manifest.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +74 -0
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# mdwrk/extension-manager
|
|
2
|
+
|
|
3
|
+
First-party bundled operator console extension for Markdown Workspace.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
This package provides the initial Extension Manager experience required to prove the runtime platform with a real bundled extension.
|
|
8
|
+
|
|
9
|
+
It registers:
|
|
10
|
+
- an Extension Manager view
|
|
11
|
+
- an Extension Manager action-rail entry
|
|
12
|
+
- an open-manager command
|
|
13
|
+
- package-local locale catalogs for localized labels and UI text
|
|
14
|
+
|
|
15
|
+
The manager view shows:
|
|
16
|
+
- bundled and installed extension inventory
|
|
17
|
+
- enabled/disabled state
|
|
18
|
+
- activation mode and status
|
|
19
|
+
- compatibility state
|
|
20
|
+
- granted and missing capabilities
|
|
21
|
+
- runtime diagnostics and last-error data
|
|
22
|
+
- schema-driven settings forms for extensions that declare `settingsSchema`
|
|
23
|
+
|
|
24
|
+
## Public exports
|
|
25
|
+
|
|
26
|
+
- `createExtensionManagerBundledEntry()`
|
|
27
|
+
- `EXTENSION_MANAGER_EXTENSION_ID`
|
|
28
|
+
- `EXTENSION_MANAGER_VIEW_ID`
|
|
29
|
+
- `EXTENSION_MANAGER_COMMAND_ID`
|
|
30
|
+
- `extensionManagerManifest`
|
|
31
|
+
- `extensionManagerLabels`
|
|
32
|
+
- `extensionManagerLocaleLoader`
|
|
33
|
+
|
|
34
|
+
## Current status
|
|
35
|
+
|
|
36
|
+
Implemented through Phase 13.
|
|
37
|
+
|
|
38
|
+
This package is publishable and intended for first-party bundling. It can visualize installed external extensions once present in the runtime. Broader interactive catalog-management UI can be layered on top of the runtime APIs without changing the extension contract surface.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { I18nLabel } from "@mdwrk/extension-manifest";
|
|
2
|
+
import type { ExtensionRuntime, ExtensionRuntimeExtensionSnapshot } from "@mdwrk/extension-runtime";
|
|
3
|
+
export interface ExtensionCardProps {
|
|
4
|
+
readonly extension: ExtensionRuntimeExtensionSnapshot;
|
|
5
|
+
readonly runtime: ExtensionRuntime;
|
|
6
|
+
readonly formatLabel: (label: I18nLabel | string) => string;
|
|
7
|
+
readonly defaults: {
|
|
8
|
+
readonly showCompatibility: boolean;
|
|
9
|
+
readonly showDiagnostics: boolean;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare const ExtensionCard: React.FC<ExtensionCardProps>;
|
|
13
|
+
//# sourceMappingURL=ExtensionCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionCard.d.ts","sourceRoot":"","sources":["../../src/components/ExtensionCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAOpG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,iCAAiC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;KACnC,CAAC;CACH;AAsBD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6JtD,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { AlertTriangle, CheckCircle2, ChevronsUpDown, CircleSlash2, Power, PowerOff } from "lucide-react";
|
|
4
|
+
import { extensionManagerLabels } from "../i18n.js";
|
|
5
|
+
import { ExtensionManifestIcon } from "./ExtensionManifestIcon.js";
|
|
6
|
+
import { ExtensionStatusBadge } from "./ExtensionStatusBadge.js";
|
|
7
|
+
import { SettingsSchemaForm } from "./SettingsSchemaForm.js";
|
|
8
|
+
const detailSummaryStyle = {
|
|
9
|
+
cursor: "pointer",
|
|
10
|
+
fontSize: 11,
|
|
11
|
+
fontWeight: 700,
|
|
12
|
+
textTransform: "uppercase",
|
|
13
|
+
letterSpacing: "0.08em",
|
|
14
|
+
};
|
|
15
|
+
const pillStyle = {
|
|
16
|
+
display: "inline-flex",
|
|
17
|
+
alignItems: "center",
|
|
18
|
+
gap: 4,
|
|
19
|
+
padding: "2px 8px",
|
|
20
|
+
borderRadius: 999,
|
|
21
|
+
border: "1px solid var(--border-primary)",
|
|
22
|
+
fontSize: 10,
|
|
23
|
+
textTransform: "uppercase",
|
|
24
|
+
letterSpacing: "0.08em",
|
|
25
|
+
};
|
|
26
|
+
export const ExtensionCard = ({ extension, runtime, formatLabel, defaults }) => {
|
|
27
|
+
const [showCompatibility, setShowCompatibility] = React.useState(defaults.showCompatibility || !extension.compatibility.compatible);
|
|
28
|
+
const [showDiagnostics, setShowDiagnostics] = React.useState(defaults.showDiagnostics || extension.status === "error");
|
|
29
|
+
const [showSettings, setShowSettings] = React.useState(false);
|
|
30
|
+
const [busy, setBusy] = React.useState(false);
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
if (!extension.compatibility.compatible) {
|
|
33
|
+
setShowCompatibility(true);
|
|
34
|
+
}
|
|
35
|
+
if (extension.status === "error") {
|
|
36
|
+
setShowDiagnostics(true);
|
|
37
|
+
}
|
|
38
|
+
}, [extension.compatibility.compatible, extension.status]);
|
|
39
|
+
const toggleEnabled = async () => {
|
|
40
|
+
setBusy(true);
|
|
41
|
+
try {
|
|
42
|
+
await runtime.setEnabled(extension.id, !extension.enabled);
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
setBusy(false);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const activate = async () => {
|
|
49
|
+
setBusy(true);
|
|
50
|
+
try {
|
|
51
|
+
await runtime.activate(extension.id);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
setBusy(false);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const deactivate = async () => {
|
|
58
|
+
setBusy(true);
|
|
59
|
+
try {
|
|
60
|
+
await runtime.deactivate(extension.id);
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
setBusy(false);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const enableLabel = formatLabel(extensionManagerLabels.actionEnable);
|
|
67
|
+
const disableLabel = formatLabel(extensionManagerLabels.actionDisable);
|
|
68
|
+
const activateLabel = formatLabel(extensionManagerLabels.actionActivate);
|
|
69
|
+
const deactivateLabel = formatLabel(extensionManagerLabels.actionDeactivate);
|
|
70
|
+
return (_jsxs("article", { className: "settings-card settings-card-stack", style: { display: "grid", gap: 14 }, children: [_jsxs("header", { style: { display: "grid", gridTemplateColumns: "auto 1fr auto", gap: 12, alignItems: "start" }, children: [_jsx("div", { style: { display: "inline-flex", width: 30, height: 30, borderRadius: 8, alignItems: "center", justifyContent: "center", border: "1px solid var(--border-primary)" }, children: _jsx(ExtensionManifestIcon, { icon: extension.manifest.icon, size: 18 }) }), _jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsxs("div", { style: { display: "flex", flexWrap: "wrap", gap: 8, alignItems: "center" }, children: [_jsx("strong", { style: { fontSize: 14 }, children: formatLabel(extension.manifest.displayName) }), _jsx("span", { style: pillStyle, children: extension.source === "bundled" ? formatLabel(extensionManagerLabels.sourceBundled) : formatLabel(extensionManagerLabels.sourceInstalled) }), _jsx(ExtensionStatusBadge, { status: extension.status })] }), _jsx("span", { style: { fontSize: 11, color: "var(--fg-muted)" }, children: extension.id }), _jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-secondary)", lineHeight: 1.6 }, children: formatLabel(extension.manifest.description) })] }), _jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", justifyContent: "flex-end" }, children: [_jsxs("button", { className: "modal-btn", onClick: () => void toggleEnabled(), disabled: busy, "aria-label": `${extension.enabled ? disableLabel : enableLabel} ${extension.id}`, children: [extension.enabled ? _jsx(PowerOff, { size: 14 }) : _jsx(Power, { size: 14 }), " ", extension.enabled ? disableLabel : enableLabel] }), _jsx("button", { className: "modal-btn modal-btn-primary", onClick: () => void activate(), disabled: busy || !extension.enabled, children: activateLabel }), _jsx("button", { className: "modal-btn", onClick: () => void deactivate(), disabled: busy || extension.status !== "active", children: deactivateLabel })] })] }), _jsxs("div", { className: "settings-session-grid", children: [_jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.labelPackage) }), _jsx("span", { className: "settings-session-value", children: extension.manifest.packageName })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.labelVersion) }), _jsx("span", { className: "settings-session-value", children: extension.manifest.version })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.labelActivation) }), _jsx("span", { className: "settings-session-value", children: extension.activation })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.labelEnabled) }), _jsx("span", { className: "settings-session-value", children: extension.enabled ? formatLabel(extensionManagerLabels.stateEnabled) : formatLabel(extensionManagerLabels.stateDisabled) })] })] }), _jsxs("section", { style: { display: "grid", gap: 8 }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(extensionManagerLabels.labelPermissions) }), _jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap" }, children: [extension.grantedCapabilities.map((capability) => (_jsxs("span", { style: pillStyle, children: [_jsx(CheckCircle2, { size: 12 }), " ", capability] }, `granted-${capability}`))), extension.missingCapabilities.map((capability) => (_jsxs("span", { style: pillStyle, children: [_jsx(CircleSlash2, { size: 12 }), " ", capability] }, `missing-${capability}`)))] })] }), _jsxs("details", { open: showCompatibility, onToggle: (event) => setShowCompatibility(event.currentTarget.open), children: [_jsxs("summary", { style: detailSummaryStyle, children: [_jsx(ChevronsUpDown, { size: 12, style: { display: "inline-flex", marginRight: 6 } }), formatLabel(extensionManagerLabels.labelCompatibility)] }), _jsxs("div", { style: { display: "grid", gap: 8, marginTop: 10 }, children: [_jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-secondary)" }, children: extension.compatibility.compatible ? formatLabel(extensionManagerLabels.compatibilityOk) : formatLabel(extensionManagerLabels.compatibilityError) }), !extension.compatibility.compatible && (_jsx("ul", { style: { margin: 0, paddingLeft: 18, fontSize: 12, color: "var(--fg-secondary)", display: "grid", gap: 6 }, children: extension.compatibility.issues.map((issue, index) => (_jsx("li", { children: issue.message }, `${issue.target}-${index}`))) }))] })] }), _jsxs("details", { open: showDiagnostics, onToggle: (event) => setShowDiagnostics(event.currentTarget.open), children: [_jsxs("summary", { style: detailSummaryStyle, children: [_jsx(ChevronsUpDown, { size: 12, style: { display: "inline-flex", marginRight: 6 } }), formatLabel(extensionManagerLabels.labelHealth)] }), _jsxs("div", { style: { display: "grid", gap: 8, marginTop: 10 }, children: [extension.lastError && (_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsxs("span", { style: { ...pillStyle, width: "fit-content" }, children: [_jsx(AlertTriangle, { size: 12 }), " ", formatLabel(extensionManagerLabels.lastError)] }), _jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-secondary)" }, children: extension.lastError.message })] })), extension.diagnostics.length > 0 ? (_jsx("ul", { style: { margin: 0, paddingLeft: 18, fontSize: 12, color: "var(--fg-secondary)", display: "grid", gap: 6 }, children: extension.diagnostics.map((record, index) => (_jsxs("li", { children: [record.code, ": ", record.message] }, `${record.code}-${index}`))) })) : !extension.lastError ? (_jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-muted)" }, children: formatLabel(extensionManagerLabels.noDiagnostics) })) : null] })] }), extension.manifest.settingsSchema && (_jsxs("details", { open: showSettings, onToggle: (event) => setShowSettings(event.currentTarget.open), children: [_jsxs("summary", { style: detailSummaryStyle, children: [_jsx(ChevronsUpDown, { size: 12, style: { display: "inline-flex", marginRight: 6 } }), formatLabel(extensionManagerLabels.labelSettings)] }), _jsx("div", { style: { marginTop: 10 }, children: _jsx(SettingsSchemaForm, { runtime: runtime, extensionId: extension.id, schema: extension.manifest.settingsSchema, formatLabel: formatLabel }) })] }))] }));
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=ExtensionCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionCard.js","sourceRoot":"","sources":["../../src/components/ExtensionCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAY7D,MAAM,kBAAkB,GAAwB;IAC9C,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACrC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,iCAAiC;IACzC,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3G,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpI,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IACvH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;YACxC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACjC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,WAAW,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,WAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAE7E,OAAO,CACL,mBAAS,SAAS,EAAC,mCAAmC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aACxF,kBAAQ,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,aACpG,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,iCAAiC,EAAE,YACvK,KAAC,qBAAqB,IAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,GAC9D,EACN,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACrC,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC7E,iBAAQ,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAU,EACvF,eAAM,KAAK,EAAE,SAAS,YAAG,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,GAAQ,EACzK,KAAC,oBAAoB,IAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAI,IAC9C,EACN,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAG,SAAS,CAAC,EAAE,GAAQ,EAC9E,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,EAAE,YACjF,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAC1C,IACA,EACN,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,aACnF,kBACE,SAAS,EAAC,WAAW,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EACnC,QAAQ,EAAE,IAAI,gBACF,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,EAAE,aAE9E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,OAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,IAC3G,EACT,iBAAQ,SAAS,EAAC,6BAA6B,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,YACjH,aAAa,GACP,EACT,iBAAQ,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,YAC5G,eAAe,GACT,IACL,IACC,EAET,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,YAAE,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,GAAQ,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAQ,IAAM,EAC/N,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,YAAE,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,GAAQ,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,GAAQ,IAAM,EAC3N,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,YAAE,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,GAAQ,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,SAAS,CAAC,UAAU,GAAQ,IAAM,EACxN,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,YAAE,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,GAAQ,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAQ,IAAM,IACrT,EAEN,mBAAS,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACzC,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAG,WAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,GAAQ,EAClK,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,aACtD,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACjD,gBAAoC,KAAK,EAAE,SAAS,aAClD,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,GAAI,OAAE,UAAU,KAD7B,WAAW,UAAU,EAAE,CAE3B,CACR,CAAC,EACD,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACjD,gBAAoC,KAAK,EAAE,SAAS,aAClD,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,GAAI,OAAE,UAAU,KAD7B,WAAW,UAAU,EAAE,CAE3B,CACR,CAAC,IACE,IACE,EAEV,mBAAS,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAE,KAAK,CAAC,aAAoC,CAAC,IAAI,CAAC,aAC3H,mBAAS,KAAK,EAAE,kBAAkB,aAAE,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,GAAI,EAAC,WAAW,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAW,EACrL,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,aACpD,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAChE,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,GAChJ,EACH,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,IAAI,CACtC,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YAC3G,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACpD,uBAAsC,KAAK,CAAC,OAAO,IAA1C,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAsB,CAC1D,CAAC,GACC,CACN,IACG,IACE,EAEV,mBAAS,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAE,KAAK,CAAC,aAAoC,CAAC,IAAI,CAAC,aACvH,mBAAS,KAAK,EAAE,kBAAkB,aAAE,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,GAAI,EAAC,WAAW,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAW,EAC9K,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,aACnD,SAAS,CAAC,SAAS,IAAI,CACtB,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACrC,gBAAM,KAAK,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,aAAE,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,OAAE,WAAW,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAQ,EACvI,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAG,SAAS,CAAC,SAAS,CAAC,OAAO,GAAK,IAClG,CACP,EACA,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClC,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,YAC3G,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5C,yBAAqC,MAAM,CAAC,IAAI,QAAI,MAAM,CAAC,OAAO,KAAzD,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAsC,CACzE,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CACzB,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAG,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAK,CACzH,CAAC,CAAC,CAAC,IAAI,IACJ,IACE,EAET,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,CACpC,mBAAS,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAE,KAAK,CAAC,aAAoC,CAAC,IAAI,CAAC,aACjH,mBAAS,KAAK,EAAE,kBAAkB,aAAE,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,GAAI,EAAC,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,IAAW,EAChL,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAC3B,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,SAAS,CAAC,EAAE,EACzB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,cAAc,EACzC,WAAW,EAAE,WAAW,GACxB,GACE,IACE,CACX,IACO,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { I18nLabel } from "@mdwrk/extension-manifest";
|
|
2
|
+
import type { ExtensionRuntime } from "@mdwrk/extension-runtime";
|
|
3
|
+
export interface ExtensionManagerViewProps {
|
|
4
|
+
readonly runtime: ExtensionRuntime;
|
|
5
|
+
readonly close: () => Promise<void>;
|
|
6
|
+
readonly formatLabel: (label: I18nLabel | string) => string;
|
|
7
|
+
readonly defaultSettings?: {
|
|
8
|
+
readonly showCompatibility?: boolean;
|
|
9
|
+
readonly showDiagnostics?: boolean;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare const ExtensionManagerView: React.FC<ExtensionManagerViewProps>;
|
|
13
|
+
//# sourceMappingURL=ExtensionManagerView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManagerView.d.ts","sourceRoot":"","sources":["../../src/components/ExtensionManagerView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAiDpE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useSyncExternalStore } from "react";
|
|
3
|
+
import { extensionManagerLabels } from "../i18n.js";
|
|
4
|
+
import { ExtensionCard } from "./ExtensionCard.js";
|
|
5
|
+
export const ExtensionManagerView = ({ runtime, close, formatLabel, defaultSettings }) => {
|
|
6
|
+
const snapshot = useSyncExternalStore(runtime.subscribe, runtime.getSnapshot, runtime.getSnapshot);
|
|
7
|
+
const defaults = React.useMemo(() => ({
|
|
8
|
+
showCompatibility: defaultSettings?.showCompatibility ?? true,
|
|
9
|
+
showDiagnostics: defaultSettings?.showDiagnostics ?? true,
|
|
10
|
+
}), [defaultSettings]);
|
|
11
|
+
return (_jsx("div", { className: "modal-overlay", "data-testid": "extension-manager-modal", children: _jsxs("div", { className: "modal-base settings-modal", style: { width: "min(1180px, 96vw)" }, children: [_jsxs("div", { className: "modal-header", children: [_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { className: "modal-title", children: formatLabel(extensionManagerLabels.headerTitle) }), _jsx("span", { style: { fontSize: 11, color: "var(--fg-muted)" }, children: formatLabel(extensionManagerLabels.headerSubtitle) })] }), _jsx("button", { onClick: () => void close(), className: "modal-close", children: formatLabel(extensionManagerLabels.actionExit) })] }), _jsx("div", { className: "settings-content-frame", style: { maxHeight: "72vh", overflow: "auto" }, children: _jsxs("div", { className: "settings-pane", style: { display: "grid", gap: 16 }, children: [_jsx("div", { className: "settings-card settings-card-stack", children: _jsxs("div", { className: "settings-session-grid", children: [_jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.statsExtensions) }), _jsx("span", { className: "settings-session-value", children: snapshot.extensions.length })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.statsActive) }), _jsx("span", { className: "settings-session-value", children: snapshot.extensions.filter((extension) => extension.status === "active").length })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.statsDisabled) }), _jsx("span", { className: "settings-session-value", children: snapshot.extensions.filter((extension) => !extension.enabled).length })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(extensionManagerLabels.statsIncompatible) }), _jsx("span", { className: "settings-session-value", children: snapshot.extensions.filter((extension) => extension.status === "incompatible").length })] })] }) }), snapshot.extensions.map((extension) => (_jsx(ExtensionCard, { extension: extension, runtime: runtime, formatLabel: formatLabel, defaults: {
|
|
12
|
+
showCompatibility: defaults.showCompatibility,
|
|
13
|
+
showDiagnostics: defaults.showDiagnostics,
|
|
14
|
+
} }, extension.id)))] }) }), _jsx("footer", { className: "modal-footer", children: _jsx("button", { onClick: () => void close(), className: "modal-btn modal-btn-primary", children: formatLabel(extensionManagerLabels.actionClose) }) })] }) }));
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=ExtensionManagerView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManagerView.js","sourceRoot":"","sources":["../../src/components/ExtensionManagerView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExtensionIcon } from "@mdwrk/extension-manifest";
|
|
2
|
+
export interface ExtensionManifestIconProps {
|
|
3
|
+
readonly icon: ExtensionIcon;
|
|
4
|
+
readonly size?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const ExtensionManifestIcon: React.FC<ExtensionManifestIconProps>;
|
|
7
|
+
//# sourceMappingURL=ExtensionManifestIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManifestIcon.d.ts","sourceRoot":"","sources":["../../src/components/ExtensionManifestIcon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAkBtE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as LucideIcons from "lucide-react";
|
|
3
|
+
import { AppWindow, FileQuestion } from "lucide-react";
|
|
4
|
+
export const ExtensionManifestIcon = ({ icon, size = 18 }) => {
|
|
5
|
+
if (icon.kind === "lucide") {
|
|
6
|
+
const iconCatalog = LucideIcons;
|
|
7
|
+
const Component = iconCatalog[icon.name] ?? FileQuestion;
|
|
8
|
+
return _jsx(Component, { size: size, "aria-hidden": "true" });
|
|
9
|
+
}
|
|
10
|
+
if (icon.kind === "svg") {
|
|
11
|
+
return (_jsx("span", { "aria-hidden": "true", style: { display: "inline-flex", width: size, height: size }, dangerouslySetInnerHTML: { __html: icon.svg } }));
|
|
12
|
+
}
|
|
13
|
+
return _jsx(AppWindow, { size: size, "aria-hidden": "true" });
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=ExtensionManifestIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManifestIcon.js","sourceRoot":"","sources":["../../src/components/ExtensionManifestIcon.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOvD,MAAM,CAAC,MAAM,qBAAqB,GAAyC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;IACjG,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,WAAgF,CAAC;QACrG,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC;QACzD,OAAO,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,iBAAc,MAAM,GAAG,CAAC;IACtD,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,CACL,8BACc,MAAM,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAC5D,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAC7C,CACH,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,iBAAc,MAAM,GAAG,CAAC;AACtD,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExtensionRuntimeExtensionSnapshot } from "@mdwrk/extension-runtime";
|
|
2
|
+
export interface ExtensionStatusBadgeProps {
|
|
3
|
+
readonly status: ExtensionRuntimeExtensionSnapshot["status"];
|
|
4
|
+
}
|
|
5
|
+
export declare const ExtensionStatusBadge: React.FC<ExtensionStatusBadgeProps>;
|
|
6
|
+
//# sourceMappingURL=ExtensionStatusBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionStatusBadge.d.ts","sourceRoot":"","sources":["../../src/components/ExtensionStatusBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC,QAAQ,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAgBpE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const ExtensionStatusBadge = ({ status }) => (_jsx("span", { className: "settings-session-value", style: {
|
|
3
|
+
display: "inline-flex",
|
|
4
|
+
alignItems: "center",
|
|
5
|
+
padding: "2px 8px",
|
|
6
|
+
borderRadius: 999,
|
|
7
|
+
border: "1px solid var(--border-primary)",
|
|
8
|
+
fontSize: 10,
|
|
9
|
+
textTransform: "uppercase",
|
|
10
|
+
letterSpacing: "0.08em",
|
|
11
|
+
}, children: status }));
|
|
12
|
+
//# sourceMappingURL=ExtensionStatusBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionStatusBadge.js","sourceRoot":"","sources":["../../src/components/ExtensionStatusBadge.tsx"],"names":[],"mappings":";AAOA,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACvF,eACE,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE;QACL,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,GAAG;QACjB,MAAM,EAAE,iCAAiC;QACzC,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,WAAW;QAC1B,aAAa,EAAE,QAAQ;KACxB,YAEA,MAAM,GACF,CACR,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ExtensionSettingsSchema, I18nLabel } from "@mdwrk/extension-manifest";
|
|
2
|
+
import type { ExtensionRuntime } from "@mdwrk/extension-runtime";
|
|
3
|
+
export interface SettingsSchemaFormProps {
|
|
4
|
+
readonly runtime: ExtensionRuntime;
|
|
5
|
+
readonly extensionId: string;
|
|
6
|
+
readonly schema: ExtensionSettingsSchema;
|
|
7
|
+
readonly formatLabel: (label: I18nLabel | string) => string;
|
|
8
|
+
}
|
|
9
|
+
export declare const SettingsSchemaForm: React.FC<SettingsSchemaFormProps>;
|
|
10
|
+
//# sourceMappingURL=SettingsSchemaForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsSchemaForm.d.ts","sourceRoot":"","sources":["../../src/components/SettingsSchemaForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,uBAAuB,EACvB,SAAS,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAwCjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;CAC7D;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA2NhE,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { extensionManagerLabels } from "../i18n.js";
|
|
4
|
+
const defaultValueForField = (field) => {
|
|
5
|
+
switch (field.kind) {
|
|
6
|
+
case "boolean":
|
|
7
|
+
return field.defaultValue;
|
|
8
|
+
case "number":
|
|
9
|
+
case "integer":
|
|
10
|
+
return field.defaultValue ?? null;
|
|
11
|
+
case "select":
|
|
12
|
+
case "multiselect":
|
|
13
|
+
return field.defaultValue ?? (field.kind === "multiselect" ? [] : "");
|
|
14
|
+
case "string":
|
|
15
|
+
case "secret":
|
|
16
|
+
return field.defaultValue ?? "";
|
|
17
|
+
case "json":
|
|
18
|
+
return field.defaultValue ?? {};
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const toNumberValue = (field, raw) => {
|
|
24
|
+
if (raw.trim() === "")
|
|
25
|
+
return null;
|
|
26
|
+
const parsed = Number(raw);
|
|
27
|
+
if (Number.isNaN(parsed))
|
|
28
|
+
return null;
|
|
29
|
+
return field.kind === "integer" ? Math.trunc(parsed) : parsed;
|
|
30
|
+
};
|
|
31
|
+
const inputStyle = {
|
|
32
|
+
width: "100%",
|
|
33
|
+
background: "var(--bg-secondary)",
|
|
34
|
+
color: "var(--fg-primary)",
|
|
35
|
+
border: "1px solid var(--border-primary)",
|
|
36
|
+
borderRadius: 8,
|
|
37
|
+
padding: "8px 10px",
|
|
38
|
+
fontSize: 12,
|
|
39
|
+
};
|
|
40
|
+
export const SettingsSchemaForm = ({ runtime, extensionId, schema, formatLabel }) => {
|
|
41
|
+
const store = React.useMemo(() => runtime.getConfigurationStore(extensionId), [runtime, extensionId]);
|
|
42
|
+
const [values, setValues] = React.useState({});
|
|
43
|
+
const [jsonText, setJsonText] = React.useState({});
|
|
44
|
+
const [jsonErrors, setJsonErrors] = React.useState({});
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
let cancelled = false;
|
|
47
|
+
const disposables = schema.fields.map((field) => store.watch(field.key, (value) => {
|
|
48
|
+
const nextValue = value ?? defaultValueForField(field);
|
|
49
|
+
setValues((current) => ({ ...current, [field.key]: nextValue }));
|
|
50
|
+
if (field.kind === "json") {
|
|
51
|
+
setJsonText((current) => ({
|
|
52
|
+
...current,
|
|
53
|
+
[field.key]: JSON.stringify(nextValue ?? defaultValueForField(field), null, 2),
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
57
|
+
void Promise.all(schema.fields.map(async (field) => {
|
|
58
|
+
const stored = await store.get(field.key);
|
|
59
|
+
return [field.key, stored ?? defaultValueForField(field)];
|
|
60
|
+
})).then((entries) => {
|
|
61
|
+
if (cancelled)
|
|
62
|
+
return;
|
|
63
|
+
setValues(Object.fromEntries(entries));
|
|
64
|
+
setJsonText(Object.fromEntries(entries.filter(([, value]) => value !== undefined).map(([key, value]) => [key, JSON.stringify(value, null, 2)])));
|
|
65
|
+
});
|
|
66
|
+
return () => {
|
|
67
|
+
cancelled = true;
|
|
68
|
+
for (const disposable of disposables) {
|
|
69
|
+
disposable.dispose();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}, [schema.fields, store]);
|
|
73
|
+
const fieldsBySection = React.useMemo(() => {
|
|
74
|
+
const sections = new Map();
|
|
75
|
+
for (const field of schema.fields) {
|
|
76
|
+
const bucketKey = field.sectionId ?? "__root__";
|
|
77
|
+
const bucket = sections.get(bucketKey) ?? [];
|
|
78
|
+
bucket.push(field);
|
|
79
|
+
sections.set(bucketKey, bucket);
|
|
80
|
+
}
|
|
81
|
+
return sections;
|
|
82
|
+
}, [schema.fields]);
|
|
83
|
+
const writeValue = React.useCallback(async (field, nextValue) => {
|
|
84
|
+
setValues((current) => ({ ...current, [field.key]: nextValue }));
|
|
85
|
+
await store.set(field.key, nextValue);
|
|
86
|
+
}, [store]);
|
|
87
|
+
const renderField = (field) => {
|
|
88
|
+
const value = values[field.key] ?? defaultValueForField(field);
|
|
89
|
+
const labelId = `${extensionId}-${field.key}`;
|
|
90
|
+
return (_jsxs("div", { style: { display: "grid", gap: 6 }, children: [_jsx("label", { id: `${labelId}-label`, htmlFor: labelId, style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(field.label) }), field.description && (_jsx("p", { style: { margin: 0, fontSize: 11, color: "var(--fg-muted)", lineHeight: 1.5 }, children: formatLabel(field.description) })), field.kind === "boolean" && (_jsxs("label", { style: { display: "inline-flex", alignItems: "center", gap: 8, fontSize: 12 }, children: [_jsx("input", { id: labelId, "aria-labelledby": `${labelId}-label`, type: "checkbox", checked: Boolean(value), onChange: (event) => {
|
|
91
|
+
void writeValue(field, event.currentTarget.checked);
|
|
92
|
+
} }), Boolean(value) ? formatLabel(extensionManagerLabels.settingsEnabled) : formatLabel(extensionManagerLabels.settingsDisabled)] })), (field.kind === "string" || field.kind === "secret") && !field.multiline && (_jsx("input", { id: labelId, type: field.kind === "secret" ? "password" : "text", value: String(value ?? ""), placeholder: field.placeholder, style: inputStyle, onChange: (event) => {
|
|
93
|
+
void writeValue(field, event.currentTarget.value);
|
|
94
|
+
} })), (field.kind === "string" || field.kind === "secret") && field.multiline && (_jsx("textarea", { id: labelId, value: String(value ?? ""), placeholder: field.placeholder, style: { ...inputStyle, minHeight: 96, resize: "vertical" }, onChange: (event) => {
|
|
95
|
+
void writeValue(field, event.currentTarget.value);
|
|
96
|
+
} })), (field.kind === "number" || field.kind === "integer") && (_jsx("input", { id: labelId, type: "number", value: typeof value === "number" ? String(value) : "", min: field.min, max: field.max, step: field.step ?? (field.kind === "integer" ? 1 : undefined), style: inputStyle, onChange: (event) => {
|
|
97
|
+
void writeValue(field, toNumberValue(field, event.currentTarget.value));
|
|
98
|
+
} })), field.kind === "select" && (_jsx("select", { id: labelId, value: typeof value === "string" ? value : String(field.defaultValue ?? ""), style: inputStyle, onChange: (event) => {
|
|
99
|
+
void writeValue(field, event.currentTarget.value);
|
|
100
|
+
}, children: field.options.map((option) => (_jsx("option", { value: option.value, children: formatLabel(option.label) }, option.value))) })), field.kind === "multiselect" && (_jsx("select", { id: labelId, multiple: true, value: Array.isArray(value) ? value.map(String) : [], style: { ...inputStyle, minHeight: 96 }, onChange: (event) => {
|
|
101
|
+
const selected = Array.from(event.currentTarget.selectedOptions).map((option) => option.value);
|
|
102
|
+
void writeValue(field, selected);
|
|
103
|
+
}, children: field.options.map((option) => (_jsx("option", { value: option.value, children: formatLabel(option.label) }, option.value))) })), field.kind === "json" && (_jsxs(_Fragment, { children: [_jsx("textarea", { id: labelId, value: jsonText[field.key] ?? JSON.stringify(value ?? {}, null, 2), style: { ...inputStyle, minHeight: 144, fontFamily: "var(--font-mono, monospace)" }, onChange: (event) => {
|
|
104
|
+
const nextText = event.currentTarget.value;
|
|
105
|
+
setJsonText((current) => ({ ...current, [field.key]: nextText }));
|
|
106
|
+
}, onBlur: () => {
|
|
107
|
+
const nextText = jsonText[field.key] ?? JSON.stringify(value ?? {}, null, 2);
|
|
108
|
+
try {
|
|
109
|
+
const parsed = JSON.parse(nextText);
|
|
110
|
+
setJsonErrors((current) => ({ ...current, [field.key]: null }));
|
|
111
|
+
void writeValue(field, parsed);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
setJsonErrors((current) => ({
|
|
115
|
+
...current,
|
|
116
|
+
[field.key]: error instanceof Error ? error.message : String(error),
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
} }), jsonErrors[field.key] && (_jsx("p", { style: { margin: 0, fontSize: 11, color: "var(--accent-red, #f87171)" }, children: jsonErrors[field.key] }))] }))] }, field.key));
|
|
120
|
+
};
|
|
121
|
+
const sections = schema.sections ?? [];
|
|
122
|
+
const rootFields = fieldsBySection.get("__root__") ?? [];
|
|
123
|
+
return (_jsxs("div", { style: { display: "grid", gap: 14 }, children: [rootFields.length > 0 && (_jsx("div", { style: { display: "grid", gap: 12 }, children: rootFields.map(renderField) })), sections.map((section) => {
|
|
124
|
+
const fields = fieldsBySection.get(section.id) ?? [];
|
|
125
|
+
if (fields.length === 0)
|
|
126
|
+
return null;
|
|
127
|
+
return (_jsxs("section", { style: { display: "grid", gap: 12, paddingTop: 6 }, children: [_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(section.title) }), section.description && (_jsx("p", { style: { margin: 0, fontSize: 11, color: "var(--fg-muted)", lineHeight: 1.5 }, children: formatLabel(section.description) }))] }), _jsx("div", { style: { display: "grid", gap: 12 }, children: fields.map(renderField) })] }, section.id));
|
|
128
|
+
})] }));
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=SettingsSchemaForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsSchemaForm.js","sourceRoot":"","sources":["../../src/components/SettingsSchemaForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const EXTENSION_MANAGER_EXTENSION_ID: "core.extension-manager";
|
|
2
|
+
export declare const EXTENSION_MANAGER_VIEW_ID: "core.extension-manager.view";
|
|
3
|
+
export declare const EXTENSION_MANAGER_COMMAND_ID: "core.extension-manager.open";
|
|
4
|
+
export declare const EXTENSION_MANAGER_RAIL_ID: "core.extension-manager.rail";
|
|
5
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,EAAG,wBAAiC,CAAC;AAChF,eAAO,MAAM,yBAAyB,+BAAoD,CAAC;AAC3F,eAAO,MAAM,4BAA4B,+BAAoD,CAAC;AAC9F,eAAO,MAAM,yBAAyB,+BAAoD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const EXTENSION_MANAGER_EXTENSION_ID = "core.extension-manager";
|
|
2
|
+
export const EXTENSION_MANAGER_VIEW_ID = `${EXTENSION_MANAGER_EXTENSION_ID}.view`;
|
|
3
|
+
export const EXTENSION_MANAGER_COMMAND_ID = `${EXTENSION_MANAGER_EXTENSION_ID}.open`;
|
|
4
|
+
export const EXTENSION_MANAGER_RAIL_ID = `${EXTENSION_MANAGER_EXTENSION_ID}.rail`;
|
|
5
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,wBAAiC,CAAC;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,8BAA8B,OAAgB,CAAC;AAC3F,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,8BAA8B,OAAgB,CAAC;AAC9F,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,8BAA8B,OAAgB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BundledExtensionCatalogEntry } from "@mdwrk/extension-runtime";
|
|
2
|
+
import type { ExtensionManagerEntryOptions } from "./types.js";
|
|
3
|
+
export declare function createExtensionManagerBundledEntry(options: ExtensionManagerEntryOptions): BundledExtensionCatalogEntry;
|
|
4
|
+
//# sourceMappingURL=createExtensionManagerBundledEntry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createExtensionManagerBundledEntry.d.ts","sourceRoot":"","sources":["../src/createExtensionManagerBundledEntry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAU/D,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,4BAA4B,GAAG,4BAA4B,CAiEtH"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ExtensionManagerView } from "./components/ExtensionManagerView.js";
|
|
3
|
+
import { EXTENSION_MANAGER_COMMAND_ID, EXTENSION_MANAGER_RAIL_ID, EXTENSION_MANAGER_VIEW_ID, extensionManagerManifest, } from "./manifest.js";
|
|
4
|
+
import { extensionManagerLabels, extensionManagerLocaleLoader } from "./i18n.js";
|
|
5
|
+
export function createExtensionManagerBundledEntry(options) {
|
|
6
|
+
return {
|
|
7
|
+
manifest: extensionManagerManifest,
|
|
8
|
+
activation: "eager",
|
|
9
|
+
async load() {
|
|
10
|
+
const extension = {
|
|
11
|
+
manifest: extensionManagerManifest,
|
|
12
|
+
async activate(context) {
|
|
13
|
+
context.registerLocaleCatalogLoader(extensionManagerLocaleLoader);
|
|
14
|
+
await context.host.i18n.ensureLocale();
|
|
15
|
+
context.registerCommand({
|
|
16
|
+
id: EXTENSION_MANAGER_COMMAND_ID,
|
|
17
|
+
title: extensionManagerLabels.commandOpenTitle,
|
|
18
|
+
description: extensionManagerLabels.commandOpenDescription,
|
|
19
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
20
|
+
execute: async () => {
|
|
21
|
+
await context.host.views.open(EXTENSION_MANAGER_VIEW_ID);
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
context.registerView({
|
|
25
|
+
id: EXTENSION_MANAGER_VIEW_ID,
|
|
26
|
+
title: extensionManagerLabels.viewTitle,
|
|
27
|
+
description: extensionManagerLabels.viewDescription,
|
|
28
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
29
|
+
location: "modal",
|
|
30
|
+
allowMultiple: false,
|
|
31
|
+
canBePinned: false,
|
|
32
|
+
render: (props) => (_jsx(ExtensionManagerView, { runtime: options.runtime, close: () => props.close(), formatLabel: context.host.i18n.format, defaultSettings: {
|
|
33
|
+
showCompatibility: true,
|
|
34
|
+
showDiagnostics: true,
|
|
35
|
+
} })),
|
|
36
|
+
});
|
|
37
|
+
context.registerActionRailItem({
|
|
38
|
+
id: EXTENSION_MANAGER_RAIL_ID,
|
|
39
|
+
title: extensionManagerLabels.railTitle,
|
|
40
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
41
|
+
group: "extensions",
|
|
42
|
+
order: 0,
|
|
43
|
+
target: {
|
|
44
|
+
kind: "view",
|
|
45
|
+
viewId: EXTENSION_MANAGER_VIEW_ID,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
await context.host.diagnostics.publish(context.extensionId, {
|
|
49
|
+
severity: "info",
|
|
50
|
+
code: "EXT_MANAGER_READY",
|
|
51
|
+
message: context.host.i18n.format(extensionManagerLabels.readyDiagnostic),
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
return extension;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=createExtensionManagerBundledEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createExtensionManagerBundledEntry.js","sourceRoot":"","sources":["../src/createExtensionManagerBundledEntry.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAEjF,MAAM,UAAU,kCAAkC,CAAC,OAAqC;IACtF,OAAO;QACL,QAAQ,EAAE,wBAAwB;QAClC,UAAU,EAAE,OAAO;QACnB,KAAK,CAAC,IAAI;YACR,MAAM,SAAS,GAA+B;gBAC5C,QAAQ,EAAE,wBAAwB;gBAClC,KAAK,CAAC,QAAQ,CAAC,OAAO;oBACpB,OAAO,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,CAAC;oBAClE,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAEvC,OAAO,CAAC,eAAe,CAAC;wBACtB,EAAE,EAAE,4BAA4B;wBAChC,KAAK,EAAE,sBAAsB,CAAC,gBAAgB;wBAC9C,WAAW,EAAE,sBAAsB,CAAC,sBAAsB;wBAC1D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,OAAO,EAAE,KAAK,IAAI,EAAE;4BAClB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBAC3D,CAAC;qBACF,CAAC,CAAC;oBAEH,OAAO,CAAC,YAAY,CAAC;wBACnB,EAAE,EAAE,yBAAyB;wBAC7B,KAAK,EAAE,sBAAsB,CAAC,SAAS;wBACvC,WAAW,EAAE,sBAAsB,CAAC,eAAe;wBACnD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,QAAQ,EAAE,OAAO;wBACjB,aAAa,EAAE,KAAK;wBACpB,WAAW,EAAE,KAAK;wBAClB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACjB,KAAC,oBAAoB,IACnB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,KAAK,EAAE,GAAG,EAAE,CAAE,KAAwC,CAAC,KAAK,EAAE,EAC9D,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EACrC,eAAe,EAAE;gCACf,iBAAiB,EAAE,IAAI;gCACvB,eAAe,EAAE,IAAI;6BACtB,GACD,CACH;qBACF,CAAC,CAAC;oBAEH,OAAO,CAAC,sBAAsB,CAAC;wBAC7B,EAAE,EAAE,yBAAyB;wBAC7B,KAAK,EAAE,sBAAsB,CAAC,SAAS;wBACvC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE;4BACN,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,yBAAyB;yBAClC;qBACF,CAAC,CAAC;oBAEH,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;wBAC1D,QAAQ,EAAE,MAAM;wBAChB,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC;qBAC1E,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;YAEF,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { I18nLabel } from "@mdwrk/extension-manifest";
|
|
2
|
+
import type { ExtensionLocaleCatalogLoader } from "@mdwrk/extension-host";
|
|
3
|
+
export declare const emLabel: (suffix: string, defaultMessage: string, description?: string) => I18nLabel;
|
|
4
|
+
export declare const extensionManagerLabels: {
|
|
5
|
+
readonly manifestDisplayName: I18nLabel;
|
|
6
|
+
readonly manifestDescription: I18nLabel;
|
|
7
|
+
readonly commandOpenTitle: I18nLabel;
|
|
8
|
+
readonly commandOpenDescription: I18nLabel;
|
|
9
|
+
readonly viewTitle: I18nLabel;
|
|
10
|
+
readonly viewDescription: I18nLabel;
|
|
11
|
+
readonly railTitle: I18nLabel;
|
|
12
|
+
readonly settingsTitle: I18nLabel;
|
|
13
|
+
readonly settingsDisplayTitle: I18nLabel;
|
|
14
|
+
readonly settingsDisplayDescription: I18nLabel;
|
|
15
|
+
readonly showCompatibilityLabel: I18nLabel;
|
|
16
|
+
readonly showCompatibilityDescription: I18nLabel;
|
|
17
|
+
readonly showDiagnosticsLabel: I18nLabel;
|
|
18
|
+
readonly showDiagnosticsDescription: I18nLabel;
|
|
19
|
+
readonly headerTitle: I18nLabel;
|
|
20
|
+
readonly headerSubtitle: I18nLabel;
|
|
21
|
+
readonly actionExit: I18nLabel;
|
|
22
|
+
readonly actionClose: I18nLabel;
|
|
23
|
+
readonly statsExtensions: I18nLabel;
|
|
24
|
+
readonly statsActive: I18nLabel;
|
|
25
|
+
readonly statsDisabled: I18nLabel;
|
|
26
|
+
readonly statsIncompatible: I18nLabel;
|
|
27
|
+
readonly sourceBundled: I18nLabel;
|
|
28
|
+
readonly sourceInstalled: I18nLabel;
|
|
29
|
+
readonly actionEnable: I18nLabel;
|
|
30
|
+
readonly actionDisable: I18nLabel;
|
|
31
|
+
readonly actionActivate: I18nLabel;
|
|
32
|
+
readonly actionDeactivate: I18nLabel;
|
|
33
|
+
readonly labelPackage: I18nLabel;
|
|
34
|
+
readonly labelVersion: I18nLabel;
|
|
35
|
+
readonly labelActivation: I18nLabel;
|
|
36
|
+
readonly labelEnabled: I18nLabel;
|
|
37
|
+
readonly labelPermissions: I18nLabel;
|
|
38
|
+
readonly labelCompatibility: I18nLabel;
|
|
39
|
+
readonly labelHealth: I18nLabel;
|
|
40
|
+
readonly labelSettings: I18nLabel;
|
|
41
|
+
readonly stateEnabled: I18nLabel;
|
|
42
|
+
readonly stateDisabled: I18nLabel;
|
|
43
|
+
readonly compatibilityOk: I18nLabel;
|
|
44
|
+
readonly compatibilityError: I18nLabel;
|
|
45
|
+
readonly noDiagnostics: I18nLabel;
|
|
46
|
+
readonly lastError: I18nLabel;
|
|
47
|
+
readonly settingsEnabled: I18nLabel;
|
|
48
|
+
readonly settingsDisabled: I18nLabel;
|
|
49
|
+
readonly readyDiagnostic: I18nLabel;
|
|
50
|
+
};
|
|
51
|
+
export declare const extensionManagerLocaleLoader: ExtensionLocaleCatalogLoader;
|
|
52
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAI1E,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,gBAAgB,MAAM,EAAE,cAAc,MAAM,KAAG,SAIrF,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CzB,CAAC;AAEX,eAAO,MAAM,4BAA4B,EAAE,4BAO1C,CAAC"}
|
package/dist/i18n.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { EXTENSION_MANAGER_EXTENSION_ID } from "./constants.js";
|
|
2
|
+
const key = (suffix) => `${EXTENSION_MANAGER_EXTENSION_ID}.${suffix}`;
|
|
3
|
+
export const emLabel = (suffix, defaultMessage, description) => ({
|
|
4
|
+
key: key(suffix),
|
|
5
|
+
defaultMessage,
|
|
6
|
+
description,
|
|
7
|
+
});
|
|
8
|
+
export const extensionManagerLabels = {
|
|
9
|
+
manifestDisplayName: emLabel("manifest.displayName", "Extension Manager"),
|
|
10
|
+
manifestDescription: emLabel("manifest.description", "Bundled operator console for browsing, enabling, disabling, diagnosing, and configuring extensions."),
|
|
11
|
+
commandOpenTitle: emLabel("commands.open.title", "Open Extension Manager"),
|
|
12
|
+
commandOpenDescription: emLabel("commands.open.description", "Open the bundled extension operator console."),
|
|
13
|
+
viewTitle: emLabel("views.manager.title", "Extension Manager"),
|
|
14
|
+
viewDescription: emLabel("views.manager.description", "Browse installed extensions, toggle enablement, inspect permissions, and edit extension settings."),
|
|
15
|
+
railTitle: emLabel("rail.title", "Extensions"),
|
|
16
|
+
settingsTitle: emLabel("settings.title", "Extension Manager Preferences"),
|
|
17
|
+
settingsDisplayTitle: emLabel("settings.sections.display.title", "Display"),
|
|
18
|
+
settingsDisplayDescription: emLabel("settings.sections.display.description", "Controls the default information density for the extension manager."),
|
|
19
|
+
showCompatibilityLabel: emLabel("settings.fields.showCompatibilityByDefault.label", "Show compatibility details by default"),
|
|
20
|
+
showCompatibilityDescription: emLabel("settings.fields.showCompatibilityByDefault.description", "Expand compatibility information for each extension when the manager opens."),
|
|
21
|
+
showDiagnosticsLabel: emLabel("settings.fields.showDiagnosticsByDefault.label", "Show diagnostics by default"),
|
|
22
|
+
showDiagnosticsDescription: emLabel("settings.fields.showDiagnosticsByDefault.description", "Expand runtime diagnostics for each extension when the manager opens."),
|
|
23
|
+
headerTitle: emLabel("view.header.title", "Extension Manager"),
|
|
24
|
+
headerSubtitle: emLabel("view.header.subtitle", "Bundled extension catalog, enablement controls, permissions, compatibility, diagnostics, and settings."),
|
|
25
|
+
actionExit: emLabel("view.actions.exit", "Exit"),
|
|
26
|
+
actionClose: emLabel("view.actions.close", "Close"),
|
|
27
|
+
statsExtensions: emLabel("view.stats.extensions", "Extensions"),
|
|
28
|
+
statsActive: emLabel("view.stats.active", "Active"),
|
|
29
|
+
statsDisabled: emLabel("view.stats.disabled", "Disabled"),
|
|
30
|
+
statsIncompatible: emLabel("view.stats.incompatible", "Incompatible"),
|
|
31
|
+
sourceBundled: emLabel("view.card.source.bundled", "Bundled"),
|
|
32
|
+
sourceInstalled: emLabel("view.card.source.installed", "Installed"),
|
|
33
|
+
actionEnable: emLabel("view.card.actions.enable", "Enable"),
|
|
34
|
+
actionDisable: emLabel("view.card.actions.disable", "Disable"),
|
|
35
|
+
actionActivate: emLabel("view.card.actions.activate", "Activate"),
|
|
36
|
+
actionDeactivate: emLabel("view.card.actions.deactivate", "Deactivate"),
|
|
37
|
+
labelPackage: emLabel("view.card.labels.package", "Package"),
|
|
38
|
+
labelVersion: emLabel("view.card.labels.version", "Version"),
|
|
39
|
+
labelActivation: emLabel("view.card.labels.activation", "Activation"),
|
|
40
|
+
labelEnabled: emLabel("view.card.labels.enabled", "Enabled"),
|
|
41
|
+
labelPermissions: emLabel("view.card.labels.permissions", "Permissions"),
|
|
42
|
+
labelCompatibility: emLabel("view.card.labels.compatibility", "Compatibility"),
|
|
43
|
+
labelHealth: emLabel("view.card.labels.health", "Health & diagnostics"),
|
|
44
|
+
labelSettings: emLabel("view.card.labels.settings", "Settings"),
|
|
45
|
+
stateEnabled: emLabel("view.card.state.enabled", "yes"),
|
|
46
|
+
stateDisabled: emLabel("view.card.state.disabled", "no"),
|
|
47
|
+
compatibilityOk: emLabel("view.card.compatibility.ok", "Compatible with the current host, runtime, and theme contract."),
|
|
48
|
+
compatibilityError: emLabel("view.card.compatibility.error", "One or more compatibility issues were detected."),
|
|
49
|
+
noDiagnostics: emLabel("view.card.health.noDiagnostics", "No runtime diagnostics recorded."),
|
|
50
|
+
lastError: emLabel("view.card.health.lastError", "Last error"),
|
|
51
|
+
settingsEnabled: emLabel("settings.form.state.enabled", "Enabled"),
|
|
52
|
+
settingsDisabled: emLabel("settings.form.state.disabled", "Disabled"),
|
|
53
|
+
readyDiagnostic: emLabel("diagnostics.ready", "Extension Manager activated successfully."),
|
|
54
|
+
};
|
|
55
|
+
export const extensionManagerLocaleLoader = {
|
|
56
|
+
defaultLocale: "en",
|
|
57
|
+
fallbackLocale: "en",
|
|
58
|
+
loaders: {
|
|
59
|
+
en: async () => (await import("./locales/en.js")).extensionManagerEnCatalog,
|
|
60
|
+
es: async () => (await import("./locales/es.js")).extensionManagerEsCatalog,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=i18n.js.map
|
package/dist/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./version.js";
|
|
2
|
+
export * from "./types.js";
|
|
3
|
+
export * from "./constants.js";
|
|
4
|
+
export * from "./i18n.js";
|
|
5
|
+
export * from "./manifest.js";
|
|
6
|
+
export * from "./createExtensionManagerBundledEntry.js";
|
|
7
|
+
export * from "./components/ExtensionManagerView.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./version.js";
|
|
2
|
+
export * from "./types.js";
|
|
3
|
+
export * from "./constants.js";
|
|
4
|
+
export * from "./i18n.js";
|
|
5
|
+
export * from "./manifest.js";
|
|
6
|
+
export * from "./createExtensionManagerBundledEntry.js";
|
|
7
|
+
export * from "./components/ExtensionManagerView.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,eAAO,MAAM,yBAAyB,EAAE,sBAiDvC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const extensionManagerEnCatalog = {
|
|
2
|
+
locale: "en",
|
|
3
|
+
messages: {
|
|
4
|
+
"manifest.displayName": "Extension Manager",
|
|
5
|
+
"manifest.description": "Bundled operator console for browsing, enabling, disabling, diagnosing, and configuring extensions.",
|
|
6
|
+
"commands.open.title": "Open Extension Manager",
|
|
7
|
+
"commands.open.description": "Open the bundled extension operator console.",
|
|
8
|
+
"views.manager.title": "Extension Manager",
|
|
9
|
+
"views.manager.description": "Browse installed extensions, toggle enablement, inspect permissions, and edit extension settings.",
|
|
10
|
+
"rail.title": "Extensions",
|
|
11
|
+
"settings.title": "Extension Manager Preferences",
|
|
12
|
+
"settings.sections.display.title": "Display",
|
|
13
|
+
"settings.sections.display.description": "Controls the default information density for the extension manager.",
|
|
14
|
+
"settings.fields.showCompatibilityByDefault.label": "Show compatibility details by default",
|
|
15
|
+
"settings.fields.showCompatibilityByDefault.description": "Expand compatibility information for each extension when the manager opens.",
|
|
16
|
+
"settings.fields.showDiagnosticsByDefault.label": "Show diagnostics by default",
|
|
17
|
+
"settings.fields.showDiagnosticsByDefault.description": "Expand runtime diagnostics for each extension when the manager opens.",
|
|
18
|
+
"view.header.title": "Extension Manager",
|
|
19
|
+
"view.header.subtitle": "Bundled extension catalog, enablement controls, permissions, compatibility, diagnostics, and settings.",
|
|
20
|
+
"view.actions.exit": "Exit",
|
|
21
|
+
"view.actions.close": "Close",
|
|
22
|
+
"view.stats.extensions": "Extensions",
|
|
23
|
+
"view.stats.active": "Active",
|
|
24
|
+
"view.stats.disabled": "Disabled",
|
|
25
|
+
"view.stats.incompatible": "Incompatible",
|
|
26
|
+
"view.card.source.bundled": "Bundled",
|
|
27
|
+
"view.card.source.installed": "Installed",
|
|
28
|
+
"view.card.actions.enable": "Enable",
|
|
29
|
+
"view.card.actions.disable": "Disable",
|
|
30
|
+
"view.card.actions.activate": "Activate",
|
|
31
|
+
"view.card.actions.deactivate": "Deactivate",
|
|
32
|
+
"view.card.labels.package": "Package",
|
|
33
|
+
"view.card.labels.version": "Version",
|
|
34
|
+
"view.card.labels.activation": "Activation",
|
|
35
|
+
"view.card.labels.enabled": "Enabled",
|
|
36
|
+
"view.card.labels.permissions": "Permissions",
|
|
37
|
+
"view.card.labels.compatibility": "Compatibility",
|
|
38
|
+
"view.card.labels.health": "Health & diagnostics",
|
|
39
|
+
"view.card.labels.settings": "Settings",
|
|
40
|
+
"view.card.state.enabled": "yes",
|
|
41
|
+
"view.card.state.disabled": "no",
|
|
42
|
+
"view.card.compatibility.ok": "Compatible with the current host, runtime, and theme contract.",
|
|
43
|
+
"view.card.compatibility.error": "One or more compatibility issues were detected.",
|
|
44
|
+
"view.card.health.noDiagnostics": "No runtime diagnostics recorded.",
|
|
45
|
+
"view.card.health.lastError": "Last error",
|
|
46
|
+
"settings.form.state.enabled": "Enabled",
|
|
47
|
+
"settings.form.state.disabled": "Disabled",
|
|
48
|
+
"diagnostics.ready": "Extension Manager activated successfully."
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE;QACR,sBAAsB,EAAE,mBAAmB;QAC3C,sBAAsB,EAAE,qGAAqG;QAC7H,qBAAqB,EAAE,wBAAwB;QAC/C,2BAA2B,EAAE,8CAA8C;QAC3E,qBAAqB,EAAE,mBAAmB;QAC1C,2BAA2B,EAAE,mGAAmG;QAChI,YAAY,EAAE,YAAY;QAC1B,gBAAgB,EAAE,+BAA+B;QACjD,iCAAiC,EAAE,SAAS;QAC5C,uCAAuC,EAAE,qEAAqE;QAC9G,kDAAkD,EAAE,uCAAuC;QAC3F,wDAAwD,EAAE,6EAA6E;QACvI,gDAAgD,EAAE,6BAA6B;QAC/E,sDAAsD,EAAE,uEAAuE;QAC/H,mBAAmB,EAAE,mBAAmB;QACxC,sBAAsB,EAAE,wGAAwG;QAChI,mBAAmB,EAAE,MAAM;QAC3B,oBAAoB,EAAE,OAAO;QAC7B,uBAAuB,EAAE,YAAY;QACrC,mBAAmB,EAAE,QAAQ;QAC7B,qBAAqB,EAAE,UAAU;QACjC,yBAAyB,EAAE,cAAc;QACzC,0BAA0B,EAAE,SAAS;QACrC,4BAA4B,EAAE,WAAW;QACzC,0BAA0B,EAAE,QAAQ;QACpC,2BAA2B,EAAE,SAAS;QACtC,4BAA4B,EAAE,UAAU;QACxC,8BAA8B,EAAE,YAAY;QAC5C,0BAA0B,EAAE,SAAS;QACrC,0BAA0B,EAAE,SAAS;QACrC,6BAA6B,EAAE,YAAY;QAC3C,0BAA0B,EAAE,SAAS;QACrC,8BAA8B,EAAE,aAAa;QAC7C,gCAAgC,EAAE,eAAe;QACjD,yBAAyB,EAAE,sBAAsB;QACjD,2BAA2B,EAAE,UAAU;QACvC,yBAAyB,EAAE,KAAK;QAChC,0BAA0B,EAAE,IAAI;QAChC,4BAA4B,EAAE,gEAAgE;QAC9F,+BAA+B,EAAE,iDAAiD;QAClF,gCAAgC,EAAE,kCAAkC;QACpE,4BAA4B,EAAE,YAAY;QAC1C,6BAA6B,EAAE,SAAS;QACxC,8BAA8B,EAAE,UAAU;QAC1C,mBAAmB,EAAE,2CAA2C;KACjE;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/locales/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,eAAO,MAAM,yBAAyB,EAAE,sBAiDvC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const extensionManagerEsCatalog = {
|
|
2
|
+
locale: "es",
|
|
3
|
+
messages: {
|
|
4
|
+
"manifest.displayName": "Administrador de extensiones",
|
|
5
|
+
"manifest.description": "Consola operativa integrada para explorar, habilitar, deshabilitar, diagnosticar y configurar extensiones.",
|
|
6
|
+
"commands.open.title": "Abrir administrador de extensiones",
|
|
7
|
+
"commands.open.description": "Abre la consola operativa integrada de extensiones.",
|
|
8
|
+
"views.manager.title": "Administrador de extensiones",
|
|
9
|
+
"views.manager.description": "Explora extensiones instaladas, cambia su estado, revisa permisos y edita su configuración.",
|
|
10
|
+
"rail.title": "Extensiones",
|
|
11
|
+
"settings.title": "Preferencias del administrador de extensiones",
|
|
12
|
+
"settings.sections.display.title": "Visualización",
|
|
13
|
+
"settings.sections.display.description": "Controla la densidad de información predeterminada del administrador de extensiones.",
|
|
14
|
+
"settings.fields.showCompatibilityByDefault.label": "Mostrar compatibilidad por defecto",
|
|
15
|
+
"settings.fields.showCompatibilityByDefault.description": "Expande la información de compatibilidad de cada extensión cuando se abre el administrador.",
|
|
16
|
+
"settings.fields.showDiagnosticsByDefault.label": "Mostrar diagnósticos por defecto",
|
|
17
|
+
"settings.fields.showDiagnosticsByDefault.description": "Expande los diagnósticos de ejecución de cada extensión cuando se abre el administrador.",
|
|
18
|
+
"view.header.title": "Administrador de extensiones",
|
|
19
|
+
"view.header.subtitle": "Catálogo integrado de extensiones, controles de habilitación, permisos, compatibilidad, diagnósticos y configuración.",
|
|
20
|
+
"view.actions.exit": "Salir",
|
|
21
|
+
"view.actions.close": "Cerrar",
|
|
22
|
+
"view.stats.extensions": "Extensiones",
|
|
23
|
+
"view.stats.active": "Activas",
|
|
24
|
+
"view.stats.disabled": "Deshabilitadas",
|
|
25
|
+
"view.stats.incompatible": "Incompatibles",
|
|
26
|
+
"view.card.source.bundled": "Integrada",
|
|
27
|
+
"view.card.source.installed": "Instalada",
|
|
28
|
+
"view.card.actions.enable": "Habilitar",
|
|
29
|
+
"view.card.actions.disable": "Deshabilitar",
|
|
30
|
+
"view.card.actions.activate": "Activar",
|
|
31
|
+
"view.card.actions.deactivate": "Desactivar",
|
|
32
|
+
"view.card.labels.package": "Paquete",
|
|
33
|
+
"view.card.labels.version": "Versión",
|
|
34
|
+
"view.card.labels.activation": "Activación",
|
|
35
|
+
"view.card.labels.enabled": "Habilitada",
|
|
36
|
+
"view.card.labels.permissions": "Permisos",
|
|
37
|
+
"view.card.labels.compatibility": "Compatibilidad",
|
|
38
|
+
"view.card.labels.health": "Salud y diagnósticos",
|
|
39
|
+
"view.card.labels.settings": "Configuración",
|
|
40
|
+
"view.card.state.enabled": "sí",
|
|
41
|
+
"view.card.state.disabled": "no",
|
|
42
|
+
"view.card.compatibility.ok": "Compatible con el host, el runtime y el contrato de temas actuales.",
|
|
43
|
+
"view.card.compatibility.error": "Se detectaron uno o más problemas de compatibilidad.",
|
|
44
|
+
"view.card.health.noDiagnostics": "No hay diagnósticos de ejecución registrados.",
|
|
45
|
+
"view.card.health.lastError": "Último error",
|
|
46
|
+
"settings.form.state.enabled": "Habilitada",
|
|
47
|
+
"settings.form.state.disabled": "Deshabilitada",
|
|
48
|
+
"diagnostics.ready": "El Administrador de extensiones se activó correctamente."
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/locales/es.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE;QACR,sBAAsB,EAAE,8BAA8B;QACtD,sBAAsB,EAAE,4GAA4G;QACpI,qBAAqB,EAAE,oCAAoC;QAC3D,2BAA2B,EAAE,qDAAqD;QAClF,qBAAqB,EAAE,8BAA8B;QACrD,2BAA2B,EAAE,6FAA6F;QAC1H,YAAY,EAAE,aAAa;QAC3B,gBAAgB,EAAE,+CAA+C;QACjE,iCAAiC,EAAE,eAAe;QAClD,uCAAuC,EAAE,sFAAsF;QAC/H,kDAAkD,EAAE,oCAAoC;QACxF,wDAAwD,EAAE,6FAA6F;QACvJ,gDAAgD,EAAE,kCAAkC;QACpF,sDAAsD,EAAE,0FAA0F;QAClJ,mBAAmB,EAAE,8BAA8B;QACnD,sBAAsB,EAAE,uHAAuH;QAC/I,mBAAmB,EAAE,OAAO;QAC5B,oBAAoB,EAAE,QAAQ;QAC9B,uBAAuB,EAAE,aAAa;QACtC,mBAAmB,EAAE,SAAS;QAC9B,qBAAqB,EAAE,gBAAgB;QACvC,yBAAyB,EAAE,eAAe;QAC1C,0BAA0B,EAAE,WAAW;QACvC,4BAA4B,EAAE,WAAW;QACzC,0BAA0B,EAAE,WAAW;QACvC,2BAA2B,EAAE,cAAc;QAC3C,4BAA4B,EAAE,SAAS;QACvC,8BAA8B,EAAE,YAAY;QAC5C,0BAA0B,EAAE,SAAS;QACrC,0BAA0B,EAAE,SAAS;QACrC,6BAA6B,EAAE,YAAY;QAC3C,0BAA0B,EAAE,YAAY;QACxC,8BAA8B,EAAE,UAAU;QAC1C,gCAAgC,EAAE,gBAAgB;QAClD,yBAAyB,EAAE,sBAAsB;QACjD,2BAA2B,EAAE,eAAe;QAC5C,yBAAyB,EAAE,IAAI;QAC/B,0BAA0B,EAAE,IAAI;QAChC,4BAA4B,EAAE,qEAAqE;QACnG,+BAA+B,EAAE,sDAAsD;QACvF,gCAAgC,EAAE,+CAA+C;QACjF,4BAA4B,EAAE,cAAc;QAC5C,6BAA6B,EAAE,YAAY;QAC3C,8BAA8B,EAAE,eAAe;QAC/C,mBAAmB,EAAE,0DAA0D;KAChF;CACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ExtensionManifest } from "@mdwrk/extension-manifest";
|
|
2
|
+
export declare const extensionManagerManifest: ExtensionManifest;
|
|
3
|
+
export { EXTENSION_MANAGER_COMMAND_ID, EXTENSION_MANAGER_EXTENSION_ID, EXTENSION_MANAGER_RAIL_ID, EXTENSION_MANAGER_VIEW_ID, } from "./constants.js";
|
|
4
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAUnE,eAAO,MAAM,wBAAwB,EAAE,iBAgGtC,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC"}
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { EXTENSION_MANAGER_COMMAND_ID, EXTENSION_MANAGER_EXTENSION_ID, EXTENSION_MANAGER_RAIL_ID, EXTENSION_MANAGER_VIEW_ID, } from "./constants.js";
|
|
2
|
+
import { extensionManagerLabels } from "./i18n.js";
|
|
3
|
+
import { EXTENSION_MANAGER_VERSION } from "./version.js";
|
|
4
|
+
export const extensionManagerManifest = {
|
|
5
|
+
manifestVersion: 1,
|
|
6
|
+
id: EXTENSION_MANAGER_EXTENSION_ID,
|
|
7
|
+
packageName: "@mdwrk/extension-manager",
|
|
8
|
+
version: EXTENSION_MANAGER_VERSION,
|
|
9
|
+
displayName: extensionManagerLabels.manifestDisplayName,
|
|
10
|
+
description: extensionManagerLabels.manifestDescription,
|
|
11
|
+
kind: "bundled",
|
|
12
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
13
|
+
enabledByDefault: true,
|
|
14
|
+
capabilities: ["view.register", "actionRail.register"],
|
|
15
|
+
compatibility: {
|
|
16
|
+
manifestVersion: 1,
|
|
17
|
+
hostApi: "^1.0.0",
|
|
18
|
+
runtime: "^1.0.0",
|
|
19
|
+
app: ">=1.3.49",
|
|
20
|
+
themeContract: "^1.0.0",
|
|
21
|
+
},
|
|
22
|
+
entry: {
|
|
23
|
+
module: "./index.js",
|
|
24
|
+
export: "createExtensionManagerBundledEntry",
|
|
25
|
+
},
|
|
26
|
+
i18n: {
|
|
27
|
+
defaultLocale: "en",
|
|
28
|
+
supportedLocales: ["en", "es"],
|
|
29
|
+
catalogs: [
|
|
30
|
+
{ locale: "en", path: "./locales/en.js" },
|
|
31
|
+
{ locale: "es", path: "./locales/es.js" },
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
contributions: {
|
|
35
|
+
commands: [
|
|
36
|
+
{
|
|
37
|
+
id: EXTENSION_MANAGER_COMMAND_ID,
|
|
38
|
+
title: extensionManagerLabels.commandOpenTitle,
|
|
39
|
+
description: extensionManagerLabels.commandOpenDescription,
|
|
40
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
41
|
+
keywords: ["extension", "manager", "bundled"],
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
views: [
|
|
45
|
+
{
|
|
46
|
+
id: EXTENSION_MANAGER_VIEW_ID,
|
|
47
|
+
title: extensionManagerLabels.viewTitle,
|
|
48
|
+
description: extensionManagerLabels.viewDescription,
|
|
49
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
50
|
+
location: "modal",
|
|
51
|
+
allowMultiple: false,
|
|
52
|
+
canBePinned: false,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
components: [],
|
|
56
|
+
actionRail: [
|
|
57
|
+
{
|
|
58
|
+
id: EXTENSION_MANAGER_RAIL_ID,
|
|
59
|
+
title: extensionManagerLabels.railTitle,
|
|
60
|
+
icon: { kind: "lucide", name: "Puzzle" },
|
|
61
|
+
group: "extensions",
|
|
62
|
+
order: 0,
|
|
63
|
+
target: {
|
|
64
|
+
kind: "view",
|
|
65
|
+
viewId: EXTENSION_MANAGER_VIEW_ID,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
settingsSections: [],
|
|
70
|
+
},
|
|
71
|
+
settingsSchema: {
|
|
72
|
+
version: 1,
|
|
73
|
+
title: extensionManagerLabels.settingsTitle,
|
|
74
|
+
sections: [
|
|
75
|
+
{
|
|
76
|
+
id: "display",
|
|
77
|
+
title: extensionManagerLabels.settingsDisplayTitle,
|
|
78
|
+
description: extensionManagerLabels.settingsDisplayDescription,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
fields: [
|
|
82
|
+
{
|
|
83
|
+
key: "showCompatibilityByDefault",
|
|
84
|
+
kind: "boolean",
|
|
85
|
+
sectionId: "display",
|
|
86
|
+
label: extensionManagerLabels.showCompatibilityLabel,
|
|
87
|
+
description: extensionManagerLabels.showCompatibilityDescription,
|
|
88
|
+
defaultValue: true,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
key: "showDiagnosticsByDefault",
|
|
92
|
+
kind: "boolean",
|
|
93
|
+
sectionId: "display",
|
|
94
|
+
label: extensionManagerLabels.showDiagnosticsLabel,
|
|
95
|
+
description: extensionManagerLabels.showDiagnosticsDescription,
|
|
96
|
+
defaultValue: true,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
export { EXTENSION_MANAGER_COMMAND_ID, EXTENSION_MANAGER_EXTENSION_ID, EXTENSION_MANAGER_RAIL_ID, EXTENSION_MANAGER_VIEW_ID, } from "./constants.js";
|
|
102
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,EAAG,OAAgB,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAgB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mdwrk/extension-manager",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=20 <23"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"sideEffects": false,
|
|
17
|
+
"keywords": [
|
|
18
|
+
"markdown-workspace",
|
|
19
|
+
"extension",
|
|
20
|
+
"manager",
|
|
21
|
+
"runtime",
|
|
22
|
+
"react"
|
|
23
|
+
],
|
|
24
|
+
"description": "First-party bundled operator console extension for browsing, enabling, disabling, diagnosing, and configuring Markdown Workspace extensions.",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@mdwrk/extension-host": "^1.0.1",
|
|
27
|
+
"@mdwrk/extension-manifest": "^1.0.0",
|
|
28
|
+
"@mdwrk/extension-runtime": "^1.0.1",
|
|
29
|
+
"lucide-react": "^0.475.0"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"react": "^19.0.0",
|
|
33
|
+
"react-dom": "^19.0.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@mdwrk/testing": "^1.0.0",
|
|
37
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
38
|
+
"@testing-library/react": "^16.1.0",
|
|
39
|
+
"@types/react": "^19.0.8",
|
|
40
|
+
"@types/react-dom": "^19.0.3",
|
|
41
|
+
"jsdom": "^25.0.1",
|
|
42
|
+
"vitest": "^2.1.8"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build:deps": "npm run build -w @mdwrk/extension-manifest && npm run build -w @mdwrk/extension-host && npm run build -w @mdwrk/extension-runtime",
|
|
46
|
+
"build": "npm run build:deps && tsc -p tsconfig.json",
|
|
47
|
+
"typecheck": "npm run build:deps && tsc --noEmit -p tsconfig.json",
|
|
48
|
+
"lint": "npm run typecheck",
|
|
49
|
+
"test": "vitest run tests/extension-manager.test.tsx --pool=forks --minWorkers=1 --maxWorkers=1",
|
|
50
|
+
"prepack": "npm run build"
|
|
51
|
+
},
|
|
52
|
+
"exports": {
|
|
53
|
+
".": {
|
|
54
|
+
"types": "./dist/index.d.ts",
|
|
55
|
+
"import": "./dist/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./version": {
|
|
58
|
+
"types": "./dist/version.d.ts",
|
|
59
|
+
"import": "./dist/version.js"
|
|
60
|
+
},
|
|
61
|
+
"./manifest": {
|
|
62
|
+
"types": "./dist/manifest.d.ts",
|
|
63
|
+
"import": "./dist/manifest.js"
|
|
64
|
+
},
|
|
65
|
+
"./types": {
|
|
66
|
+
"types": "./dist/types.d.ts",
|
|
67
|
+
"import": "./dist/types.js"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"main": "./dist/index.js",
|
|
71
|
+
"types": "./dist/index.d.ts",
|
|
72
|
+
"author": "Jacob Stewart <jacob@swarmauri.com>",
|
|
73
|
+
"homepage": "https://mdwrk.com"
|
|
74
|
+
}
|