@mdwrk/extension-language-pack-studio 1.0.3
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 +11 -0
- package/dist/components/LanguagePackStudioSettingsPanel.d.ts +10 -0
- package/dist/components/LanguagePackStudioSettingsPanel.d.ts.map +1 -0
- package/dist/components/LanguagePackStudioSettingsPanel.js +10 -0
- package/dist/components/LanguagePackStudioSettingsPanel.js.map +1 -0
- package/dist/components/LanguagePackStudioView.d.ts +14 -0
- package/dist/components/LanguagePackStudioView.d.ts.map +1 -0
- package/dist/components/LanguagePackStudioView.js +140 -0
- package/dist/components/LanguagePackStudioView.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/createLanguagePackStudioBundledEntry.d.ts +4 -0
- package/dist/createLanguagePackStudioBundledEntry.d.ts.map +1 -0
- package/dist/createLanguagePackStudioBundledEntry.js +59 -0
- package/dist/createLanguagePackStudioBundledEntry.js.map +1 -0
- package/dist/i18n.d.ts +16 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +24 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -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 +16 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/manifest.d.ts +3 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +80 -0
- package/dist/manifest.js.map +1 -0
- package/dist/types.d.ts +40 -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 +56 -0
- package/sample-packs/de.language-pack.json +19 -0
package/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# @mdwrk/extension-language-pack-studio
|
|
2
|
+
|
|
3
|
+
Bundled language-pack studio extension for Markdown Workspace.
|
|
4
|
+
|
|
5
|
+
## Capabilities
|
|
6
|
+
|
|
7
|
+
- pane-first language-pack management for built-in and installed packs
|
|
8
|
+
- settings-menu summary content that opens the full workspace pane
|
|
9
|
+
- enable / disable all language packs including built-ins
|
|
10
|
+
- IndexedDB-backed persistence for installed packs and built-in disablement
|
|
11
|
+
- single-pane, split-screen, and collapsible workspace-sidebar layouts
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { I18nLabel } from "@mdwrk/extension-manifest";
|
|
3
|
+
import type { LanguagePackStudioController } from "../types.js";
|
|
4
|
+
export interface LanguagePackStudioSettingsPanelProps {
|
|
5
|
+
readonly controller: LanguagePackStudioController;
|
|
6
|
+
readonly open: () => Promise<void>;
|
|
7
|
+
readonly formatLabel: (label: I18nLabel | string) => string;
|
|
8
|
+
}
|
|
9
|
+
export declare const LanguagePackStudioSettingsPanel: React.FC<LanguagePackStudioSettingsPanelProps>;
|
|
10
|
+
//# sourceMappingURL=LanguagePackStudioSettingsPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguagePackStudioSettingsPanel.d.ts","sourceRoot":"","sources":["../../src/components/LanguagePackStudioSettingsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;CAC7D;AAED,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC,oCAAoC,CAqC1F,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { useSyncExternalStore } from "react";
|
|
4
|
+
export const LanguagePackStudioSettingsPanel = ({ controller, open, formatLabel, }) => {
|
|
5
|
+
const snapshot = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
|
|
6
|
+
const builtIns = snapshot.packs.filter((pack) => pack.source === "built-in").length;
|
|
7
|
+
const installed = snapshot.packs.filter((pack) => pack.source === "installed").length;
|
|
8
|
+
return (_jsx("div", { className: "settings-pane", children: _jsxs("div", { className: "settings-card settings-card-stack", children: [_jsxs("div", { style: { display: "grid", gap: 6 }, children: [_jsx("span", { className: "settings-session-label", children: formatLabel("LANGUAGE_PACK_STUDIO") }), _jsx("strong", { style: { fontSize: 13 }, children: formatLabel("Language Pack Studio") }), _jsx("p", { style: { margin: 0, fontSize: 11, color: "var(--fg-muted)", lineHeight: 1.4 }, children: formatLabel("Use the pane workspace for token audits, import/export, built-in enablement, and pack authoring.") })] }), _jsxs("div", { className: "settings-session-grid", children: [_jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "PACKS" }), _jsx("span", { className: "settings-session-value", children: snapshot.packs.length })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "BUILT_IN" }), _jsx("span", { className: "settings-session-value", children: builtIns })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "INSTALLED" }), _jsx("span", { className: "settings-session-value", children: installed })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "ACTIVE" }), _jsx("span", { className: "settings-session-value", children: snapshot.activeLocale })] })] }), _jsxs("div", { className: "settings-chip-row", children: [_jsxs("span", { className: "settings-chip", children: [builtIns, " BUILT_IN"] }), _jsxs("span", { className: "settings-chip", children: [snapshot.packs.filter((pack) => pack.enabled).length, " ENABLED"] }), _jsx("span", { className: "settings-chip", children: "EN_FALLBACK" }), _jsx("span", { className: "settings-chip", children: "INDEXEDDB" })] }), _jsx("div", { className: "settings-action-row", style: { padding: 6 }, children: _jsx("button", { type: "button", className: "modal-btn modal-btn-primary", onClick: () => void open(), children: "OPEN_STUDIO" }) })] }) }));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=LanguagePackStudioSettingsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguagePackStudioSettingsPanel.js","sourceRoot":"","sources":["../../src/components/LanguagePackStudioSettingsPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAS7C,MAAM,CAAC,MAAM,+BAA+B,GAAmD,CAAC,EAC9F,UAAU,EACV,IAAI,EACJ,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IACpF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IAEtF,OAAO,CACL,cAAK,SAAS,EAAC,eAAe,YAC5B,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,aACrC,eAAM,SAAS,EAAC,wBAAwB,YAAE,WAAW,CAAC,sBAAsB,CAAC,GAAQ,EACrF,iBAAQ,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,WAAW,CAAC,sBAAsB,CAAC,GAAU,EAC/E,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,EAAE,YAC7E,WAAW,CAAC,kGAAkG,CAAC,GAC9G,IACA,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,sBAAa,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAQ,IAAM,EACzK,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,yBAAgB,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,QAAQ,GAAQ,IAAM,EAC/J,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,0BAAiB,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,SAAS,GAAQ,IAAM,EACjK,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAM,SAAS,EAAC,wBAAwB,uBAAc,EAAA,eAAM,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,YAAY,GAAQ,IAAM,IACtK,EACN,eAAK,SAAS,EAAC,mBAAmB,aAChC,gBAAM,SAAS,EAAC,eAAe,aAAE,QAAQ,iBAAiB,EAC1D,gBAAM,SAAS,EAAC,eAAe,aAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,gBAAgB,EACrG,eAAM,SAAS,EAAC,eAAe,4BAAmB,EAClD,eAAM,SAAS,EAAC,eAAe,0BAAiB,IAC5C,EACN,cAAK,SAAS,EAAC,qBAAqB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,YACxD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,6BAA6B,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,4BAAsB,GAC1G,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type FC } from "react";
|
|
2
|
+
import type { I18nLabel } from "@mdwrk/extension-manifest";
|
|
3
|
+
import type { LanguagePackStudioController } from "../types.js";
|
|
4
|
+
export interface LanguagePackStudioViewProps {
|
|
5
|
+
readonly controller: LanguagePackStudioController;
|
|
6
|
+
readonly close: () => Promise<void>;
|
|
7
|
+
readonly formatLabel: (label: I18nLabel | string) => string;
|
|
8
|
+
readonly shellSidebarOpen?: boolean;
|
|
9
|
+
readonly onShellSidebarToggle?: (open: boolean) => void;
|
|
10
|
+
readonly embedBrowserInShellSidebar?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const LanguagePackStudioSidebar: FC<Pick<LanguagePackStudioViewProps, "controller">>;
|
|
13
|
+
export declare const LanguagePackStudioView: FC<LanguagePackStudioViewProps>;
|
|
14
|
+
//# sourceMappingURL=LanguagePackStudioView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguagePackStudioView.d.ts","sourceRoot":"","sources":["../../src/components/LanguagePackStudioView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,EAAE,EAAwE,MAAM,OAAO,CAAC;AAC1H,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAgB3D,OAAO,KAAK,EAAE,4BAA4B,EAA8B,MAAM,aAAa,CAAC;AAuB5F,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,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,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CAC/C;AA+HD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAGzF,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CA8PlE,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useDeferredValue, useEffect, useMemo, useState, useSyncExternalStore } from "react";
|
|
3
|
+
import { Columns2, Download, Languages, PackagePlus, Sidebar, SidebarOpen, Power, PowerOff, Square, SplitSquareHorizontal, Trash2, Upload, X, } from "lucide-react";
|
|
4
|
+
function downloadJson(filename, value) {
|
|
5
|
+
const blob = new Blob([JSON.stringify(value, null, 2)], { type: "application/json" });
|
|
6
|
+
const url = URL.createObjectURL(blob);
|
|
7
|
+
const link = document.createElement("a");
|
|
8
|
+
link.href = url;
|
|
9
|
+
link.download = filename;
|
|
10
|
+
link.click();
|
|
11
|
+
URL.revokeObjectURL(url);
|
|
12
|
+
}
|
|
13
|
+
const denseInputStyle = {
|
|
14
|
+
width: "100%",
|
|
15
|
+
border: "1px solid var(--border-color)",
|
|
16
|
+
background: "var(--bg-panel)",
|
|
17
|
+
color: "var(--fg-primary)",
|
|
18
|
+
borderRadius: 8,
|
|
19
|
+
padding: "8px 10px",
|
|
20
|
+
fontSize: 11,
|
|
21
|
+
lineHeight: 1.4,
|
|
22
|
+
};
|
|
23
|
+
const createLanguageBrowserStore = () => {
|
|
24
|
+
let state = { browserQuery: "", browserFilter: "all", selectedLocale: null };
|
|
25
|
+
const listeners = new Set();
|
|
26
|
+
return {
|
|
27
|
+
getSnapshot: () => state,
|
|
28
|
+
subscribe(listener) {
|
|
29
|
+
listeners.add(listener);
|
|
30
|
+
return () => listeners.delete(listener);
|
|
31
|
+
},
|
|
32
|
+
setState(update) {
|
|
33
|
+
state = { ...state, ...update };
|
|
34
|
+
listeners.forEach((listener) => listener());
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const languageBrowserStores = new WeakMap();
|
|
39
|
+
const getLanguageBrowserStore = (controller) => {
|
|
40
|
+
let store = languageBrowserStores.get(controller);
|
|
41
|
+
if (!store) {
|
|
42
|
+
store = createLanguageBrowserStore();
|
|
43
|
+
languageBrowserStores.set(controller, store);
|
|
44
|
+
}
|
|
45
|
+
return store;
|
|
46
|
+
};
|
|
47
|
+
function useLanguageBrowserState(controller) {
|
|
48
|
+
const store = getLanguageBrowserStore(controller);
|
|
49
|
+
const state = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
|
|
50
|
+
return { state, setState: store.setState };
|
|
51
|
+
}
|
|
52
|
+
function LanguagePackBrowserSidebar({ controller, snapshot, }) {
|
|
53
|
+
const { state, setState } = useLanguageBrowserState(controller);
|
|
54
|
+
const deferredBrowserQuery = useDeferredValue(state.browserQuery.trim().toLowerCase());
|
|
55
|
+
const builtInPackCount = snapshot.packs.filter((pack) => pack.source === "built-in").length;
|
|
56
|
+
const installedPackCount = snapshot.packs.filter((pack) => pack.source === "installed").length;
|
|
57
|
+
const filteredPacks = useMemo(() => snapshot.packs.filter((pack) => {
|
|
58
|
+
if (state.browserFilter === "built-in" && pack.source !== "built-in")
|
|
59
|
+
return false;
|
|
60
|
+
if (state.browserFilter === "installed" && pack.source !== "installed")
|
|
61
|
+
return false;
|
|
62
|
+
if (state.browserFilter === "disabled" && pack.enabled)
|
|
63
|
+
return false;
|
|
64
|
+
if (!deferredBrowserQuery)
|
|
65
|
+
return true;
|
|
66
|
+
const haystack = `${pack.locale} ${pack.label} ${pack.source} ${pack.enabled ? "enabled" : "disabled"}`.toLowerCase();
|
|
67
|
+
return haystack.includes(deferredBrowserQuery);
|
|
68
|
+
}), [deferredBrowserQuery, snapshot.packs, state.browserFilter]);
|
|
69
|
+
return (_jsxs("div", { className: "workspace-panel-content", style: { display: "grid", gap: 12, padding: 12 }, children: [_jsxs("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: "PACKS" }), _jsx("span", { className: "settings-session-value", children: snapshot.packs.length })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "ENABLED" }), _jsx("span", { className: "settings-session-value", children: snapshot.packs.filter((pack) => pack.enabled).length })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "BUILT_IN" }), _jsx("span", { className: "settings-session-value", children: builtInPackCount })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "ACTIVE" }), _jsx("span", { className: "settings-session-value", children: snapshot.activeLocale })] })] }), _jsxs("div", { className: "settings-chip-row", children: [_jsx("span", { className: "settings-chip", children: "LANGUAGE_BROWSER" }), _jsx("span", { className: "settings-chip", children: "INDEXEDDB" }), _jsx("span", { className: "settings-chip", children: "BUILT_IN + INSTALLED" })] })] }), _jsxs("div", { className: "settings-card settings-card-stack", style: { gap: 8 }, children: [_jsx("input", { style: denseInputStyle, value: state.browserQuery, onChange: (event) => setState({ browserQuery: event.target.value }), placeholder: "Filter locale, label, source", "aria-label": "Filter language browser" }), _jsx("div", { className: "settings-chip-row", children: [
|
|
70
|
+
["all", `ALL ${snapshot.packs.length}`],
|
|
71
|
+
["built-in", `BUILT_IN ${builtInPackCount}`],
|
|
72
|
+
["installed", `INSTALLED ${installedPackCount}`],
|
|
73
|
+
["disabled", `DISABLED ${snapshot.packs.filter((pack) => !pack.enabled).length}`],
|
|
74
|
+
].map(([value, label]) => (_jsx("button", { type: "button", className: `view-toolbar-btn ${state.browserFilter === value ? "active" : ""}`, onClick: () => setState({ browserFilter: value }), children: label }, value))) }), filteredPacks.map((pack) => (_jsxs("button", { type: "button", className: `settings-sidebar-btn ${state.selectedLocale === pack.locale ? "active" : ""}`, onClick: () => setState({ selectedLocale: pack.locale }), style: { justifyContent: "space-between", gap: 10 }, children: [_jsx("span", { style: { textAlign: "left" }, children: pack.label }), _jsx("span", { className: "settings-session-label", children: pack.source === "built-in" ? "BUILT_IN" : pack.enabled ? "INSTALLED" : "DISABLED" })] }, `${pack.source}:${pack.locale}`))), filteredPacks.length === 0 && _jsx("span", { className: "text-[11px] text-[var(--fg-muted)]", children: "No language packs match the current browser filter." })] })] }));
|
|
75
|
+
}
|
|
76
|
+
export const LanguagePackStudioSidebar = ({ controller }) => {
|
|
77
|
+
const snapshot = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
|
|
78
|
+
return _jsx(LanguagePackBrowserSidebar, { controller: controller, snapshot: snapshot });
|
|
79
|
+
};
|
|
80
|
+
export const LanguagePackStudioView = ({ controller, close, formatLabel: _formatLabel, shellSidebarOpen, onShellSidebarToggle, embedBrowserInShellSidebar = false, }) => {
|
|
81
|
+
const snapshot = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
|
|
82
|
+
const [importInput, setImportInput] = useState(null);
|
|
83
|
+
const [error, setError] = useState(null);
|
|
84
|
+
const [sidebarOpen, setSidebarOpen] = useState(true);
|
|
85
|
+
const [layoutMode, setLayoutMode] = useState("split");
|
|
86
|
+
const [draftLocale, setDraftLocale] = useState("custom");
|
|
87
|
+
const [draftLabel, setDraftLabel] = useState("Custom Language Pack");
|
|
88
|
+
const [draftMessages, setDraftMessages] = useState('{\n "core.views.settings.title": "System Configuration"\n}');
|
|
89
|
+
const { state: browserState, setState: setBrowserState } = useLanguageBrowserState(controller);
|
|
90
|
+
const effectiveSidebarOpen = embedBrowserInShellSidebar ? (shellSidebarOpen ?? true) : sidebarOpen;
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
if (browserState.selectedLocale && snapshot.packs.some((pack) => pack.locale === browserState.selectedLocale)) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
setBrowserState({ selectedLocale: snapshot.packs[0]?.locale ?? null });
|
|
96
|
+
}, [browserState.selectedLocale, setBrowserState, snapshot.packs]);
|
|
97
|
+
const selectedPack = snapshot.packs.find((pack) => pack.locale === browserState.selectedLocale) ?? null;
|
|
98
|
+
const missingKeys = useMemo(() => {
|
|
99
|
+
if (!selectedPack || selectedPack.source === "built-in") {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return snapshot.tokens.filter((token) => !(token.key in selectedPack.messages));
|
|
103
|
+
}, [selectedPack, snapshot.tokens]);
|
|
104
|
+
const handleImport = async (event) => {
|
|
105
|
+
const file = event.target.files?.[0];
|
|
106
|
+
if (!file)
|
|
107
|
+
return;
|
|
108
|
+
try {
|
|
109
|
+
await controller.importArtifact(await file.text());
|
|
110
|
+
setError(null);
|
|
111
|
+
}
|
|
112
|
+
catch (nextError) {
|
|
113
|
+
setError(nextError instanceof Error ? nextError.message : "Failed to import language pack.");
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
event.target.value = "";
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const handleCreate = async () => {
|
|
120
|
+
try {
|
|
121
|
+
const messages = JSON.parse(draftMessages);
|
|
122
|
+
const pack = await controller.createArtifact({ locale: draftLocale, label: draftLabel, messages, enabled: true });
|
|
123
|
+
downloadJson(`${pack.locale}.language-pack.json`, pack);
|
|
124
|
+
setBrowserState({ selectedLocale: pack.locale });
|
|
125
|
+
setError(null);
|
|
126
|
+
}
|
|
127
|
+
catch (nextError) {
|
|
128
|
+
setError(nextError instanceof Error ? nextError.message : "Failed to create language pack.");
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
return (_jsxs("div", { className: "language-pack-studio-pane editor-pane-container", "data-testid": "language-pack-studio-pane", children: [_jsxs("div", { className: "view-toolbar", "aria-label": "Language Pack Studio toolbar", children: [_jsxs("div", { className: "view-toolbar-group", children: [_jsx("button", { type: "button", className: `view-toolbar-btn ${effectiveSidebarOpen ? "active" : ""}`, title: "Toggle sidebar", onClick: () => embedBrowserInShellSidebar ? onShellSidebarToggle?.(!effectiveSidebarOpen) : setSidebarOpen((current) => !current), children: effectiveSidebarOpen ? _jsx(SidebarOpen, { size: 14 }) : _jsx(Sidebar, { size: 14 }) }), _jsx("button", { type: "button", className: `view-toolbar-btn ${layoutMode === "single" ? "active" : ""}`, title: "Single pane", onClick: () => setLayoutMode("single"), children: _jsx(Square, { size: 14 }) }), _jsx("button", { type: "button", className: `view-toolbar-btn ${layoutMode === "split" ? "active" : ""}`, title: "Split screen", onClick: () => setLayoutMode("split"), children: _jsx(SplitSquareHorizontal, { size: 14 }) })] }), _jsxs("div", { className: "view-toolbar-group", children: [_jsx("span", { className: "view-toolbar-divider" }), _jsx("button", { type: "button", className: "view-toolbar-btn", title: "Import pack", onClick: () => importInput?.click(), children: _jsx(Upload, { size: 14 }) }), _jsx("button", { type: "button", className: "view-toolbar-btn", title: "Enable all packs", onClick: () => { void controller.setAllEnabled(true); }, children: _jsx(Power, { size: 14 }) }), _jsx("button", { type: "button", className: "view-toolbar-btn", title: "Disable all packs", onClick: () => { void controller.setAllEnabled(false); }, children: _jsx(PowerOff, { size: 14 }) })] }), _jsxs("div", { className: "view-toolbar-group", style: { justifyContent: "flex-end" }, children: [_jsx("span", { className: "view-toolbar-divider" }), _jsx("button", { type: "button", className: "view-toolbar-btn", title: "Close studio", onClick: () => void close(), children: _jsx(X, { size: 14 }) })] })] }), _jsxs("div", { className: "editor-pane-shell", children: [_jsx("input", { ref: setImportInput, type: "file", accept: "application/json,.json", hidden: true, onChange: handleImport }), _jsxs("div", { className: "editor-pane-body is-split", children: [!embedBrowserInShellSidebar && sidebarOpen && (_jsxs("aside", { className: `workspace-sidebar editor-pane-column ${sidebarOpen ? "" : "is-collapsed"}`, style: { width: "min(320px, 28vw)", padding: 12, gap: 12 }, children: [_jsx(LanguagePackBrowserSidebar, { controller: controller, snapshot: snapshot }), error && _jsx("p", { style: { margin: 0, fontSize: 11, color: "var(--status-error)" }, children: error })] })), _jsxs("div", { className: "editor-pane-column", style: { flex: 1, padding: 16, gap: 16 }, children: [_jsx("div", { className: "settings-card settings-card-stack", style: { gap: 10 }, children: _jsxs("div", { style: { display: "flex", justifyContent: "space-between", gap: 12, alignItems: "center", flexWrap: "wrap" }, children: [_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { className: "settings-session-label", children: "LANGUAGE_PACK_STUDIO" }), _jsx("strong", { style: { fontSize: 14 }, children: "Workspace language packs" }), _jsx("span", { style: { fontSize: 11, color: "var(--fg-muted)" }, children: "Built-in and installed locale packs share one high-density manager surface." })] }), _jsxs("div", { className: "settings-chip-row", children: [_jsx("span", { className: "settings-chip", children: "INDEXEDDB" }), _jsx("span", { className: "settings-chip", children: "BUILT_IN + INSTALLED" }), _jsx("span", { className: "settings-chip", children: "PANE_ONLY" })] })] }) }), selectedPack && (_jsxs("div", { style: { display: "grid", gap: 16, gridTemplateColumns: layoutMode === "split" ? "minmax(0, 1.15fr) minmax(320px, 0.85fr)" : "minmax(0, 1fr)" }, children: [_jsxs("div", { style: { display: "grid", gap: 16 }, children: [_jsxs("div", { className: "settings-card settings-card-stack", children: [_jsxs("div", { style: { display: "flex", justifyContent: "space-between", gap: 12, flexWrap: "wrap", alignItems: "center" }, children: [_jsxs("div", { children: [_jsx("strong", { style: { fontSize: 14 }, children: selectedPack.label }), _jsxs("p", { style: { margin: "6px 0 0", fontSize: 11, color: "var(--fg-muted)" }, children: [selectedPack.locale, " | ", selectedPack.source.toUpperCase()] })] }), _jsxs("div", { className: "settings-action-row", style: { padding: 8, gap: 8 }, children: [_jsxs("button", { type: "button", className: "modal-btn", onClick: () => { void controller.setEnabled(selectedPack.locale, !selectedPack.enabled); }, children: [selectedPack.enabled ? _jsx(PowerOff, { size: 14 }) : _jsx(Power, { size: 14 }), " ", selectedPack.enabled ? "DISABLE" : "ENABLE"] }), _jsx("button", { type: "button", className: "modal-btn modal-btn-primary", onClick: () => { void controller.activate(selectedPack.locale); }, disabled: !selectedPack.enabled, children: "USE" }), _jsxs("button", { type: "button", className: "modal-btn", onClick: () => {
|
|
132
|
+
const artifact = controller.exportArtifact(selectedPack.locale);
|
|
133
|
+
if (artifact)
|
|
134
|
+
downloadJson(`${selectedPack.locale}.language-pack.json`, artifact);
|
|
135
|
+
}, disabled: selectedPack.source !== "installed", children: [_jsx(Download, { size: 14 }), " EXPORT"] }), _jsxs("button", { type: "button", className: "modal-btn", onClick: () => { void controller.remove(selectedPack.locale); }, disabled: selectedPack.source !== "installed", children: [_jsx(Trash2, { size: 14 }), " REMOVE"] })] })] }), _jsxs("div", { className: "settings-session-grid", children: [_jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "STATUS" }), _jsx("span", { className: "settings-session-value", children: selectedPack.enabled ? "ENABLED" : "DISABLED" })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "SOURCE" }), _jsx("span", { className: "settings-session-value", children: selectedPack.source.toUpperCase() })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "TOKENS" }), _jsx("span", { className: "settings-session-value", children: selectedPack.source === "installed" ? Object.keys(selectedPack.messages).length : "CORE" })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "MISSING" }), _jsx("span", { className: "settings-session-value", children: selectedPack.source === "installed" ? missingKeys.length : "N/A" })] })] })] }), _jsxs("div", { className: "settings-card settings-card-stack", children: [_jsx("strong", { style: { fontSize: 12, textTransform: "uppercase", letterSpacing: "0.08em" }, children: "Token Audit" }), selectedPack.source === "built-in" ? (_jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: "BUILT_IN_LOCALE" }), _jsx("span", { className: "settings-session-value", children: "Core shell catalogs load through the extension-aware i18n fallback chain." })] })) : snapshot.loadingTokens ? (_jsx("span", { className: "text-[11px] text-[var(--fg-muted)]", children: "Loading tokens..." })) : (_jsx("div", { style: { display: "grid", gap: 8, maxHeight: 420, overflow: "auto" }, children: snapshot.tokens.map((token) => {
|
|
136
|
+
const missing = !(token.key in selectedPack.messages);
|
|
137
|
+
return (_jsxs("div", { className: "settings-session-item", style: { borderColor: missing ? "var(--status-error)" : undefined }, children: [_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { className: "settings-session-label", children: token.key }), _jsx("span", { className: "text-[11px] text-[var(--fg-muted)]", children: token.source })] }), _jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { className: "settings-session-value", children: missing ? "MISSING" : "PRESENT" }), _jsx("span", { className: "text-[11px] text-[var(--fg-muted)]", children: selectedPack.messages[token.key] ?? token.defaultMessage })] })] }, token.key));
|
|
138
|
+
}) }))] })] }), layoutMode === "split" && (_jsxs("div", { className: "settings-card settings-card-stack", children: [_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [_jsx(Columns2, { size: 14 }), _jsx("strong", { style: { fontSize: 12, textTransform: "uppercase", letterSpacing: "0.08em" }, children: "Create Language Pack" })] }), _jsxs("div", { className: "settings-grid-2", children: [_jsxs("label", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-[10px] font-bold text-[var(--fg-muted)] uppercase", children: "Locale" }), _jsx("input", { style: denseInputStyle, value: draftLocale, onChange: (event) => setDraftLocale(event.target.value) })] }), _jsxs("label", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-[10px] font-bold text-[var(--fg-muted)] uppercase", children: "Label" }), _jsx("input", { style: denseInputStyle, value: draftLabel, onChange: (event) => setDraftLabel(event.target.value) })] })] }), _jsxs("label", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-[10px] font-bold text-[var(--fg-muted)] uppercase", children: "Messages JSON" }), _jsx("textarea", { style: { ...denseInputStyle, minHeight: 220, fontFamily: "var(--font-mono, monospace)" }, value: draftMessages, onChange: (event) => setDraftMessages(event.target.value) })] }), _jsx("div", { className: "settings-action-row", style: { padding: 8 }, children: _jsxs("button", { type: "button", className: "modal-btn modal-btn-primary", onClick: () => void handleCreate(), children: [_jsx(PackagePlus, { size: 14 }), " CREATE_AND_EXPORT"] }) })] }))] })), layoutMode === "single" && (_jsxs("div", { className: "settings-card settings-card-stack", children: [_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [_jsx(Languages, { size: 14 }), _jsx("strong", { style: { fontSize: 12, textTransform: "uppercase", letterSpacing: "0.08em" }, children: "Create Language Pack" })] }), _jsxs("div", { className: "settings-grid-2", children: [_jsxs("label", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-[10px] font-bold text-[var(--fg-muted)] uppercase", children: "Locale" }), _jsx("input", { style: denseInputStyle, value: draftLocale, onChange: (event) => setDraftLocale(event.target.value) })] }), _jsxs("label", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-[10px] font-bold text-[var(--fg-muted)] uppercase", children: "Label" }), _jsx("input", { style: denseInputStyle, value: draftLabel, onChange: (event) => setDraftLabel(event.target.value) })] })] }), _jsxs("label", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-[10px] font-bold text-[var(--fg-muted)] uppercase", children: "Messages JSON" }), _jsx("textarea", { style: { ...denseInputStyle, minHeight: 180, fontFamily: "var(--font-mono, monospace)" }, value: draftMessages, onChange: (event) => setDraftMessages(event.target.value) })] }), _jsx("div", { className: "settings-action-row", style: { padding: 8 }, children: _jsxs("button", { type: "button", className: "modal-btn modal-btn-primary", onClick: () => void handleCreate(), children: [_jsx(PackagePlus, { size: 14 }), " CREATE_AND_EXPORT"] }) })] }))] })] })] })] }));
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=LanguagePackStudioView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguagePackStudioView.js","sourceRoot":"","sources":["../../src/components/LanguagePackStudioView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const LANGUAGE_PACK_STUDIO_EXTENSION_ID: "core.language-pack-studio";
|
|
2
|
+
export declare const LANGUAGE_PACK_STUDIO_VIEW_ID: "core.language-pack-studio.view";
|
|
3
|
+
export declare const LANGUAGE_PACK_STUDIO_COMMAND_ID: "core.language-pack-studio.open";
|
|
4
|
+
export declare const LANGUAGE_PACK_STUDIO_RAIL_ID: "core.language-pack-studio.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,iCAAiC,EAAG,2BAAoC,CAAC;AACtF,eAAO,MAAM,4BAA4B,kCAAuD,CAAC;AACjG,eAAO,MAAM,+BAA+B,kCAAuD,CAAC;AACpG,eAAO,MAAM,4BAA4B,kCAAuD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const LANGUAGE_PACK_STUDIO_EXTENSION_ID = "core.language-pack-studio";
|
|
2
|
+
export const LANGUAGE_PACK_STUDIO_VIEW_ID = `${LANGUAGE_PACK_STUDIO_EXTENSION_ID}.view`;
|
|
3
|
+
export const LANGUAGE_PACK_STUDIO_COMMAND_ID = `${LANGUAGE_PACK_STUDIO_EXTENSION_ID}.open`;
|
|
4
|
+
export const LANGUAGE_PACK_STUDIO_RAIL_ID = `${LANGUAGE_PACK_STUDIO_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,iCAAiC,GAAG,2BAAoC,CAAC;AACtF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,iCAAiC,OAAgB,CAAC;AACjG,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,iCAAiC,OAAgB,CAAC;AACpG,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,iCAAiC,OAAgB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BundledExtensionCatalogEntry } from "@mdwrk/extension-runtime";
|
|
2
|
+
import type { LanguagePackStudioEntryOptions } from "./types.js";
|
|
3
|
+
export declare function createLanguagePackStudioBundledEntry(options: LanguagePackStudioEntryOptions): BundledExtensionCatalogEntry;
|
|
4
|
+
//# sourceMappingURL=createLanguagePackStudioBundledEntry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLanguagePackStudioBundledEntry.d.ts","sourceRoot":"","sources":["../src/createLanguagePackStudioBundledEntry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAU7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,8BAA8B,GAAG,4BAA4B,CAyE1H"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { LanguagePackStudioSidebar, LanguagePackStudioView } from "./components/LanguagePackStudioView.js";
|
|
4
|
+
import { LanguagePackStudioSettingsPanel } from "./components/LanguagePackStudioSettingsPanel.js";
|
|
5
|
+
import { LANGUAGE_PACK_STUDIO_COMMAND_ID, LANGUAGE_PACK_STUDIO_RAIL_ID, LANGUAGE_PACK_STUDIO_VIEW_ID, } from "./constants.js";
|
|
6
|
+
import { languagePackStudioLabels, languagePackStudioLocaleLoader } from "./i18n.js";
|
|
7
|
+
import { languagePackStudioManifest } from "./manifest.js";
|
|
8
|
+
export function createLanguagePackStudioBundledEntry(options) {
|
|
9
|
+
return {
|
|
10
|
+
manifest: languagePackStudioManifest,
|
|
11
|
+
activation: "eager",
|
|
12
|
+
async load() {
|
|
13
|
+
const extension = {
|
|
14
|
+
manifest: languagePackStudioManifest,
|
|
15
|
+
async activate(context) {
|
|
16
|
+
context.registerLocaleCatalogLoader(languagePackStudioLocaleLoader);
|
|
17
|
+
await context.host.i18n.ensureLocale();
|
|
18
|
+
context.registerCommand({
|
|
19
|
+
id: LANGUAGE_PACK_STUDIO_COMMAND_ID,
|
|
20
|
+
title: languagePackStudioLabels.commandOpenTitle,
|
|
21
|
+
description: languagePackStudioLabels.commandOpenDescription,
|
|
22
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
23
|
+
execute: async () => {
|
|
24
|
+
await context.host.views.open(LANGUAGE_PACK_STUDIO_VIEW_ID);
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
context.registerView({
|
|
28
|
+
id: LANGUAGE_PACK_STUDIO_VIEW_ID,
|
|
29
|
+
title: languagePackStudioLabels.viewTitle,
|
|
30
|
+
description: languagePackStudioLabels.viewDescription,
|
|
31
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
32
|
+
location: "main",
|
|
33
|
+
allowMultiple: false,
|
|
34
|
+
canBePinned: true,
|
|
35
|
+
render: (props) => (_jsx(LanguagePackStudioView, { controller: options.controller, close: () => props.close(), formatLabel: context.host.i18n.format, shellSidebarOpen: props.workspaceSidebarOpen, onShellSidebarToggle: props.setWorkspaceSidebarOpen, embedBrowserInShellSidebar: Boolean(props.setWorkspaceSidebarOpen) })),
|
|
36
|
+
renderSidebar: () => (_jsx(LanguagePackStudioSidebar, { controller: options.controller })),
|
|
37
|
+
});
|
|
38
|
+
context.registerActionRailItem({
|
|
39
|
+
id: LANGUAGE_PACK_STUDIO_RAIL_ID,
|
|
40
|
+
title: languagePackStudioLabels.railTitle,
|
|
41
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
42
|
+
group: "extensions",
|
|
43
|
+
order: 10,
|
|
44
|
+
target: { kind: "view", viewId: LANGUAGE_PACK_STUDIO_VIEW_ID },
|
|
45
|
+
});
|
|
46
|
+
context.registerSettingsSection({
|
|
47
|
+
id: `${context.extensionId}.settings`,
|
|
48
|
+
title: languagePackStudioLabels.settingsTitle,
|
|
49
|
+
description: languagePackStudioLabels.settingsDescription,
|
|
50
|
+
order: 30,
|
|
51
|
+
render: () => (_jsx(LanguagePackStudioSettingsPanel, { controller: options.controller, open: () => context.host.views.open(LANGUAGE_PACK_STUDIO_VIEW_ID), formatLabel: context.host.i18n.format })),
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
return extension;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=createLanguagePackStudioBundledEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLanguagePackStudioBundledEntry.js","sourceRoot":"","sources":["../src/createLanguagePackStudioBundledEntry.tsx"],"names":[],"mappings":"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"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { I18nLabel } from "@mdwrk/extension-manifest";
|
|
2
|
+
import type { ExtensionLocaleCatalogLoader } from "@mdwrk/extension-host";
|
|
3
|
+
export declare const label: (suffix: string, defaultMessage: string) => I18nLabel;
|
|
4
|
+
export declare const languagePackStudioLabels: {
|
|
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 settingsDescription: I18nLabel;
|
|
14
|
+
};
|
|
15
|
+
export declare const languagePackStudioLocaleLoader: ExtensionLocaleCatalogLoader;
|
|
16
|
+
//# 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;AAG1E,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,EAAE,gBAAgB,MAAM,KAAG,SAG7D,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;CAU3B,CAAC;AAEX,eAAO,MAAM,8BAA8B,EAAE,4BAM5C,CAAC"}
|
package/dist/i18n.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const key = (suffix) => `core.language-pack-studio.${suffix}`;
|
|
2
|
+
export const label = (suffix, defaultMessage) => ({
|
|
3
|
+
key: key(suffix),
|
|
4
|
+
defaultMessage,
|
|
5
|
+
});
|
|
6
|
+
export const languagePackStudioLabels = {
|
|
7
|
+
manifestDisplayName: label("manifest.displayName", "Language Pack Studio"),
|
|
8
|
+
manifestDescription: label("manifest.description", "Bundled language-pack studio for importing, exporting, enabling, disabling, activating, creating, and auditing portable language packs."),
|
|
9
|
+
commandOpenTitle: label("commands.open.title", "Open Language Pack Studio"),
|
|
10
|
+
commandOpenDescription: label("commands.open.description", "Open the language-pack studio workspace pane."),
|
|
11
|
+
viewTitle: label("views.main.title", "Language Pack Studio"),
|
|
12
|
+
viewDescription: label("views.main.description", "Browse installed language packs, inspect missing tokens, and create or export locale artifacts."),
|
|
13
|
+
railTitle: label("rail.title", "Language Packs"),
|
|
14
|
+
settingsTitle: label("settings.title", "Language Pack Studio"),
|
|
15
|
+
settingsDescription: label("settings.description", "Language-pack inventory, enablement, token auditing, and workspace authoring shortcuts."),
|
|
16
|
+
};
|
|
17
|
+
export const languagePackStudioLocaleLoader = {
|
|
18
|
+
defaultLocale: "en",
|
|
19
|
+
fallbackLocale: "en",
|
|
20
|
+
loaders: {
|
|
21
|
+
en: async () => (await import("./locales/en.js")).languagePackStudioEnCatalog,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
//# 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":"AAGA,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,6BAA6B,MAAM,EAAE,CAAC;AACtE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,cAAsB,EAAa,EAAE,CAAC,CAAC;IAC3E,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;IAChB,cAAc;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,mBAAmB,EAAE,KAAK,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAC1E,mBAAmB,EAAE,KAAK,CAAC,sBAAsB,EAAE,yIAAyI,CAAC;IAC7L,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;IAC3E,sBAAsB,EAAE,KAAK,CAAC,2BAA2B,EAAE,+CAA+C,CAAC;IAC3G,SAAS,EAAE,KAAK,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IAC5D,eAAe,EAAE,KAAK,CAAC,wBAAwB,EAAE,iGAAiG,CAAC;IACnJ,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChD,aAAa,EAAE,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAC9D,mBAAmB,EAAE,KAAK,CAAC,sBAAsB,EAAE,yFAAyF,CAAC;CACrI,CAAC;AAEX,MAAM,CAAC,MAAM,8BAA8B,GAAiC;IAC1E,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE;QACP,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,2BAA2B;KAC9E;CACF,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2CAA2C,CAAC;AAC1D,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2CAA2C,CAAC;AAC1D,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,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;AAGpE,eAAO,MAAM,2BAA2B,EAAE,sBAazC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { languagePackStudioLabels } from "../i18n.js";
|
|
2
|
+
export const languagePackStudioEnCatalog = {
|
|
3
|
+
locale: "en",
|
|
4
|
+
messages: {
|
|
5
|
+
[languagePackStudioLabels.manifestDisplayName.key]: languagePackStudioLabels.manifestDisplayName.defaultMessage,
|
|
6
|
+
[languagePackStudioLabels.manifestDescription.key]: languagePackStudioLabels.manifestDescription.defaultMessage,
|
|
7
|
+
[languagePackStudioLabels.commandOpenTitle.key]: languagePackStudioLabels.commandOpenTitle.defaultMessage,
|
|
8
|
+
[languagePackStudioLabels.commandOpenDescription.key]: languagePackStudioLabels.commandOpenDescription.defaultMessage,
|
|
9
|
+
[languagePackStudioLabels.viewTitle.key]: languagePackStudioLabels.viewTitle.defaultMessage,
|
|
10
|
+
[languagePackStudioLabels.viewDescription.key]: languagePackStudioLabels.viewDescription.defaultMessage,
|
|
11
|
+
[languagePackStudioLabels.railTitle.key]: languagePackStudioLabels.railTitle.defaultMessage,
|
|
12
|
+
[languagePackStudioLabels.settingsTitle.key]: languagePackStudioLabels.settingsTitle.defaultMessage,
|
|
13
|
+
[languagePackStudioLabels.settingsDescription.key]: languagePackStudioLabels.settingsDescription.defaultMessage,
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE;QACR,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,cAAc;QAChH,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,cAAc;QAChH,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,cAAc;QAC1G,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,cAAc;QACtH,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC,cAAc;QAC5F,CAAC,wBAAwB,CAAC,eAAe,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,cAAc;QACxG,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC,cAAc;QAC5F,CAAC,wBAAwB,CAAC,aAAa,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,aAAa,CAAC,cAAc;QACpG,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,GAAI,CAAC,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,cAAc;KACjH;CACF,CAAC"}
|
|
@@ -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,0BAA0B,EAAE,iBA2ExC,CAAC"}
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { LANGUAGE_PACK_STUDIO_COMMAND_ID, LANGUAGE_PACK_STUDIO_EXTENSION_ID, LANGUAGE_PACK_STUDIO_RAIL_ID, LANGUAGE_PACK_STUDIO_VIEW_ID, } from "./constants.js";
|
|
2
|
+
import { languagePackStudioLabels } from "./i18n.js";
|
|
3
|
+
import { LANGUAGE_PACK_STUDIO_VERSION } from "./version.js";
|
|
4
|
+
export const languagePackStudioManifest = {
|
|
5
|
+
manifestVersion: 1,
|
|
6
|
+
id: LANGUAGE_PACK_STUDIO_EXTENSION_ID,
|
|
7
|
+
packageName: "@mdwrk/extension-language-pack-studio",
|
|
8
|
+
version: LANGUAGE_PACK_STUDIO_VERSION,
|
|
9
|
+
displayName: languagePackStudioLabels.manifestDisplayName,
|
|
10
|
+
description: languagePackStudioLabels.manifestDescription,
|
|
11
|
+
kind: "bundled",
|
|
12
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
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.4.6",
|
|
20
|
+
themeContract: "^1.0.0",
|
|
21
|
+
},
|
|
22
|
+
entry: {
|
|
23
|
+
module: "./index.js",
|
|
24
|
+
export: "createLanguagePackStudioBundledEntry",
|
|
25
|
+
},
|
|
26
|
+
i18n: {
|
|
27
|
+
defaultLocale: "en",
|
|
28
|
+
supportedLocales: ["en"],
|
|
29
|
+
catalogs: [{ locale: "en", path: "./locales/en.js" }],
|
|
30
|
+
},
|
|
31
|
+
contributions: {
|
|
32
|
+
commands: [
|
|
33
|
+
{
|
|
34
|
+
id: LANGUAGE_PACK_STUDIO_COMMAND_ID,
|
|
35
|
+
title: languagePackStudioLabels.commandOpenTitle,
|
|
36
|
+
description: languagePackStudioLabels.commandOpenDescription,
|
|
37
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
views: [
|
|
41
|
+
{
|
|
42
|
+
id: LANGUAGE_PACK_STUDIO_VIEW_ID,
|
|
43
|
+
title: languagePackStudioLabels.viewTitle,
|
|
44
|
+
description: languagePackStudioLabels.viewDescription,
|
|
45
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
46
|
+
location: "main",
|
|
47
|
+
allowMultiple: false,
|
|
48
|
+
canBePinned: true,
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
components: [],
|
|
52
|
+
actionRail: [
|
|
53
|
+
{
|
|
54
|
+
id: LANGUAGE_PACK_STUDIO_RAIL_ID,
|
|
55
|
+
title: languagePackStudioLabels.railTitle,
|
|
56
|
+
icon: { kind: "lucide", name: "Languages" },
|
|
57
|
+
group: "extensions",
|
|
58
|
+
order: 10,
|
|
59
|
+
target: { kind: "view", viewId: LANGUAGE_PACK_STUDIO_VIEW_ID }
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
settingsSections: [
|
|
63
|
+
{
|
|
64
|
+
id: `${LANGUAGE_PACK_STUDIO_EXTENSION_ID}.settings`,
|
|
65
|
+
title: languagePackStudioLabels.settingsTitle,
|
|
66
|
+
description: languagePackStudioLabels.settingsDescription,
|
|
67
|
+
order: 30,
|
|
68
|
+
schemaPath: "manifest.settingsSchema",
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
settingsSchema: {
|
|
73
|
+
version: 1,
|
|
74
|
+
title: languagePackStudioLabels.settingsTitle,
|
|
75
|
+
description: languagePackStudioLabels.settingsDescription,
|
|
76
|
+
sections: [],
|
|
77
|
+
fields: [],
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,eAAe,EAAE,CAAC;IAClB,EAAE,EAAE,iCAAiC;IACrC,WAAW,EAAE,uCAAuC;IACpD,OAAO,EAAE,4BAA4B;IACrC,WAAW,EAAE,wBAAwB,CAAC,mBAAmB;IACzD,WAAW,EAAE,wBAAwB,CAAC,mBAAmB;IACzD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;IAC3C,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACtD,aAAa,EAAE;QACb,eAAe,EAAE,CAAC;QAClB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,SAAS;QACd,aAAa,EAAE,QAAQ;KACxB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,sCAAsC;KAC/C;IACD,IAAI,EAAE;QACJ,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,CAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;KACtD;IACD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,+BAA+B;gBACnC,KAAK,EAAE,wBAAwB,CAAC,gBAAgB;gBAChD,WAAW,EAAE,wBAAwB,CAAC,sBAAsB;gBAC5D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;aAC5C;SACF;QACD,KAAK,EAAE;YACL;gBACE,EAAE,EAAE,4BAA4B;gBAChC,KAAK,EAAE,wBAAwB,CAAC,SAAS;gBACzC,WAAW,EAAE,wBAAwB,CAAC,eAAe;gBACrD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC3C,QAAQ,EAAE,MAAM;gBAChB,aAAa,EAAE,KAAK;gBACpB,WAAW,EAAE,IAAI;aAClB;SACF;QACD,UAAU,EAAE,EAAE;QACd,UAAU,EAAE;YACV;gBACE,EAAE,EAAE,4BAA4B;gBAChC,KAAK,EAAE,wBAAwB,CAAC,SAAS;gBACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC3C,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,4BAA4B,EAAE;aAC/D;SACF;QACD,gBAAgB,EAAE;YAChB;gBACE,EAAE,EAAE,GAAG,iCAAiC,WAAW;gBACnD,KAAK,EAAE,wBAAwB,CAAC,aAAa;gBAC7C,WAAW,EAAE,wBAAwB,CAAC,mBAAmB;gBACzD,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,yBAAyB;aACtC;SACF;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,wBAAwB,CAAC,aAAa;QAC7C,WAAW,EAAE,wBAAwB,CAAC,mBAAmB;QACzD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACX;CACF,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface LanguagePackStudioArtifact {
|
|
2
|
+
readonly kind: 'mdwrk-language-pack';
|
|
3
|
+
readonly version: 1;
|
|
4
|
+
readonly locale: string;
|
|
5
|
+
readonly label: string;
|
|
6
|
+
readonly enabled: boolean;
|
|
7
|
+
readonly messages: Readonly<Record<string, string>>;
|
|
8
|
+
readonly source: 'built-in' | 'installed';
|
|
9
|
+
}
|
|
10
|
+
export interface LanguagePackTokenDefinition {
|
|
11
|
+
readonly key: string;
|
|
12
|
+
readonly defaultMessage: string;
|
|
13
|
+
readonly source: string;
|
|
14
|
+
}
|
|
15
|
+
export interface LanguagePackStudioSnapshot {
|
|
16
|
+
readonly activeLocale: string;
|
|
17
|
+
readonly packs: readonly LanguagePackStudioArtifact[];
|
|
18
|
+
readonly tokens: readonly LanguagePackTokenDefinition[];
|
|
19
|
+
readonly loadingTokens: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface LanguagePackStudioController {
|
|
22
|
+
getSnapshot(): LanguagePackStudioSnapshot;
|
|
23
|
+
subscribe(listener: () => void): () => void;
|
|
24
|
+
importArtifact(payload: string): Promise<LanguagePackStudioArtifact>;
|
|
25
|
+
createArtifact(input: {
|
|
26
|
+
locale: string;
|
|
27
|
+
label: string;
|
|
28
|
+
messages: Record<string, string>;
|
|
29
|
+
enabled?: boolean;
|
|
30
|
+
}): Promise<LanguagePackStudioArtifact>;
|
|
31
|
+
activate(locale: string): Promise<void>;
|
|
32
|
+
remove(locale: string): Promise<void>;
|
|
33
|
+
setEnabled(locale: string, enabled: boolean): Promise<void>;
|
|
34
|
+
setAllEnabled(enabled: boolean): Promise<void>;
|
|
35
|
+
exportArtifact(locale: string): LanguagePackStudioArtifact | null;
|
|
36
|
+
}
|
|
37
|
+
export interface LanguagePackStudioEntryOptions {
|
|
38
|
+
readonly controller: LanguagePackStudioController;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,IAAI,0BAA0B,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACrE,cAAc,CAAC,KAAK,EAAE;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;CACnD"}
|
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,4BAA4B,UAAU,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,4BAA4B,GAAG,OAAO,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mdwrk/extension-language-pack-studio",
|
|
3
|
+
"version": "1.0.3",
|
|
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
|
+
"sample-packs"
|
|
16
|
+
],
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@mdwrk/extension-host": "^1.0.2",
|
|
20
|
+
"@mdwrk/extension-manifest": "^1.0.1",
|
|
21
|
+
"lucide-react": "^0.475.0"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"react": "^19.0.0",
|
|
25
|
+
"react-dom": "^19.0.0"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build:deps": "npm run build -w @mdwrk/extension-manifest && npm run build -w @mdwrk/extension-host",
|
|
29
|
+
"build": "npm run build:deps && tsc -p tsconfig.json",
|
|
30
|
+
"typecheck": "npm run build:deps && tsc --noEmit -p tsconfig.json"
|
|
31
|
+
},
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"import": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./version": {
|
|
38
|
+
"types": "./dist/version.d.ts",
|
|
39
|
+
"import": "./dist/version.js"
|
|
40
|
+
},
|
|
41
|
+
"./manifest": {
|
|
42
|
+
"types": "./dist/manifest.d.ts",
|
|
43
|
+
"import": "./dist/manifest.js"
|
|
44
|
+
},
|
|
45
|
+
"./types": {
|
|
46
|
+
"types": "./dist/types.d.ts",
|
|
47
|
+
"import": "./dist/types.js"
|
|
48
|
+
},
|
|
49
|
+
"./bundled": {
|
|
50
|
+
"types": "./dist/createLanguagePackStudioBundledEntry.d.ts",
|
|
51
|
+
"import": "./dist/createLanguagePackStudioBundledEntry.js"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"main": "./dist/index.js",
|
|
55
|
+
"types": "./dist/index.d.ts"
|
|
56
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "mdwrk-language-pack",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"locale": "de",
|
|
5
|
+
"label": "Deutsch Experimental",
|
|
6
|
+
"enabled": true,
|
|
7
|
+
"messages": {
|
|
8
|
+
"core.views.settings.title": "Systemkonfiguration",
|
|
9
|
+
"core.views.settings.description": "Anwendungs- und Arbeitsbereichseinstellungen.",
|
|
10
|
+
"core.settings.language.title": "Sprache und Gebietsschema",
|
|
11
|
+
"core.settings.language.description": "Wählen Sie die Oberflächensprache des Hauptsystems.",
|
|
12
|
+
"core.commands.new-file": "Neue Datei erstellen",
|
|
13
|
+
"core.commands.new-folder": "Neuen Ordner erstellen",
|
|
14
|
+
"core.commands.toggle-git-pane": "Git-Operationen",
|
|
15
|
+
"core.commands.switch-project": "Projekt wechseln",
|
|
16
|
+
"core.commands.download-workspace": "Arbeitsbereich herunterladen",
|
|
17
|
+
"core.import-markdown.title": "Markdown importieren"
|
|
18
|
+
}
|
|
19
|
+
}
|