@phoenix-wing/kt-codegen 0.4.3 → 0.5.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.
Files changed (41) hide show
  1. package/dist/ui/KtCodegenApplyReport.d.ts +72 -0
  2. package/dist/ui/KtCodegenApplyReport.d.ts.map +1 -0
  3. package/dist/ui/KtCodegenApplyReport.js +331 -0
  4. package/dist/ui/KtCodegenApplyReport.js.map +1 -0
  5. package/dist/ui/KtCodegenApplyReportModel.d.ts +73 -0
  6. package/dist/ui/KtCodegenApplyReportModel.d.ts.map +1 -0
  7. package/dist/ui/KtCodegenApplyReportModel.js +59 -0
  8. package/dist/ui/KtCodegenApplyReportModel.js.map +1 -0
  9. package/dist/ui/KtCodegenControlCatalog.d.ts +41 -0
  10. package/dist/ui/KtCodegenControlCatalog.d.ts.map +1 -0
  11. package/dist/ui/KtCodegenControlCatalog.js +365 -0
  12. package/dist/ui/KtCodegenControlCatalog.js.map +1 -0
  13. package/dist/ui/KtCodegenControlCatalogState.d.ts +54 -0
  14. package/dist/ui/KtCodegenControlCatalogState.d.ts.map +1 -0
  15. package/dist/ui/KtCodegenControlCatalogState.js +96 -0
  16. package/dist/ui/KtCodegenControlCatalogState.js.map +1 -0
  17. package/dist/ui/KtCodegenControlPanel.d.ts +35 -0
  18. package/dist/ui/KtCodegenControlPanel.d.ts.map +1 -0
  19. package/dist/ui/KtCodegenControlPanel.js +356 -0
  20. package/dist/ui/KtCodegenControlPanel.js.map +1 -0
  21. package/dist/ui/KtCodegenControlViewModel.d.ts +29 -0
  22. package/dist/ui/KtCodegenControlViewModel.d.ts.map +1 -0
  23. package/dist/ui/KtCodegenControlViewModel.js +119 -0
  24. package/dist/ui/KtCodegenControlViewModel.js.map +1 -0
  25. package/dist/ui/KtCodegenPrimaryPanel.d.ts +37 -0
  26. package/dist/ui/KtCodegenPrimaryPanel.d.ts.map +1 -0
  27. package/dist/ui/KtCodegenPrimaryPanel.js +302 -0
  28. package/dist/ui/KtCodegenPrimaryPanel.js.map +1 -0
  29. package/dist/ui/KtCodegenPrimaryUiState.d.ts +10 -0
  30. package/dist/ui/KtCodegenPrimaryUiState.d.ts.map +1 -0
  31. package/dist/ui/KtCodegenPrimaryUiState.js +16 -0
  32. package/dist/ui/KtCodegenPrimaryUiState.js.map +1 -0
  33. package/dist/ui/KtCodegenUiContracts.d.ts +142 -0
  34. package/dist/ui/KtCodegenUiContracts.d.ts.map +1 -0
  35. package/dist/ui/KtCodegenUiContracts.js +3 -0
  36. package/dist/ui/KtCodegenUiContracts.js.map +1 -0
  37. package/dist/ui/index.d.ts +9 -0
  38. package/dist/ui/index.d.ts.map +1 -0
  39. package/dist/ui/index.js +10 -0
  40. package/dist/ui/index.js.map +1 -0
  41. package/package.json +9 -1
@@ -0,0 +1,302 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { ktCodegenDefineControlCatalogElement, } from "./KtCodegenControlCatalog.js";
3
+ import { ktCodegenPrimaryActionDisabled, ktCodegenPrimaryControlsLocked, } from "./KtCodegenPrimaryUiState.js";
4
+ import { ktCodegenApplyReportChangeLabel, ktCodegenApplyReportHealthLabel, } from "./KtCodegenApplyReportModel.js";
5
+ export const KT_CODEGEN_PRIMARY_PANEL_TAG_NAME = "kt-codegen-primary-panel";
6
+ const STYLE = `
7
+ :host {
8
+ --pnw-codegen-border: var(--vscode-panel-border, var(--border, color-mix(in srgb, currentColor 18%, transparent)));
9
+ --pnw-codegen-bg: var(--vscode-editor-background, var(--sidebar-bg, #fff));
10
+ --pnw-codegen-head-bg: var(--vscode-sideBarSectionHeader-background, var(--panel-head-bg, #f6f6f6));
11
+ --pnw-codegen-muted: var(--vscode-descriptionForeground, var(--muted, #666));
12
+ --pnw-codegen-hover: var(--vscode-list-hoverBackground, color-mix(in srgb, currentColor 8%, transparent));
13
+ --pnw-codegen-active-bg: var(--vscode-list-activeSelectionBackground, var(--accent, #007acc));
14
+ --pnw-codegen-active-fg: var(--vscode-list-activeSelectionForeground, #fff);
15
+ --pnw-codegen-focus: var(--vscode-focusBorder, var(--accent, #007acc));
16
+ position: relative; display: grid; grid-auto-rows: max-content; align-content: start; gap: 4px; min-height: 0; color: var(--vscode-foreground, var(--text, inherit));
17
+ background: var(--vscode-sideBar-background, var(--sidebar-bg, #fff)); font: 12px/1.35 var(--vscode-font-family, system-ui, sans-serif);
18
+ }
19
+ * { box-sizing: border-box; }
20
+ button, input, select { font: inherit; }
21
+ button { cursor: pointer; }
22
+ button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 1px solid var(--pnw-codegen-focus); outline-offset: 1px; }
23
+ .pnw-codegen-actions { position: sticky; z-index: 12; top: 0; display: flex; flex-wrap: nowrap; gap: 2px; padding: 2px 5px 3px; overflow: hidden; background: var(--vscode-sideBar-background, var(--sidebar-bg, #fff)); border-bottom: 1px solid var(--pnw-codegen-border); }
24
+ .pnw-codegen-action { display: inline-grid; flex: 0 0 32px; width: 32px; height: 32px; min-height: 32px; place-items: center; padding: 0; color: var(--vscode-button-foreground, inherit); background: var(--vscode-button-background, var(--btn-bg, transparent)); border: 1px solid var(--pnw-codegen-border); border-radius: 3px; font-size: 17px; }
25
+ .pnw-codegen-action.pnw-codegen-secondary { color: inherit; background: var(--vscode-button-secondaryBackground, var(--btn-bg, transparent)); }
26
+ button:disabled { opacity: .5; cursor: not-allowed; }
27
+ .pnw-codegen-mini { min-width: 0; margin: 0 4px; overflow: hidden; border: 1px solid var(--pnw-codegen-border); border-radius: 5px; background: var(--pnw-codegen-bg); }
28
+ .pnw-codegen-mini > summary { display: flex; align-items: center; justify-content: space-between; gap: 5px; min-height: 28px; padding: 3px 5px; color: var(--pnw-codegen-muted); background: var(--pnw-codegen-head-bg); font-size: 11px; font-weight: 650; cursor: pointer; list-style: none; user-select: none; }
29
+ .pnw-codegen-mini > summary::-webkit-details-marker { display: none; }
30
+ .pnw-codegen-mini > summary::before { content: "›"; flex: 0 0 auto; font-size: 16px; line-height: 1; }
31
+ .pnw-codegen-mini[open] > summary::before { transform: rotate(90deg); }
32
+ .pnw-codegen-mini-title { margin-right: auto; color: var(--vscode-foreground, var(--text, inherit)); }
33
+ .pnw-codegen-mini-count { white-space: nowrap; font-weight: 500; }
34
+ .pnw-codegen-current-identity { display: flex; flex: 1 1 auto; min-width: 0; align-items: baseline; gap: 6px; }
35
+ .pnw-codegen-current-file { flex: 0 1 52%; max-width: 52%; overflow: hidden; color: inherit; text-overflow: ellipsis; white-space: nowrap; }
36
+ .pnw-codegen-current-meta { flex: 1 1 auto; overflow: hidden; color: var(--pnw-codegen-muted); font-size: 10px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
37
+ .pnw-codegen-properties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 6px; padding: 5px 6px; border-top: 1px solid var(--pnw-codegen-border); }
38
+ .pnw-codegen-property { display: grid; gap: 1px; min-width: 0; }
39
+ .pnw-codegen-property span { color: var(--pnw-codegen-muted); font-size: 10px; }
40
+ .pnw-codegen-property input { width: 100%; min-width: 0; height: 25px; padding: 2px 5px; color: inherit; background: var(--vscode-input-background, var(--input-bg, transparent)); border: 1px solid var(--pnw-codegen-border); border-radius: 2px; }
41
+ .pnw-codegen-list { display: grid; grid-auto-rows: 40px; max-height: 252px; overflow: auto; border-top: 1px solid var(--pnw-codegen-border); scrollbar-gutter: stable; }
42
+ .pnw-codegen-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1px 6px; width: 100%; padding: 3px 5px; color: inherit; background: transparent; border: 1px solid transparent; border-radius: 0; text-align: left; }
43
+ .pnw-codegen-row:hover { background: var(--pnw-codegen-hover); }
44
+ .pnw-codegen-row.pnw-codegen-active { color: var(--pnw-codegen-active-fg); background: var(--pnw-codegen-active-bg); border-color: var(--pnw-codegen-focus); }
45
+ .pnw-codegen-row-name, .pnw-codegen-row-path { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
46
+ .pnw-codegen-row-name { font-weight: 600; }
47
+ .pnw-codegen-row-path { color: var(--pnw-codegen-muted); font-size: 11px; }
48
+ .pnw-codegen-tags { display: flex; align-items: center; justify-content: flex-end; gap: 4px; grid-row: 1 / span 2; grid-column: 2; }
49
+ .pnw-codegen-tag { padding: 1px 5px; color: var(--pnw-codegen-muted); border: 1px solid var(--pnw-codegen-border); border-radius: 999px; font-size: 10px; white-space: nowrap; }
50
+ .pnw-codegen-tag.pnw-codegen-warning { color: var(--vscode-editorWarning-foreground, #b45309); border-color: currentColor; }
51
+ .pnw-codegen-tag.pnw-codegen-error { color: var(--vscode-errorForeground, #b91c1c); border-color: currentColor; }
52
+ .pnw-codegen-tag.pnw-codegen-success { color: var(--vscode-testing-iconPassed, #15803d); border-color: currentColor; }
53
+ .pnw-codegen-candidates { grid-auto-rows: 30px; }
54
+ .pnw-codegen-candidate { display: flex; min-width: 0; min-height: 30px; align-items: center; gap: 6px; padding: 2px 4px; border: 0; border-bottom: 1px solid var(--pnw-codegen-border); }
55
+ .pnw-codegen-candidate-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
56
+ .pnw-codegen-candidate-name { font-weight: 600; }
57
+ .pnw-codegen-candidate-path { color: var(--pnw-codegen-muted); font-size: 11px; }
58
+ .pnw-codegen-empty, .pnw-codegen-hint { margin: 0; padding: 12px 8px; color: var(--pnw-codegen-muted); text-align: center; }
59
+ .pnw-codegen-report-directory { min-height: 25px; margin: 5px; padding: 2px 7px; color: inherit; background: var(--vscode-button-secondaryBackground, var(--btn-bg, transparent)); border: 1px solid var(--pnw-codegen-border); border-radius: 3px; }
60
+ .pnw-codegen-overlay { position: absolute; z-index: 20; inset: 0; display: grid; place-content: center; gap: 6px; padding: 16px; background: color-mix(in srgb, var(--pnw-codegen-bg) 88%, transparent); border: 1px solid var(--pnw-codegen-focus); border-radius: 6px; text-align: center; cursor: progress; }
61
+ .pnw-codegen-overlay[hidden] { display: none; }
62
+ `;
63
+ export class KtCodegenPrimaryPanel extends HTMLElement {
64
+ root = this.attachShadow({ mode: "open" });
65
+ /** Host snapshot 重绘时复用同一目录实例,保留筛选、Tree、滚动和焦点。 */
66
+ controlCatalog = document.createElement("kt-codegen-control-catalog");
67
+ currentModel;
68
+ expanded = new Map([["current", true], ["documents", true], ["reports", true], ["controls", true], ["candidates", true]]);
69
+ scrollOffsets = new Map();
70
+ get model() { return this.currentModel; }
71
+ set model(value) { this.currentModel = value; this.render(); }
72
+ connectedCallback() { this.render(); }
73
+ render() {
74
+ if (!this.isConnected)
75
+ return;
76
+ const style = document.createElement("style");
77
+ style.textContent = STYLE;
78
+ const model = this.currentModel;
79
+ if (!model) {
80
+ this.root.replaceChildren(style, this.empty("Codegen 尚未激活。"));
81
+ return;
82
+ }
83
+ const active = model.documents.find((item) => item.active || item.id === model.activeId);
84
+ const batchLocked = model.operation === "batch-apply";
85
+ const hostLocked = model.running && !model.operation;
86
+ const actions = document.createElement("div");
87
+ actions.className = "pnw-codegen-actions";
88
+ actions.append(this.actionButton("▣", "openJson", model.capabilities.openJson && !batchLocked && !hostLocked, "打开一份 Codegen JSON"), this.actionButton("⇩", "importCsv", model.capabilities.importCsv && !batchLocked && !hostLocked, "导入或打开 CSV Codegen 配置"), this.actionButton("✓", "applyAll", model.capabilities.applyAll && model.documents.length > 0 && !batchLocked && !hostLocked, "全部应用"), this.actionButton(model.operation === "discovery" ? "×" : "↻", model.operation === "discovery" ? "cancelOperation" : "refresh", model.operation === "discovery" || (!model.operation && !hostLocked), model.operation === "discovery" ? "取消刷新" : "刷新配置"), this.actionButton(model.operation === "candidates" ? "×" : "⌕", model.operation === "candidates" ? "cancelOperation" : "scanCandidates", model.operation === "candidates" || (model.capabilities.scanCandidates && !model.operation && !hostLocked), model.operation === "candidates" ? "取消扫描" : "扫描控制符源码候选"));
89
+ const nodes = [style, actions];
90
+ if (active)
91
+ nodes.push(this.currentConfig(active));
92
+ nodes.push(this.documents(model), this.reports(model), this.controls(model), this.candidates(model));
93
+ const hint = document.createElement("p");
94
+ hint.className = "pnw-codegen-hint";
95
+ hint.textContent = "一份 JSON 对应当前编辑区一个表格 View;Primary 与 JSON View 的控制符目录由 Host session 同步。";
96
+ nodes.push(hint, this.overlay(model));
97
+ this.root.replaceChildren(...nodes);
98
+ }
99
+ actionButton(label, action, enabled, title) {
100
+ const button = document.createElement("button");
101
+ button.type = "button";
102
+ button.className = "pnw-codegen-action pnw-codegen-secondary";
103
+ button.textContent = label;
104
+ button.title = title;
105
+ button.disabled = ktCodegenPrimaryActionDisabled(this.currentModel, action, enabled);
106
+ button.onclick = () => this.emit({ action });
107
+ return button;
108
+ }
109
+ currentConfig(active) {
110
+ const details = this.details("current");
111
+ const summary = document.createElement("summary");
112
+ const identity = document.createElement("span");
113
+ identity.className = "pnw-codegen-current-identity";
114
+ const name = document.createElement("span");
115
+ name.className = "pnw-codegen-current-file";
116
+ name.textContent = active.fileName;
117
+ const meta = document.createElement("span");
118
+ meta.className = "pnw-codegen-current-meta";
119
+ meta.textContent = `${active.className || "未命名类"} · ${active.itemCount} 行 · 当前编辑 View${active.dirty ? " · 未保存" : ""}${active.externalConflict ? " · 外部文件已变更" : ""}`;
120
+ identity.append(name, meta);
121
+ summary.append(identity);
122
+ const properties = document.createElement("div");
123
+ properties.className = "pnw-codegen-properties";
124
+ properties.append(this.property("Prefix", "namePrefix", active), this.property("Middle", "nameMiddle", active), this.property("Namespace", "nameSpace", active), this.property("Append", "appendFunction", active));
125
+ details.append(summary, properties);
126
+ return details;
127
+ }
128
+ property(label, field, active) {
129
+ const wrapper = document.createElement("label");
130
+ wrapper.className = "pnw-codegen-property";
131
+ const caption = document.createElement("span");
132
+ caption.textContent = label;
133
+ const input = document.createElement("input");
134
+ input.value = active[field];
135
+ input.disabled = Boolean(this.currentModel?.running || this.currentModel?.operation);
136
+ input.spellcheck = false;
137
+ input.onchange = () => this.emit({ action: "updateMeta", id: active.id, field, value: input.value });
138
+ wrapper.append(caption, input);
139
+ return wrapper;
140
+ }
141
+ documents(model) {
142
+ const details = this.details("documents", "JSON 配置", model.documents.length ? `${model.documents.length} 份` : "");
143
+ const list = this.list("documents");
144
+ for (const item of model.documents) {
145
+ const row = this.row(item.fileName, `${item.className || "未命名类"} · ${item.displayPath}`);
146
+ row.classList.toggle("pnw-codegen-active", item.active);
147
+ const tags = row.querySelector(".pnw-codegen-tags");
148
+ tags.append(this.tag(`${item.itemCount} 行`));
149
+ if (item.open)
150
+ tags.append(this.tag(item.active ? "当前" : "已开"));
151
+ if (item.dirty)
152
+ tags.append(this.tag("未保存", "warning"));
153
+ if (item.externalConflict)
154
+ tags.append(this.tag(item.externalState === "deleted" ? "磁盘已删除" : "外部变更", "error"));
155
+ row.onclick = () => this.emit({ action: "openDocument", id: item.id });
156
+ list.append(row);
157
+ }
158
+ if (!model.documents.length)
159
+ list.append(this.empty(model.operation === "discovery" ? "正在查找 Codegen JSON…" : "暂无 Codegen JSON"));
160
+ details.append(list);
161
+ return details;
162
+ }
163
+ reports(model) {
164
+ const details = this.details("reports", "应用报告", model.reports.length ? `${model.reports.length} 份` : "");
165
+ const list = this.list("reports");
166
+ for (const report of model.reports.slice(0, 20)) {
167
+ const row = this.row(report.subject, new Date(report.startedAt).toLocaleString());
168
+ const tags = row.querySelector(".pnw-codegen-tags");
169
+ tags.append(this.tag(report.applyKind === "batch" ? `批量 ${report.itemCount}` : "单次"), this.tag(this.healthLabel(report.health), report.health), this.tag(this.changeLabel(report.change), report.change === "not-applied" ? "error" : report.change === "partial" ? "warning" : "success"));
170
+ row.onclick = () => this.emit({ action: "openReport", id: report.id });
171
+ list.append(row);
172
+ }
173
+ if (!model.reports.length)
174
+ list.append(this.empty("执行 Apply 后会在这里保留报告。"));
175
+ details.append(list);
176
+ if (model.capabilities.openReportDirectory) {
177
+ const directory = document.createElement("button");
178
+ directory.type = "button";
179
+ directory.className = "pnw-codegen-report-directory";
180
+ directory.textContent = "打开报告目录";
181
+ directory.onclick = () => this.emit({ action: "openReportDirectory" });
182
+ details.append(directory);
183
+ }
184
+ return details;
185
+ }
186
+ controls(model) {
187
+ const details = this.details("controls", "控制符目录", "会话级");
188
+ const controls = model.controls;
189
+ if (!controls) {
190
+ details.append(this.empty("打开一份 Codegen 配置后显示控制符目录。"));
191
+ return details;
192
+ }
193
+ this.controlCatalog.setAttribute("mode", "compact");
194
+ this.controlCatalog.disabled = ktCodegenPrimaryControlsLocked(model);
195
+ this.controlCatalog.outputEnabled = Boolean(model.capabilities.outputControlTemplates);
196
+ this.controlCatalog.model = controls;
197
+ details.append(this.controlCatalog);
198
+ return details;
199
+ }
200
+ candidates(model) {
201
+ const details = this.details("candidates", "控制符候选(工作区级)", model.candidates.length ? `${model.candidates.length} 个` : "");
202
+ const list = this.list("candidates");
203
+ list.classList.add("pnw-codegen-candidates");
204
+ for (const candidate of model.candidates) {
205
+ const separator = Math.max(candidate.displayPath.lastIndexOf("/"), candidate.displayPath.lastIndexOf("\\"));
206
+ const name = separator < 0 ? candidate.displayPath : candidate.displayPath.slice(separator + 1);
207
+ const directory = separator < 0 ? "" : candidate.displayPath.slice(0, separator);
208
+ const row = document.createElement("button");
209
+ row.type = "button";
210
+ row.className = "pnw-codegen-row pnw-codegen-candidate";
211
+ const label = document.createElement("span");
212
+ label.className = "pnw-codegen-candidate-label";
213
+ const strong = document.createElement("span");
214
+ strong.className = "pnw-codegen-candidate-name";
215
+ strong.textContent = name;
216
+ const path = document.createElement("span");
217
+ path.className = "pnw-codegen-candidate-path";
218
+ path.textContent = directory ? ` · ${directory}` : "";
219
+ label.append(strong, path);
220
+ const tags = document.createElement("span");
221
+ tags.className = "pnw-codegen-tags";
222
+ tags.append(this.tag(`${candidate.markerCount} 标记`), this.tag(candidate.encoding));
223
+ row.append(label, tags);
224
+ row.onclick = () => this.emit({ action: "openCandidate", id: candidate.id });
225
+ list.append(row);
226
+ }
227
+ if (!model.candidates.length)
228
+ list.append(this.empty(model.operation === "candidates" ? "正在扫描候选源码…" : "点击“扫描候选源码”建立工作区控制符列表"));
229
+ details.append(list);
230
+ return details;
231
+ }
232
+ details(key, title, count = "") {
233
+ const details = document.createElement("details");
234
+ details.className = "pnw-codegen-mini";
235
+ details.open = this.expanded.get(key) ?? true;
236
+ details.ontoggle = () => this.expanded.set(key, details.open);
237
+ if (title) {
238
+ const summary = document.createElement("summary");
239
+ const name = document.createElement("span");
240
+ name.className = "pnw-codegen-mini-title";
241
+ name.textContent = title;
242
+ const value = document.createElement("span");
243
+ value.className = "pnw-codegen-mini-count";
244
+ value.textContent = count;
245
+ summary.append(name, value);
246
+ details.append(summary);
247
+ }
248
+ return details;
249
+ }
250
+ list(key) {
251
+ const list = document.createElement("div");
252
+ list.className = "pnw-codegen-list";
253
+ list.scrollTop = this.scrollOffsets.get(key) ?? 0;
254
+ list.onscroll = () => this.scrollOffsets.set(key, list.scrollTop);
255
+ return list;
256
+ }
257
+ row(nameText, pathText) {
258
+ const row = document.createElement("button");
259
+ row.type = "button";
260
+ row.className = "pnw-codegen-row";
261
+ const name = document.createElement("span");
262
+ name.className = "pnw-codegen-row-name";
263
+ name.textContent = nameText;
264
+ const path = document.createElement("span");
265
+ path.className = "pnw-codegen-row-path";
266
+ path.textContent = pathText;
267
+ const tags = document.createElement("span");
268
+ tags.className = "pnw-codegen-tags";
269
+ row.append(name, path, tags);
270
+ return row;
271
+ }
272
+ tag(text, tone) {
273
+ const tag = document.createElement("span");
274
+ tag.className = `pnw-codegen-tag${tone ? ` pnw-codegen-${tone}` : ""}`;
275
+ tag.textContent = text;
276
+ return tag;
277
+ }
278
+ overlay(model) {
279
+ const overlay = document.createElement("div");
280
+ overlay.className = "pnw-codegen-overlay";
281
+ overlay.hidden = model.operation !== "batch-apply" || !model.batch;
282
+ const title = document.createElement("strong");
283
+ title.textContent = model.batch ? `正在全部应用 ${model.batch.current} / ${model.batch.total}` : "正在全部应用";
284
+ const file = document.createElement("span");
285
+ file.textContent = model.batch?.fileName ?? "正在准备 JSON View…";
286
+ overlay.append(title, file);
287
+ return overlay;
288
+ }
289
+ healthLabel(value) { return ktCodegenApplyReportHealthLabel(value); }
290
+ changeLabel(value) { return ktCodegenApplyReportChangeLabel(value); }
291
+ empty(text) { const value = document.createElement("div"); value.className = "pnw-codegen-empty"; value.textContent = text; return value; }
292
+ emit(detail) { this.dispatchEvent(new CustomEvent("kt-codegen-primary-action", { bubbles: true, composed: true, detail })); }
293
+ }
294
+ export function ktCodegenDefinePrimaryPanelElement(tagName = KT_CODEGEN_PRIMARY_PANEL_TAG_NAME) {
295
+ ktCodegenDefineControlCatalogElement();
296
+ const registered = customElements.get(tagName);
297
+ if (registered)
298
+ return registered;
299
+ customElements.define(tagName, KtCodegenPrimaryPanel);
300
+ return KtCodegenPrimaryPanel;
301
+ }
302
+ //# sourceMappingURL=KtCodegenPrimaryPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenPrimaryPanel.js","sourceRoot":"","sources":["../../src/ui/KtCodegenPrimaryPanel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { KtCodegenPrimaryAction, KtCodegenPrimaryUiModel } from "./KtCodegenUiContracts.js";
2
+ type KtCodegenPrimaryOperationState = Pick<KtCodegenPrimaryUiModel, "operation" | "running">;
3
+ /**
4
+ * Host 已声明动作可用后,共享 UI 只负责运行期互斥;取消动作必须始终可达。
5
+ */
6
+ export declare function ktCodegenPrimaryActionDisabled(model: KtCodegenPrimaryOperationState | undefined, action: KtCodegenPrimaryAction, enabled: boolean): boolean;
7
+ /** 控制符选择与模板输出会改变 Host session,任何工作区操作期间都锁定。 */
8
+ export declare function ktCodegenPrimaryControlsLocked(model: KtCodegenPrimaryOperationState): boolean;
9
+ export {};
10
+ //# sourceMappingURL=KtCodegenPrimaryUiState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenPrimaryUiState.d.ts","sourceRoot":"","sources":["../../src/ui/KtCodegenPrimaryUiState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,KAAK,8BAA8B,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;AAE7F;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,8BAA8B,GAAG,SAAS,EACjD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,GACf,OAAO,CAIT;AAED,+CAA+C;AAC/C,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAE7F"}
@@ -0,0 +1,16 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * Host 已声明动作可用后,共享 UI 只负责运行期互斥;取消动作必须始终可达。
4
+ */
5
+ export function ktCodegenPrimaryActionDisabled(model, action, enabled) {
6
+ if (!enabled)
7
+ return true;
8
+ if (action === "cancelOperation")
9
+ return false;
10
+ return Boolean(model?.running || model?.operation);
11
+ }
12
+ /** 控制符选择与模板输出会改变 Host session,任何工作区操作期间都锁定。 */
13
+ export function ktCodegenPrimaryControlsLocked(model) {
14
+ return Boolean(model.running || model.operation);
15
+ }
16
+ //# sourceMappingURL=KtCodegenPrimaryUiState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenPrimaryUiState.js","sourceRoot":"","sources":["../../src/ui/KtCodegenPrimaryUiState.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAStC;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAiD,EACjD,MAA8B,EAC9B,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,8BAA8B,CAAC,KAAqC;IAClF,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,142 @@
1
+ import type { KtCodegenBlockKey } from "../blocks/legacy-blocks.js";
2
+ import type { KtCodegenPlan } from "../api/contracts.js";
3
+ /** 三种 Host 共用的 Codegen 预检状态;只有 ready 可用于 Apply。 */
4
+ export type KtCodegenPreflightUiState = "ready" | "applied" | "stale";
5
+ /** Apply 完成后由 Host 提供的逐区域真实变化结果;UI 不比较源码文本猜测状态。 */
6
+ export interface KtCodegenRegionApplyUiOutcome {
7
+ readonly regionId: string;
8
+ readonly change: "updated" | "unchanged" | "not-applied";
9
+ }
10
+ /** Host 已完成安全判断后的预检 UI 投影。组件只展示,不重新推导门禁。 */
11
+ export interface KtCodegenPreflightUiModel {
12
+ readonly plan: KtCodegenPlan;
13
+ readonly reused: boolean;
14
+ readonly createdAt: string;
15
+ readonly state: KtCodegenPreflightUiState;
16
+ readonly message: string;
17
+ /** 仅 applied 快照通常提供;缺省表示旧 Host 尚未回传逐区域结果。 */
18
+ readonly regionOutcomes?: readonly KtCodegenRegionApplyUiOutcome[];
19
+ }
20
+ /** 控制符目录和预检 View 共用的 Host 无关会话投影。 */
21
+ export interface KtCodegenControlUiModel {
22
+ readonly kind: "kt.codegen.control-ui-model";
23
+ readonly schemaVersion: 1;
24
+ readonly documentId: string;
25
+ readonly fileName: string;
26
+ readonly selectedBlockKeys: readonly KtCodegenBlockKey[];
27
+ /** Host 若持久化单选模式可回传;未提供时由目录组件保留当前会话状态。 */
28
+ readonly singleSelectionMode?: boolean;
29
+ readonly blocks: readonly KtCodegenControlBlockStateUiModel[];
30
+ /** Host 根据结构化 marker 上下文生成的只读修复建议;组件不得解析诊断 message。 */
31
+ readonly unclosed: readonly KtCodegenUnclosedUiModel[];
32
+ readonly preflight?: KtCodegenPreflightUiModel;
33
+ }
34
+ export interface KtCodegenControlBlockStateUiModel {
35
+ readonly key: KtCodegenBlockKey;
36
+ readonly status: "unselected" | "pending" | "hit" | "unclosed" | "missing";
37
+ readonly hitCount: number;
38
+ readonly artifactCount: number;
39
+ }
40
+ export interface KtCodegenUnclosedUiModel {
41
+ readonly code: "marker.missing-end";
42
+ readonly path: string;
43
+ readonly line: number;
44
+ readonly blockKey: KtCodegenBlockKey;
45
+ readonly expectedEnd: string;
46
+ }
47
+ export type KtCodegenControlUiFilter = "hits" | "issues" | "all";
48
+ export interface KtCodegenControlOpenDetail {
49
+ readonly path: string;
50
+ readonly line: number;
51
+ }
52
+ export interface KtCodegenControlCopyEndDetail extends KtCodegenControlOpenDetail {
53
+ readonly blockKey: KtCodegenBlockKey;
54
+ readonly expectedEnd: string;
55
+ }
56
+ export interface KtCodegenControlSplitDetail {
57
+ readonly ratio: number;
58
+ }
59
+ export interface KtCodegenPrimaryDocumentUiModel {
60
+ readonly id: string;
61
+ readonly fileName: string;
62
+ readonly displayPath: string;
63
+ readonly itemCount: number;
64
+ readonly className: string;
65
+ readonly namePrefix: string;
66
+ readonly nameMiddle: string;
67
+ readonly nameSpace: string;
68
+ readonly appendFunction: string;
69
+ readonly open: boolean;
70
+ readonly active: boolean;
71
+ readonly dirty: boolean;
72
+ readonly externalConflict: boolean;
73
+ readonly externalState: "current" | "changed" | "deleted";
74
+ readonly diagnosticCount: number;
75
+ }
76
+ export interface KtCodegenPrimaryCandidateUiModel {
77
+ readonly id: string;
78
+ readonly displayPath: string;
79
+ readonly markerCount: number;
80
+ readonly encoding: string;
81
+ readonly eol: "lf" | "crlf";
82
+ }
83
+ export interface KtCodegenPrimaryReportUiModel {
84
+ readonly id: string;
85
+ readonly subject: string;
86
+ readonly startedAt: string;
87
+ readonly applyKind: "single" | "batch";
88
+ readonly itemCount: number;
89
+ readonly health: "success" | "warning" | "error";
90
+ readonly change: "updated" | "unchanged" | "partial" | "not-applied";
91
+ }
92
+ export interface KtCodegenPrimaryUiModel {
93
+ readonly kind: "kt.codegen.primary-ui-model";
94
+ readonly schemaVersion: 1;
95
+ readonly documents: readonly KtCodegenPrimaryDocumentUiModel[];
96
+ readonly activeId?: string;
97
+ readonly controls?: KtCodegenControlUiModel;
98
+ readonly candidates: readonly KtCodegenPrimaryCandidateUiModel[];
99
+ readonly reports: readonly KtCodegenPrimaryReportUiModel[];
100
+ readonly reportInvalidCount: number;
101
+ readonly operation?: "discovery" | "candidates" | "batch-apply";
102
+ readonly batch?: {
103
+ readonly current: number;
104
+ readonly total: number;
105
+ readonly fileName: string;
106
+ };
107
+ readonly running: boolean;
108
+ readonly capabilities: {
109
+ readonly openJson: boolean;
110
+ readonly importCsv: boolean;
111
+ readonly applyAll: boolean;
112
+ readonly scanCandidates: boolean;
113
+ readonly openReportDirectory: boolean;
114
+ /** Host 是否支持把当前 JSON 的控制符模板输出到日志/剪贴板。 */
115
+ readonly outputControlTemplates?: boolean;
116
+ };
117
+ }
118
+ export type KtCodegenPrimaryAction = "openJson" | "importCsv" | "applyAll" | "refresh" | "scanCandidates" | "cancelOperation" | "openReportDirectory";
119
+ export type KtCodegenPrimaryActionDetail = {
120
+ readonly action: KtCodegenPrimaryAction;
121
+ } | {
122
+ readonly action: "openDocument" | "openCandidate" | "openReport";
123
+ readonly id: string;
124
+ } | {
125
+ readonly action: "updateMeta";
126
+ readonly id: string;
127
+ readonly field: "namePrefix" | "nameMiddle" | "nameSpace" | "appendFunction";
128
+ readonly value: string;
129
+ };
130
+ export interface KtCodegenControlSelectionDetail {
131
+ readonly blockKeys: readonly KtCodegenBlockKey[];
132
+ readonly singleMode: boolean;
133
+ }
134
+ /** 可选的控制符模板输出动作;实际日志与剪贴板写入仍由 Host adapter 完成。 */
135
+ export type KtCodegenControlOutputDetail = {
136
+ readonly scope: "visible";
137
+ readonly blockKeys: readonly KtCodegenBlockKey[];
138
+ } | {
139
+ readonly scope: "block";
140
+ readonly blockKey: KtCodegenBlockKey;
141
+ };
142
+ //# sourceMappingURL=KtCodegenUiContracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenUiContracts.d.ts","sourceRoot":"","sources":["../../src/ui/KtCodegenUiContracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export {};
3
+ //# sourceMappingURL=KtCodegenUiContracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenUiContracts.js","sourceRoot":"","sources":["../../src/ui/KtCodegenUiContracts.ts"],"names":[],"mappings":"AAAA,sCAAsC"}
@@ -0,0 +1,9 @@
1
+ export * from "./KtCodegenUiContracts.js";
2
+ export * from "./KtCodegenControlCatalogState.js";
3
+ export * from "./KtCodegenControlCatalog.js";
4
+ export * from "./KtCodegenControlViewModel.js";
5
+ export * from "./KtCodegenControlPanel.js";
6
+ export * from "./KtCodegenPrimaryPanel.js";
7
+ export * from "./KtCodegenApplyReportModel.js";
8
+ export * from "./KtCodegenApplyReport.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAEA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export * from "./KtCodegenUiContracts.js";
3
+ export * from "./KtCodegenControlCatalogState.js";
4
+ export * from "./KtCodegenControlCatalog.js";
5
+ export * from "./KtCodegenControlViewModel.js";
6
+ export * from "./KtCodegenControlPanel.js";
7
+ export * from "./KtCodegenPrimaryPanel.js";
8
+ export * from "./KtCodegenApplyReportModel.js";
9
+ export * from "./KtCodegenApplyReport.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phoenix-wing/kt-codegen",
3
- "version": "0.4.3",
3
+ "version": "0.5.1",
4
4
  "description": "CAA、Qt 与普通 C++ 的参数驱动代码生成核心",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -23,6 +23,14 @@
23
23
  "types": "./dist/table/index.d.ts",
24
24
  "import": "./dist/table/index.js"
25
25
  },
26
+ "./ui": {
27
+ "types": "./dist/ui/index.d.ts",
28
+ "import": "./dist/ui/index.js"
29
+ },
30
+ "./ui/report-model": {
31
+ "types": "./dist/ui/KtCodegenApplyReportModel.d.ts",
32
+ "import": "./dist/ui/KtCodegenApplyReportModel.js"
33
+ },
26
34
  "./fixtures/*": "./tests/fixtures/contracts/*"
27
35
  },
28
36
  "files": [